Bug 803089 - Review Request: whenjobs - Replacement for cron with dependencies
Review Request: whenjobs - Replacement for cron with dependencies
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Michael Scherer
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-13 18:52 EDT by Richard W.M. Jones
Modified: 2012-07-28 20:50 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-07-28 20:50:33 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
misc: fedora‑review+


Attachments (Terms of Use)

  None (edit)
Description Richard W.M. Jones 2012-03-13 18:52:24 EDT
NB: This requires F17+ to build!

Spec URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs.spec
SRPM URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs-0.7.0-1.src.rpm
Description:

Whenjobs is a powerful but simple cron replacement.

Two key advantages over cron are a simpler syntax for writing rules
and a powerful dependency system that lets one job depend on variables
set when other jobs run (allowing, for example, one job to run only
when another job has finished successfully).

--------

A Koji scratch build is here:

http://koji.fedoraproject.org/koji/taskinfo?taskID=3892254

--------

rpmlint says:

whenjobs.src: W: spelling-error Summary(en_US) cron -> corn, con, crone
whenjobs.src: W: spelling-error %description -l en_US cron -> corn, con, crone

Nonsense, of course.

whenjobs.x86_64: E: devel-dependency ocaml-camlp4-devel

We really need the camlp4 packages.

whenjobs.x86_64: W: spelling-error Summary(en_US) cron -> corn, con, crone
whenjobs.x86_64: W: spelling-error %description -l en_US cron -> corn, con, crone

More non-spelling-mistakes.

whenjobs.x86_64: W: unstripped-binary-or-object /usr/sbin/whenjobsd
whenjobs.x86_64: W: ocaml-mixed-executable /usr/sbin/whenjobsd
whenjobs.x86_64: W: unstripped-binary-or-object /usr/bin/whenjobs
whenjobs.x86_64: W: ocaml-mixed-executable /usr/bin/whenjobs

These binaries are unstripped because they contain bytecode.
'strip' would remove the bytecode.

whenjobs.x86_64: W: only-non-binary-in-usr-lib

/usr/lib contains binaries, but rpmlint doesn't recognise them
as such.

whenjobs.x86_64: W: non-conffile-in-etc /etc/prelink.conf.d/whenjobs.conf

This is not a conf file, but an instruction to prelink to
stop it destroying the bytecode binaries.
Comment 1 Michael Scherer 2012-03-17 18:05:16 EDT
Let me start the review, but I am not a ocaml specialist.

1) %{_libdir}/whenjobs/ is unowned, you should add %dir %{_libdir}/whenjobs/ in the %files section

2) given that this requires f17 to be built, I think you can remove %defattr ( unless the plan is to backport to EL 5, but I doubt ) 

3) same goes for %clean and the rm -Rf $RPMBUILDROOT at the start of %install, if I am not wrong, so you can remove them ( no need to keep unused cruft )

4) per  https://fedoraproject.org/wiki/Packaging/Guidelines#File_Dependencies ,
could you change the requires on /usr/bin/ocamlc to the package name ?
same goes for the buildRequires on perl-doc. 

5) nitpicking, but 
BuildRequires:   pcre-devel, ocaml-pcre-devel

is better on 2 lines, as this ease review of a potential changes. But that's not blocking for the review.

6) shouldn't whenjobsd be start at boot, with a systemd file ? ( given your blog posts and the use case, this sound logical to me, but maybe I missed something )

7) you detect if the bytecode is created or not at the beggining of the spec, but do not act on it as explained on :

https://fedoraproject.org/wiki/Packaging:OCaml#Bytecode-only_architectures

So either there is something missing, or something not used, or something magic 
I would bet on the 1st, but maybe that's the 3rd
Comment 2 Michael Scherer 2012-03-17 18:20:35 EDT
and one last one, the release do not have %{?dist}.

