Bug 1026743

Summary: Review Request: perl-Elasticsearch - Official client for Elasticsearch
Product: [Fedora] Fedora Reporter: Emmanuel Seyman <emmanuel>
Component: Package ReviewAssignee: Petr Pisar <ppisar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: package-review, paul, ppisar
Target Milestone: ---Flags: ppisar: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-21 18:20:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Emmanuel Seyman 2013-11-05 10:50:12 UTC
Spec URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch-0.75-1.fc19.src.rpm
Description:

Elasticsearch is the official Perl client for Elasticsearch, supported by
elasticsearch.com. Elasticsearch itself is a flexible and powerful open
source, distributed real-time search and analytics engine for the cloud.
You can read more about it on elasticsearch.org.

Fedora Account System Username: eseyman

Note that, once this package is accepted, I will retire perl-ElasticSearch which has been deprecated in favour of this module.

Comment 1 Petr Pisar 2013-11-07 13:59:31 UTC
URL is usable. Ok.
Sourece0 is usable. Ok.
Source tar ball is original (SHA-256: 
52f3e476099a2a82c920339e739f2626db9d0fa6b8a7289fa231be4a4af77f48). Ok.
Summary verified from README. Ok.

TODO: Use valid URL instead of domain name in the description (<http://www.elasticsearch.org/>).
TODO: Remove the /, supported by elasticsearch.com./ sentence. First it's weird advertisment, second a domain cannot do a support. The real company's name is `elasticsearch global B.V.'.

License verified from README, LICENSE, lib/Elasticsearch.pm, and other lib/* files.

FIX: Correct license name to `ASL 2.0' (https://fedoraproject.org/wiki/Licensing:Main).

No XS code, noarch BuildArch is Ok.

TODO: You can replace `%{__perl}' macros with plain `perl' command.

TODO: Replace PERL_INSTALL_ROOT argument with standard DESTDIR in the %install section.

TODO: You don't have to package `cpanfile'. The dependencies are declared at RPM level.

TODO: I recommend to qualify dependencies with versions: perl(Test::More) >= 0.98, perl(ExtUtils::MakeMaker) >= 6.30, perl(HTTP::Tiny) >= 0.036, perl(Moo) >= 1.003. It makes porting the package to EPEL or different distribution easier.

TODO: Build-require `perl(strict)' (Makefile.PL:2).
TODO: Build-require `perl(warnings)' (Makefile.PL:3).

FIX: Build-require `perl(File::Temp)' (t/30_Logger/10_explicit.t:3).
FIX: Build-require `perl(HTTP::Headers)' (lib/Elasticsearch/Cxn/LWP.pm:10).
FIX: Build-require `perl(HTTP::Request)' (lib/Elasticsearch/Cxn/LWP.pm:11).

TODO: Build-require `perl(IO::Select)' (lib/Elasticsearch/Role/CxnPool.pm:9).

IO::Socket not needed for tests. Ok.

FIX: Do not build-require `perl(IO::Socket::SSL)'. It's not needed at build-time.
FIX: Do not build-require `perl(IO::Uncompress::Inflate)'. It's not needed at build-time.

TODO: Build-require `perl(MIME::Base64)' (lib/Elasticsearch/Role/Cxn/HTTP.pm:65).
TODO: Build-require `perl(overload)' (lib/Elasticsearch/Error.pm:31).

POSIX not needed for tests. Ok.

FIX: Build-require `perl(Time::HiRes)' (lib/Elasticsearch/Role/CxnPool.pm:10).

TODO: Build-require `perl(lib)' (t/30_Logger/30_log_methods.t:4).

Test::NoTabs not needed for tests. Ok.

All tests pass. Ok.

$ rpmlint perl-Elasticsearch.spec ../SRPMS/perl-Elasticsearch-0.75-1.fc21.src.rpm ../RPMS/noarch/perl-Elasticsearch-0.75-1.fc21.noarch.rpm 
perl-Elasticsearch.src: W: spelling-error %description -l en_US analytics -> analytic, analytic s, paralytics
perl-Elasticsearch.src: W: invalid-license Apache Software License
perl-Elasticsearch.noarch: W: spelling-error %description -l en_US analytics -> analytic, analytic s, paralytics
perl-Elasticsearch.noarch: W: invalid-license Apache Software License
perl-Elasticsearch.noarch: E: non-executable-script /usr/share/perl5/vendor_perl/bench_cxn.pl 0644L /usr/bin/env
2 packages and 1 specfiles checked; 1 errors, 4 warnings.

FIX: Correct the license name.
TODO: Do not install bench_cxn.pl or correct the shebang or the mode.

Package builds in F21 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6150083). Ok.

$ rpm -q -lv -p ../RPMS/noarch/perl-Elasticsearch-0.75-1.fc21.noarch.rpm
drwxr-xr-x    2 root    root                        0 Nov  7 14:05 /usr/share/doc/perl-Elasticsearch
-rw-r--r--    1 root    root                     1856 Oct 24 22:04 /usr/share/doc/perl-Elasticsearch/CONTRIBUTING.asciidoc
-rw-r--r--    1 root    root                      925 Oct 24 22:04 /usr/share/doc/perl-Elasticsearch/Changes
-rw-r--r--    1 root    root                    11504 Oct 24 22:04 /usr/share/doc/perl-Elasticsearch/LICENSE
-rw-r--r--    1 root    root                    14635 Oct 24 22:04 /usr/share/doc/perl-Elasticsearch/README
-rw-r--r--    1 root    root                     1543 Oct 24 22:04 /usr/share/doc/perl-Elasticsearch/cpanfile
-rw-r--r--    1 root    root                     6967 Nov  7 14:04 /usr/share/man/man3/Elasticsearch.3pm.gz
-rw-r--r--    1 root    root                     7020 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Bulk.3pm.gz
-rw-r--r--    1 root    root                     7933 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Client::Direct.3pm.gz
-rw-r--r--    1 root    root                     3731 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Client::Direct::Cluster.3pm.gz
-rw-r--r--    1 root    root                     5589 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Client::Direct::Indices.3pm.gz
-rw-r--r--    1 root    root                     2149 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Cxn::Factory.3pm.gz
-rw-r--r--    1 root    root                     2258 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Cxn::HTTPTiny.3pm.gz
-rw-r--r--    1 root    root                     2163 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Cxn::LWP.3pm.gz
-rw-r--r--    1 root    root                     3654 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::CxnPool::Sniff.3pm.gz
-rw-r--r--    1 root    root                     2797 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::CxnPool::Static.3pm.gz
-rw-r--r--    1 root    root                     2934 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::CxnPool::Static::NoPing.3pm.gz
-rw-r--r--    1 root    root                     3016 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Error.3pm.gz
-rw-r--r--    1 root    root                     2649 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Logger::LogAny.3pm.gz
-rw-r--r--    1 root    root                     2617 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::API.3pm.gz
-rw-r--r--    1 root    root                     2237 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::Client.3pm.gz
-rw-r--r--    1 root    root                     2745 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::Client::Direct.3pm.gz
-rw-r--r--    1 root    root                     4522 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::Cxn.3pm.gz
-rw-r--r--    1 root    root                     3634 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::Cxn::HTTP.3pm.gz
-rw-r--r--    1 root    root                     2071 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::CxnPool.3pm.gz
-rw-r--r--    1 root    root                     2895 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::Logger.3pm.gz
-rw-r--r--    1 root    root                     2158 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Role::Serializer.3pm.gz
-rw-r--r--    1 root    root                     5178 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Scroll.3pm.gz
-rw-r--r--    1 root    root                     2623 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Serializer::JSON.3pm.gz
-rw-r--r--    1 root    root                     2729 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::TestServer.3pm.gz
-rw-r--r--    1 root    root                     2593 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Transport.3pm.gz
-rw-r--r--    1 root    root                     2000 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Util.3pm.gz
-rw-r--r--    1 root    root                     2402 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Util::API::Path.3pm.gz
-rw-r--r--    1 root    root                     2399 Nov  7 14:04 /usr/share/man/man3/Elasticsearch::Util::API::QS.3pm.gz
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch
-rw-r--r--    1 root    root                    15909 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch.pm
-rw-r--r--    1 root    root                    24168 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Bulk.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Client
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Client/Direct
-rw-r--r--    1 root    root                    26474 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Client/Direct.pm
-rw-r--r--    1 root    root                     6706 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Client/Direct/Cluster.pm
-rw-r--r--    1 root    root                    18314 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Client/Direct/Indices.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Cxn
-rw-r--r--    1 root    root                     1912 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Cxn/Factory.pm
-rw-r--r--    1 root    root                     3053 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Cxn/HTTPTiny.pm
-rw-r--r--    1 root    root                     2738 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Cxn/LWP.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/CxnPool
-rw-r--r--    1 root    root                     7884 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/CxnPool/Sniff.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/CxnPool/Static
-rw-r--r--    1 root    root                     3612 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/CxnPool/Static.pm
-rw-r--r--    1 root    root                     4201 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/CxnPool/Static/NoPing.pm
-rw-r--r--    1 root    root                     6896 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Error.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Logger
-rw-r--r--    1 root    root                     2921 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Logger/LogAny.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role
-rw-r--r--    1 root    root                    20442 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/API.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Client
-rw-r--r--    1 root    root                     1372 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Client.pm
-rw-r--r--    1 root    root                     5130 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Client/Direct.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Cxn
-rw-r--r--    1 root    root                    11565 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Cxn.pm
-rw-r--r--    1 root    root                     8426 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Cxn/HTTP.pm
-rw-r--r--    1 root    root                     4090 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/CxnPool.pm
-rw-r--r--    1 root    root                     5948 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Logger.pm
-rw-r--r--    1 root    root                      929 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Role/Serializer.pm
-rw-r--r--    1 root    root                    11428 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Scroll.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Serializer
-rw-r--r--    1 root    root                     3875 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Serializer/JSON.pm
-rw-r--r--    1 root    root                     6647 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/TestServer.pm
-rw-r--r--    1 root    root                     3886 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Transport.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Util
-rw-r--r--    1 root    root                     2407 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Util.pm
drwxr-xr-x    2 root    root                        0 Nov  7 14:04 /usr/share/perl5/vendor_perl/Elasticsearch/Util/API
-rw-r--r--    1 root    root                     5319 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Util/API/Path.pm
-rw-r--r--    1 root    root                     9412 Oct 24 22:04 /usr/share/perl5/vendor_perl/Elasticsearch/Util/API/QS.pm
-rw-r--r--    1 root    root                     1737 Oct 24 22:04 /usr/share/perl5/vendor_perl/bench_cxn.pl
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Elasticsearch-0.75-1.fc21.noarch.rpm | sort -i | uniq -c
      1 perl(Any::URI::Escape)
      1 perl(Data::Dumper)
      1 perl(Elasticsearch)
      1 perl(Elasticsearch::Error)
      1 perl(Elasticsearch::Util)
      1 perl(Elasticsearch::Util::API::Path)
      1 perl(Elasticsearch::Util::API::QS)
      1 perl(Encode)
      1 perl(File::Temp)
      1 perl(HTTP::Headers)
      1 perl(HTTP::Request)
      1 perl(HTTP::Tiny)
      1 perl(HTTP::Tiny) >= 0.036
      1 perl(IO::Select)
      1 perl(IO::Socket)
      1 perl(JSON)
      1 perl(List::Util)
      1 perl(Log::Any)
      1 perl(Log::Any::Adapter)
      1 perl(LWP::UserAgent)
      1 perl(:MODULE_COMPAT_5.18.1)
      1 perl(Module::Runtime)
      1 perl(Moo)
      1 perl(Moo) >= 1.003
      1 perl(Moo::Role)
      1 perl(namespace::clean)
      1 perl(overload)
      1 perl(POSIX)
      1 perl(Scalar::Util)
      1 perl(strict)
      1 perl(Sub::Exporter)
      1 perl(Time::HiRes)
      1 perl(Try::Tiny)
      1 perl(URI)
      1 perl(warnings)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1
