Bug 1726432 (perl-Mojo-RabbitMQ-Client) - Review Request: perl-Mojo-RabbitMQ-Client - Mojo::IOLoop based RabbitMQ client
Summary: Review Request: perl-Mojo-RabbitMQ-Client - Mojo::IOLoop based RabbitMQ client
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: perl-Mojo-RabbitMQ-Client
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: 1725373
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-07-02 20:16 UTC by Emmanuel Seyman
Modified: 2019-08-01 20:32 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2019-08-01 20:32:23 UTC
Type: ---
Embargoed:
ppisar: fedora-review+


Attachments (Terms of Use)

Description Emmanuel Seyman 2019-07-02 20:16:14 UTC
Spec URL: http://people.parinux.org/~seyman/fedora/perl-Mojo-RabbitMQ-Client/perl-Mojo-RabbitMQ-Client.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Mojo-RabbitMQ-Client/perl-Mojo-RabbitMQ-Client-0.2.2-1.fc30.src.rpm
Description:
Mojo::RabbitMQ::Client is a rewrite of AnyEvent::RabbitMQ to work on top of
Mojo::IOLoop.

Fedora Account System Username: eseyman

Rpmlint Output:
perl-Mojo-RabbitMQ-Client.src: W: spelling-error Summary(en_US) IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: spelling-error %description -l en_US IOLoop -> Io Loop, Io-loop, Loop
1 packages and 1 specfiles checked; 0 errors, 2 warnings.

Comment 1 Petr Pisar 2019-07-03 07:17:21 UTC
Url and Source addresses are Ok.
Source0 archive (SHA-256: 14b835840f978334dc5d756447e768fcb7cd4fd26242c56a087ddf5497d026ac) is original. Ok.
Summary verified from lib/Mojo/RabbitMQ/Client.pm. Ok.
Description verified from lib/Mojo/RabbitMQ/Client.pm. Ok.


FATAL: share/fixed_amqp0-8.xml file is non-free. It forbids modification:

JPMorgan Chase Bank, Cisco Systems, Inc., Envoy Technologies Inc., iMatix 
Corporation, IONA� Technologies, Red Hat, Inc., TWIST Process Innovations, and 
29West Inc. (collectively, the "Authors") each hereby grants to you a worldwide,
perpetual, royalty-free, nontransferable, nonexclusive license to
(i) copy, display, and implement the Advanced Messaging Queue Protocol
("AMQP") Specification and (ii) the Licensed Claims that are held by
the Authors, all for the purpose of implementing the Advanced Messaging
Queue Protocol Specification. Your license and any rights under this
Agreement will terminate immediately without notice from
any Author if you bring any claim, suit, demand, or action related to
the Advanced Messaging Queue Protocol Specification against any Author.
Upon termination, you shall destroy all copies of the Advanced Messaging
Queue Protocol Specification in your possession or control.
[...]
No other rights are granted by implication, estoppel or otherwise.

Please remove it from the source archive.