IIRC, that's not mandatory, but I think that's useful to see the distribution a rpm was compiled for.
Comment 3 Michael Scherer 2012-03-17 18:29:16 EDT
and regarding the point 6, I looked at the doc and it seems that's not how you want it to be run, so no problem. ( even if I think this would be a worthy feature to add, as if someone start to rely on it for scheduling tasks, having a standard way of starting it would be better ).

But that's also not blocking for the review.
Comment 4 Richard W.M. Jones 2012-03-18 05:55:22 EDT
(In reply to comment #1)
> Let me start the review, but I am not a ocaml specialist.
> 
> 1) %{_libdir}/whenjobs/ is unowned, you should add %dir %{_libdir}/whenjobs/ in
> the %files section

Fixed.

> 2) given that this requires f17 to be built, I think you can remove %defattr (
> unless the plan is to backport to EL 5, but I doubt ) 

Fixed.

> 3) same goes for %clean and the rm -Rf $RPMBUILDROOT at the start of %install,
> if I am not wrong, so you can remove them ( no need to keep unused cruft )

Fixed.

> 4) per  https://fedoraproject.org/wiki/Packaging/Guidelines#File_Dependencies ,
> could you change the requires on /usr/bin/ocamlc to the package name ?
> same goes for the buildRequires on perl-doc. 