TODO: You can filter unversioned dependencies: perl(HTTP::Tiny), perl(Moo).
FIX: Run-require `perl(IO::Socket::SSL)' (lib/Elasticsearch/Cxn/HTTPTiny.pm:63).
FIX: Run-require `perl(IO::Uncompress::Inflate)' (lib/Elasticsearch/Role/Cxn/HTTP.pm:132).
FIX: Run-require `perl(MIME::Base64)' (lib/Elasticsearch/Role/Cxn/HTTP.pm:65).

$ rpm -q --provides -p ../RPMS/noarch/perl-Elasticsearch-0.75-1.fc21.noarch.rpm | sort -i | uniq -c
      1 perl(Elasticsearch) = 0.75
      1 perl-Elasticsearch = 0.75-1.fc21
      1 perl(Elasticsearch::Bulk) = 0.75
      1 perl(Elasticsearch::Client::Direct) = 0.75
      1 perl(Elasticsearch::Client::Direct::Cluster) = 0.75
      1 perl(Elasticsearch::Client::Direct::Indices) = 0.75
      1 perl(Elasticsearch::Cxn::Factory) = 0.75
      1 perl(Elasticsearch::Cxn::HTTPTiny) = 0.75
      1 perl(Elasticsearch::Cxn::LWP) = 0.75
      1 perl(Elasticsearch::CxnPool::Sniff) = 0.75
      1 perl(Elasticsearch::CxnPool::Static) = 0.75
      1 perl(Elasticsearch::CxnPool::Static::NoPing) = 0.75
      1 perl(Elasticsearch::Error) = 0.75
      1 perl(Elasticsearch::Logger::LogAny) = 0.75
      1 perl(Elasticsearch::Role::API) = 0.75
      1 perl(Elasticsearch::Role::Client) = 0.75
      1 perl(Elasticsearch::Role::Client::Direct) = 0.75
      1 perl(Elasticsearch::Role::Cxn) = 0.75
      1 perl(Elasticsearch::Role::Cxn::HTTP) = 0.75
      1 perl(Elasticsearch::Role::CxnPool) = 0.75
      1 perl(Elasticsearch::Role::Logger) = 0.75
      1 perl(Elasticsearch::Role::Serializer) = 0.75
      1 perl(Elasticsearch::Scroll) = 0.75
      1 perl(Elasticsearch::Serializer::JSON) = 0.75
      1 perl(Elasticsearch::TestServer) = 0.75
      1 perl(Elasticsearch::Transport) = 0.75
      1 perl(Elasticsearch::Util) = 0.75
      1 perl(Elasticsearch::Util::API::Path) = 0.75
      1 perl(Elasticsearch::Util::API::QS) = 0.75
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Elasticsearch-0.75-1.fc21.noarch.rpm 
Binary dependencies resolvable. Ok.

Otherwise the package is in line with Fedora and Perl packaging guidelines.

Please correct all `FIX' items, consider fixing `TODO' items, and provide new spec file.

