https://bugzilla.redhat.com/show_bug.cgi?id=2154918
Petr Pisar <ppisar(a)redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Review Request: |Review Request:
|perl-Text-QRCode - Generate |perl-Text-QRCode - Perl
|text base QR Code |module to generate text
| |base QR Code
--- Comment #4 from Petr Pisar <ppisar(a)redhat.com> ---
> FIX: Either unbundle modules found in ./inc ("rm -r
./inc/*" in %prep) and build-require the few inc::Module::Install modules
(Makefile.PL:3), or list all dependencies of ./inc code (e.g. perl(Config) at
inc/Module/Install/Can.pm:5). I recommend you the first option as it is much easier and
Fedora-way.
+BuildRequires: perl(Module::Install)
FIX: Build-require 'perl(inc::Module::Install)' instead of
'perl(Module::Install)'. That's the module which is loaded (Makefile.PL:3).
+BuildRequires: perl-Module-Install
TODO: Although a dependency on an RPM package also works, in Perl we prefer
depending in modules because modules sometimes move between packages. I know
that perl-Module-Install is weird with its automatically loaded plugins. Here
is a list of the modules whose subroutines are called by Makefile.PL:
perl(Module::Install::Metadata)
perl(Module::Install::Compiler)
perl(Module::Install::Can)
perl(Module::Install::AutoInstall)
perl(Module::Install::WriteAll)
Try depending on them instead of perl-Module-Install.
FIX: Build-require 'coreutils' (perl-Text-QRCode.spec:40).
$ rpmlint perl-Text-QRCode.spec ../SRPMS/perl-Text-QRCode-0.05-2.fc38.src.rpm
../RPMS/x86_64/perl-Text-QRCode-*
======================================== rpmlint session starts
=======================================
rpmlint: 2.4.0
configuration:
/usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
/etc/xdg/rpmlint/fedora-legacy-licenses.toml
/etc/xdg/rpmlint/fedora-spdx-licenses.toml
/etc/xdg/rpmlint/fedora.toml
/etc/xdg/rpmlint/scoring.toml
/etc/xdg/rpmlint/users-groups.toml
/etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 5
========= 4 packages and 1 specfiles checked; 0 errors, 0 warnings, 0 badness;
has taken 0.3 s ========
rpmlint is Ok.
> FIX: Package also /usr/lib64/perl5/vendor_perl/Text directory.
I'm not sure I understand. If I add %{perl_vendorarch}/Text to %files I get a rpm
build warning that %{perl_vendorarch}/Text/QRCode.pm is listed twice. Using %dir
%{perl_vendorarch}/Text is not correct since this module does not own this directory.
Using both "%dir %{perl_vendorarch}/Text" and
"%{perl_vendorarch}/Text/QRCode.pm" is correct. The package will co-own the
directory with other packages. We do it so because the package cannot guarantee
that there will always be another package installed which would own that
directory. Hence what we do is that we own the full path except the top-level
%{perl_vendorarch} which is owned by perl-libs. Strictly reading guidelins,
recursively owning "%{perl_vendorarch}/Text" would be enough. But since the
package is named Text-QRCode, an intention is to occupy Text::QRCode name
space, and therefore we tend to explicitly own all path components under
%{perl_vendorarch} and up to %{perl_vendorarch}/Text/QRCode*.
$ rpm -q -lv -p ../RPMS/x86_64/perl-Text-QRCode-0.05-2.fc38.x86_64.rpm
drwxr-xr-x 2 root root 0 Feb 3 01:00
/usr/lib/.build-id
drwxr-xr-x 2 root root 0 Feb 3 01:00
/usr/lib/.build-id/4c
lrwxrwxrwx 1 root root 66 Feb 3 01:00
/usr/lib/.build-id/4c/fb2219d45a654fa167615a162bf353250f0cd5 ->
../../../../usr/lib64/perl5/vendor_perl/auto/Text/QRCode/QRCode.so
-rw-r--r-- 1 root root 2850 Oct 12 2016
/usr/lib64/perl5/vendor_perl/Text/QRCode.pm
-rwxr-xr-x 1 root root 15872 Feb 3 01:00
/usr/lib64/perl5/vendor_perl/auto/Text/QRCode/QRCode.so
drwxr-xr-x 2 root root 0 Feb 3 01:00
/usr/share/doc/perl-Text-QRCode
-rw-r--r-- 1 root root 828 Oct 12 2016
/usr/share/doc/perl-Text-QRCode/Changes
-rw-r--r-- 1 root root 1396 Oct 12 2016
/usr/share/doc/perl-Text-QRCode/README
-rw-r--r-- 1 root root 1690 Feb 3 01:00
/usr/share/man/man3/Text::QRCode.3pm.gz
FIX: Own %{perl_vendorarch}/Text and %{perl_vendorarch}/auto/Text directories.
$ rpm -q --requires -p ../RPMS/x86_64/perl-Text-QRCode-0.05-2.fc38.x86_64.rpm |
sort -f | uniq -c
1 ld-linux-x86-64.so.2()(64bit)
1 ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
1 libc.so.6()(64bit)
1 libc.so.6(GLIBC_2.2.5)(64bit)
1 libc.so.6(GLIBC_2.4)(64bit)
1 libperl.so.5.36()(64bit)
1 libqrencode.so.4()(64bit)
1 perl(:MODULE_COMPAT_5.36.0)
1 perl(base)
1 perl(Carp)
1 perl(Exporter)
1 perl(strict)
1 perl(vars)
1 perl(warnings)
1 perl-libs
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: Explicitly require 'perl(XSLoader)' (lib/Text/QRCode.pm:15). That
dependencies is not automatically generated because it is loaded at run-time.
The package builds in F38
(
https://koji.fedoraproject.org/koji/taskinfo?taskID=97181255). Ok.
You did great. The package is almost perfect. Please correct the FIX items,
consider fixing a TODO item, and provide a new spec file.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2154918