Bug 275491

Summary: Review Request: ocaml-pgocaml - OCaml library for type-safe access to PostgreSQL databases
Product: [Fedora] Fedora Reporter: Richard W.M. Jones <rjones>
Component: Package ReviewAssignee: Jason Tibbitts <j>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting
Target Milestone: ---Flags: j: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-05-12 19:41:35 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 Richard W.M. Jones 2007-09-03 19:01:52 UTC
Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml-0.9-2.fc8.src.rpm
Description:
PG'OCaml is a type-safe, simple interface to PostgreSQL from OCaml. It
lets you embed SQL statements directly into OCaml code.

Comment 1 Richard W.M. Jones 2008-02-23 23:24:41 UTC
Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml-0.9-3.fc9.src.rpm

* Sat Feb 23 2008 Richard W.M. Jones <rjones> - 0.9-3
- Check it builds with OCaml 3.10.1
- Only keep license file in main package.
- Clarify license is LGPLv2 with exceptions.



Comment 2 Richard W.M. Jones 2008-02-23 23:27:31 UTC
This package is rpmlint-clean except for:

$ rpmlint /home/rjones/rpmbuild/RPMS/i386/ocaml-pgocaml-0.9-3.fc9.i386.rpm
ocaml-pgocaml.i386: E: only-non-binary-in-usr-lib

This error can be ignored (bug 433783).

Comment 3 Jason Tibbitts 2008-03-01 19:04:42 UTC
While you're fixing the missing camlp4 dependencies, you might want to do this
package as well.

Comment 4 Richard W.M. Jones 2008-03-01 19:39:56 UTC
Excellent, I've just discovered you don't need to be root to run mock ...

Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml-0.9-4.fc9.src.rpm

* Sat Mar  1 2008 Richard W.M. Jones <rjones> - 0.9-4
- Add missing BR for ocaml-camlp4-devel.
- Add missing BR for pcre-devel.
- Check it builds in mock.


Comment 5 Jason Tibbitts 2008-03-02 22:53:52 UTC
Hmm, this build but didn't install for me:

Error: Missing Dependency: ocaml(Fcalendar) = 259cfd8d508c1285ebfccd5d9d1e7f7d
is needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Printer) = 3f42ab789fc16d7eb2669b082569279f is
needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Date) = b00eccf481484d6175e1313a172d8b6a is
needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Time_Zone) = b9ee51d35819429061ce9ee1bac36c96
is needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Period) = cc35eea52e247d128e2e6ed0dba3bae0 is
needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Date_sig) = 23cd2a5d65a035dddaaa034b60b2e624 is
needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Time) = 0fff434ebb12b8902640da38fc37f95a is
needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Calendar_sig) =
06592ee1cd34a7403c2a24a5930f6883 is needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Time_sig) = 05d34937f0e77ec1b1cb8aa13ad7c7f9 is
needed by package ocaml-pgocaml
Error: Missing Dependency: ocaml(Ftime) = 642aab18369aadca0b70eea7cc0b6f6c is
needed by package ocaml-pgocaml

Is there a runtime dependency that's not yet in rawhide?

Comment 6 Richard W.M. Jones 2008-03-03 14:08:40 UTC
Oh dear, this isn't pretty.  The requires generator is still over-specifying
requirements for the ocaml-calendar package, so those requirements were
all bogus.  Unfortunately I can't see any way to fix the automatic script,
because the underlying 'ocamlobjinfo' program which we use doesn't give
us sufficient information.  I'm going to have to ask about this upstream.

This is an updated package which ignores the extra requirements:

Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml-0.9-5.fc9.src.rpm

Comment 7 Jason Tibbitts 2008-03-04 02:55:45 UTC
Yeah, that's much better.  I guess these questions are kind of dumb since
you seem to be the upstream developer, but I'd ask them of anyone else so...

The URL points to a page which indicates that it's going away;
http://developer.berlios.de/projects/pgocaml/ might be better, except that it
doesn't seem to have as much content.

Version 1.0 is out; did you want to update?

I don't see the LGPL version mentioned anywhere in the package, so License:
should probably be LGPLv2+ with exceptions unless you really intended LGPLv2
only, which of course is fine but would need at least a comment in the spec
indicating your wishes.

Just let me know if you want to stick with 0.9 or drop an updated version and
I'll be happy to do the full review thing.

Comment 8 Richard W.M. Jones 2008-03-04 09:58:31 UTC
I wrote it originally but Dario maintains it at the Berlios site, which
was only set up a few weeks ago.  So it's undergoing a transition.
Having said that the software is mature & stable which is why updates
are infrequent.

I'm going to make another upstream release with correct licensing info
in all the files.  It'll be LGPLv2+ with exceptions.  Version 1.1 ...

Comment 9 Richard W.M. Jones 2008-03-04 10:35:52 UTC
All done:

Spec URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml.spec
SRPM URL: http://www.annexia.org/tmp/ocaml/ocaml-pgocaml-1.1-1.fc9.src.rpm