Comment 2 Emmanuel Seyman 2013-11-08 14:48:04 UTC
Thanks,Petr. I've taken into account every point but the %{__perl} TODO.

Spec URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch-0.75-2.fc19.src.rpm

Comment 3 Petr Pisar 2013-11-11 08:36:40 UTC
Spec file changes:

--- perl-Elasticsearch.spec.old 2013-11-05 11:44:27.000000000 +0100
+++ perl-Elasticsearch.spec     2013-11-08 15:35:19.000000000 +0100
@@ -1,35 +1,43 @@
 Name:           perl-Elasticsearch
 Version:        0.75
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Official client for Elasticsearch
-License:        Apache Software License
+License:        ASL 2.0
 
 URL:            http://search.cpan.org/dist/Elasticsearch/
 Source0:        http://www.cpan.org/authors/id/D/DR/DRTECH/Elasticsearch-%{version}.tar.gz
 
 BuildArch:      noarch
+BuildRequires:  perl(lib)
+BuildRequires:  perl(overload)
+BuildRequires:  perl(strict)
+BuildRequires:  perl(warnings)
 BuildRequires:  perl(Any::URI::Escape)
 BuildRequires:  perl(Data::Dumper)
 BuildRequires:  perl(Encode)
-BuildRequires:  perl(ExtUtils::MakeMaker)
-BuildRequires:  perl(HTTP::Tiny)
-BuildRequires:  perl(IO::Socket::SSL)
-BuildRequires:  perl(IO::Uncompress::Inflate)
+BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.30
+BuildRequires:  perl(File::Temp)
+BuildRequires:  perl(HTTP::Headers)
+BuildRequires:  perl(HTTP::Request)
+BuildRequires:  perl(HTTP::Tiny) >= 0.036
+BuildRequires:  perl(IO::Select)
 BuildRequires:  perl(JSON)
 BuildRequires:  perl(List::Util)
 BuildRequires:  perl(Log::Any)
 BuildRequires:  perl(Log::Any::Adapter)
 BuildRequires:  perl(Log::Any::Adapter::Callback)
 BuildRequires:  perl(LWP::UserAgent)
+BuildRequires:  perl(MIME::Base64)
 BuildRequires:  perl(Module::Runtime)
-BuildRequires:  perl(Moo)
+BuildRequires:  perl(Moo) >= 1.003
 BuildRequires:  perl(Moo::Role)
 BuildRequires:  perl(namespace::clean)
 BuildRequires:  perl(Scalar::Util)
 BuildRequires:  perl(Sub::Exporter)
 BuildRequires:  perl(Test::Deep)
 BuildRequires:  perl(Test::Exception)
-BuildRequires:  perl(Test::More)
+BuildRequires:  perl(Test::More) >= 0.98
+BuildRequires:  perl(Time::HiRes)
 BuildRequires:  perl(Try::Tiny)
 BuildRequires:  perl(URI)
 BuildRequires:  perl(YAML)
@@ -38,10 +46,10 @@
 %{?perl_default_filter}
 
 %description
-Elasticsearch is the official Perl client for Elasticsearch, supported by
-elasticsearch.com. Elasticsearch itself is a flexible and powerful open
-source, distributed real-time search and analytics engine for the cloud.
-You can read more about it on elasticsearch.org.
+Elasticsearch is the official Perl client for Elasticsearch. Elasticsearch
+itself is a flexible and powerful open source, distributed real-time search
+and analytics engine for the cloud.  You can read more about it on
+http://elasticsearch.org/.
 
 %prep
 %setup -q -n Elasticsearch-%{version}
@@ -51,7 +59,7 @@
 make %{?_smp_mflags}
 
 %install
-make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
+make pure_install DESTDIR=$RPM_BUILD_ROOT
 
 find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
 
@@ -61,11 +69,14 @@
 make test
 
 %files
