https://bugzilla.redhat.com/show_bug.cgi?id=2154918 Petr Pisar <ppisar@xxxxxxxxxx> 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@xxxxxxxxxx> --- > > 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 _______________________________________________ package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue