Frama-C Bug Tracking System - Frama-C
View Issue Details
0002335Frama-CKernelpublic2017-12-07 12:172017-12-29 12:03
normalminorhave not tried
closedunable to reproduce 
Linux x86_64Fedora26
0002335: opam upgrade/update failed to update frama-c
opam refuses to upgrade from Frama-C Phosphorus to Sulfur because of dependency issues with the legacy frama-c-base package.
(previous version of frama-c installed with opam) opam update opam upgrade
Workaround: opam remove frama-c-base
No tags attached.
Issue History
2017-12-07 12:17cdelordNew Issue
2017-12-07 15:56yakobowskiAssigned To => maroneze
2017-12-07 15:56yakobowskiStatusnew => assigned
2017-12-07 16:13maronezeNote Added: 0006479
2017-12-08 11:44cdelordNote Added: 0006480
2017-12-08 14:16maronezeNote Added: 0006482
2017-12-08 14:16maronezeStatusassigned => resolved
2017-12-08 14:16maronezeResolutionopen => unable to reproduce
2017-12-29 12:03signolesStatusresolved => closed

2017-12-07 16:13   
Thanks for the report. Indeed this is an issue, and due to the handling of constraints by OPAM, it is not obvious how to prevent this from happening. Even trying to reproduce it is not very easy, because OPAM easily gets confused by the constraints on Fedora, which does not have the aspcud solver. For instance, I tried upgrading from 20170501 to 20171101 on OCaml 4.03.0, and OPAM wants to downgrade my ocamlfind (something completely unrelated to the Frama-C packages, which do not impose any constraints on it). This step fails, which forces me to manually retry and install frama-c.20171101, but in the end it works. Could you please confirm if, with the mentioned workaround (manually removing frama-c-base), you were able to install the newest Frama-C? If so, then it is likely just an OPAM issue, and it cannot be resolved currently (OPAM 2.0 is supposed to fix this in the future). Otherwise, please include your OCaml version, so that we can take a look into it.
2017-12-08 11:44   
I confirm that after removing frama-c-base with "opam remove frama-c-base" I have installed the newest Frama-C (Sulfur-20171101) with "opam install frama-c". Here are the versions of opam and ocaml I use: $ opam --version 1.2.2 $ ocaml --version The OCaml toplevel, version 4.05.0
2017-12-08 14:16   
Ok, thanks for the version number and for confirming the workaround. I tried reproducing it on my machine, by installing frama-c.20170501 on an OCaml 4.05.0, and then installing frama-c.20171101, and it worked, even though OPAM downgraded my ocamlfind and did some weird stuff. I had already updated my OPAM, so I could not obtain the exact same OPAM state that you had. As I expected, this is very likely due to issues with constraint solving in OPAM and depends entirely on the current OPAM state in the machine, plus the available solvers, which means it is nearly impossible to reproduce and it's not fixable just by changing constraints in the Frama-C opam file. In the long term, hopefully the new version of OPAM will prevent this from happening, and short term your workaround works fine, so I'll close the issue. We'll consider adding the extra step to Frama-C's installation instructions, in case the new OPAM does not arrive soon enough.