For this specific bug,running "make tests" would have been enough (I just tested on my VM). For being defensive and having ./configure refuse newer version of dependencies, the m4 macros don't seem to provide version filtering (only API testing. Here the API was compatible, anyway that would have failed at build-time). Does ocamlfind even provide an easy way to get the version of a package?
But my feeling is that what happened really shouldn't happen -- I mean, a small, but API compatible change, that would cause the older version to break _but not the newer version, just by chance_, so that it could get unnoticed ? What are the odds of this happening _again_ ? ;) On using the -full archive, that can be a good thing, but it probably won't go well with the Debian/Ubuntu policies. Really, packaging scripts should run "make tests"; not sure if it's worth preventing upgrades in ./configure -- although that at least gives the opportunity to fix ./configure (and hopefully check that nothing is broken) by hand. Cheers, Louis > - Anil Madhavapeddy, 12/12/2014 15:32 - > Excellent detective work all around -- thanks for helping to pin this down, > Louis and Roberto. Ideally Ubuntu will just upgrade to OPAM 1.2 rather than > just fix Dose > > Louis -- can we do anything in OPAM 1.2 to ensure that packagers don't get > this mixed up in the future via a failing configure script, as David suggests? > In OpenBSD, I elected to import the -full archive rather than piecemeal > packaging of the libraries required to build OPAM. > > -anil > > > > On 11 Dec 2014, at 13:56, Roberto Di Cosmo <[email protected]> wrote: > > > > Just for completeness, here is the info I can confirm after checking with > > the Debian side: > > > > - in Debian Jessie and Sid, opam 1.2 is now correctly packaged together with > > aspcud 1.9 and dose 3.3 > > > > - unfortunately, the time-boxed development process of Ubuntu, with a > > release > > in mid-October, ended in picking up an inconsistent set of versions of our > > beloved packages from the Debian timeline; this is not something that only > > happen to us, it is intrinsically related to these imperfectly aligned > > processes, and I suppose the Ubuntu people will be quick to act on this, > > as they are probably used to this kind of events > > > > -- > > Roberto > > > > On Thu, Dec 11, 2014 at 10:40:57AM +0900, Louis Gesbert wrote: > >> It's indeed completely broken, that's bad news indeed. > >> > >> But I confirm my diagnostic: aspcud is not in cause, Dose is (well, or the > >> dose interface in opam 1.1, not trying to put the blame on anyone). The > >> problem happens even without aspcud installed. > >> > >> Here is the original report: https://github.com/ocaml/opam/issues/1683 > >> > >> Opam build got broken between 1.1.1-1 (trusty) and 1.1.1-1build3 (utopic) > >> because the dose version was upgraded from 3.1.3-7build1 to 3.2.2-2build1. > >> It's very painful when everything types and compiles after an upgrade, but > >> gets subtly broken :( > >> > >> I filed a bug at > >> https://bugs.launchpad.net/ubuntu/+source/opam/+bug/1401346 > >> Hope they can act on it quickly... > >> > >> Thanks for notifying and helping trace this! > >> Louis > >> > >>> - Anil Madhavapeddy, 10/12/2014 14:54 - > >>> I just reproduced it by following the referenced bug report. > >>> > >>> From a fresh Ubuntu 14.10, if I do: > >>> > >>> $ sudo apt-get install opam camlp4-extra aspcud > >>> $ opam init -a > >>> $ opam install mirage -y > >>> $ eval `opam config env` > >>> > >>> At this point some packages have been installed and mirage is installed. > >>> > >>> Now however, if I use mirage it invokes opam install again and packages > >>> are reinstalled as a duplicate. See below: > >>> > >>> opam install --yes conduit cow cowabloga crunch cstruct io-page lwt > >>> mirage-clock-unix mirage-conduit mirage-console mirage-fs-unix > >>> mirage-http mirage-net-unix mirage-types mirage-unix tcpip vchan > >>> [NOTE] Package mirage-types is already installed (current version is > >>> 2.1.0). > >>> [NOTE] Package lwt is already installed (current version is 2.4.6). > >>> [NOTE] Package io-page is already installed (current version is 1.1.1). > >>> [NOTE] Package cstruct is already installed (current version is 1.4.0). > >>> [NOTE] Package crunch is already installed (current version is 1.3.0). > >>> [WARNING] mirage-unix.2.1.0 references unknown package mirage-profile > >>> The following actions will be performed: > >>> - install ocamlfind.1.5.5 [required by cowabloga, crunch, mirage-fs-unix, > >>> mirage-http] > >>> - install base-no-ppx.base [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install camlp4.4.01.0 [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install base-threads.base [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install base-bigarray.base [required by cowabloga] > >>> - install base-unix.base [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install xmlm.1.2.0 [required by cowabloga] > >>> - install uutf.0.9.3 [required by cowabloga] > >>> - install stringext.1.1.0 [required by cowabloga, mirage-http] > >>> - install ssl.0.4.7 [required by cowabloga, mirage-fs-unix, mirage-http] > >>> - install re.1.2.2 [required by cowabloga, mirage-http] > >>> - install ounit.2.0.0 [required by cowabloga, mirage-fs-unix, mirage-http] > >>> - install hex.0.1.0 [required by cowabloga] > >>> - install cmdliner.0.9.5 [required by cowabloga, crunch, mirage-http] > >>> - install base64.1.0.0 [required by cowabloga, mirage-http] > >>> - install base-bytes.legacy [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install ulex.1.1 [required by cowabloga] > >>> - install type_conv.111.13.00 [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install optcomp.1.6 [required by cowabloga, mirage-fs-unix, mirage-http] > >>> - install omd.1.2.3 [required by cowabloga] > >>> - install jsonm.0.9.1 [required by cowabloga] > >>> - install lwt.2.4.6 [required by cowabloga, mirage-fs-unix, mirage-http] > >>> - install crunch.1.3.0 > >>> - install sexplib.111.25.00 [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install fieldslib.109.20.03 [required by cowabloga, mirage-http] > >>> - install dyntype.0.9.0 [required by cowabloga] > >>> - install ocplib-endian.0.7 [required by cowabloga, mirage-fs-unix, > >>> mirage-http] > >>> - install uri.1.7.2 [required by cowabloga, mirage-http] > >>> > >>> I've not managed to narrow it down further to a smaller test case, but > >>> the OPAMDEBUG > >>> gist is up at: https://gist.github.com/avsm/62e28b05e2b282ed5fbe > >>> > >>> Any inspiration from there from the CUDF interactions in the above gist? > >>> > >>> -anil > >>> > >>>> On 10 Dec 2014, at 01:15, Louis Gesbert <[email protected]> > >>>> wrote: > >>>> > >>>> I've been trying to reproduce the issue, but things seem fine, sort of: > >>>> > >>>> From what I could gather: > >>>> * trusty (14.04LTS) has 1.1 and aspcud 1.8, it works fine > >>>> * utopic (14.10, latest) has 1.1 and aspcud 1.9 > >>>> * vivid (15.04, unreleased) has OPAM 1.2, so it's ok. Recommends aspcud, > >>>> too > >>>> > >>>> Note that there should be no conflict that I know of between OPAM 1.1 > >>>> and aspcud 1.9 -- it's just that newer OPAM will benefit from the more > >>>> advanced criteria offered. Where we have been hitting problems on Debian > >>>> was by compiling with a different version of *Dose* [1] (which has a > >>>> much less standardised interface). > >>>> > >>>> There is still a known issue, though, the missing dependency on m4 that > >>>> will bite you as soon as you try to install ocamlfind [2] and which is > >>>> very badly reported with > >>>> ``` > >>>> ===== ERROR while installing ocamlfind.1.5.5 ===== > >>>> Internal error: > >>>> "ocamlfind": command not found. > >>>> ``` > >>>> > >>>> so it would still be nice if they could backport (so that there is a > >>>> better error) or recommend m4. > >>>> > >>>> Cheers, > >>>> Louis > >>>> > >>>> > >>>> [1] https://github.com/ocaml/opam/issues/1683 > >>>> [2] https://github.com/ocaml/opam/issues/1658 > >>>> > >>>> - Anil Madhavapeddy, 09/12/2014 11:16 - > >>>>> It looks like the latest Ubuntu has a completely broken OPAM out of the > >>>>> box since it ships with OPAM 1.1.1 and Aspcud 1.9 (which requires OPAM > >>>>> 1.2 due to a changed solver interface). > >>>>> > >>>>> This leads to issues such as this: > >>>>> https://github.com/mirage/mirage-skeleton/issues/59 > >>>>> > >>>>> Does anyone know how to get in touch with Ubuntu folk to request a > >>>>> backport of OPAM 1.2 to Ubuntu 14.10? > >>>>> > >>>>> -anil > >>>>> _______________________________________________ > >>>>> opam-devel mailing list > >>>>> [email protected] > >>>>> http://lists.ocaml.org/listinfo/opam-devel > >>>> _______________________________________________ > >>>> opam-devel mailing list > >>>> [email protected] > >>>> http://lists.ocaml.org/listinfo/opam-devel > >>>> > >>> > >>> _______________________________________________ > >>> opam-devel mailing list > >>> [email protected] > >>> http://lists.ocaml.org/listinfo/opam-devel > >> _______________________________________________ > >> opam-devel mailing list > >> [email protected] > >> http://lists.ocaml.org/listinfo/opam-devel > > >
_______________________________________________ opam-devel mailing list [email protected] http://lists.ocaml.org/listinfo/opam-devel
