Bug 435299 - Review Request: ocaml-pa-monad - OCaml syntax extension for monads
Review Request: ocaml-pa-monad - OCaml syntax extension for monads
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jason Tibbitts
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2008-02-28 10:37 EST by Richard W.M. Jones
Modified: 2008-05-14 16:34 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2008-05-14 16:34:04 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
tibbs: fedora‑review+
kevin: fedora‑cvs+

Attachments (Terms of Use)

  None (edit)
Description Richard W.M. Jones 2008-02-28 10:37:56 EST
Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pa-monad.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pa-monad-1.2.0-1.fc9.src.rpm
Description: OCaml syntax extension for monads

This one is not particularly rpmlint clean, but all the errors
and warnings are not bugs in the package itself:

  $ rpmlint /home/rjones/rpmbuild/SRPMS/ocaml-pa-monad-1.2.0-1.fc9.src.rpm
  ocaml-pa-monad.src: W: invalid-license LGPLv2+ with exceptions
  $ rpmlint /home/rjones/rpmbuild/RPMS/i386/ocaml-pa-monad-1.2.0-1.fc9.i386.rpm
  ocaml-pa-monad.i386: W: invalid-license LGPLv2+ with exceptions

See bug 434690.

  ocaml-pa-monad.i386: E: no-binary
  ocaml-pa-monad.i386: E: only-non-binary-in-usr-lib

See bug 433783.
Comment 1 Jason Tibbitts 2008-02-28 12:57:24 EST
I'm going to try and work through these ocaml reviews since they seem mostly
clean, but I noticed that while you have submitted a whole pile of packages for
review I don't seem to be able to find any packages which you have reviewed.  At
least, a search for all tickets assigned to you with "review request" in the
summary didn't turn anything up.

The queue of review requests is growing quickly and these recent ocaml packages
are a large portion of that growth.  Could you help us out by reviewing a few
other packages?  We're not asking for one review per submitted package (although
that would certainly solve our problems with the review queue size) but anything
you can do to help would be greatly appreciated.
Comment 2 Jason Tibbitts 2008-05-10 22:00:08 EDT
The guidelines don't say much about whether the underscore in the module name
needs to be changed to a hyphen.  I don't have a particular issue with your
naming, and Debian doesn't seem to have this packaged yet so this is sort of
blazing new territory.  Still, did you give the matter any thought?

I'm not seeing the LGPL exception in the package.  I suppose it must be there
for the package to be useful at all, but I'm not seeing an actual statement of

There are several test programs; is it possible to run them at build time?

I'm certain that the .cmo file is appropriate here, so that's good.  It's kind
of obvious when there are no other object files in the package.

* source files match upstream:
? 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.
? 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:
   ocaml(Pa_monad) = 0772e3866372127d528565bcf7904b7b
   ocaml-pa-monad = 1.2.0-1.fc9
   ocaml(Arg) = 03e86a4154064ea900dc32c05f53e364
   ocaml(Array) = aa8e3cd5824f9bb40b93fcd38d0c95b5
   ocaml(Buffer) = f6cef633ea14963b84b79c4095c63dc3
   ocaml(Camlp4) = 1e46a133b8062d1571640f7fa36f32c4
   ocaml(Camlp4_config) = cb716b4361f43326c6ad695c7a1bb5c0
   ocaml(Camlp4_import) = 0134ca95282ef6821081c0c11802cea0
   ocaml(Char) = e98bc9c9e918a84b3c1a5a122d42fac1
   ocaml(Filename) = 633a1e7f590ff5e95124293dbef3b476
   ocaml(Format) = 35fe566f7a37d8991a5c822bd1463949
   ocaml(Hashtbl) = 083f2c94b44ff4e0b3220aaea6a783b4
   ocaml(Int32) = 711321870c949bd3bbdd092d9bae92e4
   ocaml(Int64) = f8f7e2e4c0667ead94596040b12e732d
   ocaml(Lexing) = b1793496643444d3762dd42bebe2cfe3
   ocaml(List) = da1ce9168f0408ff26158af757456948
   ocaml(Nativeint) = e79cdc4d3575c2ed044955cb7ef49aca
   ocaml(Obj) = 5cfae708052c692ea39d23ed930fd64d
   ocaml(Parsing) = 62cca107e4e88af303516459a87c3e9a
   ocaml(Pervasives) = 8ba3d1faa24d659525c9025f41fd0c57
   ocaml(Printf) = 5dbbf45a03b54e6dbfcf39178d0d6341
   ocaml(Queue) = caa3a209bfc63d23a30f573541a88fec
   ocaml(Set) = 7da14e671a035f12386ace3890018ef3
   ocaml(Stream) = 21a833e12efd34ea0c87d8d9da959809
   ocaml(String) = 2c162ab314b2f0a2cfd22d471b2e21ab
   ocaml(Sys) = 0da495f5a80f31899139359805318f28
   ocaml(runtime) = 3.10.1

