Bug 1826270 - Review Request: perl-B-COW - Additional B helpers to check Copy On Write status
Summary: Review Request: perl-B-COW - Additional B helpers to check Copy On Write status
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1796214
TreeView+ depends on / blocked
 
Reported: 2020-04-21 10:55 UTC by Paul Howarth
Modified: 2020-05-10 00:59 UTC (History)
3 users (show)

Fixed In Version: perl-B-COW-0.004-2.fc33
Clone Of:
Environment:
Last Closed: 2020-05-03 04:54:02 UTC
Type: ---
Embargoed:
ppisar: fedora-review+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github atoomic B-COW issues 1 0 None closed libb-cow-perl: fails to build (test failures) on some architectures 2020-04-26 01:52:02 UTC

Internal Links: 1796214

Description Paul Howarth 2020-04-21 10:55:47 UTC
Spec URL: http://subversion.city-fan.org/repos/cfo-repo/perl-B-COW/branches/fedora/perl-B-COW.spec

SRPM URL: http://www.city-fan.org/~paul/extras/perl-B-COW/perl-B-COW-0.003-2.fc33.src.rpm

Description:
B::COW provides some naïve additional B helpers to check the Copy On Write
(COW) status of one SvPV (a Perl string variable).

A COWed SvPV is sharing its string (the PV) with other SvPVs. It's a (kind of)
Read Only C string, which would be Copied On Write (COW). More than one SV can
share the same PV, but when one PV needs to alter it, it would perform a copy
of it, decreasing the COWREFCNT counter. One SV can then drop the COW flag when
it's the only one holding a pointer to the PV. The COWREFCNT is stored at the
end of the PV, after the null byte terminating the string. That value is
limited to 255: when we reach 255, a new PV would be created.

Fedora Account System Username: pghmcfc

This package is needed for the test suite of perl-Clone 0.44.

Comment 1 Petr Pisar 2020-04-21 11:53:23 UTC
The standalone spec file seems to be newer. I will use that for the review.

Url and Source0 addresses are usable. Ok.
A Source0 archive (SHA-256: 9c7de86542871bc0ac8e6b4f7363bba4f6c5cc07e06fadc51d3a78832fcfca89) is original. Ok.
Summary verifed from lib/B/COW.pm. Ok.
Description verified from lib/B/COW.pm. Ok.
License verified from lib/B/COW.pm, Makefile.PL, LICENSE, COW.xs, and README. Ok.

TODO: Use %{make_build} and %{make_install} macros.

All tests pass. Ok.

$ rpmlint perl-B-COW.spec ../SRPMS/perl-B-COW-0.003-2.fc33.src.rpm ../RPMS/x86_64/perl-B-COW-*
sh: /usr/bin/python2: No such file or directory
perl-B-COW.src: W: spelling-error %description -l en_US naïve -> nave, naive
perl-B-COW.x86_64: W: spelling-error %description -l en_US naïve -> nave, naive
perl-B-COW.x86_64: E: library-not-linked-against-libc /usr/lib64/perl5/vendor_perl/auto/B/COW/COW.so
4 packages and 1 specfiles checked; 1 errors, 2 warnings.
rpmlint is Ok.
The link error is because of a weak __cxa_finalize symbol. Weak symbols do not need to be fulfilled.

$ rpm -q -lv -p ../RPMS/x86_64/perl-B-COW-0.003-2.fc33.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/lib/.build-id/c9
lrwxrwxrwx    1 root     root                       57 Apr 21 13:40 /usr/lib/.build-id/c9/5e1f2c8a5362612b167e996167a8bab86a0327 -> ../../../../usr/lib64/perl5/vendor_perl/auto/B/COW/COW.so
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/lib64/perl5/vendor_perl/B
-rw-r--r--    1 root     root                     3150 Apr 20 17:59 /usr/lib64/perl5/vendor_perl/B/COW.pm
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/lib64/perl5/vendor_perl/auto/B
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/lib64/perl5/vendor_perl/auto/B/COW
-rwxr-xr-x    1 root     root                    15768 Apr 21 13:40 /usr/lib64/perl5/vendor_perl/auto/B/COW/COW.so
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/share/doc/perl-B-COW
-rw-r--r--    1 root     root                      336 Apr 20 17:59 /usr/share/doc/perl-B-COW/Changes
-rw-r--r--    1 root     root                      371 Apr 20 17:59 /usr/share/doc/perl-B-COW/README
drwxr-xr-x    2 root     root                        0 Apr 20 17:59 /usr/share/doc/perl-B-COW/examples
-rw-r--r--    1 root     root                      805 Apr 20 17:59 /usr/share/doc/perl-B-COW/examples/synopsis.pl
drwxr-xr-x    2 root     root                        0 Apr 21 13:40 /usr/share/licenses/perl-B-COW
-rw-r--r--    1 root     root                    18340 Apr 20 17:59 /usr/share/licenses/perl-B-COW/LICENSE
-rw-r--r--    1 root     root                     2246 Apr 21 13:40 /usr/share/man/man3/B::COW.3pm.gz
A file layout and the permissions are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/perl-B-COW-0.003-2.fc33.x86_64.rpm | sort -f | uniq -c
      1 libperl.so.5.30()(64bit)
      1 libpthread.so.0()(64bit)
      1 libpthread.so.0(GLIBC_2.2.5)(64bit)
      1 perl(:MODULE_COMPAT_5.30.2)
      1 perl(base)
      1 perl(Exporter)
      1 perl(strict)
      1 perl(warnings)
      1 perl(XSLoader)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
      1 rtld(GNU_HASH)