* Tue Mar  4 2008 Richard W.M. Jones <rjones> - 1.1-1
- New upstream release 1.1.
- Clarify license is LGPLv2+ with exceptions.
- New home page and download URL.


Comment 10 Jason Tibbitts 2008-05-11 00:49:32 UTC
There's a .cmo in the main package; I'm going to assume this is a syntax
extension or something which otherwise needs to be included, but I guess it's
possible that there's just a missing %exclude so I figured I'd ask.  Since you
know far more about ocaml than I, I'm not going to block on it.

* source files match upstream:
   9ab3808bb9f2f29bf12a80aac8ca722524b7d6e0e75a1f1a9be5058322be665a  
   pgocaml-1.1.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.
* 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-pgocaml-1.1-1.fc9.x86_64.rpm
   ocaml(Pa_pgsql) = 6c80230157384b5460e814494ec3bfb4
   ocaml(PGOCaml) = 0e086abf49f4f7dd885beda5a3f33347
   ocaml(PGOCaml_config) = 3a213460288e45681958941e81d1020c
   ocaml(Pgocaml_prof) = 2c46f9db17216c1e2caf9b3971ddd454
   ocaml-pgocaml = 1.1-1.fc9
  =
   libpcre.so.0()(64bit)
   ocaml(Arg) = 03e86a4154064ea900dc32c05f53e364
   ocaml(Array) = aa8e3cd5824f9bb40b93fcd38d0c95b5
   ocaml(Buffer) = f6cef633ea14963b84b79c4095c63dc3
   ocaml(Calendar) = bf2d533aa4bba61b1d373c5d237d52f0
   ocaml(Camlp4) = 1e46a133b8062d1571640f7fa36f32c4
   ocaml(Camlp4_config) = cb716b4361f43326c6ad695c7a1bb5c0
   ocaml(Camlp4_import) = 0134ca95282ef6821081c0c11802cea0
   ocaml(Char) = e98bc9c9e918a84b3c1a5a122d42fac1
   ocaml(Csv) = ae0aaf6ac1a19f8dfc45722e1b9f6616
   ocaml(Digest) = a5dd2d89492338578de12105e88c803f
   ocaml(Enum) = c16e527384c2b6d71d8b19582503f5f1
   ocaml(ExtList) = f0f729e9c5635a8010fc862a9c31fed4
   ocaml(ExtString) = a3a294a12ef901b2e812ef847ce8c233
   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(Option) = 77e72c890789e19a0e7444e00377d171
   ocaml(Parsing) = 62cca107e4e88af303516459a87c3e9a
   ocaml(Pcre) = 9cf03a45728e3cf29272c957775befee
   ocaml(Pervasives) = 8ba3d1faa24d659525c9025f41fd0c57
   ocaml(Printexc) = 82717999a586ede6925c0aa18d6562ac
   ocaml(Printf) = 5dbbf45a03b54e6dbfcf39178d0d6341
   ocaml(Queue) = caa3a209bfc63d23a30f573541a88fec
   ocaml(Random) = 9936935480b36bcbc716ee513f37876c
   ocaml(Set) = 7da14e671a035f12386ace3890018ef3
   ocaml(Str) = 56bb7ee61b2da83d42394686e3558fe4
   ocaml(Stream) = 21a833e12efd34ea0c87d8d9da959809
   ocaml(String) = 2c162ab314b2f0a2cfd22d471b2e21ab
   ocaml(Sys) = 0da495f5a80f31899139359805318f28
   ocaml(Unix) = 9a46a8db115947409e54686ada118599
   ocaml(runtime) = 3.10.1

  ocaml-pgocaml-devel-1.1-1.fc9.x86_64.rpm
   ocaml-pgocaml-devel = 1.1-1.fc9
  =
   ocaml-pgocaml = 1.1-1.fc9

* %check is necessarily disabled.
* owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files (except COPYING.LIB, ok)
* 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

APPROVED


Comment 11 Richard W.M. Jones 2008-05-12 09:57:47 UTC
Yes, this is a very neat syntax extension (I say this, even though I wrote it :-)
It lets you embed PostgreSQL statements directly into OCaml code, and I don't
just mean simple selects, but the entire PostgreSQL language.  All the variables,
type checking etc. in the main program get transparently and safely carried
across into the SQL parts, so it really adds full SQL into OCaml code.
Microsoft's "LINQ" is pathetic in comparison ...

CVS request coming up ...

Comment 12 Richard W.M. Jones 2008-05-12 09:59:28 UTC
New Package CVS Request
=======================
Package Name: ocaml-pgocaml
Short Description: OCaml library for type-safe access to PostgreSQL databases
Owners: rjones
Branches: F-8 F-9
InitialCC: rjones
Cvsextras Commits: yes

Comment 13 Kevin Fenzi 2008-05-12 16:48:25 UTC
cvs done.

Comment 14 Richard W.M. Jones 2008-05-12 19:41:35 UTC
Built for F-8, F-9, devel.