-%doc Changes CONTRIBUTING.asciidoc cpanfile LICENSE README
+%doc Changes CONTRIBUTING.asciidoc LICENSE README
 %{perl_vendorlib}/*
 %{_mandir}/man3/*
 
 %changelog
+* Fri Nov 08 2013 Emmanuel Seyman <emmanuel> - 0.75-2
+- Take package review into account (#1026743)
+
 * Sat Oct 26 2013 Emmanuel Seyman <emmanuel> - 0.75-1
 - Update to 0.75
 

> TODO: Use valid URL instead of domain name in the description
> (<http://www.elasticsearch.org/>).
> TODO: Remove the /, supported by elasticsearch.com./ sentence. First it's
> weird advertisment, second a domain cannot do a support. The real company's
> name is `elasticsearch global B.V.'.
 %description
-Elasticsearch is the official Perl client for Elasticsearch, supported by
-elasticsearch.com. Elasticsearch itself is a flexible and powerful open
-source, distributed real-time search and analytics engine for the cloud.
-You can read more about it on elasticsearch.org.
+Elasticsearch is the official Perl client for Elasticsearch. Elasticsearch
+itself is a flexible and powerful open source, distributed real-time search
+and analytics engine for the cloud.  You can read more about it on
+http://elasticsearch.org/.
Ok.

> FIX: Correct license name to `ASL 2.0'
> (https://fedoraproject.org/wiki/Licensing:Main).
-License:        Apache Software License
+License:        ASL 2.0
Ok.

> TODO: You can replace `%{__perl}' macros with plain `perl' command.
Not addressed.

> TODO: Replace PERL_INSTALL_ROOT argument with standard DESTDIR in the %install
> section.
-make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
+make pure_install DESTDIR=$RPM_BUILD_ROOT
Ok.

> TODO: You don't have to package `cpanfile'. The dependencies are declared at
> RPM level.
-%doc Changes CONTRIBUTING.asciidoc cpanfile LICENSE README
+%doc Changes CONTRIBUTING.asciidoc LICENSE README
Ok.

> TODO: I recommend to qualify dependencies with versions:
> perl(Test::More) >= 0.98,
-BuildRequires:  perl(Test::More)
+BuildRequires:  perl(Test::More) >= 0.98
Ok.

> perl(ExtUtils::MakeMaker) >= 6.30,
+BuildRequires:  perl(ExtUtils::MakeMaker) >= 6.30
Ok.

> perl(HTTP::Tiny) >= 0.036,
+BuildRequires:  perl(HTTP::Tiny) >= 0.036
Ok.

> perl(Moo) >= 1.003.
-BuildRequires:  perl(Moo)
+BuildRequires:  perl(Moo) >= 1.003
Ok.

> TODO: Build-require `perl(strict)' (Makefile.PL:2).
+BuildRequires:  perl(strict)
Ok.

> TODO: Build-require `perl(warnings)' (Makefile.PL:3).
+BuildRequires:  perl(warnings)
Ok.

> FIX: Build-require `perl(File::Temp)' (t/30_Logger/10_explicit.t:3).
+BuildRequires:  perl(File::Temp)
Ok.

> FIX: Build-require `perl(HTTP::Headers)' (lib/Elasticsearch/Cxn/LWP.pm:10).
+BuildRequires:  perl(HTTP::Headers)
OK.

> FIX: Build-require `perl(HTTP::Request)' (lib/Elasticsearch/Cxn/LWP.pm:11).
+BuildRequires:  perl(HTTP::Request)
Ok.

> TODO: Build-require `perl(IO::Select)' (lib/Elasticsearch/Role/CxnPool.pm:9).
+BuildRequires:  perl(IO::Select)
Ok.

> FIX: Do not build-require `perl(IO::Socket::SSL)'. It's not needed at
> build-time.
-BuildRequires:  perl(IO::Socket::SSL)
Ok.

> FIX: Do not build-require `perl(IO::Uncompress::Inflate)'. It's not needed at
> build-time.
-BuildRequires:  perl(IO::Uncompress::Inflate)
Ok.

> TODO: Build-require `perl(MIME::Base64)'
> (lib/Elasticsearch/Role/Cxn/HTTP.pm:65).
+BuildRequires:  perl(MIME::Base64)
Ok.

> TODO: Build-require `perl(overload)' (lib/Elasticsearch/Error.pm:31).
+BuildRequires:  perl(overload)
Ok.

> FIX: Build-require `perl(Time::HiRes)' (lib/Elasticsearch/Role/CxnPool.pm:10).
+BuildRequires:  perl(Time::HiRes)
Ok.

> TODO: Build-require `perl(lib)' (t/30_Logger/30_log_methods.t:4).
+BuildRequires:  perl(lib)
Ok.

$ rpmlint  perl-Elasticsearch.spec ../SRPMS/perl-Elasticsearch-0.75-2.fc21.src.rpm ../RPMS/noarch/perl-Elasticsearch-0.75-2.fc21.noarch.rpm 
perl-Elasticsearch.src: W: spelling-error %description -l en_US analytics -> analytic, analytic s, paralytics
perl-Elasticsearch.noarch: W: spelling-error %description -l en_US analytics -> analytic, analytic s, paralytics
perl-Elasticsearch.noarch: E: non-executable-script /usr/share/perl5/vendor_perl/bench_cxn.pl 0644L /usr/bin/env
2 packages and 1 specfiles checked; 1 errors, 2 warnings.

> FIX: Correct the license name.
Ok.

> TODO: Do not install bench_cxn.pl or correct the shebang or the mode.
Not addressed.

$ rpm -q --requires -p ../RPMS/noarch/perl-Elasticsearch-0.75-2.fc21.noarch.rpm | sort -i | uniq -c
      1 perl(Any::URI::Escape)
      1 perl(Data::Dumper)
      1 perl(Elasticsearch)
      1 perl(Elasticsearch::Error)
      1 perl(Elasticsearch::Util)
      1 perl(Elasticsearch::Util::API::Path)
      1 perl(Elasticsearch::Util::API::QS)
      1 perl(Encode)
      1 perl(File::Temp)
      1 perl(HTTP::Headers)
      1 perl(HTTP::Request)
      1 perl(HTTP::Tiny)
      1 perl(HTTP::Tiny) >= 0.036
      1 perl(IO::Select)
      1 perl(IO::Socket)
      1 perl(JSON)
      1 perl(List::Util)
      1 perl(Log::Any)
      1 perl(Log::Any::Adapter)
      1 perl(LWP::UserAgent)
      1 perl(:MODULE_COMPAT_5.18.1)
      1 perl(Module::Runtime)
      1 perl(Moo)
      1 perl(Moo) >= 1.003
      1 perl(Moo::Role)
      1 perl(namespace::clean)
      1 perl(overload)
      1 perl(POSIX)
      1 perl(Scalar::Util)
      1 perl(strict)
      1 perl(Sub::Exporter)
      1 perl(Time::HiRes)
      1 perl(Try::Tiny)
      1 perl(URI)
      1 perl(warnings)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1
> TODO: You can filter unversioned dependencies: perl(HTTP::Tiny), perl(Moo).
TODO: Not addressed.

> FIX: Run-require `perl(IO::Socket::SSL)'
> (lib/Elasticsearch/Cxn/HTTPTiny.pm:63).
FIX: Not addressed.

> FIX: Run-require `perl(IO::Uncompress::Inflate)'
> (lib/Elasticsearch/Role/Cxn/HTTP.pm:132).
FIX: Not addressed.

> FIX: Run-require `perl(MIME::Base64)' (lib/Elasticsearch/Role/Cxn/HTTP.pm:65).
FIX: Not addressed.

$ resolvedeps rawhide ../RPMS/noarch/perl-Elasticsearch-0.75-2.fc21.noarch.rpm 
Binary dependencies resolvable. Ok.

Package builds in F21 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6163988). Ok.

Please correct all `FIX' items, consider fixing `TODO' items, and provide new SPEC file.
Resolution: Package NOT approved.

Comment 4 Emmanuel Seyman 2013-11-11 10:13:16 UTC
(In reply to Petr Pisar from comment #1)
>
> Please correct all `FIX' items, consider fixing `TODO' items, and provide
> new spec file.

This should do it.

Spec URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch-0.75-3.fc19.src.rpm

Comment 5 Petr Pisar 2013-11-11 13:50:41 UTC
Spec file changes:

--- perl-Elasticsearch.spec.old 2013-11-08 15:35:19.000000000 +0100
+++ perl-Elasticsearch.spec     2013-11-11 11:01:39.000000000 +0100
@@ -1,6 +1,6 @@
 Name:           perl-Elasticsearch
 Version:        0.75
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Official client for Elasticsearch
 License:        ASL 2.0

@@ -41,9 +41,15 @@
 BuildRequires:  perl(Try::Tiny)
 BuildRequires:  perl(URI)
 BuildRequires:  perl(YAML)
+
+Requires:       perl(IO::Socket::SSL)
+Requires:       perl(IO::Uncompress::Inflate)
+Requires:       perl(MIME::Base64)
 Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

 %{?perl_default_filter}
+%global __requires_exclude perl\\(VMS|perl\\(Win32|perl\\(HTTP::Tiny\\)$
+%global __requires_exclude perl\\(VMS|perl\\(Win32|perl\\(Moo\\)$

 %description
 Elasticsearch is the official Perl client for Elasticsearch. Elasticsearch
@@ -62,6 +68,7 @@
 make pure_install DESTDIR=$RPM_BUILD_ROOT

 find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
+find $RPM_BUILD_ROOT -type f -name bench_cxn.pl -exec rm -f {} \;

 %{_fixperms} $RPM_BUILD_ROOT/*

@@ -74,6 +81,9 @@
 %{_mandir}/man3/*

 %changelog
+* Mon Nov 11 2013 Emmanuel Seyman <emmanuel> - 0.75-3
+- Take more comments from the review into account (#1026743)
+
 * Fri Nov 08 2013 Emmanuel Seyman <emmanuel> - 0.75-2
 - Take package review into account (#1026743)


$ rpmlint perl-Elasticsearch.spec ../SRPMS/perl-Elasticsearch-0.75-3.fc21.src.rpm ../RPMS/noarch/perl-Elasticsearch-0.75-3.fc21.noarch.rpm 
perl-Elasticsearch.src: W: spelling-error %description -l en_US analytics -> analytic, analytic s, paralytics
perl-Elasticsearch.noarch: W: spelling-error %description -l en_US analytics -> analytic, analytic s, paralytics
2 packages and 1 specfiles checked; 0 errors, 2 warnings.

> TODO: Do not install bench_cxn.pl or correct the shebang or the mode.
Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Elasticsearch-0.75-3.fc21.noarch.rpm | sort -i | uniq -c                                             1 perl(:MODULE_COMPAT_5.18.1)
      1 perl(Any::URI::Escape)
      1 perl(Data::Dumper)
      1 perl(Elasticsearch)
      1 perl(Elasticsearch::Error)
      1 perl(Elasticsearch::Util)
      1 perl(Elasticsearch::Util::API::Path)
      1 perl(Elasticsearch::Util::API::QS)
      1 perl(Encode)
      1 perl(File::Temp)
      1 perl(HTTP::Headers)
      1 perl(HTTP::Request)
      1 perl(HTTP::Tiny)
      1 perl(HTTP::Tiny) >= 0.036
      1 perl(IO::Select)
      1 perl(IO::Socket)
      1 perl(IO::Socket::SSL)
      1 perl(IO::Uncompress::Inflate)
      1 perl(JSON)
      1 perl(LWP::UserAgent)
      1 perl(List::Util)
      1 perl(Log::Any)
      1 perl(Log::Any::Adapter)
      1 perl(MIME::Base64)
      1 perl(Module::Runtime)
      1 perl(Moo) >= 1.003
      1 perl(Moo::Role)
      1 perl(POSIX)
      1 perl(Scalar::Util)
      1 perl(Sub::Exporter)
      1 perl(Time::HiRes)
      1 perl(Try::Tiny)
      1 perl(URI)
      1 perl(namespace::clean)
      1 perl(overload)
      1 perl(strict)
      1 perl(warnings)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1

> TODO: You can filter unversioned dependencies: perl(HTTP::Tiny), perl(Moo).
 %{?perl_default_filter}
+%global __requires_exclude perl\\(VMS|perl\\(Win32|perl\\(HTTP::Tiny\\)$
+%global __requires_exclude perl\\(VMS|perl\\(Win32|perl\\(Moo\\)$

TODO: The %global directive redefines the macro. As you can see, only the perl(Moo) disappeared. Moreover you overrides filter defined by %perl_default_filter. You need to append the filter like this:

%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\((HTTP::Tiny|Moo)\\)$

> FIX: Run-require `perl(IO::Socket::SSL)'
> (lib/Elasticsearch/Cxn/HTTPTiny.pm:63).
Ok.

> FIX: Run-require `perl(IO::Uncompress::Inflate)'
> (lib/Elasticsearch/Role/Cxn/HTTP.pm:132).
Ok.

> FIX: Run-require `perl(MIME::Base64)' (lib/Elasticsearch/Role/Cxn/HTTP.pm:65).
Ok.

Package build in F21 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6164913). Ok.

Comment 6 Petr Pisar 2013-11-11 13:51:31 UTC
Please consider fixing the dependency filter because building this package.
Resolution: Package APPROVED.

Comment 7 Petr Pisar 2013-11-11 13:52:41 UTC
s/because/before/

Comment 8 Emmanuel Seyman 2013-11-11 20:03:23 UTC
(In reply to Petr Pisar from comment #6)
>
> Please consider fixing the dependency filter because building this package.
> Resolution: Package APPROVED.

Spec URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Elasticsearch/perl-Elasticsearch-0.75-4.fc19.src.rpm

New Package SCM Request
=======================
Package Name: perl-Elasticsearch
Short Description: Official client for Elasticsearch
Owners: eseyman
Branches:
InitialCC: perl-sig

Comment 9 Gwyn Ciesla 2013-11-12 13:15:35 UTC
Git done (by process-git-requests).

Comment 10 Emmanuel Seyman 2013-11-21 18:20:44 UTC
perl-Elasticsearch has been added to rawhide and perl-ElasticSearch retired.

Comment 11 Paul Howarth 2014-04-03 08:07:09 UTC
Emmanuel, now that this package is now itself deprecated in favor of Search::Elasticsearch, are you planning on submitting a package for the new module?

Comment 12 Emmanuel Seyman 2014-04-03 08:39:45 UTC
(In reply to Paul Howarth from comment #11)
>
> Emmanuel, now that this package is now itself deprecated in favor of
> Search::Elasticsearch, are you planning on submitting a package for the new
> module?

Yes, the .src.rpm is ready and I'll submit it soon. And hopefully, this will be the last shuffle I have to do with this module. :-)

Comment 13 Emmanuel Seyman 2014-04-15 19:35:09 UTC
(In reply to Emmanuel Seyman from comment #12)
>
> Yes, the .src.rpm is ready and I'll submit it soon. And hopefully, this will
> be the last shuffle I have to do with this module. :-)

The review for perl-Search-Elasticsearch is in bug #1087988 . Reviewers welcome.