Bug 240557 - Review Request: ocaml-findlib - Objective CAML package manager and build helper
Summary: Review Request: ocaml-findlib - Objective CAML package manager and build helper
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Xavier Lamien
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks: 240571 241473 241475 241476 241483 241486 241487
TreeView+ depends on / blocked
 
Reported: 2007-05-18 13:24 UTC by Richard W.M. Jones
Modified: 2008-04-25 10:32 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-07-12 18:00:59 UTC
Type: ---
Embargoed:
lxtnow: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Richard W.M. Jones 2007-05-18 13:24:55 UTC
Spec URL: http://annexia.org/tmp/ocaml-findlib.spec
SRPM URL: http://annexia.org/tmp/ocaml-findlib-1.1.2pl1-1.src.rpm
Description: 
Findlib is a fundamental OCaml tool for building OCaml packages.

(This is my first ever Fedora package, so go easy ..)

Comment 1 Nigel Jones 2007-05-18 23:17:33 UTC
Hi Richard, I'll do a prereview in a day or so, as it's your first package I'm
going to assume you don't have CVS access (I've set the review to block
FE-NEEDSPONSOR) so I won't be able to actually approve it.

Comment 2 Richard W.M. Jones 2007-05-19 11:21:39 UTC
I'm assuming you mean this CVS repo?
http://cvs.fedora.redhat.com/core.shtml

In any case, no I don't.

Comment 3 Nigel Jones 2007-05-19 11:24:43 UTC
I was really refering to http://fedoraproject.org/wiki/PackageMaintainers/Join

Comment 4 Richard W.M. Jones 2007-05-25 17:32:42 UTC
Updated SRPM and spec file:

http://annexia.org/tmp/ocaml-findlib-1.1.2pl1-2.fc6.src.rpm
http://annexia.org/tmp/ocaml-findlib.spec

Note! These depend on the ocaml find-requires and find-provides scripts.  See
here: https://www.redhat.com/archives/fedora-devel-list/2007-May/msg01693.html

Comment 5 Richard W.M. Jones 2007-05-26 11:57:12 UTC
Nigel Jones pointed out a missing builddep.  This version just adds that
builddep (m4):

http://annexia.org/tmp/ocaml-findlib-1.1.2pl1-3.src.rpm
http://annexia.org/tmp/ocaml-findlib.spec

Comment 6 Richard W.M. Jones 2007-06-02 14:13:19 UTC
Updated SRPM and spec file:

http://annexia.org/tmp/ocaml-findlib-1.1.2pl1-4.src.rpm
http://annexia.org/tmp/ocaml-findlib.spec

These handle bytecode-only architectures.

Comment 7 Xavier Lamien 2007-06-10 00:10:19 UTC
Nigel, do you still want to pre-review this request?
I'd like to start review other bug which depend on this one.

