[Bug 2251479] Review Request: perl-File-Unpack2 - An strong archive file unpacker, based on mime-types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2251479



--- Comment #5 from Petr Pisar <ppisar@xxxxxxxxxx> ---
URL and Source0 addresses are Ok.

Discovered licenses: 

contrib/stringsx.c: MIT OR GPL-1.0-or-later
contrib/stringsx.pl: MIT OR GPL-1.0-or-later
file_unpack2.pl: GPL-1.0-or-later OR Artistic-1.0-Perl
Makefile.PL: GPL-1.0-or-later OR Artistic-1.0-Perl
LICENSES/MIT.txt: MIT
README: GPL-1.0-or-later OR Artistic-1.0-Perl
Unpack2.pm: GPL-1.0-or-later OR Artistic-1.0-Perl

FIX: file-unpack license should be "(MIT OR GPL-1.0-or-later) AND
(GPL-1.0-or-later OR Artistic-1.0-Perl)".

TODO: Remove a leading and incorrect "An" article from Summary.
FIX: Replace "File::Unpack" with "File::Unpack2" in the Description text.
TODO: Use uppercase form "Perl" in file-unpack description text. The word
refers to a programming language. Not to /usr/bin/perl.

TODO: Use plain "perl" command instead of "%{__perl}" macro.
TODO: Use "%{make_build}" macro instead of "%{__make} %{?_smp_mflags}" line.
Also use it instead of "%{__make}" in "%{__make} stringsx" as it handles
parallelism.

FIX: Build-require "coreutils" (Makefile.PL:58).

TODO: Append "NO_PACKLIST=1 NO_PERLLOCAL=1" arguments to Makefile.PL
invocation, appewnd ">= 6.76" to "BuildRequires:  perl(ExtUtils::MakeMaker)"
and replace "%{__make} pure_install PERL_INSTALL_ROOT=%{buildroot}
create_packlist=0" line with "%{make_install}" macro and remove the two "find
%{buildroot}..." lines. See
<https://fedoraproject.org/wiki/Perl/Tips#ExtUtils::MakeMaker> for an example.

FIX: Build-require "perl-podlators" (perl-File-Unpack2.spec:179).

TODO: Do not use top-level globs in %files sections
<https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_lists>.
You should list direct childs of %{perl_vendorlib}/, %_mandir/man3/,
%_mandir/man1/, and %{_bindir}/ explicitly.

FIX: Remove run-time and test-time dependencies from BuildRequires (e.g.
"perl(Test::CheckManifest)") because you do not perform any tests.
FIX: The explicit run-time dependency on "perl(File::Unpack) == %version" is
wrong. In Fedora we use a dependency on a package name qualified with an exact
version and release "%{name}%{?_isa} = %{version}-%{release}".

FIX: Escape per-cent character in spec file comments:
    Macro expanded in comment on line 9:
%{commit}/%{name}-%{shortcommit}.tar.gz
    Macro expanded in comment on line 10: %{name}-%{shortcommit}.tar.gz
    Macro expanded in comment on line 11: %{commit}/t
    Macro expanded in comment on line 12:
%{name}-%{shortcommit}-repackaged.tar.gz perl-File-Unpack2-%{commit}

TODO: Building /usr/share/man/man1/file-unpack.1.gz fails:

+ cat
+ perl file-unpack.pl --help
Can't open perl script "file-unpack.pl": No such file or directory
+ cat
+ pod2man file-unpack.pod
+ rm file-unpack.pod

As a result the manual page is missing a text with file-unpack options.

$ rpmlint perl-File-Unpack2.spec ../SRPMS/perl-File-Unpack2-0.70-1.fc40.src.rpm
../RPMS/x86_64/perl-File-Unpack2-* ../RPMS/x86_64/file-unpack-*
warning: Macro expanded in comment on line 9:
%{commit}/%{name}-%{shortcommit}.tar.gz

warning: Macro expanded in comment on line 10: %{name}-%{shortcommit}.tar.gz

warning: Macro expanded in comment on line 11: %{commit}/t

warning: Macro expanded in comment on line 12:
%{name}-%{shortcommit}-repackaged.tar.gz perl-File-Unpack2-%{commit}

warning: Macro expanded in comment on line 9:
%{commit}/%{name}-%{shortcommit}.tar.gz

warning: Macro expanded in comment on line 10: %{name}-%{shortcommit}.tar.gz

warning: Macro expanded in comment on line 11: %{commit}/t

