Bug 1948651
| Summary: | Review Request: perl-YAML-LibYAML-API - Wrapper around the C libyaml library | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Jitka Plesnikova <jplesnik> |
| Component: | Package Review | Assignee: | Petr Pisar <ppisar> |
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | rawhide | CC: | package-review, ppisar |
| Target Milestone: | --- | Flags: | ppisar:
fedora-review+
|
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | perl-YAML-LibYAML-API-0.012-1.fc35 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-04-16 20:42:08 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1948661 | ||
|
Description
Jitka Plesnikova
2021-04-12 17:06:37 UTC
A standalone spec file differs from the packaged one. I will use packaged one for this review.
URL and Source0 addresses are usable. Ok.
TODO: Remove a trailing slash for the URL value.
Source0 archive (SHA-512:
e072d836d2af63200617025e21895c235ea0a81e5e1a719baa114184450a9e09eccf2642ddfb9ea4ad062c6f995aedc1aca5f467b684d173683573f3d0fab340) is original. Ok.
Summary verified from lib/YAML/LibYAML/API.pm. Ok.
Description verified from lib/YAML/LibYAML/API.pm. Ok.
The packages contains an XS code, the package is full-arch. Ok.
License verified from lib/YAML/LibYAML/API.pm, LibYAML/ppport.h, Makefile.PL, LICENSE, README. Ok.
TODO: Document in the spec file a license of the bundled ./LibYAML files. It's a MIT license.
FIX: Do not build-require 'libyaml'. The packages only uses libyaml-devel.
FIX: Do not build-require 'perl(YAML::PP)'. It's used nowhere.
TODO: Constrain 'perl(YAML::PP::Common)' build-dependency with '>= 0.024' (Makefile.PL:32). Upstream probably mistaken the two modules.
TODO: Constrain 'perl(Test::More)' with '>= 0.98' (META.json:38).
TODO: I recommend unsetting AUTHOR_TESTING environment variable in the %check section (t/00.compile.t:37).
All tests pass. Ok.
$ rpmlint perl-YAML-LibYAML-API.spec ../SRPMS/perl-YAML-LibYAML-API-0.012-1.fc35.src.rpm ../RPMS/x86_64/perl-YAML-LibYAML-API-*
4 packages and 1 specfiles checked; 0 errors, 0 warnings.
$ rpm -q -lv -p ../RPMS/x86_64/perl-YAML-LibYAML-API-0.012-1.fc35.x86_64.rpm
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib/.build-id
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib/.build-id/ea
lrwxrwxrwx 1 root root 70 Apr 16 11:00 /usr/lib/.build-id/ea/751a0c94108058f8599a4705ba31c83968a01d -> ../../../../usr/lib64/perl5/vendor_perl/auto/YAML/LibYAML/API/XS/XS.so
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/YAML
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/YAML/LibYAML
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/YAML/LibYAML/API
-rw-r--r-- 1 root root 5101 Sep 8 2020 /usr/lib64/perl5/vendor_perl/YAML/LibYAML/API.pm
-rw-r--r-- 1 root root 312 Sep 8 2020 /usr/lib64/perl5/vendor_perl/YAML/LibYAML/API/XS.pm
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/auto/YAML
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/auto/YAML/LibYAML
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/auto/YAML/LibYAML/API
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/auto/YAML/LibYAML/API/XS
-rwxr-xr-x 1 root root 31768 Apr 16 11:00 /usr/lib64/perl5/vendor_perl/auto/YAML/LibYAML/API/XS/XS.so
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/share/doc/perl-YAML-LibYAML-API
-rw-r--r-- 1 root root 1533 Sep 8 2020 /usr/share/doc/perl-YAML-LibYAML-API/Changes
-rw-r--r-- 1 root root 374 Sep 8 2020 /usr/share/doc/perl-YAML-LibYAML-API/README
drwxr-xr-x 2 root root 0 Apr 16 11:00 /usr/share/licenses/perl-YAML-LibYAML-API
-rw-r--r-- 1 root root 18349 Sep 8 2020 /usr/share/licenses/perl-YAML-LibYAML-API/LICENSE
-rw-r--r-- 1 root root 1918 Apr 16 11:00 /usr/share/man/man3/YAML::LibYAML::API.3pm.gz
-rw-r--r-- 1 root root 1128 Apr 16 11:00 /usr/share/man/man3/YAML::LibYAML::API::XS.3pm.gz
File layout and permissions are Ok.
$ rpm -q --requires -p ../RPMS/x86_64/perl-YAML-LibYAML-API-0.012-1.fc35.x86_64.rpm | sort -f | uniq -c
1 libc.so.6()(64bit)
1 libc.so.6(GLIBC_2.11)(64bit)
1 libc.so.6(GLIBC_2.2.5)(64bit)
1 libc.so.6(GLIBC_2.4)(64bit)
1 libperl.so.5.32()(64bit)
1 libpthread.so.0()(64bit)
1 libpthread.so.0(GLIBC_2.2.5)(64bit)
1 libyaml >= 0.2.5
1 libyaml-0.so.2()(64bit)
1 perl(:MODULE_COMPAT_5.32.1)
1 perl(strict)
1 perl(warnings)
1 perl(XSLoader)
1 perl(YAML::PP::Common)
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)
FIX: Do not run-require 'libyaml'. The dependency is automatically generated from a library SONAME (libyaml-0.so.2()(64bit)).
TODO: Constrain 'perl(YAML::PP::Common)' dependency with '>= 0.024' (Makefile.PL:32). Upstream probably mistaken the two modules.
$ rpm -q --provides -p ../RPMS/x86_64/perl-YAML-LibYAML-API-0.012-1.fc35.x86_64.rpm | sort -f | uniq -c
1 perl(YAML::LibYAML::API) = 0.012
1 perl(YAML::LibYAML::API::XS) = 0.012
1 perl-YAML-LibYAML-API = 0.012-1.fc35
1 perl-YAML-LibYAML-API(x86-64) = 0.012-1.fc35
Binary provides are Ok.
$ resolvedeps rawhide ../RPMS/x86_64/perl-YAML-LibYAML-API-0.012-1.fc35.x86_64.rpm
Binary dependencies are resolvable. Ok.
The package does not build in F35 (https://koji.fedoraproject.org/koji/taskinfo?taskID=66052232):
DEBUG package_manager.py:197: ['/usr/bin/dnf', 'builddep', '--installroot', '/var/lib/mock/f35-build-26780150-3357443/root/', '--setopt=install_weak_deps=0', '--disableplugin=local', '--disableplugin=spacewalk', '/var/lib/mock/f35-build-26780150-3357443/root//builddir/build/SRPMS/perl-YAML-LibYAML-API-0.012-1.fc35.src.rpm']
DEBUG util.py:624: child environment: None
DEBUG util.py:542: Executing command: ['/usr/bin/dnf', 'builddep', '--installroot', '/var/lib/mock/f35-build-26780150-3357443/root/', '--setopt=install_weak_deps=0', '--disableplugin=local', '--disableplugin=spacewalk', '/var/lib/mock/f35-build-26780150-3357443/root//builddir/build/SRPMS/perl-YAML-LibYAML-API-0.012-1.fc35.src.rpm', '--setopt=tsflags=nocontexts'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/var/lib/mock/f35-build-26780150-3357443/root/installation-homedir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'LC_MESSAGES': 'C.UTF-8', 'LD_PRELOAD': '/var/tmp/tmp.mock.f4hua02m/$LIB/nosync.so'} and shell False
DEBUG util.py:444: No matches found for the following disable plugin patterns: local, spacewalk
DEBUG util.py:446: Package coreutils-8.32-22.fc35.x86_64 is already installed.
DEBUG util.py:446: Package findutils-1:4.8.0-2.fc34.x86_64 is already installed.
DEBUG util.py:444: Error:
DEBUG util.py:444: Problem: package perl-devel-4:5.32.1-474.fc35.x86_64 requires redhat-rpm-config, but none of the providers can be installed
DEBUG util.py:444: - package redhat-rpm-config-183-1.fc35.noarch requires (annobin if (gcc or clang)), but none of the providers can be installed
DEBUG util.py:444: - conflicting requests
We need to wait until the build root is fixed.
Otherwise the package is in line with Fedora and Perl packaging guidelines.
Resolution: NOT approved.
Update files on the same place. Spec file changes:
--- perl-YAML-LibYAML-API.spec.old 2021-04-12 19:03:08.000000000 +0200
+++ perl-YAML-LibYAML-API.spec 2021-04-16 12:03:02.000000000 +0200
@@ -8,7 +8,6 @@
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
-BuildRequires: libyaml >= 0.2.5
BuildRequires: libyaml-devel >= 0.2.5
BuildRequires: make
BuildRequires: perl-devel
@@ -22,8 +21,7 @@
BuildRequires: perl(warnings)
# Run-time
BuildRequires: perl(XSLoader)
-BuildRequires: perl(YAML::PP) >= 0.024
-BuildRequires: perl(YAML::PP::Common)
+BuildRequires: perl(YAML::PP::Common) >= 0.024
# Tests
BuildRequires: perl(blib)
BuildRequires: perl(Encode)
@@ -31,9 +29,12 @@
BuildRequires: perl(FindBin)
BuildRequires: perl(IO::Handle)
BuildRequires: perl(IPC::Open3)
-BuildRequires: perl(Test::More)
+BuildRequires: perl(Test::More) >= 0.98
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
-Requires: libyaml >= 0.2.5
+Requires: perl(YAML::PP::Common) >= 0.024
+
+# Filter unversioned require
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(YAML::PP::Common\\)
%description
This module provides a thin wrapper around the C libyaml API.
@@ -59,6 +60,7 @@
%{_fixperms} $RPM_BUILD_ROOT/*
%check
+unset AUTHOR_TESTING
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
make test
> TODO: Remove a trailing slash for the URL value.
Not addressed.
> TODO: Document in the spec file a license of the bundled ./LibYAML files. It's a MIT license.
Not addreseed.
> FIX: Do not build-require 'libyaml'. The packages only uses libyaml-devel.
Ok.
> FIX: Do not build-require 'perl(YAML::PP)'. It's used nowhere.
Ok.
> TODO: Constrain 'perl(YAML::PP::Common)' build-dependency with '>= 0.024' (Makefile.PL:32). Upstream probably mistaken the two modules.
Ok.
> TODO: Constrain 'perl(Test::More)' with '>= 0.98' (META.json:38).
Ok.
> TODO: I recommend unsetting AUTHOR_TESTING environment variable in the %check section (t/00.compile.t:37).
Ok.
$ rpmlint perl-YAML-LibYAML-API.spec ../SRPMS/perl-YAML-LibYAML-API-0.012-1.fc35.src.rpm ../RPMS/x86_64/perl-YAML-LibYAML-API-*
4 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is Ok.
> FIX: Do not run-require 'libyaml'. The dependency is automatically generated from a library SONAME (libyaml-0.so.2()(64bit)).
> TODO: Constrain 'perl(YAML::PP::Common)' dependency with '>= 0.024' (Makefile.PL:32). Upstream probably mistaken the two modules.
$ rpm -q --requires -p ../RPMS/x86_64/perl-YAML-LibYAML-API-0.012-1.fc35.x86_64.rpm | sort -f | uniq -c
1 libc.so.6()(64bit)
1 libc.so.6(GLIBC_2.11)(64bit)
1 libc.so.6(GLIBC_2.2.5)(64bit)
1 libc.so.6(GLIBC_2.4)(64bit)
1 libperl.so.5.32()(64bit)
1 libpthread.so.0()(64bit)
1 libpthread.so.0(GLIBC_2.2.5)(64bit)
1 libyaml-0.so.2()(64bit)
1 perl(:MODULE_COMPAT_5.32.1)
1 perl(strict)
1 perl(warnings)
1 perl(XSLoader)
1 perl(YAML::PP::Common) >= 0.024
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.
$ resolvedeps rawhide ../RPMS/x86_64/perl-YAML-LibYAML-API-0.012-1.fc35.x86_64.rpm
Binary dependencies are resolvable. Ok.
It still fails to build in F35 <https://koji.fedoraproject.org/koji/taskinfo?taskID=66054894>. The full error message as seen in my machine is:
Problém: problem with installed package redhat-rpm-config-183-1.fc35.noarch
- cannot install the best update candidate for package redhat-rpm-config-183-1.fc35.noarch
- package redhat-rpm-config-183-1.fc35.noarch requires (annobin if (gcc or clang)), but none of the providers can be installed
- cannot install the best update candidate for package annobin-9.65-2.fc35.x86_64
- package annobin-docs-9.66-2.fc35.noarch obsoletes annobin < 9.66-2.fc35 provided by annobin-9.65-2.fc35.x86_64
- problem with installed package gcc-11.0.1-0.4.fc35.x86_64
- cannot install the best update candidate for package gcc-11.0.1-0.4.fc35.x86_64
This seems to be an annobin bug #1949570.
Resolution: Package APPROVED.
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-YAML-LibYAML-API Thank you for review and repository. |