Bug 1658851
Summary: | Review Request: perl-Schedule-Cron - Provides a simple but complete cron like scheduler | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Andrew Bauer <zonexpertconsulting> |
Component: | Package Review | Assignee: | Petr Pisar <ppisar> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | package-review, ppisar |
Target Milestone: | --- | Flags: | ppisar:
fedora-review+
|
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-12-27 01:50:51 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
Andrew Bauer
2018-12-13 02:34:11 UTC
Added files to %doc Updated Spec URL: https://raw.githubusercontent.com/knight-of-ni/specfiles/master/perl-Schedule-Cron.spec Updated SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/678/31440678/perl-Schedule-Cron-1.01-1.fc30.src.rpm URL and Source links are Ok. Source0 (SHA-256: 8212766652e098e23e1ef193b9739e9cc0ed106425cb9f8a50111877cfe02940) is original. Ok. Source1 (SHA-256: 1daafdb99cd9da730d27e66a4773e8e98d3a431a6fd3ec0ab39a056e0677bf0f) is original. Ok. Summary is Ok. Description is Ok. License verified from lib/Schedule/Cron.pm, examples/custom_sleep.pl, README, and Source1. Ok. TODO: Remove the obsolete `Group:' tag. No XS code, noarch BuildArch is Ok. FIX: Build-require `coreutils' (perl-Schedule-Cron.spec:57). TODO: Do not build-require `perl-devel`, it's not needed. TODO: Constrain `perl(ExtUtils::MakeMaker)' build-dependency with `>= 6.76' because of NO_PACKLIST=1 and remove `find %{buildroot} -type f -name .packlist -delete' line from the %install section. Or remove the `NO_PACKLIST=1' argument. FIX: Remove `find %{buildroot} -type d -empty -delete' line from the %install section. ExtUtils::MakeMaker does not create empty directories, the command is not necessary. FIX: Constrain `perl(Time::ParseDate)' build-dependency with `>= 2011.0505' (Makefile.PL:19). FIX: Build-require `perl(File::Basename)' (t/load_crontab.t:4). FIX: Build-require `perl(strict)' (t/after_job.t:7). FIX: Build-require `perl(warnings)' (t/delete_entry.t:12). Test::Kwalitee, Test::Pod, Test::Pod::Coverage, DateTime::TimeZone::Local are an optional for tests. Ok. Config and Term::ReadLine are not used at tests. Ok. FIX: Build-require `perl(Data::Dumper)' (lib/Schedule/Cron.pm:65). FIX: Build-require `perl(subs)' (lib/Schedule/Cron.pm:69). FIX: Build-require `perl(vars)' (lib/Schedule/Cron.pm:68). All tests pass. Ok. $ rpmlint perl-Schedule-Cron.spec ../SRPMS/perl-Schedule-Cron-1.01-1.fc30.src.rpm ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm perl-Schedule-Cron.src: W: spelling-error %description -l en_US crontab -> contactable perl-Schedule-Cron.noarch: W: spelling-error %description -l en_US crontab -> contactable 2 packages and 1 specfiles checked; 0 errors, 2 warnings. rpmlint is Ok. $ rpm -q -lv -p ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm drwxr-xr-x 2 root root 0 Dec 14 14:40 /usr/share/doc/perl-Schedule-Cron -rw-r--r-- 1 root root 3388 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/CHANGES -rw-r--r-- 1 root root 3948 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/ChangeLog -rw-r--r-- 1 root root 5412 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/README drwxr-xr-x 2 root root 0 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/examples -rw-r--r-- 1 root root 95 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/examples/cron.tab -rw-r--r-- 1 root root 11633 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/examples/custom_sleep.pl -rw-r--r-- 1 root root 861 Jun 6 2011 /usr/share/doc/perl-Schedule-Cron/examples/simple.pl drwxr-xr-x 2 root root 0 Dec 14 14:40 /usr/share/licenses/perl-Schedule-Cron -rw-rw-r-- 1 root root 6600 Dec 14 14:10 /usr/share/licenses/perl-Schedule-Cron/Licensing.html -rw-r--r-- 1 root root 9190 Dec 14 14:40 /usr/share/man/man3/Schedule::Cron.3pm.gz drwxr-xr-x 2 root root 0 Dec 14 14:40 /usr/share/perl5/vendor_perl/Schedule -rw-r--r-- 1 root root 56146 Dec 14 14:40 /usr/share/perl5/vendor_perl/Schedule/Cron.pm File layout and permissions is Ok. $ rpm -q --requires -p ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm | sort -f | uniq -c 1 perl(Data::Dumper) 1 perl(strict) 1 perl(subs) 1 perl(Time::ParseDate) 1 perl(vars) 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 FIX: Run-require `perl(Config)' (lib/Schedule/Cron.pm:1708). FIX: Constrain `perl(Time::ParseDate)' run-dependency with `>= 2011.0505' (Makefile.PL:19). TODO: POSIX is optional, declare the optional dependency using `Suggests: perl(POSIX)'. TODO: Term::ReadLine is optional, declare the optional dependency using `Suggests: perl(Term::ReadLine)'. $ rpm -q --provides -p ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm | sort -f | uniq -c 1 perl(Schedule::Cron) = 1.01 1 perl-Schedule-Cron = 1.01-1.fc30 Binary provides are Ok. $ resolvedeps rawhide ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm Binary dependencies are resolvable. Ok. The package builds in F30 (https://koji.fedoraproject.org/koji/taskinfo?taskID=31459631). Ok. Otherwise the package is in line with Fedora and Perl packaging guide lines. Please correct all `FIX' items, consider fixint `TODO' items and provide a new spec file. Resolution: Package NOT approved. Thank you for the feedback. > TODO: Remove the obsolete `Group:' tag. Done. > FIX: Build-require `coreutils' (perl-Schedule-Cron.spec:57). Done. > TODO: Do not build-require `perl-devel`, it's not needed. Done. > TODO: Constrain `perl(ExtUtils::MakeMaker)' build-dependency with `>= 6.76' because of NO_PACKLIST=1 and remove `find %{buildroot} -type f -name .packlist -delete' line from the %install section. Or remove the `NO_PACKLIST=1' argument. The NO_PACKLIST flag does not cause an error condition for older MakeMaker's, but I have chosen the second option since I plan to build for epel7. Done. > FIX: Remove `find %{buildroot} -type d -empty -delete' line from the %install section. ExtUtils::MakeMaker does not create empty directories, the command is not necessary. Done. > FIX: Constrain `perl(Time::ParseDate)' build-dependency with `>= 2011.0505' (Makefile.PL:19). Done. > FIX: Build-require `perl(File::Basename)' (t/load_crontab.t:4). Done. > FIX: Build-require `perl(strict)' (t/after_job.t:7). Done. > FIX: Build-require `perl(warnings)' (t/delete_entry.t:12). Done. ...... > FIX: Build-require `perl(Data::Dumper)' (lib/Schedule/Cron.pm:65). Done. > FIX: Build-require `perl(subs)' (lib/Schedule/Cron.pm:69). Done. > FIX: Build-require `perl(vars)' (lib/Schedule/Cron.pm:68). Done. ...... > FIX: Run-require `perl(Config)' (lib/Schedule/Cron.pm:1708). Done. > FIX: Constrain `perl(Time::ParseDate)' run-dependency with `>= 2011.0505' (Makefile.PL:19). Done. > TODO: POSIX is optional, declare the optional dependency using `Suggests: perl(POSIX)'. Used Requires, rather than Suggests, for el7 compatibility. Done. > TODO: Term::ReadLine is optional, declare the optional dependency using `Suggests: perl(Term::ReadLine)'. Used Requires, rather than Suggests, for el7 compatibility. Done. Updated SPEC Url: https://raw.githubusercontent.com/knight-of-ni/specfiles/master/perl-Schedule-Cron.spec Updated SRPM Url: https://copr-be.cloud.fedoraproject.org/results/kni/perl-Schedule-Cron/fedora-rawhide-x86_64/00837356-perl-Schedule-Cron/perl-Schedule-Cron-1.01-1.fc30.src.rpm The spec file changes: --- perl-Schedule-Cron.spec.old 2018-12-14 14:09:48.827000000 +0100 +++ perl-Schedule-Cron.spec 2018-12-17 10:32:01.556000000 +0100 @@ -3,7 +3,6 @@ Version: 1.01 Release: 1%{?dist} License: GPL+ or Artistic -Group: Development/Libraries URL: https://metacpan.org/release/Schedule-Cron BuildArch: noarch @@ -12,19 +11,34 @@ # shown in Makefile.PL Source1: http://dev.perl.org/licenses/#/%{name}-Licensing.html -Patch0: https://github.com/rhuss/schedule-cron/pull/8.patch#/perl-schedule-cron-fix-unescaped-left-brace.patch +# https://github.com/rhuss/schedule-cron/pull/8 +Patch0: perl-schedule-cron-fix-unescaped-left-brace.patch # Patch obtained from Debian libschedule-cron-perl source package Patch1: perl-schedule-cron-fix-spelling.patch -BuildRequires: perl-devel BuildRequires: perl-interpreter BuildRequires: perl-generators BuildRequires: perl(ExtUtils::MakeMaker) +BuildRequires: perl(File::Basename) +BuildRequires: perl(strict) +BuildRequires: perl(warnings) +BuildRequires: perl(Data::Dumper) +BuildRequires: perl(subs) +BuildRequires: perl(vars) BuildRequires: findutils +BuildRequires: coreutils # Needed during build for the perl test -BuildRequires: perl(Time::ParseDate) -BuildRequires: perl(Test::More) +BuildRequires: perl(Time::ParseDate) >= 2011.0505 +BuildRequires: perl(Test::More) +BuildRequires: perl(Test::Pod) +BuildRequires: perl(Test::Pod::Coverage) +BuildRequires: perl(Test::Kwalitee) + +Requires: perl(Config) +Requires: perl(Time::ParseDate) >= 2011.0505 +Requires: perl(POSIX) +Requires: perl(Term::ReadLine) %description This module provides a simple but complete cron like scheduler. I.e @@ -57,14 +71,13 @@ cp -a %{SOURCE1} Licensing.html %build -%{__perl} Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 +%{__perl} Makefile.PL INSTALLDIRS=vendor NO_PERLLOCAL=1 %make_build %install %make_build pure_install DESTDIR=%{buildroot} find %{buildroot} -type f -name .packlist -delete -find %{buildroot} -type d -empty -delete %{_fixperms} %{buildroot}/* The changes are good. TODO: Except I do not recommend running the optional tests with Test::Kwalitee or Test::Pod. They are very fragile and tends to break when somebody updates the modules (Test::Kwalitee is a list of subjective rules how a good Perl code looks like). TODO: You should also build-require `perl(POSIX)' if you decided to hard-require it. It's good to assure the tests have a similar environment as the package has after installing on a user's system. Otherwise it can happen that the tests test a different code path than the user will perform (see all the $HAS_POSIX conditions in the code). $ rpmlint perl-Schedule-Cron.spec ../SRPMS/perl-Schedule-Cron-1.01-1.fc30.src.rpm ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm perl-Schedule-Cron.src: W: spelling-error %description -l en_US crontab -> contactable perl-Schedule-Cron.noarch: W: spelling-error %description -l en_US crontab -> contactable 2 packages and 1 specfiles checked; 0 errors, 2 warnings. rpmlint is Ok. $ rpm -q --requires -p ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm | sort -f | uniq -c 1 perl(Config) 1 perl(Data::Dumper) 1 perl(POSIX) 1 perl(strict) 1 perl(subs) 1 perl(Term::ReadLine) 1 perl(Time::ParseDate) 1 perl(Time::ParseDate) >= 2011.0505 1 perl(vars) 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 The binary requires are Ok. TODO: You can filter out the non-versioned `perl(Time::ParseDate)' dependency as it's redundant and pollutes the metadata. $ resolvedeps rawhide ../RPMS/noarch/perl-Schedule-Cron-1.01-1.fc30.noarch.rpm Binary dependencies are resolvable. Ok. The package builds in F30 (https://koji.fedoraproject.org/koji/taskinfo?taskID=31507198). Ok. Otherwise the package is good. Please consider fixing the `TODO' items before building the package. Resolution: The package is APPROVED. > TODO: Except I do not recommend running the optional tests with Test::Kwalitee or Test::Pod. They are very fragile and tends to break when somebody updates the modules (Test::Kwalitee is a list of subjective rules how a good Perl code looks like). Thank you. I never would have suspected this. Done. > TODO: You should also build-require `perl(POSIX)' if you decided to hard-require it. It's good to assure the tests have a similar environment as the package has after installing on a user's system. Otherwise it can happen that the tests test a different code path than the user will perform (see all the $HAS_POSIX conditions in the code). Done. > TODO: You can filter out the non-versioned `perl(Time::ParseDate)' dependency as it's redundant and pollutes the metadata. I was not sure how to resolve this, since the non-versioned dependency was being automatically picked up by rpm. Google to the rescue. That's when I discovered the __requires_exclude macro and added this to the top of the specfile: %global __requires_exclude perl\\(Time::ParseDate\\) That did it. Thank you for your time. (fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-Schedule-Cron perl-Schedule-Cron-1.01-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2018-1ff892923a perl-Schedule-Cron-1.01-1.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-4da7e24c1e perl-Schedule-Cron-1.01-1.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-e68c655b70 perl-Schedule-Cron-1.01-1.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report. perl-Schedule-Cron-1.01-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report. perl-Schedule-Cron-1.01-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report. |