Comment 8 Nigel Jones 2007-06-10 00:46:09 UTC
(In reply to comment #7)
> Nigel, do you still want to pre-review this request?
> I'd like to start review other bug which depend on this one.

Richard needs to be sponsored, so you'll just have to wait until the Ocaml
Packaging guidelines are approved, and changes to the ocaml rpm (if needed are
made), until then the review of all the ocaml packages (and this one) are pretty
much useless, it's actually the reason why sponsors aren't currently interested
in the packages, they want to wait for the packaging committee to approve it.

But no, if you want to review them all, fine by me.

Comment 9 Richard W.M. Jones 2007-06-11 14:26:32 UTC
I'm going to try to present final packaging guidelines to the packaging
committee at the review meeting tomorrow (2007-06-12, 17:00 UTC on
#fedora-meeting).

Comment 10 Richard W.M. Jones 2007-06-11 19:47:58 UTC
Updated SRPM and spec file:

http://annexia.org/tmp/ocaml/ocaml-findlib-1.1.2pl1-5.src.rpm
http://annexia.org/tmp/ocaml/ocaml-findlib.spec

Updated to latest OCaml packaging guidelines.
Built against OCaml 3.10.


Comment 11 Xavier Lamien 2007-06-22 05:03:00 UTC
some comments:

 * Mock failed to build on F-7_x86_64:
--------------------------------------------------------------------
Welcome to findlib version 1.1.2pl1
Configuring core...
Testing threading model...
Testing DLLs...
Configuring libraries...
labltk: found
camlp4: found
Configuration for dbm written to site-lib-src/dbm/META
Configuration for dynlink written to site-lib-src/dynlink/META
Configuration for graphics written to site-lib-src/graphics/META
Configuration for num written to site-lib-src/num/META
Configuration for num-top written to site-lib-src/num-top/META
Configuration for str written to site-lib-src/str/META
Configuration for threads written to site-lib-src/threads/META
Configuration for unix written to site-lib-src/unix/META
Configuration for stdlib written to site-lib-src/stdlib/META
Configuration for bigarray written to site-lib-src/bigarray/META
Configuration for labltk written to site-lib-src/labltk/META
Configuration for camlp4 written to site-lib-src/camlp4/META
Detecting compiler arguments: FAILED
error: Bad exit status from /var/tmp/rpm-tmp.91630 (%build)
--------------------------------------------------------------------

 * Your release tag doesn't quite good.
 As your package contains pre-release it should be more like this:
 1.1.2-0.1.pl1 instead of 1.1.2pl1-1

 * typo: from %build stage
   -bindir %[_bindir} instead of -bindir %[_mandir}

   About -config %{_sysconfdir}/ocamlfind.conf, its provided by this package
   so how its can get this file from /etc for the build or "it is just to
mention where the installed ocaml-findlib package can get it ?"

 * INSTALL file have to be remove from %doc. You provide a pre-compiled package.

 * You don't have to exlcude files that you pasted on %files section of    
  subpackages, you can remove your %exclude lines from main package.
  They will automatically add to subpackage.

 * You should add Guide-html subdirectory to docdir.



Comment 12 Xavier Lamien 2007-06-26 22:54:52 UTC
ping !

Comment 13 Richard W.M. Jones 2007-06-27 03:56:14 UTC
http://annexia.org/tmp/ocaml/ocaml-findlib-1.1.2pl1-6.src.rpm
http://annexia.org/tmp/ocaml/ocaml-findlib.spec

> Mock failed to build on F-7_x86_64:

This is the first time I've tried "mock".  It turned out there was
a missing BuildRequires (ncurses-devel), which I fixed.  However I
wasn't able to get mock to install ocaml 3.10.0 (which is required)
because that RPM isn't in Fedora yet.  What I'd like it to do is
to create the chroot environment, get all the packages, then install
my ocaml 3.10.0 package before starting the build.

The updated ocaml 3.10.0 package is here: http://math.ifi.unizh.ch/fedora/tmp/
or see bug 239004.

Anyhow, if you can work out how to do that, then the updated
SRPM should work.

> Your release tag doesn't quite good.
> As your package contains pre-release it should be more like this:
> 1.1.2-0.1.pl1 instead of 1.1.2pl1-1

I don't understand what this means.  The upstream package is
called 1.1.2pl1, so I just added a release number.

> typo: from %build stage
> -bindir %{_bindir} instead of -bindir %{_mandir}

Fixed.  This didn't seem to have any effect, but it's obviously
wrong.

> About -config %{_sysconfdir}/ocamlfind.conf, its provided by this package

The configure argument apparently tells the package where to
create/install that file, not where to find it.

I also made the changes to %doc.


Comment 14 Xavier Lamien 2007-06-27 04:20:19 UTC
> Anyhow, if you can work out how to do that, then the updated
> SRPM should work.

well, currently i can do this by uploaded ocaml-3.10.0 to my personnal
repository and run mock with my .cfg modified to match with my repository.
So, i will catch it.

> I don't understand what this means.  The upstream package is
> called 1.1.2pl1, so I just added a release number.

see this naming guidelines for more details:
http://fedoraproject.org/wiki/Packaging/NamingGuidelines?action=show&redirect=PackageNamingGuidelines#head-d97a3f40b6dd9d2288206ac9bd8f1bf9b791b22a

Comment 15 Jason Tibbitts 2007-06-30 00:47:16 UTC
Just a note that there's nothing wrong with 1.1.2pl1 as a version as long as you
trust that upstream will maintain a reasonable ordering for further updates.  If
the next releases will be 1.1.2pl2, 1.1.2pl3, 1.1.3, etc. then you're OK.

The section of the guidelines which Xavier linked to is for prerelease packages;
this is a post-release update.  (Specifically, look for "Properly ordered simple
versions".)

Is there any chance that we'll see an updated ocaml package in rawhide soon, so
that these tickets can start to move forward?

Comment 16 Richard W.M. Jones 2007-07-02 09:31:59 UTC
I added a note to bug 239004.

Comment 17 Jason Tibbitts 2007-07-04 04:40:26 UTC
It looks like all the dependencies are in, but this is failing to build for me.

The build log is rather long and I don't understand most of it, but here are a
few odd things I noticed:

ocamlc -o extract_args -custom str.cma extract_args.ml
+ tools/extract_args/extract_args -o src/findlib/ocaml_args.ml ocamlc ocamlcp
ocamlmktop ocamlopt ocamldep ocamldoc
sh: ocamldoc: command not found
+ cat src/findlib/ocaml_args.ml
[massive snippage of needless output]
Configuring libraries...
labltk: found
camlp4: not present
Configuration for dbm written to site-lib-src/dbm/META
Configuration for dynlink written to site-lib-src/dynlink/META
[...]
+ make all
for p in findlib findlib-toolbox; do ( cd src/$p; make all ); done
make[1]: Entering directory `/builddir/build/BUILD/findlib-1.1.2pl1/src/findlib'
Makefile:129: depend: No such file or directory
ocamllex fl_meta.mll
22 states, 392 transitions, table size 1700 bytes
camlp4 pa_o.cmo pa_op.cmo pr_o.cmo -- -impl fl_metascanner.src -o fl_metascanner.ml
make[1]: camlp4: Command not found
make[1]: *** [fl_metascanner.ml] Error 127
make[1]: Leaving directory `/builddir/build/BUILD/findlib-1.1.2pl1/src/findlib'
make[1]: Entering directory
`/builddir/build/BUILD/findlib-1.1.2pl1/src/findlib-toolbox'
ocamlc -o make_wizard -I +labltk -I ../findlib unix.cma str.cma labltk.cma \
                findlib.cma make_wizard.ml
File "make_wizard.ml", line 1288, characters 6-12:
Warning Y: unused variable update.
File "make_wizard.ml", line 497, characters 5-25:
Unbound value Fl_split.in_words_ws
make[1]: *** [make_wizard] Error 2
make[1]: Leaving directory
`/builddir/build/BUILD/findlib-1.1.2pl1/src/findlib-toolbox'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.46804 (%build)

I note that ocaml-camlp4 was indeed installed; I've no idea why it doesn't seem
to be found.

Comment 18 Richard W.M. Jones 2007-07-04 15:54:19 UTC
How do I see the full build log?

Comment 19 Jason Tibbitts 2007-07-04 16:13:55 UTC
Well, I can build it again and attach the log if you'd like.

Comment 20 Xavier Lamien 2007-07-04 19:24:51 UTC
Jason, 
Did you build it from FC-6 ?

Currently ocaml-3.10 which's require for ocaml-findlib failed to build on
f-7_i386|x86_64

Comment 21 Jason Tibbitts 2007-07-04 19:42:48 UTC
I always build with current rawhide.

Comment 22 Xavier Lamien 2007-07-05 00:13:04 UTC
Here're a fixed spec and srpm files which make mock fine to build.

linked here: http://download.tuxfamily.org/lxtnow/extras/ocaml-findlib

Comment 23 Richard W.M. Jones 2007-07-05 10:50:18 UTC
Yes, you're right, it was the BuildRequires which needed to be fixed.
The package in comment 22 builds and works for me.

Comment 24 Xavier Lamien 2007-07-07 00:46:36 UTC
Well,

Starting Review...

Comment 25 Xavier Lamien 2007-07-08 03:08:54 UTC
=== REQUIRED ITEMS ===

 [ OK ] Package successfully compiles and builds on at least one supported arch.
 [ OK ] Mock built on x86_64 [Devel]
 [ OK ] Package is named according to the Package Naming and Ocaml Guidelines.
 [ OK ] Spec file name match the packaging naming Ocaml guidelines.
 [ Ok ] Package meets the Packaging Guidelines.
 [ OK ] Package is not relocatable.
 [ OK ] Buildroot is correct
 [ OK ] Package is licensed with an open-source compatible license.
 [ OK ] License field in the package spec file matches the actual license.
     License type: GPL
 [ OK ] Spec file is legible and written in American English.
 [ OK ] Package is not known to require ExcludeArch.
 [ OK ] All build dependencies are listed in BuildRequires.
 [ OK ] The spec file handles locales properly.
 [ OK ] ldconfig called in %post and %postun if required.
 [ OK ] Package must own all directories that it creates.
 [ OK ] Package requires other packages for directories it uses.
 [ OK ] Package does not contain duplicates in %files.
 [ OK ] Permissions on files are set properly.
 [ OK ] Package has a %clean section.
 [ OK ] Package consistently uses macros.
 [ OK ] Package contains code, or permissable content.
 [ SKIP ] Large documentation files are in a -doc subpackage, if required.
 [ OK ] Package uses nothing in %doc for runtime.
 [ SKIP ] Header files in -devel subpackage, if present.
 [ SKIP ] Static libraries in -devel subpackage, if present.
 [ SKIP ] Package requires pkgconfig, if .pc files are present.
 [ SKIP ] Development .so files in -devel subpackage, if present.
 [ CHECK ] Fully versioned dependency in subpackages, if present.
 [ OK ] Package does not contain any libtool archives (.la).
 [ SKIP ] Package contains a properly installed %{name}.desktop file.
 [ OK ] Package does not own files or directories owned by other packages

According to OCaml Packaging Guideline:
 
 [ OK ] OCaml modules / libs should be named ocaml-foo.
 [ OK ] The spec file should still build bytecode libraries and binaries.
 [ OK ] Should Test if the native compiler is present.
 [ OK ] main package should contain files matching all files which mentioned in 
        OCaml guideline.
 [ OK ] -devel sub-package Should contains all files which're mentioned in OCaml
    
       guidelines.

 [ CHECK ] Requires:
rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(VersionedDependencies) <= 3.0.3-1
Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit)
libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) ocaml(Array) =
aa8e3cd5824f9bb40b93fcd38d0c95b5 ocaml(Big_int) =
992d682669507b99e689b5a2188c0b9a ocaml(Buffer) =
f6cef633ea14963b84b79c4095c63dc3 ocaml(Char) = e98bc9c9e918a84b3c1a5a122d42fac1
ocaml(Consistbl) = 47f9cdffda6ba2de99c8e9f0c0c1b34d ocaml(Digest) =
a5dd2d89492338578de12105e88c803f ocaml(Env) = 6d0215253b3fde95601c34944cacb607
ocaml(Filename) = 633a1e7f590ff5e95124293dbef3b476 ocaml(Format) =
35fe566f7a37d8991a5c822bd1463949 ocaml(Hashtbl) =
083f2c94b44ff4e0b3220aaea6a783b4 ocaml(Ident) = ba1acc56fc179d27bd55278cbc2abf40
ocaml(Lexing) = b1793496643444d3762dd42bebe2cfe3 ocaml(List) =
da1ce9168f0408ff26158af757456948 ocaml(Location) =
eed044ad1204a633caad97bdd9048f8c ocaml(Longident) =
46fb8aad4fb2c12a0f301b02d8139f07 ocaml(Map) = dedde7683d54ae7db1eb97cc868dd047
ocaml(Nat) = 0ea20dd1cc4533fd519b5542a89feb87 ocaml(Num) =
cfa2705c9c6d6f5a56b83f91fc630d2a ocaml(Obj) = 5cfae708052c692ea39d23ed930fd64d
ocaml(Outcometree) = 6674fbd870cb2522aca4d851f3559202 ocaml(Parsetree) =
b59a1a6771867acd824bde52e6512b5c ocaml(Path) = d8bc8e7163bac3a9a0a93f1cb07092d1
ocaml(Pervasives) = 8ba3d1faa24d659525c9025f41fd0c57 ocaml(Primitive) =
43a2770aed8fbcc536ab39d717fe9a7b ocaml(Printf) =
5dbbf45a03b54e6dbfcf39178d0d6341 ocaml(Ratio) = 7067125cce206dd2bbe93918ba7bdfe9
ocaml(Set) = 7da14e671a035f12386ace3890018ef3 ocaml(Sort) =
089a51dd8ddc078e57acf2f80b7c06f6 ocaml(Stream) =
21a833e12efd34ea0c87d8d9da959809 ocaml(String) =
2c162ab314b2f0a2cfd22d471b2e21ab ocaml(Sys) = 0da495f5a80f31899139359805318f28
ocaml(Topdirs) = 2d07b01227af22b60aee18498198c35e ocaml(Toploop) =
ead8879d71c4d5137fe5100fdd682a0b ocaml(Types) = c2ef3369acfd38dafc8294786964051c
ocaml(Warnings) = abcb1589615da86f20f475b0ed3bbabc ocaml = 3.10.0-1.fc8


== Rpmlint output: ==

 [ Check ] From rpm:
                                                                               
                                        
W: ocaml-findlib devel-file-in-non-devel-package /usr/lib64/ocaml/findlib/findlib.a
W: ocaml-findlib devel-file-in-non-devel-package
/usr/lib64/ocaml/num-top/num_top_printers.cmi
W: ocaml-findlib devel-file-in-non-devel-package
/usr/lib64/ocaml/num-top/num_top.cmi
W: ocaml-findlib devel-file-in-non-devel-package
/usr/lib64/ocaml/findlib/topfind.cmi
W: ocaml-findlib devel-file-in-non-devel-package
/usr/lib64/ocaml/findlib/findlib.cmi
W: ocaml-findlib devel-file-in-non-devel-package
/usr/lib64/ocaml/findlib/fl_package_base.cmi
W: ocaml-findlib devel-file-in-non-devel-package
/usr/lib64/ocaml/findlib/fl_metascanner.cmi
W: ocaml-findlib unstripped-binary-or-object /usr/bin/ocamlfind
	
  [ Check ] From SRPM :

E: ocaml-findlib configure-without-libdir-spec
W: ocaml-findlib mixed-use-of-spaces-and-tabs (spaces: line 4, tab: line 51)


=== Issues ===

From RPM file:
According to the OCaml packaging guideloine, these Warning can be ignored.

From SRPM file:
Currently Upstream's Configure file doesn't provides --libdir option.
On the other hand its provides its own command line to locate and get libraries
directory. And doesn't affect the work of the build.
So, This error can be ignored.

the warning, easy fix ;).


