Bug 240557
| Summary: | Review Request: ocaml-findlib - Objective CAML package manager and build helper | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Richard W.M. Jones <rjones> |
| Component: | Package Review | Assignee: | Xavier Lamien <lxtnow> |
| Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Package Reviews List <fedora-package-review> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | rawhide | CC: | dev, lxtnow |
| Target Milestone: | --- | Flags: | lxtnow:
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: | 2007-07-12 18:00:59 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: | |||
| Bug Depends On: | |||
| Bug Blocks: | 240571, 241473, 241475, 241476, 241483, 241486, 241487 | ||
|
Description
Richard W.M. Jones
2007-05-18 13:24:55 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. I'm assuming you mean this CVS repo? http://cvs.fedora.redhat.com/core.shtml In any case, no I don't. I was really refering to http://fedoraproject.org/wiki/PackageMaintainers/Join 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 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 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. Nigel, do you still want to pre-review this request? I'd like to start review other bug which depend on this one. (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. 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). 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. 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.
ping ! 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. > 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 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? I added a note to bug 239004. 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.
How do I see the full build log? Well, I can build it again and attach the log if you'd like. 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 I always build with current rawhide. Here're a fixed spec and srpm files which make mock fine to build. linked here: http://download.tuxfamily.org/lxtnow/extras/ocaml-findlib Yes, you're right, it was the BuildRequires which needed to be fixed. The package in comment 22 builds and works for me. Well, Starting Review... === 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]
So ... is there anything else which needs to be done on this? I don't see it in Rawhide yet. 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. s|If so|If so|g 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). Okay, I'll sponsor you so. it seem that someelse sponsored you (jwilson). So, Follow http://fedoraproject.org/wiki/CVSAdminProcedure for the CVS Request procedure. S/someelse/someone else 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 cvs done. 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? 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). 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. Package Change Request ====================== Package Name: ocaml-findlib New Branches: EL-5 cvs done. Package Change Request ====================== Package Name: ocaml-findlib New Branches: EL-4 cvs done. |