warning: Macro expanded in comment on line 12:
%{name}-%{shortcommit}-repackaged.tar.gz perl-File-Unpack2-%{commit}

========================================================== rpmlint session
starts =========================================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/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: 32, packages: 6

file-unpack.x86_64: E: spelling-error ('frontend', '%description -l en_US
frontend -> fronted, front end, front-end')
file-unpack.x86_64: E: spelling-error ('perl', '%description -l en_US perl ->
Perl, peel, perk')
perl-File-Unpack2.x86_64: E: spelling-error ('unpacker', 'Summary(en_US)
unpacker -> unpacked, unpack er, unpack-er')
perl-File-Unpack2.x86_64: E: spelling-error ('unpacker', '%description -l en_US
unpacker -> unpacked, unpack er, unpack-er')
perl-File-Unpack2.x86_64: E: spelling-error ('gz', '%description -l en_US gz ->
g, z, gs')
perl-File-Unpack2.x86_64: E: spelling-error ('cpio', '%description -l en_US
cpio -> CPI')
perl-File-Unpack2.x86_64: E: spelling-error ('iso', '%description -l en_US iso
-> ISO, is, so')
perl-File-Unpack2.x86_64: E: spelling-error ('lzma', '%description -l en_US
lzma -> lama')
perl-File-Unpack2.x86_64: E: spelling-error ('rar', '%description -l en_US rar
-> arr, ear, tar')
perl-File-Unpack2.x86_64: E: spelling-error ('recursivly', '%description -l
en_US recursivly -> recursively, recursive, excursively')
perl-File-Unpack2.x86_64: E: spelling-error ('unpackable', '%description -l
en_US unpackable -> unpack able, unpack-able, unshockable')
perl-File-Unpack2.x86_64: E: spelling-error ('logfile', '%description -l en_US
logfile -> log file, log-file, misfile')
perl-File-Unpack2.x86_64: E: spelling-error ('mimetypes', '%description -l
en_US mimetypes -> mime types, mime-types, mistypes')
perl-File-Unpack2.x86_64: E: spelling-error ('additinal', '%description -l
en_US additinal -> additional, traditional, attitudinal')
perl-File-Unpack2.src: E: spelling-error ('unpacker', 'Summary(en_US) unpacker
-> unpacked, unpack er, unpack-er')
perl-File-Unpack2.src: E: spelling-error ('unpacker', '%description -l en_US
unpacker -> unpacked, unpack er, unpack-er')
perl-File-Unpack2.src: E: spelling-error ('gz', '%description -l en_US gz -> g,
z, gs')
perl-File-Unpack2.src: E: spelling-error ('cpio', '%description -l en_US cpio
-> CPI')
perl-File-Unpack2.src: E: spelling-error ('iso', '%description -l en_US iso ->
ISO, is, so')
perl-File-Unpack2.src: E: spelling-error ('lzma', '%description -l en_US lzma
-> lama')
perl-File-Unpack2.src: E: spelling-error ('rar', '%description -l en_US rar ->
arr, ear, tar')
perl-File-Unpack2.src: E: spelling-error ('recursivly', '%description -l en_US
recursivly -> recursively, recursive, excursively')
perl-File-Unpack2.src: E: spelling-error ('unpackable', '%description -l en_US
unpackable -> unpack able, unpack-able, unshockable')
perl-File-Unpack2.src: E: spelling-error ('logfile', '%description -l en_US
logfile -> log file, log-file, misfile')
perl-File-Unpack2.src: E: spelling-error ('mimetypes', '%description -l en_US
mimetypes -> mime types, mime-types, mistypes')
perl-File-Unpack2.src: E: spelling-error ('additinal', '%description -l en_US
additinal -> additional, traditional, attitudinal')
file-unpack.x86_64: W: no-manual-page-for-binary file-unpack-deep
file-unpack.x86_64: W: no-manual-page-for-binary file_unpack
file-unpack.x86_64: W: no-manual-page-for-binary stringsx
file-unpack.x86_64: W: no-manual-page-for-binary unpack-deep
file-unpack.x86_64: W: no-manual-page-for-binary unpack-file
file-unpack.x86_64: W: no-manual-page-for-binary unpack-file-deep
perl-File-Unpack2.x86_64: E: no-binary
perl-File-Unpack2.spec: W: more-than-one-%changelog-section
perl-File-Unpack2.spec:189: W: make-check-outside-check-section rm
contrib/stringsx # so that the Manifest in make check is not confused.
perl-File-Unpack2.spec:189: W: make-check-outside-check-section rm
contrib/stringsx # so that the Manifest in make check is not confused.
perl-File-Unpack2.spec:9: W: macro-in-comment %{commit}
perl-File-Unpack2.spec:9: W: macro-in-comment %{name}
perl-File-Unpack2.spec:9: W: macro-in-comment %{shortcommit}
perl-File-Unpack2.spec:10: W: macro-in-comment %{name}
perl-File-Unpack2.spec:10: W: macro-in-comment %{shortcommit}
perl-File-Unpack2.spec:11: W: macro-in-comment %{commit}
perl-File-Unpack2.spec:12: W: macro-in-comment %{name}
perl-File-Unpack2.spec:12: W: macro-in-comment %{shortcommit}
perl-File-Unpack2.spec:12: W: macro-in-comment %{commit}
perl-File-Unpack2.spec:201: W: macro-in-comment %{__make}
perl-File-Unpack2.spec:9: W: macro-in-comment %{commit}
perl-File-Unpack2.spec:9: W: macro-in-comment %{name}
perl-File-Unpack2.spec:9: W: macro-in-comment %{shortcommit}
perl-File-Unpack2.spec:10: W: macro-in-comment %{name}
perl-File-Unpack2.spec:10: W: macro-in-comment %{shortcommit}
perl-File-Unpack2.spec:11: W: macro-in-comment %{commit}
perl-File-Unpack2.spec:12: W: macro-in-comment %{name}
perl-File-Unpack2.spec:12: W: macro-in-comment %{shortcommit}
perl-File-Unpack2.spec:12: W: macro-in-comment %{commit}
perl-File-Unpack2.spec:201: W: macro-in-comment %{__make}
perl-File-Unpack2.spec:1: W: macro-in-%changelog %global
perl-File-Unpack2.spec:2: W: macro-in-%changelog %global
perl-File-Unpack2.spec:2: W: macro-in-%changelog %{commit}
perl-File-Unpack2.spec:6: W: macro-in-%changelog %autorelease
perl-File-Unpack2.spec:9: W: macro-in-%changelog %{commit}
perl-File-Unpack2.spec:9: W: macro-in-%changelog %{name}
perl-File-Unpack2.spec:9: W: macro-in-%changelog %{shortcommit}
perl-File-Unpack2.spec:10: W: macro-in-%changelog %{name}
perl-File-Unpack2.spec:10: W: macro-in-%changelog %{shortcommit}
perl-File-Unpack2.spec:11: W: macro-in-%changelog %{commit}
perl-File-Unpack2.spec:12: W: macro-in-%changelog %{name}
perl-File-Unpack2.spec:12: W: macro-in-%changelog %{shortcommit}
perl-File-Unpack2.spec:12: W: macro-in-%changelog %{commit}
perl-File-Unpack2.spec:13: W: macro-in-%changelog %{name}
perl-File-Unpack2.spec:13: W: macro-in-%changelog %{shortcommit}
perl-File-Unpack2.spec:113: W: macro-in-%changelog %version
perl-File-Unpack2.spec: W: invalid-url Source0:
perl-File-Unpack2-4bcdc19-repackaged.tar.gz
perl-File-Unpack2.spec: W: invalid-url Source0:
perl-File-Unpack2-4bcdc19-repackaged.tar.gz
perl-File-Unpack2.x86_64: E: description-line-too-long it strong, because it is
not fooled by file suffixes, or multiply wrapped packages.
perl-File-Unpack2.src: E: description-line-too-long it strong, because it is
not fooled by file suffixes, or multiply wrapped packages.
file-unpack.x86_64: W: dangling-relative-symlink /usr/bin/file-unpack-deep
file-unpack
file-unpack.x86_64: W: dangling-relative-symlink /usr/bin/file_unpack
file-unpack
file-unpack.x86_64: W: dangling-relative-symlink /usr/bin/unpack-deep
file-unpack
file-unpack.x86_64: W: dangling-relative-symlink /usr/bin/unpack-file
file-unpack
file-unpack.x86_64: W: dangling-relative-symlink /usr/bin/unpack-file-deep
file-unpack
=================== 5 packages and 1 specfiles checked; 29 errors, 52 warnings,
15 filtered, 29 badness; has taken 0.7 s ==================
rpmlint is very unhappy.
FIX: Fix the typos, %-escapes, overlong descriptions.

$ rpm -q -lv -p ../RPMS/x86_64/perl-File-Unpack2-0.70-1.fc40.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/share/File-Unpack
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/share/File-Unpack/helper
-rwxr-xr-x    1 root     root                      273 Jan  3 01:00
/usr/share/File-Unpack/helper/application=msword
-rwxr-xr-x    1 root     root                     1288 Jan  3 01:00
/usr/share/File-Unpack/helper/application=x-iso9660-image
-rwxr-xr-x    2 root     root                     8461 Jan  3 01:00
/usr/share/File-Unpack/helper/application=x-shellscript
-rwxr-xr-x    2 root     root                     8461 Jan  3 01:00
/usr/share/File-Unpack/helper/text=x-shellscript
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/share/doc/perl-File-Unpack2
-rw-r--r--    1 root     root                    14612 Dec  2 14:01
/usr/share/doc/perl-File-Unpack2/Changes
-rw-r--r--    1 root     root                     3158 Dec  2 14:01
/usr/share/doc/perl-File-Unpack2/README
-rw-r--r--    1 root     root                    11103 Jan  3 01:00
/usr/share/man/man3/File::Unpack2.3pm.gz
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/share/perl5/vendor_perl/File
-rw-r--r--    1 root     root                    93834 Dec  2 14:01
/usr/share/perl5/vendor_perl/File/Unpack2.pm
-rwxr-xr-x    1 root     root                     2434 Dec  2 14:01
/usr/share/perl5/vendor_perl/File/children_fuser2.pl
-rwxr-xr-x    1 root     root                     7911 Dec  2 14:01
/usr/share/perl5/vendor_perl/File/file_unpack2.pl
$ rpm -q -lv -p ../RPMS/x86_64/file-unpack-0.70-1.fc40.x86_64.rpm 
lrwxrwxrwx    1 root     root                       11 Jan  3 01:00
/usr/bin/file-unpack-deep -> file-unpack
lrwxrwxrwx    1 root     root                       11 Jan  3 01:00
/usr/bin/file_unpack -> file-unpack
-rwxr-xr-x    1 root     root                     7911 Jan  3 01:00
/usr/bin/file_unpack2
-rwxr-xr-x    1 root     root                    15984 Jan  3 01:00
/usr/bin/stringsx
lrwxrwxrwx    1 root     root                       11 Jan  3 01:00
/usr/bin/unpack-deep -> file-unpack
lrwxrwxrwx    1 root     root                       11 Jan  3 01:00
/usr/bin/unpack-file -> file-unpack
lrwxrwxrwx    1 root     root                       11 Jan  3 01:00
/usr/bin/unpack-file-deep -> file-unpack
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/lib/.build-id/88
lrwxrwxrwx    1 root     root                       28 Jan  3 01:00
/usr/lib/.build-id/88/8739ec2f40e60d4b16e08aa2beea4771f67493 ->
../../../../usr/bin/stringsx
drwxr-xr-x    2 root     root                        0 Jan  3 01:00
/usr/share/licenses/file-unpack
-rw-r--r--    1 root     root                     1104 Dec  2 14:01
/usr/share/licenses/file-unpack/MIT.txt
-rw-r--r--    1 root     root                      884 Jan  3 01:00
/usr/share/man/man1/file-unpack.1.gz
-rw-r--r--    1 root     root                     1495 Jan  3 01:00
/usr/share/man/man1/file_unpack2.1.gz
lrwxrwxrwx    1 root     root                       16 Jan  3 01:00
/usr/share/man/man1/unpack_file.1.gz -> file-unpack.1.gz
File layout and permissions are Ok.
FIX: /usr/bin/file_unpack and /usr/bin/file-unpack-deep are dangling symlinks.
They point to a nonexisting file-unpack. Did you mean /usr/bin/file_unpack2?
TODO: /usr/share/perl5/vendor_perl/File/children_fuser2.pl and
/usr/share/perl5/vendor_perl/File/file_unpack2.pl should not be packaged. Those
are mistakes in the installation script. Moreover,
/usr/share/perl5/vendor_perl/File/file_unpack2.pl is identical to
/usr/bin/file_unpack2.

$ rpm -q --requires -p ../RPMS/x86_64/perl-File-Unpack2-0.70-1.fc40.x86_64.rpm
| sort -f | uniq -c 
      1 /usr/bin/perl
      1 /usr/bin/sh
      1 binutils
      1 bzip2
      1 cabextract
      1 cpio
      1 file >= 5.03
      1 genisoimage
      1 gzip
      1 lzip
      1 p7zip
      1 perl(BSD::Resource)
      2 perl(Carp)
      1 perl(Compress::Raw::Bzip2)
      1 perl(Compress::Raw::Lzma)
      1 perl(Compress::Raw::Zlib)
      1 perl(Compress::Raw::Zlib) >= 2.024
      1 perl(Config)
      2 perl(Cwd)
      1 perl(Data::Dumper)
      1 perl(File::Compare)
      1 perl(File::Copy)
      1 perl(File::LibMagic)
      1 perl(File::MimeInfo::Magic)
      2 perl(File::Path)
      2 perl(File::Temp)
      1 perl(File::Unpack2)
      1 perl(Filesys::Statvfs)
      1 perl(FindBin)
      1 perl(Getopt::Long)
      2 perl(IPC::Run)
      2 perl(JSON)
      1 perl(lib)
      1 perl(Pod::Usage)
      1 perl(POSIX)
      1 perl(strict)
      1 perl(String::ShellQuote)
      2 perl(Text::Sprintf::Named)
      1 perl(warnings)
      1 perl-libs
      1 perl-String-ShellQuote
      1 poppler-utils
      1 rpm
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PartialHardlinkSets) <= 4.0.4-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
      1 shared-mime-info >= 0.60
      1 sharutils
      1 tar
      1 unzip
      1 xz
FIX: Are you sure "binutils" belongs to binary requires?
FIX: Depend on "p7zip-plugins" instead of p7zip (Unpack2.pm:152).
FIX: Remove Recommends on "poppler-tools". That package does not exist in
Fedora. Did you mean "poppler-utils" (Unpack2.pm:165)?
FIX: Remove Recommends on "xar". It's not used anywhere.
FIX: Remove duplicate or suboptimal dependencies: perl(Carp),
perl(Compress::Raw::Zlib), perl(Cwd), perl(File::Path), perl(File::Temp),
perl(IPC::Run), perl(JSON), perl(Text::Sprintf::Named), perl-String-ShellQuote.

$ rpm -q --requires -p ../RPMS/x86_64/file-unpack-0.70-1.fc40.x86_64.rpm | sort
-f | uniq -c 
      1 /usr/bin/perl
      1 libc.so.6()(64bit)
      1 libc.so.6(GLIBC_2.2.5)(64bit)
      1 libc.so.6(GLIBC_2.3.4)(64bit)
      1 libc.so.6(GLIBC_2.34)(64bit)
      1 libc.so.6(GLIBC_2.4)(64bit)
      1 libc.so.6(GLIBC_ABI_DT_RELR)(64bit)
      1 perl(Data::Dumper)
      1 perl(File::Unpack) = 0.70
      1 perl(File::Unpack2)
      1 perl(FindBin)
      1 perl(Getopt::Long)
      1 perl(lib)
      1 perl(Pod::Usage)
      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: Replace explicit "perl(File::Unpack) == %version" dependency with
%{name}%{?_isa} = %{version}-%{release}".

$ rpm -q --provides -p ../RPMS/x86_64/perl-File-Unpack2-0.70-1.fc40.x86_64.rpm
| sort -f | uniq -c 
      1 perl(File::Unpack2) = 1.0
      1 perl-File-Unpack2 = 0.70-1.fc40
      1 perl-File-Unpack2(x86-64) = 0.70-1.fc40
$ rpm -q --provides -p ../RPMS/x86_64/file-unpack-0.70-1.fc40.x86_64.rpm | sort
-f | uniq -c 
      1 file-unpack = 0.70-1.fc40
      1 file-unpack(x86-64) = 0.70-1.fc40
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/x86_64/perl-File-Unpack2-0.70-1.fc40.x86_64.rpm
../RPMS/x86_64/file-unpack-0.70-1.fc40.x86_64.rpm 
Unresolved dependency: perl(File::Unpack) = 0.70
Unresolved dependency: poppler-tools

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

Otherwise, the package seems to be in line with Fedora and Perl packaging
guidelines.
Please correct all FIX items, consider fixing TODO items, and provide an
updated spec file.


-- 
You are receiving this mail because:
You are always notified about changes to this product and component
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2251479

Report this comment as SPAM: https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202251479%23c5
--
_______________________________________________
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




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux