Bug 2254933 - Review Request: perl-Future-HTTP - Future::HTTP Perl module
Summary: Review Request: perl-Future-HTTP - Future::HTTP Perl module
Keywords:
Status: CLOSED ERRATA
Alias: None
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: 2254914 2254915 2254923 2254927 2254929 2254931
Blocks: 2254934
TreeView+ depends on / blocked
 
Reported: 2023-12-17 23:05 UTC by Chris Adams
Modified: 2024-04-15 01:12 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-04-15 01:12:12 UTC
Type: ---
Embargoed:
ppisar: fedora-review+


Attachments (Terms of Use)

Description Chris Adams 2023-12-17 23:05:42 UTC
Spec URL: https://cmadams.fedorapeople.org/perl-Future-HTTP/perl-Future-HTTP.spec
SRPM URL: https://cmadams.fedorapeople.org/perl-Future-HTTP/perl-Future-HTTP-0.16-1.fc39.src.rpm
Description:
Provide the most appropriate HTTP client with a Future API

Fedora Account System Username: cmadams

Comment 1 Chris Adams 2023-12-17 23:06:57 UTC
Note: depends on
perl-AnyEvent-Future (review BZ 2254914)
perl-Filter-signatures (review BZ 2254915)
perl-Future-Mojo (review BZ 2254927)
perl-HTTP-Tiny-Paranoid (review BZ 2254929)
perl-Net-Async-HTTP (review BZ 2254931)
perl-Test-HTTP-LocalServer (review BZ 2254923)

Comment 5 Petr Pisar 2024-04-02 14:12:19 UTC
URL and Source0 addresses are usable. Ok.
TODO: Remove a trailing slash from the URL value.

Source0 archive (SHA512: f9cb5d039d1b56f1939f4562b3e3a544412458a9b39d4c596f63f085399d03cd10e82fef1dc3ab3d77b71a33836e10d4babcc9f6ab94980e58a36c48c476a6dc) is original. Ok.

FIX: The current summary is not well descriptive. Use e.g. "HTTP client with a Future API" (see lib/Future/HTTP.pm POD).
FIX: Description text is not a sentence, it's missing a full stop.
TODO: Description text is too brief. I recommend copying a paragraph from Synopsis in lib/Future/HTTP.pm POD.

License verified from: Makefile.PL, README.mkdn, lib/Future/HTTP.pm, lib/Future/HTTP/Mojo.pm, lib/Future/HTTP/Tiny/Paranoid.pm, lib/Future/HTTP/NetAsync.pm, lib/Future/HTTP/Tiny.pm, lib/Future/HTTP/AnyEvent.pm, README. Ok.
Note: LICENSE file is an Artistic-2.0 copy.

No XS code, noarch BuildArch is Ok.

TODO: Declare _with_network_tests build condition using %bcond or %bcond_without macro.

perl(AnyEvent) is in optional dependency for the tests. Ok.

FIX: Do not depend on 'perl(CGI)'. It's not used anywhere.
FIX: Do not depend on 'perl(HTTP::Headers) >= 6.07'. It's not used. Instead apply the version constraint to 'perl(HTTP::Request)'. Upstream mistaken the two modules.
FIX: Do not depend on 'perl(HTTP::Request::AsCGI)' It.s not used.
TODO: Constrain 'perl(HTTP::Tiny::Paranoid)' dependency with '>= 0.07' (lib/Future/HTTP/Tiny/Paranoid.pm:4).
FIX: Do not depend on 'perl(IO::Async)'. It's not used.
FIX: Do not depend on 'perl(Mojo::IOLoop)'. It's not used.

All tests pass. Ok.

$ rpmlint perl-Future-HTTP.spec ../SRPMS/perl-Future-HTTP-0.16-4.fc41.src.rpm ../RPMS/noarch/perl-Future-HTTP-0.16-4.fc41.noarch.rpm 
======================================== 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: 3

perl-Future-HTTP.spec:82: W: macro-in-comment %license
perl-Future-HTTP.spec:82: W: macro-in-comment %license
=== 2 packages and 1 specfiles checked; 0 errors, 2 warnings, 6 filtered, 0 badness; has taken 0.3 s ==
FIX: Escape a per-cent character in the comment.

$ rpm -q -lv -p ../RPMS/noarch/perl-Future-HTTP-0.16-4.fc41.noarch.rpm 
drwxr-xr-x    2 root     root                        0 Mar  8 01:00 /usr/share/doc/perl-Future-HTTP
-rw-r--r--    1 root     root                     2697 Mar  8 01:00 /usr/share/doc/perl-Future-HTTP/Changes
-rw-r--r--    1 root     root                     1079 Jul 21  2023 /usr/share/doc/perl-Future-HTTP/README
-rw-r--r--    1 root     root                     2047 Mar  8 01:00 /usr/share/man/man3/Future::HTTP.3pm.gz
-rw-r--r--    1 root     root                      857 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::API::HTTPTiny.3pm.gz
-rw-r--r--    1 root     root                     1820 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::AnyEvent.3pm.gz
-rw-r--r--    1 root     root                      856 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::Handler.3pm.gz
-rw-r--r--    1 root     root                     1876 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::Mojo.3pm.gz
-rw-r--r--    1 root     root                     1873 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::NetAsync.3pm.gz
-rw-r--r--    1 root     root                     2063 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::Tiny.3pm.gz
-rw-r--r--    1 root     root                     2206 Mar  8 01:00 /usr/share/man/man3/Future::HTTP::Tiny::Paranoid.3pm.gz
drwxr-xr-x    2 root     root                        0 Mar  8 01:00 /usr/share/perl5/vendor_perl/Future/HTTP
-rw-r--r--    1 root     root                     5301 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP.pm
drwxr-xr-x    2 root     root                        0 Mar  8 01:00 /usr/share/perl5/vendor_perl/Future/HTTP/API
-rw-r--r--    1 root     root                     3716 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/API/HTTPTiny.pm
-rw-r--r--    1 root     root                     3898 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/AnyEvent.pm
-rw-r--r--    1 root     root                     5278 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/Handler.pm
-rw-r--r--    1 root     root                     5191 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/Mojo.pm
-rw-r--r--    1 root     root                     5298 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/NetAsync.pm
drwxr-xr-x    2 root     root                        0 Mar  8 01:00 /usr/share/perl5/vendor_perl/Future/HTTP/Tiny
-rw-r--r--    1 root     root                     5568 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/Tiny.pm
-rw-r--r--    1 root     root                     3880 Jul 21  2023 /usr/share/perl5/vendor_perl/Future/HTTP/Tiny/Paranoid.pm
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Future-HTTP-0.16-4.fc41.noarch.rpm | sort -f | uniq -c
      1 perl(AnyEvent::Future)
      1 perl(AnyEvent::HTTP)
      1 perl(Data::Dumper)
      1 perl(Fcntl)
      1 perl(feature)
      1 perl(Filter::signatures)
      1 perl(Future)
      1 perl(Future::Mojo)
      1 perl(HTTP::Request)
      1 perl(HTTP::Tiny)
      1 perl(HTTP::Tiny::Paranoid) >= 0.07
      1 perl(IO::Async::Future)
      1 perl(IO::Async::Loop)
      1 perl(IO::Uncompress::Bunzip2)
      1 perl(IO::Uncompress::Gunzip)
      1 perl(IO::Uncompress::Inflate)
      1 perl(IO::Uncompress::RawInflate)
      1 perl(MIME::Base64)
      1 perl(MIME::QuotedPrint)
      1 perl(Mojo::UserAgent)
      1 perl(Moo) >= 2
      1 perl(Moo::Role)
      1 perl(Net::Async::HTTP)
      1 perl(strict)
      1 perl(URI)
      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
TODO: Constrain 'perl(HTTP::Request)' with '>= 6.07' (Makefile.PL:76).

$ rpm -q --provides -p ../RPMS/noarch/perl-Future-HTTP-0.16-4.fc41.noarch.rpm | sort -f | uniq -c
      1 perl(Future::HTTP) = 0.16
      1 perl(Future::HTTP::AnyEvent) = 0.16
      1 perl(Future::HTTP::Handler) = 0.16
      1 perl(Future::HTTP::Mojo) = 0.16
      1 perl(Future::HTTP::NetAsync) = 0.16
      1 perl(Future::HTTP::Tiny) = 0.16
      1 perl(Future::HTTP::Tiny::Paranoid) = 0.16
      1 perl-Future-HTTP = 0.16-4.fc41
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Future-HTTP-0.16-4.fc41.noarch.rpm 
Binary dependencies are resolvable. Ok.

The package builds in Fedora 41 <https://koji.fedoraproject.org/koji/taskinfo?taskID=115787008>. Ok.

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

Comment 7 Petr Pisar 2024-04-04 11:03:34 UTC
Changes in the spec file:

--- perl-Future-HTTP.spec.old   2024-03-08 01:00:00.000000000 +0100
+++ perl-Future-HTTP.spec       2024-04-03 02:00:00.000000000 +0200
@@ -1,28 +1,27 @@
+# some tests require Internet access, don't enable by default
+%bcond network_tests 0
+
 Name:           perl-Future-HTTP
 Version:        0.16
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        Future::HTTP Perl module
 License:        GPL-1.0-or-later OR Artistic-1.0-Perl
-URL:            https://metacpan.org/dist/Future-HTTP/
+URL:            https://metacpan.org/dist/Future-HTTP
 Source0:        https://cpan.metacpan.org/authors/id/C/CO/CORION/Future-HTTP-%{version}.tar.gz
 BuildArch:      noarch
 BuildRequires:  make perl-interpreter perl-generators coreutils
 BuildRequires:  perl(AnyEvent)
 BuildRequires:  perl(AnyEvent::Future)
 BuildRequires:  perl(AnyEvent::HTTP)
-BuildRequires:  perl(CGI)
 BuildRequires:  perl(Data::Dumper)
 BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.76
 BuildRequires:  perl(Fcntl)
 BuildRequires:  perl(Filter::signatures) >= 0.13
 BuildRequires:  perl(Future) >= 0.31
 BuildRequires:  perl(Future::Mojo)
