Not to be confused with perl-Schedule-Cron-Events Fedora Account System Username: kni Spec URL: https://raw.githubusercontent.com/knight-of-ni/specfiles/master/perl-Schedule-Cron.spec SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/4378/31434378/perl-Schedule-Cron-1.01-1.fc30.src.rpm Description ------------ This module provides a simple but complete cron like scheduler. I.e this modules can be used for periodically executing Perl subroutines. The dates and parameters for the subroutines to be called are specified with a format known as crontab entry (see man page crontab(5) or documentation of Schedule::Cron). The philosophy behind Schedule::Cron is to call subroutines periodically from within one single Perl program instead of letting cron trigger several (possibly different) Perl scripts. Everything under one roof. Furthermore Schedule::Cron provides mechanism to create crontab entries dynamically, which isn't that easy with cron. Schedule::Cron knows about all extensions (well, at least all extensions I'm aware of, i.e those of the so called "Vixie" cron) for crontab entries like ranges including 'steps', specification of month and days of the week by name or coexistence of lists and ranges in the same field. And even a bit more (like lists and ranges with symbolic names). This module is rather effective concerning system load. It calculates the execution dates in advance and will sleep until those dates are reached (and wont wake up every minute to check for execution like cron). However, it relies on the accuracy of your sleep() system call. RPMLint ------- perl-Schedule-Cron.noarch: W: spelling-error %description -l en_US crontab -> contactable perl-Schedule-Cron.src: W: spelling-error %description -l en_US crontab -> contactable 2 packages and 0 specfiles checked; 0 errors, 2 warnings.
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.