Note that, this review has been done with the fixed SRPM which i proposed in
[comment #22]

Comment 26 Richard W.M. Jones 2007-07-12 09:45:20 UTC
So ... is there anything else which needs to be done on this?  I don't
see it in Rawhide yet.

Comment 27 Xavier Lamien 2007-07-12 12:42:02 UTC
Just fix the mixed-use-of-space-and-tab ;)
but it's harmless.
You can do it before import it in cvs.

I saw that you requested sponsor membership in cvsextras group.
Have you already found a sponsor ? If do, remove FE-NEEDSPONSOR block.

Comment 28 Xavier Lamien 2007-07-12 12:43:14 UTC
s|If so|If so|g

Comment 29 Richard W.M. Jones 2007-07-12 13:10:07 UTC
http://www.annexia.org/tmp/ocaml/ocaml-findlib-1.1.2pl1-8.src.rpm
http://www.annexia.org/tmp/ocaml/ocaml-findlib.spec

This has two changes:

(1) Tabs expanded to spaces.
(2) I readded the conditional excludes in the main package.

I am still looking for a sponsor (and TBH have no idea how to go
about getting one).

Comment 30 Xavier Lamien 2007-07-12 13:32:20 UTC
Okay, 
I'll sponsor you so.

Comment 31 Xavier Lamien 2007-07-12 14:22:12 UTC
it seem that someelse sponsored you (jwilson).
So,
Follow http://fedoraproject.org/wiki/CVSAdminProcedure for the CVS Request
procedure.

