Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-deriving.spec SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-deriving-0.1.1a-1.fc9.src.rpm Description: Extension to OCaml for deriving functions from types Output of rpmlint: ocaml-deriving.i386: E: no-binary ocaml-deriving.i386: E: only-non-binary-in-usr-lib (Can be ignored - see bug 433783). List of files in the main package: /usr/bin/deriving /usr/lib/ocaml/deriving /usr/lib/ocaml/deriving/META /usr/lib/ocaml/deriving/bounded.cmi /usr/lib/ocaml/deriving/deriving.cma /usr/lib/ocaml/deriving/dump.cmi /usr/lib/ocaml/deriving/dynmap.cmi /usr/lib/ocaml/deriving/enum.cmi /usr/lib/ocaml/deriving/eq.cmi /usr/lib/ocaml/deriving/functor.cmi /usr/lib/ocaml/deriving/interned.cmi /usr/lib/ocaml/deriving/monad.cmi /usr/lib/ocaml/deriving/pickle.cmi /usr/lib/ocaml/deriving/show.cmi /usr/lib/ocaml/deriving/typeable.cmi /usr/share/doc/ocaml-deriving-0.1.1a /usr/share/doc/ocaml-deriving-0.1.1a/COPYING List of files in -devel subpackage: /usr/lib/ocaml/deriving/bounded.cmx /usr/lib/ocaml/deriving/bounded.mli /usr/lib/ocaml/deriving/deriving.a /usr/lib/ocaml/deriving/deriving.cmxa /usr/lib/ocaml/deriving/dump.cmx /usr/lib/ocaml/deriving/dump.mli /usr/lib/ocaml/deriving/dynmap.cmx /usr/lib/ocaml/deriving/dynmap.mli /usr/lib/ocaml/deriving/enum.cmx /usr/lib/ocaml/deriving/enum.mli /usr/lib/ocaml/deriving/eq.cmx /usr/lib/ocaml/deriving/eq.mli /usr/lib/ocaml/deriving/functor.cmx /usr/lib/ocaml/deriving/functor.mli /usr/lib/ocaml/deriving/interned.cmx /usr/lib/ocaml/deriving/interned.mli /usr/lib/ocaml/deriving/monad.cmx /usr/lib/ocaml/deriving/monad.mli /usr/lib/ocaml/deriving/pickle.cmx /usr/lib/ocaml/deriving/pickle.mli /usr/lib/ocaml/deriving/show.cmx /usr/lib/ocaml/deriving/show.mli /usr/lib/ocaml/deriving/typeable.cmx /usr/lib/ocaml/deriving/typeable.mli /usr/lib/ocaml/deriving/util.mli /usr/share/doc/ocaml-deriving-devel-0.1.1a /usr/share/doc/ocaml-deriving-devel-0.1.1a/CHANGES /usr/share/doc/ocaml-deriving-devel-0.1.1a/COPYING /usr/share/doc/ocaml-deriving-devel-0.1.1a/README Requires for main package: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(VersionedDependencies) <= 3.0.3-1 /usr/bin/ocamlrun ocaml(Array) = aa8e3cd5824f9bb40b93fcd38d0c95b5 ocaml(Big_int) = 992d682669507b99e689b5a2188c0b9a ocaml(Buffer) = f6cef633ea14963b84b79c4095c63dc3 ocaml(CamlinternalMod) = dc6994f75cfd14f73e718f81aa215803 ocaml(Char) = e98bc9c9e918a84b3c1a5a122d42fac1 ocaml(Format) = 35fe566f7a37d8991a5c822bd1463949 ocaml(Int32) = 711321870c949bd3bbdd092d9bae92e4 ocaml(Int64) = f8f7e2e4c0667ead94596040b12e732d ocaml(List) = da1ce9168f0408ff26158af757456948 ocaml(Map) = dedde7683d54ae7db1eb97cc868dd047 ocaml(Marshal) = b7e47558bc02738dea90d6bd22a06c7b ocaml(Nat) = 0ea20dd1cc4533fd519b5542a89feb87 ocaml(Nativeint) = e79cdc4d3575c2ed044955cb7ef49aca ocaml(Num) = cfa2705c9c6d6f5a56b83f91fc630d2a ocaml(Obj) = 5cfae708052c692ea39d23ed930fd64d ocaml(Pervasives) = 8ba3d1faa24d659525c9025f41fd0c57 ocaml(Printf) = 5dbbf45a03b54e6dbfcf39178d0d6341 ocaml(Ratio) = 7067125cce206dd2bbe93918ba7bdfe9 ocaml(Set) = 7da14e671a035f12386ace3890018ef3 ocaml(Stream) = 21a833e12efd34ea0c87d8d9da959809 ocaml(String) = 2c162ab314b2f0a2cfd22d471b2e21ab ocaml(runtime) = 3.10.1 Provides for main package: ocaml(Bounded) = 2d00c01a31a0f1d6c7fe150ee578a21e ocaml(Dump) = 56f763a983d53210785cde82bc8a6a90 ocaml(Dynmap) = 63cadc12a144b0aaad8e4fd3c4bbc828 ocaml(Enum) = b0841de5b5173f6c681b0f60a44acd1f ocaml(Eq) = 4a7db7be84324b4842d475f90cc5d19b ocaml(Functor) = b3e3dc0544daee821a5adf29f9a4d127 ocaml(Interned) = 25b1ef1de9e5ff2114bb86c919832f33 ocaml(Monad) = 8abdc2a3027781506c2614dad9cfa0fa ocaml(Pickle) = 124c2989bfeb792a94dbc96910467982 ocaml(Show) = 0f99373d708ef67254201e1442de451e ocaml(Typeable) = dc099a13123a6e8423582f0128ca528f ocaml-deriving = 0.1.1a-1.fc9
License: should be MIT. The COPYING file says "The MIT License" and indeed our licensing guidelines agree with that. I had guessed that this one would have a .cmo file but it doesn't. So I guess I'm still pretty confused about that. The only issue is the license tag, and that's a trivial fix so I'll approve this and you can fix it when you check in. * source files match upstream: ab9e5403a383d57b3572b21587a23dc2f85980b0a95936ac748ccd2118c4f55e deriving-0.1.1a.tar.gz * package meets naming and versioning guidelines. * specfile is properly named, is cleanly written and uses macros consistently. * summary is OK. * description is OK. * dist tag is present. * build root is OK. APPROVED X license field matches the actual license. * license is open source-compatible. * license text included in package. * latest version is being packaged. * BuildRequires are proper. * %clean is present. * package builds in mock (rawhide, x86_64). * package installs properly. * rpmlint has acceptable complaints. * final provides and requires are sane; listed above so no point in repeating them. * %check is present and all tests pass: Tests succeeded! * owns the directories it creates. * doesn't own any directories it shouldn't. * no duplicates in %files (besides COPYING file) * file permissions are appropriate. * no scriptlets present. * code, not content. * documentation is small, so no -doc subpackage is necessary. * %docs are not necessary for the proper functioning of the package. * .cma, .cmi, .so, .so.owner, META files in the main package. * .a, .cmxa, .cmx and .mli files are in the -devel subpackage. * .cmo, .o and .ml files not included
License: Yes, it's MIT. Particularly stupid on my part because I even asked upstream to release a new version (0.1.1a) with the license file included, but then I forgot to fix my spec file :-( Lack of *.cmo file: This is a one-of-a-kind upstream. Normal syntax extensions are loadable object files (*.cmo) so they get loaded into the normal OCaml parser at compile time. The object files consist of a list of instructions for the parser, like 'add this keyword', 'delete this parsing rule', 'substitute this other parsing rule'. This means that syntax extensions are composable (you can use more than one at a time). But for this one, upstream have linked the syntax extension to a standalone program (/usr/bin/deriving) which one is supposed to use as a preprocessor (it takes OCaml + deriving syntax and emits basic OCaml). I've just realised that this is not a smart upstream choice because it prevents the syntax from being composable with other syntaxes, so you cannot mix the deriving syntax with any other syntax extension. Here's a new package: Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-deriving.spec SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-deriving-0.1.1a-3.fc9.src.rpm * Mon May 10 2008 Richard W.M. Jones <rjones> - 0.1.1a-3 - Fix the License tag (MIT not BSD). * Wed Mar 5 2008 Richard W.M. Jones <rjones> - 0.1.1a-2 - Remove ExcludeArch ppc64. Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=604494
Just a reminder; this package was already approved. The new package is fine.
So it was, I missed that :-) Thanks for this and many other reviews. I know they can be quite tedious at times to do. CVS request comin' up ...
New Package CVS Request ======================= Package Name: ocaml-deriving Short Description: Extension to OCaml for deriving functions from types Owners: rjones Branches: F-8 F-9 InitialCC: rjones Cvsextras Commits: yes
cvs done.
Built in F8/F9/devel. Thanks for everyone's help.