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 ..)
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?
http://koji.fedoraproject.org/koji/taskinfo?taskID=64998
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
Package Change Request ====================== Package Name: ocaml-findlib New Branches: EL-4
Built in EL-4: http://buildsys.fedoraproject.org/logs/fedora-4-epel/38837-ocaml-findlib-1.2.1-5