Comment 32 Xavier Lamien 2007-07-12 14:23:05 UTC
S/someelse/someone else

Comment 33 Richard W.M. Jones 2007-07-12 14:44:34 UTC
New Package CVS Request
=======================
Package Name: ocaml-findlib
Short Description: Objective CAML package manager and build helper
Owners: rjones
Branches: F-7
InitialCC: rjones,lxtnow

Comment 34 Kevin Fenzi 2007-07-12 16:48:51 UTC
cvs done.

Comment 35 Richard W.M. Jones 2007-07-12 17:39:42 UTC
It fails on ppc64, not unexpectedly.

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

So can I just fix this by adding ExcludeArch: ppc64 and rebuild, or do
I need to get approval again?

Comment 36 Richard W.M. Jones 2007-07-12 18:00:59 UTC
http://koji.fedoraproject.org/koji/taskinfo?taskID=64998

Comment 37 Jason Tibbitts 2007-07-12 18:28:27 UTC
You don't need to get additional approvals, but any time you add an ExcludeArch:
you meed to file the corresponding ticket to track the issue.  Be sure to block
the proper tracker tickets as well (probably FE-ExcludeArch-ppc64 in this case).

Comment 38 Richard W.M. Jones 2007-07-12 19:28:13 UTC
OK done as bug 248033.

BTW, ppc64 ocaml package can easily be built.  It will lack
ocamlopt, but all my packages can build correctly without
ocamlopt.

Comment 39 Richard W.M. Jones 2007-11-07 15:43:08 UTC
Package Change Request
======================
Package Name: ocaml-findlib
New Branches: EL-5


Comment 40 Kevin Fenzi 2007-11-07 19:53:13 UTC
cvs done.

Comment 41 Richard W.M. Jones 2008-04-23 20:56:57 UTC
Package Change Request
======================
Package Name: ocaml-findlib
New Branches: EL-4

Comment 42 Kevin Fenzi 2008-04-24 15:32:33 UTC
cvs done.

Comment 43 Richard W.M. Jones 2008-04-25 10:32:17 UTC
Built in EL-4:

http://buildsys.fedoraproject.org/logs/fedora-4-epel/38837-ocaml-findlib-1.2.1-5


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