My reading of that section is that dependencies on /usr/bin/* are
permitted.  I'd prefer to keep them because the program does in
fact run those binaries, like /usr/bin/ocamlc, so it seems more logical
to depend on the binaries, not the packages (which might change in future).

> 5) nitpicking, but 
> BuildRequires:   pcre-devel, ocaml-pcre-devel
>
> is better on 2 lines, as this ease review of a potential changes. But that's
> not blocking for the review.

Fixed.
 
> 6) shouldn't whenjobsd be start at boot, with a systemd file ? ( given your
> blog posts and the use case, this sound logical to me, but maybe I missed
> something )

No, the daemon is started by each user that requires it.

> 7) you detect if the bytecode is created or not at the beggining of the spec,
> but do not act on it as explained on :
> 
> https://fedoraproject.org/wiki/Packaging:OCaml#Bytecode-only_architectures
> 
> So either there is something missing, or something not used, or something magic 
> I would bet on the 1st, but maybe that's the 3rd

This is actually an upstream problem.  I need to add all the
upstream Makefile rules so that whenjobs can be compiled as
native code.  It was just easier to use bytecode compilation,
and since it's not very performance-sensitive I didn't bother
much about it.  One benefit of fixing this upstream is that we
wouldn't need the prelink stuff (because prelink doesn't break
native-compiled programs).

(In reply to comment #2)
> and one last one, the release do not have %{?dist}.

Fixed!

I have just pushed the changes to the upstream git repo for now:
http://git.annexia.org/?p=whenjobs.git;a=commitdiff;h=7e01f4e655c5ceadbb571f4ded19427b41ae2933
since item #7 needs a big amount of upstream work to fix properly.
Hopefully I can get some time to do that this week.

Thanks for the initial review.
Comment 5 Michael Scherer 2012-03-18 18:21:42 EDT
For the rpmlint warning about prelink file, I filled https://bugzilla.redhat.com/show_bug.cgi?id=804452 , since your concern about this not being a configuration file is valid.

And have you considered filling a RFE for rpm to not strip ocaml software compiled with -custom ?

Regarding point 4, that's indeed valid to have that and I will not force you, but that's not convenient for users ( at least for those with a more contrained environment than you and me, for example, in a small vm where parsing a 35 mo xml file can be problematic ). As I doubt the ocaml compiler will move a lot in the future ( or this would break a lot more software than just whenjobs ), I think you could use directly the package without trouble. But again, it is up to you.

Should I wait for newer version of whejobs for the formal review ?
Comment 6 Richard W.M. Jones 2012-03-19 05:44:57 EDT
The jobs file is parsed by the OCaml compiler, so whenjobs
cannot be used at all in an environment that doesn't have
the compiler.

Yes please wait -- I want to fix at least the bytecode/native
code issue.
Comment 7 Richard W.M. Jones 2012-03-21 11:59:29 EDT
Spec URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs.spec
SRPM URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs-0.7.1-1.src.rpm

This updated package is native-compiled (fixing point 7 above).
Comment 8 Richard W.M. Jones 2012-03-21 12:02:19 EDT
Spec URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs.spec
SRPM URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs-0.7.1-1.fc17.src.rpm

(Fixed SRPM URL)

This package is ready for review.
Comment 9 Michael Scherer 2012-03-22 02:56:56 EDT
So :

- The guideline say that you should use %global instead of %define :
https://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

- there is no need nowadays to clean the buildroot before install 
https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag

- the line
%define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) 
is still not used. If you have added directly support in the makefile, then this line can be removed, no ?

- why are debug disabled ? While I am sure that you have good reasons, it should be mentioned in a comment ( and that's maybe the reason why you have to strip by hand the software, as you mention later in the spec )
Comment 10 Richard W.M. Jones 2012-03-22 04:42:11 EDT
(In reply to comment #9)
> So :
> 
> - The guideline say that you should use %global instead of %define :
> https://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

Grrrr!
http://git.annexia.org/?p=whenjobs.git;a=commitdiff;h=ea28f8eebc4d8434e7e66d62b769d747656d27ae

> - there is no need nowadays to clean the buildroot before install 
> https://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag

http://git.annexia.org/?p=whenjobs.git;a=commitdiff;h=a84570d0991652a864d90e8e3fee685cc05982c7

> - the line
> %define opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0) 
> is still not used. If you have added directly support in the makefile, then
> this line can be removed, no ?

http://git.annexia.org/?p=whenjobs.git;a=commitdiff;h=2c27f26c486961d1b7799d4f4274aa31d04df845

> - why are debug disabled ? While I am sure that you have good reasons, it
> should be mentioned in a comment ( and that's maybe the reason why you have to
> strip by hand the software, as you mention later in the spec )

The reason is that the OCaml compiler doesn't add DWARF
information to its output, so you end up with debuginfo
files that work but are content-free.  This is a standard
thing that is added to every OCaml spec file, eg picking
one at random:
http://pkgs.fedoraproject.org/gitweb/?p=ocaml-pcre.git;a=blob;f=ocaml-pcre.spec;hb=HEAD

I've no idea why stripping didn't happen.  It *does*
happen normally, even with debug disabled, so it could
be a bug in my local RPM, but in any case rpmlint warned
about it, and stripping twice won't be a problem.
Comment 11 Michael Scherer 2012-03-22 06:04:56 EDT
Then I think it would be nice to add this fact to the ocaml packaging page ( not sure if there is a official process for that, that's why I didn't added it ) 
https://fedoraproject.org/wiki/Packaging:OCaml

So people reviewing can just see "this is normal", that's the policy.
Comment 12 Richard W.M. Jones 2012-03-22 09:09:21 EDT
It turns out there's a problem with the way I'm using
Dynlink in native code (I noticed that whenjobs --upload
doesn't work in the native version):

https://sympa-roc.inria.fr/wws/arc/caml-list/2012-03/msg00276.html
Comment 13 Michael Scherer 2012-03-22 11:47:58 EDT
Fedora-review complaint about the address of the FSF in the various files, for example in whenjobs-0.7.1/lib/flock.c but the address is however correct in others files. ( see the licensecheck tools, from rpmdev ).

And so, for the Dynlink issue, should I wait for a new tarball before trying to setup a vm for testing it ?
Comment 14 Richard W.M. Jones 2012-03-22 12:08:39 EDT
(In reply to comment #13)
> Fedora-review complaint about the address of the FSF in the various files, for
> example in whenjobs-0.7.1/lib/flock.c but the address is however correct in
> others files. ( see the licensecheck tools, from rpmdev ).

http://git.annexia.org/?p=whenjobs.git;a=commitdiff;h=602f482985977184bfa2794cfb91b15337035a0a

> And so, for the Dynlink issue, should I wait for a new tarball before trying to
> setup a vm for testing it ?

Unfortunately the Dynlink issue breaks reloads, so I
really need to think about how to resolve this.  In the
worst case the daemon might need to restart itself; or I
could go back to compiling the daemon as bytecode.
Comment 15 Richard W.M. Jones 2012-03-23 14:19:44 EDT
I just posted a patch that fixes the Dynlink issue,
but I need to test it out locally for a bit first.

http://git.annexia.org/?p=whenjobs.git;a=commitdiff;h=de72662854c3db9365296dd45cade2253910be7f
Comment 16 Richard W.M. Jones 2012-04-02 15:44:53 EDT
This is working out well for me, after about a week
of testing.  Do you want me to post another spec
file (it'll be the same, just with an updated
version number).

http://git.annexia.org/?p=whenjobs.git;a=blob;f=whenjobs.spec.in;hb=HEAD
Comment 17 Michael Scherer 2012-04-06 15:04:13 EDT
The %global opt is still unused in the spec, so if the makefile work without it, maybe it should be removed ?
Comment 18 Michael Scherer 2012-04-06 15:12:24 EDT
And yes, a new rpm would help me to make sure I can test the build and other stuff correctly.
Comment 19 Richard W.M. Jones 2012-04-06 15:27:33 EDT
(In reply to comment #17)
> The %global opt is still unused in the spec, so if the makefile work without
> it, maybe it should be removed ?

%opt is used in the spec.  On x86/x86-64 it would always be
set to 1, because ocamlopt is always available.  However on
some weird secondary architectures (I think s/390x is the only
one) where there is no native compiler backend, ocamlopt wouldn't
exist so %opt would be 0.

(In reply to comment #18)
> And yes, a new rpm would help me to make sure I can test the build and other
> stuff correctly.

This is the package I've been using successfully for a few weeks:

Spec URL: http://oirase.annexia.org/reviews/whenjobs/whenjobs.spec
SRPM URL:
http://oirase.annexia.org/reviews/whenjobs/whenjobs-0.7.2-1.fc17.src.rpm
Comment 20 Michael Scherer 2012-04-07 06:52:41 EDT
Indeed, i tought it would be used for the %build, but that's used for another thing, sorry.
Comment 21 Michael Scherer 2012-04-17 16:56:23 EDT
Sorry for not updating this review.

While working on the formal review, I noticed that the md5sum is not the same between the spec on people.redhat.com and the rpm :

$ md5sum ~/rpmbuild/SOURCES/whenjobs-0.7.2.tar.gz ./whenjobs-0.7.2.tar.gz 
8b89aa3eeb02c53ed688edd32546d9bc  /home/misc/rpmbuild/SOURCES/whenjobs-0.7.2.tar.gz
c201788e584dd63891d11295cf9b5788  ./whenjobs-0.7.2.tar.gz

is this normal ? ( there is basically 2 bytes missing, that's rather strange )
Comment 22 Richard W.M. Jones 2012-06-30 04:59:11 EDT
No, that's not normal.  All I can think is that I must have
done a 'make dist' twice and included another copy of the
tarball.

Here is a corrected SRPM:

http://oirase.annexia.org/reviews/whenjobs/whenjobs-0.7.2-1.fc17.src.rpm
Comment 23 Michael Scherer 2012-06-30 07:45:17 EDT
It doesn't seems to build in mock ( who has been running since 2/3h ). 
It seems to block at :

/bin/bash - ./test_run.sh ./t100_counter.ml

Is this expected ( ie, it take a long time, I am running it on a macbook 2.1, core 2 duo cpu, 2.1 ghz ) ?

( to reproduce, "fedora-review -b 803089" on fedora 17 should do the trick ).
Comment 24 Richard W.M. Jones 2012-06-30 09:21:53 EDT
Are you using 32 bit?  This patch was required for 32 bit
ARM:

commit d6da1b74e241e79eb0af9c01e390e98ceead3a49
Author: Richard W.M. Jones <rjones@redhat.com>
Date:   Sat Apr 28 20:40:39 2012 +0100

    32 bit: Fix for 31 bit int overflow in time_t.

so I'm going to do a 0.7.3 release in a moment which
includes everything.
Comment 26 Richard W.M. Jones 2012-06-30 09:35:57 EDT
Koji scratch build which I guess proves that it builds on
32 bit ...

http://koji.fedoraproject.org/koji/taskinfo?taskID=4209135
Comment 27 Michael Scherer 2012-06-30 12:46:45 EDT
Yup, this laptop is 32 bits. Let me start again mock and go on with the review.
Comment 28 Michael Scherer 2012-07-01 10:26:57 EDT
So it doesn't build on fedora 17 / 32 bits:

make[2]: Entering directory `/builddir/build/BUILD/whenjobs-0.7.3/lib'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I..    -I/usr/lib/ocaml -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=
ocamlfind ocamlc -g -warn-error CDEFLMPSUVYZX -package unix,num,camlp4.lib,calendar,rpc -c config.mli -o config.cmi
ocamlfind ocamlc -g -warn-error CDEFLMPSUVYZX -package unix,num,camlp4.lib,calendar,rpc -c whenproto_aux.mli -o whenproto_aux.cmi
ocamlfind ocamlc -g -warn-error CDEFLMPSUVYZX -package unix,num,camlp4.lib,calendar,rpc -c whenutils.mli -o whenutils.cmi
ocamlfind ocamlc -g -warn-error CDEFLMPSUVYZX -package unix,num,camlp4.lib,calendar,rpc -c whenlock.mli -o whenlock.cmi
ocamlfind c -g -warn-error CDEFLMPSUVYZX \
  -package camlp4.lib -linkpkg \
  -pp camlp4of -c pa_when.ml -o pa_when.cmo
ocamlfind ocamlopt -g -warn-error CDEFLMPSUVYZX -package unix,num,camlp4.lib,calendar,rpc -c config.ml -o config.cmx
ocamlfind ocamlopt -g -warn-error CDEFLMPSUVYZX -package unix,num,camlp4.lib,calendar,rpc -c whenproto_aux.ml -o whenproto_aux.cmx
File "whenproto_aux.ml", line 121, characters 13-25:
Error: Unbound value Xdr.safe_add
make[2]: *** [whenproto_aux.cmx] Error 2
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/builddir/build/BUILD/whenjobs-0.7.3/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/whenjobs-0.7.3'
make: *** [all] Error 2
Comment 29 Richard W.M. Jones 2012-07-02 04:10:41 EDT
This doesn't seem to be to do with 32 bit.  Xdr.safe_add is
an ocamlnet symbol, and whenproto_aux.ml is a generated file
(from /usr/bin/ocamlrpcgen).  We need to add to %build:

  rm -f lib/whenproto_aux.{ml,mli}
Comment 31 Michael Scherer 2012-07-20 04:43:35 EDT
Ok, tested it, it start, it install fine, and compile.

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Package does not contain any libtool archives (.la)
[x]: MUST Package does not contain kernel modules.
[x]: MUST Package contains no static executables.
[x]: MUST Rpath absent or only used for internal libs.


==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package contains desktop file if it is a GUI application.
[-]: MUST Development files must be in a -devel package
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.
[-]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "*No copyright* GENERATED FILE", "GPL (v2 or later)" For detailed output
     of licensecheck see file:
     /home/misc/checkout/git/FedoraReview/803089-whenjobs/licensecheck.txt
[x]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[x]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX / PatchY prefixed with %{name}.
[x]: SHOULD SourceX is a working URL.
[x]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[x]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Rpmlint
-------
Checking: whenjobs-0.7.3-1.fc17.src.rpm
          whenjobs-0.7.3-1.fc17.x86_64.rpm
whenjobs.src: W: spelling-error Summary(en_US) cron -> corn, con, crone
whenjobs.src: W: spelling-error %description -l en_US cron -> corn, con, crone
whenjobs.x86_64: E: devel-dependency ocaml-camlp4-devel
whenjobs.x86_64: W: spelling-error Summary(en_US) cron -> corn, con, crone
whenjobs.x86_64: W: spelling-error %description -l en_US cron -> corn, con, crone
whenjobs.x86_64: W: only-non-binary-in-usr-lib
whenjobs.x86_64: W: devel-file-in-non-devel-package /usr/lib64/whenjobs/whenlib.cmxa
whenjobs.x86_64: W: spurious-executable-perm /usr/lib64/whenjobs/whenlib.cmxa
2 packages and 0 specfiles checked; 1 errors, 7 warnings.


Rpmlint (installed packages)
----------------------------
Cannot parse rpmlint output:
Requires
--------
whenjobs-0.7.3-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    /usr/bin/ocamlc  
    libc.so.6()(64bit)  
    libdl.so.2()(64bit)  
    libm.so.6()(64bit)  
    libpcre.so.0()(64bit)  
    libpthread.so.0()(64bit)  
    librt.so.1()(64bit)  
    mailx  
    ocaml(Arg) = 60e2cbb1ef3b8a7bfbdceb75ebf3aa31
    ocaml(Array) = 720848e0b508273805ef38d884a57618
    ocaml(Big_int) = ef16c44153a41f60de69bff12d11ee35
    ocaml(Bigarray) = 7999848d08322c0bcb568840b1d2cf0d
    ocaml(Buffer) = 40bf652f22a33a7cfa05ee1dd5e0d7e4
    ocaml(Camlp4) = 8701f287be2345d1e72822c94a432852
    ocaml(Camlp4_config) = 6163f28f963cb16297c065b8a6e30b91
    ocaml(Camlp4_import) = 9587d9e9514bd24208f106666207c953
    ocaml(Char) = 3dee29b414dd26a1cfca3bbdf20e7dfc
    ocaml(Complex) = 9aea79838f042027ab9539d587834bc8
    ocaml(Filename) = bc87b0a21cde095f477cca1f0abb32b8
    ocaml(Format) = e0de312c23ff9caec6c5bfa1f44a43b4
    ocaml(Hashtbl) = 9c86f7320512d6740a75017fd66156a8
    ocaml(Int32) = c91c0bbb9f7670b10cdc0f2dcc57c5f9
    ocaml(Int64) = 8f09e1331fe8af2d7b954585551cbe4f
    ocaml(Lexing) = 7d5623c54d065ad3f652261d2776959c
    ocaml(List) = 9c85fb419d52a8fd876c84784374e0cf
    ocaml(Nat) = 7ab8ce32b152977f693920f75bf5b3dc
    ocaml(Nativeint) = 409308ec9d1a2ab99fa91fd0dfefca97
    ocaml(Netnumber) = ff99a76e025c4a87db6c6cd3fbfa192d
    ocaml(Netsys_mem) = 572501f17fca7a174c4e01d3a538c374
    ocaml(Netsys_types) = ff27e879a1d4c7172a8b839b54db9e8c
    ocaml(Obj) = 3aeb33d11433c95bb62053c65665eb76
    ocaml(Parsing) = 59e1db94d28f5c920aaddc6ba25fb659
    ocaml(Pervasives) = db723a1798b122e08919a2bfed062514
    ocaml(Printf) = 55250c391e05a095d3696890d0d554a2
    ocaml(Queue) = 79fd3a55345b718296e878c0e7bed10e
    ocaml(Rpc_program) = 77c1f3cf557593d4dd8e9f9801dff31c
    ocaml(Rtypes) = b23e2fb4b78c27eb1ca98fa4058df05c
    ocaml(Set) = 7b178c9cf52b5cb8145441e1a0d309f5
    ocaml(Stream) = cc2abcbdc5423e35862902ae0a0a4a7d
    ocaml(String) = 06ab5e6944c47322b9d305c0aa0b07ff
    ocaml(Sys) = 4fe60c54d4de0672924c1d4ee2053e46
    ocaml(Unix) = 2a19929a535447ed0c8fc58ae3adc1a0
    ocaml(Whenexpr) = 7d73ce460d86a777393132cb1ce474cf
    ocaml(Whenproto_aux) = 89e0f5b452e9faee7ffb701326792989
    ocaml(Whenstate) = 56e8ed28162bad807c5429078fccbf10
    ocaml(Whenutils) = 8a1526e04b66ab23387a3a4ecffed0c7
    ocaml(Xdr) = 946e3e26ef24d8a2ad9840a5fd5c9433
    ocaml(Xdr_mstring) = 2a94b8b145ab116df240d69864ce30df
    ocaml(runtime) = 3.12.1
    ocaml-camlp4-devel  
    ocaml-findlib-devel  
    rtld(GNU_HASH)  

Provides
--------
whenjobs-0.7.3-1.fc17.x86_64.rpm:
    
    ocaml(Config) = 22e56187c01934c5147c0c3b5e3fa721
    ocaml(Pa_when) = 1183350fefb321e5a5f17e9faf5869f3
    ocaml(Whenexpr) = 7d73ce460d86a777393132cb1ce474cf
    ocaml(Whenfile) = 6883258555279b5232ede1350a8ffb32
    ocaml(Whenlock) = 4d3be5ca7c55e025f967acaaae1871d3
    ocaml(Whenproto_aux) = 89e0f5b452e9faee7ffb701326792989
    ocaml(Whenstate) = 56e8ed28162bad807c5429078fccbf10
    ocaml(Whentools) = 6f9af1b39de525d24b8e04cb8402e6dd
    ocaml(Whenutils) = 8a1526e04b66ab23387a3a4ecffed0c7
    whenjobs = 0.7.3-1.fc17
    whenjobs(x86-64) = 0.7.3-1.fc17

MD5-sum check
-------------
http://people.redhat.com/~rjones/whenjobs/files/whenjobs-0.7.3.tar.gz :
  MD5SUM this package     : e0fe81dde02284f7e2a6da90d90def16
  MD5SUM upstream package : e0fe81dde02284f7e2a6da90d90def16


Generated by fedora-review 0.2.0 (53cc903) last change: 2012-07-09
Command line :./try-fedora-review -b 803089
External plugins:


So good to go.
Comment 32 Richard W.M. Jones 2012-07-20 04:47:55 EDT
New Package SCM Request
=======================
Package Name: whenjobs
Short Description: Replacement for cron with dependencies
Owners: rjones
Branches: f17
InitialCC:
Comment 33 Gwyn Ciesla 2012-07-20 08:23:05 EDT
Git done (by process-git-requests).
Comment 34 Richard W.M. Jones 2012-07-20 10:07:30 EDT
Thanks.  Just building them now.
Comment 35 Gwyn Ciesla 2012-07-20 11:04:32 EDT
Already exists.
Comment 36 Richard W.M. Jones 2012-07-20 11:28:28 EDT
Sorry not sure what happened then.
Comment 37 Fedora Update System 2012-07-20 11:29:59 EDT
whenjobs-0.7.3-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/whenjobs-0.7.3-1.fc17
Comment 38 Fedora Update System 2012-07-20 22:55:28 EDT
whenjobs-0.7.3-1.fc17 has been pushed to the Fedora 17 testing repository.
Comment 39 Fedora Update System 2012-07-28 20:50:33 EDT
whenjobs-0.7.3-1.fc17 has been pushed to the Fedora 17 stable repository.

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