Comment 2 Emmanuel Seyman 2019-07-04 05:51:00 UTC
(In reply to Petr Pisar from comment #1):
> 
> FATAL: share/fixed_amqp0-8.xml file is non-free. It forbids modification:
> 
> Please remove it from the source archive.

Fixed.

Spec URL: http://people.parinux.org/~seyman/fedora/perl-Mojo-RabbitMQ-Client/perl-Mojo-RabbitMQ-Client.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Mojo-RabbitMQ-Client/perl-Mojo-RabbitMQ-Client-0.2.2-2.fc30.src.rpm

Comment 3 Petr Pisar 2019-07-04 10:01:12 UTC
License verified from lib/Mojo/RabbitMQ/Client.pm, lib/Mojo/RabbitMQ/Client/Method/Publish.pm, lib/Mojo/RabbitMQ/Client/LocalQueue.pm, lib/Mojo/RabbitMQ/Client/Channel.pm, lib/Mojo/RabbitMQ/Client/Publisher.pm, lib/Mojo/RabbitMQ/Client/Consumer.pm, lib/Mojo/RabbitMQ/Client/Method.pm, README.md, and LICENSE. Ok.

FIX: Add BSD to the License tag (share/amqp0-9-1.stripped.extended.xml).
FIX: The Source0 URL does not exist. Keep the file name only. You should add a URL to the original source archive to a comment.

TODO: Replace %__perl macro with plain perl command. The macro is an internal to rpm-build and actually will be removed from rpm-4.15.

FIX: Restrict perl(Module::Build::Tiny) dependency with '>= 0.035' (Build.PL:9).
FIX: Build-require perl(:VERSION) >= 5.8.1 (Build.PL:6).
TODO: Remove version contraint from perl(Mojo::Base) dependency. perl-Mojolicious does not version it.

FIX: Remove perl(Cwd), perl(CPANPLUS::Backend), perl(CPAN), perl(Config), perl(File::Spec), perl(vars). They are used only from inc/Module/AutoInstall.pm that is deleted in %prep section and never executed.

TODO: Unset TEST_RMQ (t/publisher.t:9), MOJO_RABBITMQ_DEBUG (lib/Mojo/RabbitMQ/Client.pm:26), and MOJO_CONNECT_TIMEOUT (lib/Mojo/RabbitMQ/Client.pm:37) environment variables in %check section to make tests deterministic (t/publisher.t:9).

All tests pass. Ok.

$ rpmlint perl-Mojo-RabbitMQ-Client*
perl-Mojo-RabbitMQ-Client.spec: W: invalid-url Source0: https://cpan.metacpan.org/authors/id/S/SE/SEBAPOD/Mojo-RabbitMQ-Client-without-amqp0.8-spec-0.2.2.tar.gz HTTP Error 404: Not Found
perl-Mojo-RabbitMQ-Client.noarch: W: spelling-error Summary(en_US) IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.noarch: W: spelling-error %description -l en_US IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: spelling-error Summary(en_US) IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: spelling-error %description -l en_US IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: invalid-url Source0: https://cpan.metacpan.org/authors/id/S/SE/SEBAPOD/Mojo-RabbitMQ-Client-without-amqp0.8-spec-0.2.2.tar.gz HTTP Error 404: Not Found
2 packages and 1 specfiles checked; 0 errors, 6 warnings.

$ rpm -q -lv -p ../RPMS/noarch/perl-Mojo-RabbitMQ-Client-0.2.2-2.fc31.noarch.rpm 
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/doc/perl-Mojo-RabbitMQ-Client
-rw-r--r--    1 root     root                     1948 May 23 13:20 /usr/share/doc/perl-Mojo-RabbitMQ-Client/Changes
-rw-r--r--    1 root     root                     9926 May 23 13:20 /usr/share/doc/perl-Mojo-RabbitMQ-Client/README.md
drwxr-xr-x    2 root     root                        0 Jul  3 22:55 /usr/share/doc/perl-Mojo-RabbitMQ-Client/examples
-rw-r--r--    1 root     root                     1175 May 23 13:20 /usr/share/doc/perl-Mojo-RabbitMQ-Client/examples/chat-monitor.pl
-rw-r--r--    1 root     root                     2979 May 23 13:20 /usr/share/doc/perl-Mojo-RabbitMQ-Client/examples/chat.pl
-rw-r--r--    1 root     root                     1909 May 23 13:20 /usr/share/doc/perl-Mojo-RabbitMQ-Client/examples/simple.pl
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/licenses/perl-Mojo-RabbitMQ-Client
-rw-r--r--    1 root     root                     8927 May 23 13:20 /usr/share/licenses/perl-Mojo-RabbitMQ-Client/LICENSE
-rw-r--r--    1 root     root                     5081 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client.3pm.gz
-rw-r--r--    1 root     root                     7788 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client::Channel.3pm.gz
-rw-r--r--    1 root     root                     2450 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client::Consumer.3pm.gz
-rw-r--r--    1 root     root                     2427 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client::LocalQueue.3pm.gz
-rw-r--r--    1 root     root                     2928 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client::Method.3pm.gz
-rw-r--r--    1 root     root                     2578 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client::Method::Publish.3pm.gz
-rw-r--r--    1 root     root                     2840 Jul  4 11:38 /usr/share/man/man3/Mojo::RabbitMQ::Client::Publisher.3pm.gz
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/Mojo
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client
-rw-r--r--    1 root     root                    23731 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client.pm
-rw-r--r--    1 root     root                    35068 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/Channel.pm
-rw-r--r--    1 root     root                     4256 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/Consumer.pm
-rw-r--r--    1 root     root                     2077 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/LocalQueue.pm
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/Method
-rw-r--r--    1 root     root                     3231 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/Method.pm
-rw-r--r--    1 root     root                     3945 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/Method/Publish.pm
-rw-r--r--    1 root     root                     5098 May 23 13:20 /usr/share/perl5/vendor_perl/Mojo/RabbitMQ/Client/Publisher.pm
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/auto
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/auto/share
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/auto/share/dist
drwxr-xr-x    2 root     root                        0 Jul  4 11:38 /usr/share/perl5/vendor_perl/auto/share/dist/Mojo-RabbitMQ-Client
-rw-r--r--    1 root     root                    22904 May 23 13:20 /usr/share/perl5/vendor_perl/auto/share/dist/Mojo-RabbitMQ-Client/amqp0-9-1.stripped.extended.xml
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Mojo-RabbitMQ-Client-0.2.2-2.fc31.noarch.rpm | sort -f | uniq -c
      1 perl(:MODULE_COMPAT_5.30.0)
      1 perl(Carp)
      1 perl(constant)
      1 perl(File::Basename)
      1 perl(File::ShareDir)
      1 perl(List::Util)
      1 perl(Mojo::Base)
      1 perl(Mojo::Home)
      1 perl(Mojo::IOLoop)
      1 perl(Mojo::JSON)
      1 perl(Mojo::Parameters)
      1 perl(Mojo::Promise)
      1 perl(Mojo::RabbitMQ::Client)
      1 perl(Mojo::RabbitMQ::Client::Channel)
      1 perl(Mojo::RabbitMQ::Client::Consumer)
      1 perl(Mojo::RabbitMQ::Client::LocalQueue)
      1 perl(Mojo::RabbitMQ::Client::Method)
      1 perl(Mojo::RabbitMQ::Client::Method::Publish)
      1 perl(Mojo::RabbitMQ::Client::Publisher)
      1 perl(Mojo::URL)
      1 perl(Mojo::Util)
      1 perl(Net::AMQP)
      1 perl(Net::AMQP::Common)
      1 perl(Scalar::Util)
      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
FIX: Run-require perl(Mojo::EventEmitter) (lib/Mojo/RabbitMQ/Client.pm:2). You can also report a bug against perl-generators.
TODO: Constrain 'perl(List::Util)' run-time dependnecy with '>= 1.33' (META.json:46).
TODO: Constrain 'perl(Net::AMQP)' run-time dependency with '>= 0.06' (META.json:48).

$ rpm -q --provides -p ../RPMS/noarch/perl-Mojo-RabbitMQ-Client-0.2.2-2.fc31.noarch.rpm | sort -f | uniq -c 
      1 perl(Mojo::RabbitMQ::Client) = 0.2.2
      1 perl(Mojo::RabbitMQ::Client::Channel)
      1 perl(Mojo::RabbitMQ::Client::Consumer)
      1 perl(Mojo::RabbitMQ::Client::LocalQueue)
      1 perl(Mojo::RabbitMQ::Client::Method)
      1 perl(Mojo::RabbitMQ::Client::Method::Publish)
      1 perl(Mojo::RabbitMQ::Client::Publisher)
      1 perl-Mojo-RabbitMQ-Client = 0.2.2-2.fc31
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Mojo-RabbitMQ-Client-0.2.2-2.fc31.noarch.rpm 
Binary dependencies are resolvable. Ok.

The package builds in F31 (https://koji.fedoraproject.org/koji/taskinfo?taskID=36029759). Ok.

Otherwise the package is in line with Fedora and Perl packaging guidelines.
Please correct all 'FIX' items, consider fixing 'TODO' items, and provide a new spec file.
Resolution: NOT approved.

Comment 5 Petr Pisar 2019-07-08 09:12:31 UTC
> TODO: Replace %__perl macro with plain perl command. The macro is an internal to rpm-build and actually will be removed from rpm-4.15.

TODO: There is one occurrance left:

  Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

> FIX: Remove perl(Cwd), perl(CPANPLUS::Backend), perl(CPAN), perl(Config), perl(File::Spec), perl(vars). They are used only from inc/Module/AutoInstall.pm that is deleted in %prep section and never executed.

FIX: perl(vars) is still there.

$ rpmlint perl-Mojo-RabbitMQ-Client*
perl-Mojo-RabbitMQ-Client.spec: W: invalid-url Source0: Mojo-RabbitMQ-Client-without-amqp0.8-spec-0.2.2.tar.gz
perl-Mojo-RabbitMQ-Client.noarch: W: spelling-error Summary(en_US) IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.noarch: W: spelling-error %description -l en_US IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: spelling-error Summary(en_US) IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: spelling-error %description -l en_US IOLoop -> Io Loop, Io-loop, Loop
perl-Mojo-RabbitMQ-Client.src: W: invalid-url Source0: Mojo-RabbitMQ-Client-without-amqp0.8-spec-0.2.2.tar.gz
2 packages and 1 specfiles checked; 0 errors, 6 warnings.
rpmlint is Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Mojo-RabbitMQ-Client-0.2.2-3.fc31.noarch.rpm |sort -f | uniq -c
      1 perl(:MODULE_COMPAT_5.30.0)
      1 perl(Carp)
      1 perl(constant)
      1 perl(File::Basename)
      1 perl(File::ShareDir)
      1 perl(List::Util)
      1 perl(List::Util) >= 1.33
      1 perl(Mojo::Base)
      1 perl(Mojo::EventEmitter)
      1 perl(Mojo::Home)
      1 perl(Mojo::IOLoop)
      1 perl(Mojo::JSON)
      1 perl(Mojo::Parameters)
      1 perl(Mojo::Promise)
      1 perl(Mojo::RabbitMQ::Client)
      1 perl(Mojo::RabbitMQ::Client::Channel)
      1 perl(Mojo::RabbitMQ::Client::Consumer)
      1 perl(Mojo::RabbitMQ::Client::LocalQueue)
      1 perl(Mojo::RabbitMQ::Client::Method)
      1 perl(Mojo::RabbitMQ::Client::Method::Publish)
      1 perl(Mojo::RabbitMQ::Client::Publisher)
      1 perl(Mojo::URL)
      1 perl(Mojo::Util)
      1 perl(Net::AMQP)
      1 perl(Net::AMQP) >= 0.06
      1 perl(Net::AMQP::Common)
      1 perl(Scalar::Util)
      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
TODO: Filter unversioned dependencies 'perl(List::Util)', and 'perl(Net::AMQP)'.

The package builds in F31 (https://koji.fedoraproject.org/koji/taskinfo?taskID=36127171). Ok.

Please correct the 'FIX' item and consider fixing the 'TODO' items before building this package.
Resolution: Package APPROVED.

Comment 6 Gwyn Ciesla 2019-07-08 21:16:37 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-Mojo-RabbitMQ-Client

Comment 7 Emmanuel Seyman 2019-08-01 20:32:23 UTC
Released for rawhide, f30 and f29.


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