Binary requires are Ok.

$ rpm -q --provides -p ../RPMS/x86_64/perl-B-COW-0.003-2.fc33.x86_64.rpm | sort -f | uniq -c
      1 perl(B::COW) = 0.003
      1 perl-B-COW = 0.003-2.fc33
      1 perl-B-COW(x86-64) = 0.003-2.fc33
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/x86_64/perl-B-COW-0.003-2.fc33.x86_64.rpm 
Binary dependencies are resolvable. Ok.

FATAL: The package does not build in Fedora 33 (https://koji.fedoraproject.org/koji/taskinfo?taskID=43596524) on big-endian machines (https://github.com/atoomic/B-COW/issues/1).

Otherwise the package is in-line with Fedora and Perl packaging guidelines.
Resolution: NOT approved.

Comment 2 Paul Howarth 2020-04-24 08:50:35 UTC
Issue with shared hash key references resolved upstream in version 0.004:

Spec URL: http://subversion.city-fan.org/repos/cfo-repo/perl-B-COW/branches/fedora/perl-B-COW.spec

SRPM URL: http://www.city-fan.org/~paul/extras/perl-B-COW/perl-B-COW-0.004-1.fc33.src.rpm

I'll update to use %{make_build} and %{make_install} macros post-import so I can branch for EPEL-7 more easily.

Comment 3 Paul Howarth 2020-04-24 08:51:08 UTC
Scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=43717368

Comment 4 Petr Pisar 2020-04-24 10:10:09 UTC
This is a rebase. Reviewing again.

Url and Source0 addresses are usable. Ok.
Source0 archive (SHA-256: fcafb775ed84a45bc2c06c5ffd71342cb3c06fb0bdcd5c1b51b0c12f8b585f51) is original. Ok.
The summary is Ok.
Description verified from lib/B/COW.pm. Ok.
License verified from lib/B/COW.pm, LICENSE, COW.xs, and README. Ok.

All tests pass. Ok.

$ rpmlint perl-B-COW.spec ../SRPMS/perl-B-COW-0.004-1.fc33.src.rpm ../RPMS/x86_64/perl-B-COW-*
sh: /usr/bin/python2: No such file or directory
perl-B-COW.src: W: spelling-error %description -l en_US naïve -> nave, naive
perl-B-COW.x86_64: W: spelling-error %description -l en_US naïve -> nave, naive
perl-B-COW.x86_64: E: library-not-linked-against-libc /usr/lib64/perl5/vendor_perl/auto/B/COW/COW.so
4 packages and 1 specfiles checked; 1 errors, 2 warnings.
rpmlint is Ok.

$ rpm -q -lv -p ../RPMS/x86_64/perl-B-COW-0.004-1.fc33.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/lib/.build-id/c4
lrwxrwxrwx    1 root     root                       57 Apr 24 11:48 /usr/lib/.build-id/c4/3a0a258846d4434c0ee0e0e6cd7c9083d2a822 -> ../../../../usr/lib64/perl5/vendor_perl/auto/B/COW/COW.so
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/lib64/perl5/vendor_perl/B
-rw-r--r--    1 root     root                     3150 Apr 23 22:41 /usr/lib64/perl5/vendor_perl/B/COW.pm
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/lib64/perl5/vendor_perl/auto/B
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/lib64/perl5/vendor_perl/auto/B/COW
-rwxr-xr-x    1 root     root                    15768 Apr 24 11:48 /usr/lib64/perl5/vendor_perl/auto/B/COW/COW.so
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/share/doc/perl-B-COW
-rw-r--r--    1 root     root                      424 Apr 23 22:41 /usr/share/doc/perl-B-COW/Changes
-rw-r--r--    1 root     root                      371 Apr 23 22:41 /usr/share/doc/perl-B-COW/README
drwxr-xr-x    2 root     root                        0 Apr 23 22:41 /usr/share/doc/perl-B-COW/examples
-rw-r--r--    1 root     root                      805 Apr 23 22:41 /usr/share/doc/perl-B-COW/examples/synopsis.pl
drwxr-xr-x    2 root     root                        0 Apr 24 11:48 /usr/share/licenses/perl-B-COW
-rw-r--r--    1 root     root                    18340 Apr 23 22:41 /usr/share/licenses/perl-B-COW/LICENSE
-rw-r--r--    1 root     root                     2247 Apr 24 11:48 /usr/share/man/man3/B::COW.3pm.gz
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/perl-B-COW-0.004-1.fc33.x86_64.rpm | sort -f | uniq -c
      1 libperl.so.5.30()(64bit)
      1 libpthread.so.0()(64bit)
      1 libpthread.so.0(GLIBC_2.2.5)(64bit)
      1 perl(:MODULE_COMPAT_5.30.2)
      1 perl(base)
      1 perl(Exporter)
      1 perl(strict)
      1 perl(warnings)
      1 perl(XSLoader)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
      1 rtld(GNU_HASH)
Binary requires are Ok.

$ rpm -q --provides -p ../RPMS/x86_64/perl-B-COW-0.004-1.fc33.x86_64.rpm | sort -f | uniq -c
      1 perl(B::COW) = 0.004
      1 perl-B-COW = 0.004-1.fc33
      1 perl-B-COW(x86-64) = 0.004-1.fc33
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/x86_64/perl-B-COW-0.004-1.fc33.x86_64.rpm 
Binary dependencies are resolvable. Ok.

The package builds in Fedora 33 (https://koji.fedoraproject.org/koji/taskinfo?taskID=43721380). Ok.

The package is in line with Fedora and Perl packaging guidelines.
Resolution: Package APPROVED.

Comment 5 Paul Howarth 2020-04-24 10:23:04 UTC
Thanks Petr.

$ fedpkg request-repo perl-B-COW 1826270
https://pagure.io/releng/fedora-scm-requests/issue/24494
$ fedpkg request-branch --repo perl-B-COW f32
https://pagure.io/releng/fedora-scm-requests/issue/24500
$ fedpkg request-branch --repo perl-B-COW f31
https://pagure.io/releng/fedora-scm-requests/issue/24501
$ fedpkg request-branch --repo perl-B-COW epel8
https://pagure.io/releng/fedora-scm-requests/issue/24502
https://pagure.io/releng/fedora-scm-requests/issue/24503
$ fedpkg request-branch --repo perl-B-COW epel7
https://pagure.io/releng/fedora-scm-requests/issue/24504

Comment 6 Gwyn Ciesla 2020-04-24 13:38:27 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-B-COW

Comment 7 Fedora Update System 2020-04-24 14:41:09 UTC
FEDORA-2020-d31ca621ea has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-d31ca621ea

Comment 8 Fedora Update System 2020-04-24 14:41:10 UTC
FEDORA-2020-b40431c7f0 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-b40431c7f0

Comment 9 Fedora Update System 2020-04-24 14:54:09 UTC
FEDORA-EPEL-2020-095ec3b8bf has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-095ec3b8bf

Comment 10 Fedora Update System 2020-04-24 14:54:10 UTC
FEDORA-EPEL-2020-eecc5afcda has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-eecc5afcda

Comment 11 Paul Howarth 2020-04-24 16:56:06 UTC
B::COW is now available in the Rawhide buildroot.

Comment 12 Fedora Update System 2020-04-25 03:05:28 UTC
FEDORA-EPEL-2020-eecc5afcda has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-eecc5afcda

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 13 Fedora Update System 2020-04-25 03:19:49 UTC
FEDORA-EPEL-2020-095ec3b8bf has been pushed to the Fedora EPEL 7 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-095ec3b8bf

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Fedora Update System 2020-04-25 04:19:07 UTC
FEDORA-2020-d31ca621ea has been pushed to the Fedora 31 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-d31ca621ea \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-d31ca621ea

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 15 Fedora Update System 2020-04-25 12:21:09 UTC
FEDORA-2020-b40431c7f0 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-b40431c7f0 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-b40431c7f0

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 16 Fedora Update System 2020-05-03 04:54:02 UTC
FEDORA-2020-d31ca621ea has been pushed to the Fedora 31 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 17 Fedora Update System 2020-05-03 05:29:48 UTC
FEDORA-2020-b40431c7f0 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 18 Fedora Update System 2020-05-10 00:36:37 UTC
FEDORA-EPEL-2020-eecc5afcda has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 19 Fedora Update System 2020-05-10 00:59:20 UTC
FEDORA-EPEL-2020-095ec3b8bf has been pushed to the Fedora EPEL 7 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.