-BuildRequires:  perl(HTTP::Headers) >= 6.07
-BuildRequires:  perl(HTTP::Request)
-BuildRequires:  perl(HTTP::Request::AsCGI)
+BuildRequires:  perl(HTTP::Request) >= 6.07
 BuildRequires:  perl(HTTP::Tiny)
-BuildRequires:  perl(HTTP::Tiny::Paranoid)
-BuildRequires:  perl(IO::Async)
+BuildRequires:  perl(HTTP::Tiny::Paranoid) >= 0.07
 BuildRequires:  perl(IO::Async::Future)
 BuildRequires:  perl(IO::Async::Loop)
 BuildRequires:  perl(IO::Uncompress::Bunzip2)
@@ -31,7 +30,6 @@
 BuildRequires:  perl(IO::Uncompress::RawInflate)
 BuildRequires:  perl(MIME::Base64)
 BuildRequires:  perl(MIME::QuotedPrint)
-BuildRequires:  perl(Mojo::IOLoop)
 BuildRequires:  perl(Mojo::UserAgent)
 BuildRequires:  perl(Mojolicious)
 BuildRequires:  perl(Moo) >= 2
@@ -57,11 +55,15 @@
 Requires:       perl(warnings)
 
 %description
-Provide the most appropriate HTTP client with a Future API
+This module is a wrapper combining Future with the API provided by
+AnyEvent::HTTP. The backend used for the HTTP protocols depends on
+whether one of the event loops is loaded.
 
 %prep
 %setup -q -n Future-HTTP-%{version}
-%{!?_with_network_tests: rm t/01-http-tiny-paranoid.t }
+%if %{without network_tests}
+rm t/01-http-tiny-paranoid.t
+%endif
 perl -pi -e 's/\r//' Changes
 
 %build
@@ -79,11 +81,14 @@
 %doc Changes README
 # note: files all say perl_5 which is GPLv1/Artistic but file is Artistic-2
 # https://rt.cpan.org/Ticket/Display.html?id=152217
-#%license LICENSE
+#license LICENSE
 %{perl_vendorlib}/Future/HTTP*
 %{_mandir}/man3/Future::HTTP*
 
 %changelog
+* Wed Apr 03 2024 Chris Adams <linux> 0.16-5
+- additional spec file cleanups
+
 * Fri Mar 08 2024 Chris Adams <linux> 0.16-4
 - additional spec file cleanups


FIX: The current summary is not well descriptive. Use e.g. "HTTP client with a Future API" (see lib/Future/HTTP.pm POD).

$ rpmlint perl-Future-HTTP.spec ../SRPMS/perl-Future-HTTP-0.16-5.fc41.src.rpm  ../RPMS/noarch/perl-Future-HTTP-0.16-5.fc41.noarch.rpm 
======================================== 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: 3

=== 2 packages and 1 specfiles checked; 0 errors, 0 warnings, 8 filtered, 0 badness; has taken 0.4 s ==
rpmlint is Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Future-HTTP-0.16-5.fc41.noarch.rpm | sort -f | uniq -c
      1 perl(AnyEvent::Future)
      1 perl(AnyEvent::HTTP)
      1 perl(Data::Dumper)
      1 perl(Fcntl)
      1 perl(feature)
      1 perl(Filter::signatures)
      1 perl(Future)
      1 perl(Future::Mojo)
      1 perl(HTTP::Request)
      1 perl(HTTP::Tiny)
      1 perl(HTTP::Tiny::Paranoid) >= 0.07
      1 perl(IO::Async::Future)
      1 perl(IO::Async::Loop)
      1 perl(IO::Uncompress::Bunzip2)
      1 perl(IO::Uncompress::Gunzip)
      1 perl(IO::Uncompress::Inflate)
      1 perl(IO::Uncompress::RawInflate)
      1 perl(MIME::Base64)
      1 perl(MIME::QuotedPrint)
      1 perl(Mojo::UserAgent)
      1 perl(Moo) >= 2
      1 perl(Moo::Role)
      1 perl(Net::Async::HTTP)
      1 perl(strict)
      1 perl(URI)
      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
TODO: Constrain 'perl(HTTP::Request)' with '>= 6.07' (Makefile.PL:76).

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

Please correct the FIX item and consider fixing the TODO item before building this package.
This package is APPROVED.

Comment 8 Fedora Admin user for bugzilla script actions 2024-04-04 12:30:22 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-Future-HTTP

Comment 9 Fedora Update System 2024-04-06 12:46:17 UTC
FEDORA-2024-f021b361eb (perl-Future-HTTP-0.16-5.fc39) has been submitted as an update to Fedora 39.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-f021b361eb

Comment 10 Fedora Update System 2024-04-07 02:23:34 UTC
FEDORA-2024-f021b361eb has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-f021b361eb \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-f021b361eb

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 11 Fedora Update System 2024-04-15 01:12:12 UTC
FEDORA-2024-f021b361eb (perl-Future-HTTP-0.16-5.fc39) has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.


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