X %check is not present, but test code seems to be available.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* no scriptlets present.
* code, not content.
* most of the package is documentation, but it's still only a few K so there's
   no point in splitting it.
* %docs are not necessary for the proper functioning of the package.
Comment 3 Richard W.M. Jones 2008-05-12 06:32:28 EDT
Re: Naming

I admit I didn't give it any thought.  I just checked the Fedora naming guidelines and
it seems like we could use pa_monad (since the upstream tarball is named that way),
but for such a tiny package is it worth having a slightly different naming convention
from all the other OCaml packages I wonder?

Re: License

Yes, you're right that this package doesn't have the OCaml linking exception.

Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pa-monad.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pa-monad-1.2.0-3.fc9.src.rpm

* Mon May 10 2008 Richard W.M. Jones <rjones@redhat.com> - 1.2.0-3
- Added a check section.
- License doesn't include OCaml exception, just LGPLv2+.

* Wed Mar  5 2008 Richard W.M. Jones <rjones@redhat.com> - 1.2.0-2
- Remove ExcludeArch ppc64.

Here's a Koji scratch build:
Comment 4 Jason Tibbitts 2008-05-12 18:53:17 EDT
I don't really care one way or the other about the naming; I agree that an
all-dash scheme looks cleaner but if other distros choose the other method then
there could be some confusion.  If that happens, a simple solution would be for
this package to provide ocaml-pa_monad.

Does the lack of the linking exception cause any problem for actually using this
package?  I don't know if syntax extensions actually get linked into the object

I'd say this package is fine and I'd approve it, but I'd like to be clear on the
license issue first.
Comment 5 Richard W.M. Jones 2008-05-13 03:22:23 EDT
Naming: Neither GODI nor Debian have packaged this one, so I think
we can just leave it as it is for now.

Linking exception:
In fact the linking exception, or lack of it, makes little difference to OCaml.

What it does is allows you to get out of part of section 6 of LGPLv2.

Section 6 as a whole allows proprietary software authors to use LGPL'd libraries,
but requires them to provide their program as linkable objects "so that the user
can modify the Library and then relink to produce a modified executable
containing the modified Library".

The ability to relink makes no sense in OCaml programs because the type system
would prevent any conceivable library modification, so proprietary
software authors are exempt from the provision to provide linkable objects
by the linking exception.

So note: (a) It only applies to proprietary software authors, (b) it is an extra
permission, making the license more permissive than LGPL.

If an OCaml library came without the linking exception, all this would mean
is that proprietary software authors would have to provide useless linkable
objects with their binaries.

Syntax extensions are in any case only used at compile time (they get linked
into the compiler) so they don't appear in the output binary.  (Although most
syntax extensions also come with a runtime library).
Comment 6 Jason Tibbitts 2008-05-13 19:27:09 EDT
That all makes sense to me.  I've never really been clear on how the LGPL works
at all in an environment where you have to link statically, and honestly I'm
still not, but it seems obvious that there's no problem for Fedora here.

Comment 7 Richard W.M. Jones 2008-05-14 04:05:59 EDT
New Package CVS Request
Package Name: ocaml-pa-monad
Short Description: OCaml syntax extension for monads
Owners: rjones
Branches: F-8 F-9
InitialCC: rjones
Cvsextras Commits: yes
Comment 8 Kevin Fenzi 2008-05-14 11:42:09 EDT
cvs done.
Comment 9 Richard W.M. Jones 2008-05-14 16:34:04 EDT
Built in F8/F9/devel.

Thanks for everyone's help.

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