ocaml / opam

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
https://opam.ocaml.org
Other
1.23k stars 351 forks source link

opam install `opam list -short` doesnt filter uninstallable packages #228

Closed avsm closed 11 years ago

avsm commented 11 years ago

See this with a system 3.12.1 compiler:


and add this in your ~/.profile
+ [ system != system ]
+ [ all = all ]
+ /var/lib/jenkins/opam-bin/OCamlPro/bin/opam --root /b/pkg_opro_remote/compiler_system,packages_all list -short
+ packages=aifad alphaCaml alt-ergo ancient annexlib annot ansicolor ANSITerminal archimedes async async_core async_extra async_unix atd atdgen base-bigarray base-threads base-unix batteries bench benchmark bigbro bin_prot biniou bisect bitstring bolt cache cairo cairo1 calendar caml2html camlbz2 CamlGI camlidl camlimages camlmix camlp5 camltemplate camlzip camomile cduce cduce_ws cfg cil cmdliner cmigrep cohttp comparelib conf-libev conf-ocaml coq core core_extended cow cppo crunch crypt cryptgps cryptokit cryptokit-sha512 cstruct csv dbm deriving-ocsigen dns dum dyntype dypgen easy-format eliom extlib facile fftw-ocaml fieldslib fileutils format frama-c FrontC getopt gettext github gpr gsl-ocaml headache hevea hweak hydro imagemagick javalib js_of_ocaml jsondiff jsonm kaputt lablgl lablgtk lacaml lambda-term lbfgs ledit liquidsoap lwt lwt-zmq mancoosi-cudf mancoosi-dose melt menhir mikmatch mirage mirage-fs mirage-net missinglib mldonkey mlgmp mlpost netamqp oasis obrowser obus ocaml-arg ocaml-data-notation ocaml-expat ocaml-expect ocaml-extunix ocaml-glpk ocaml-http ocaml-indent ocaml-inifiles ocaml-lua ocaml-mad ocaml-makefile ocaml-markdown ocaml-mysql ocaml-posix-resource ocaml-radixtree ocaml-sqlexpr ocaml-taglib ocaml-text ocaml-xdg-basedir ocaml-xml-rpc ocaml-zmq ocamldap ocamldbi ocamldsort ocamlfind ocamlgraph ocamlgsl ocamlify ocamlmod ocamlnet ocamlrss ocamlscript ocamlsdl ocamlviz ocamlweb ocp-build ocp-indent ocsigenserver ocurl odb-server odepack omake opam opam2web optimization1d orakuda orm ospec ott ounit pa_monad_custom pa_ounit parmap passwdgen pcap pcre-ocaml pgocaml pipebang planck planets plasma pomap postgres postgresql-ocaml pxp quickcheck re react regstab release res root1d rpc safepass sawja schoca sexplib sha shcaml sonet spotinstall spotlib sqlite3-ocaml ssl syslog tophide treeprint tryocaml type_conv typehashlib tyxml uint ulex ulib unison uri utop uucd uuidm uunf uutf variantslib wdialog webdav weberizer wget why why3 wyrd xenstore xml-light xmlm xstr xstrp4 yojson zarith zed zenon 
+ /var/lib/jenkins/opam-bin/OCamlPro/bin/opam --yes --root /b/pkg_opro_remote/compiler_system,packages_all install aifad alphaCaml alt-ergo ancient annexlib annot ansicolor ANSITerminal archimedes async async_core async_extra async_unix atd atdgen base-bigarray base-threads base-unix batteries bench benchmark bigbro bin_prot biniou bisect bitstring bolt cache cairo cairo1 calendar caml2html camlbz2 CamlGI camlidl camlimages camlmix camlp5 camltemplate camlzip camomile cduce cduce_ws cfg cil cmdliner cmigrep cohttp comparelib conf-libev conf-ocaml coq core core_extended cow cppo crunch crypt cryptgps cryptokit cryptokit-sha512 cstruct csv dbm deriving-ocsigen dns dum dyntype dypgen easy-format eliom extlib facile fftw-ocaml fieldslib fileutils format frama-c FrontC getopt gettext github gpr gsl-ocaml headache hevea hweak hydro imagemagick javalib js_of_ocaml jsondiff jsonm kaputt lablgl lablgtk lacaml lambda-term lbfgs ledit liquidsoap lwt lwt-zmq mancoosi-cudf mancoosi-dose melt menhir mikmatch mirage mirage-fs mirage-net missinglib mldonkey mlgmp mlpost netamqp oasis obrowser obus ocaml-arg ocaml-data-notation ocaml-expat ocaml-expect ocaml-extunix ocaml-glpk ocaml-http ocaml-indent ocaml-inifiles ocaml-lua ocaml-mad ocaml-makefile ocaml-markdown ocaml-mysql ocaml-posix-resource ocaml-radixtree ocaml-sqlexpr ocaml-taglib ocaml-text ocaml-xdg-basedir ocaml-xml-rpc ocaml-zmq ocamldap ocamldbi ocamldsort ocamlfind ocamlgraph ocamlgsl ocamlify ocamlmod ocamlnet ocamlrss ocamlscript ocamlsdl ocamlviz ocamlweb ocp-build ocp-indent ocsigenserver ocurl odb-server odepack omake opam opam2web optimization1d orakuda orm ospec ott ounit pa_monad_custom pa_ounit parmap passwdgen pcap pcre-ocaml pgocaml pipebang planck planets plasma pomap postgres postgresql-ocaml pxp quickcheck re react regstab release res root1d rpc safepass sawja schoca sexplib sha shcaml sonet spotinstall spotlib sqlite3-ocaml ssl syslog tophide treeprint tryocaml type_conv typehashlib tyxml uint ulex ulib unison uri utop uucd uuidm uunf uutf variantslib wdialog webdav weberizer wget why why3 wyrd xenstore xml-light xmlm xstr xstrp4 yojson zarith zed zenon
Package base-bigarray is already installed (current version is base)
Package base-threads is already installed (current version is base)
Package base-unix is already installed (current version is base)
Package conf-ocaml is already installed (current version is system)
No solution has been found:
 - Missing orakuda.1.0.0.
 + orakuda.1.0.0

on a 4.00.1 installation its different:


+ [ all = all ]
+ /var/lib/jenkins/opam-bin/OCamlPro/bin/opam --root /b/pkg_opro_remote/compiler_4.00.1,packages_all list -short
+ packages=aifad alphaCaml alt-ergo ancient annexlib annot ansicolor ANSITerminal async async_core async_extra async_unix atd atdgen base-bigarray base-threads base-unix batteries bench benchmark bigbro bin_prot biniou bisect bitstring bolt cache cairo cairo1 calendar camlbz2 CamlGI camlidl camlimages camlmix camlp5 camltemplate camlzip camomile cduce cfg cil cmdliner cmigrep cohttp comparelib conf-libev conf-ocaml coq core core_extended cow cppo crunch crypt cryptgps cryptokit cryptokit-sha512 cstruct csv dbm deriving-ocsigen dns dum dyntype dypgen easy-format eliom extlib fftw-ocaml fieldslib fileutils format FrontC getopt gettext github gpr gsl-ocaml headache hevea hweak hydro imagemagick javalib js_of_ocaml jsondiff jsonm kaputt lablgl lablgtk lacaml lambda-term ledit lwt lwt-zmq mancoosi-cudf mancoosi-dose melt menhir mikmatch mirage mirage-fs mirage-net missinglib mlgmp mlpost netamqp oasis obus ocaml-arg ocaml-data-notation ocaml-expat ocaml-expect ocaml-extunix ocaml-glpk ocaml-http ocaml-indent ocaml-inifiles ocaml-lua ocaml-mad ocaml-makefile ocaml-markdown ocaml-mysql ocaml-posix-resource ocaml-radixtree ocaml-sqlexpr ocaml-taglib ocaml-text ocaml-xdg-basedir ocaml-xml-rpc ocaml-zmq ocamldbi ocamldsort ocamlfind ocamlgraph ocamlgsl ocamlify ocamlmod ocamlnet ocamlrss ocamlscript ocamlsdl ocamlviz ocamlweb ocp-build ocp-indent ocsigenserver ocurl odb-server omake opam opam2web optimization1d orakuda orm ospec ott ounit pa_monad_custom pa_ounit parmap passwdgen pcap pcre-ocaml pgocaml pipebang planck plasma pomap postgres postgresql-ocaml pxp quickcheck re react regstab release res root1d rpc safepass sawja schoca sexplib sha sonet spotinstall spotlib sqlite3-ocaml ssl syslog treeprint tryocaml type_conv typehashlib tyxml uint ulex ulib unison uri utop uucd uuidm uunf uutf variantslib wdialog webdav weberizer wget why why3 xenstore xml-light xmlm xstr xstrp4 yojson zarith zed zenon 
+ /var/lib/jenkins/opam-bin/OCamlPro/bin/opam --yes --root /b/pkg_opro_remote/compiler_4.00.1,packages_all install aifad alphaCaml alt-ergo ancient annexlib annot ansicolor ANSITerminal async async_core async_extra async_unix atd atdgen base-bigarray base-threads base-unix batteries bench benchmark bigbro bin_prot biniou bisect bitstring bolt cache cairo cairo1 calendar camlbz2 CamlGI camlidl camlimages camlmix camlp5 camltemplate camlzip camomile cduce cfg cil cmdliner cmigrep cohttp comparelib conf-libev conf-ocaml coq core core_extended cow cppo crunch crypt cryptgps cryptokit cryptokit-sha512 cstruct csv dbm deriving-ocsigen dns dum dyntype dypgen easy-format eliom extlib fftw-ocaml fieldslib fileutils format FrontC getopt gettext github gpr gsl-ocaml headache hevea hweak hydro imagemagick javalib js_of_ocaml jsondiff jsonm kaputt lablgl lablgtk lacaml lambda-term ledit lwt lwt-zmq mancoosi-cudf mancoosi-dose melt menhir mikmatch mirage mirage-fs mirage-net missinglib mlgmp mlpost netamqp oasis obus ocaml-arg ocaml-data-notation ocaml-expat ocaml-expect ocaml-extunix ocaml-glpk ocaml-http ocaml-indent ocaml-inifiles ocaml-lua ocaml-mad ocaml-makefile ocaml-markdown ocaml-mysql ocaml-posix-resource ocaml-radixtree ocaml-sqlexpr ocaml-taglib ocaml-text ocaml-xdg-basedir ocaml-xml-rpc ocaml-zmq ocamldbi ocamldsort ocamlfind ocamlgraph ocamlgsl ocamlify ocamlmod ocamlnet ocamlrss ocamlscript ocamlsdl ocamlviz ocamlweb ocp-build ocp-indent ocsigenserver ocurl odb-server omake opam opam2web optimization1d orakuda orm ospec ott ounit pa_monad_custom pa_ounit parmap passwdgen pcap pcre-ocaml pgocaml pipebang planck plasma pomap postgres postgresql-ocaml pxp quickcheck re react regstab release res root1d rpc safepass sawja schoca sexplib sha sonet spotinstall spotlib sqlite3-ocaml ssl syslog treeprint tryocaml type_conv typehashlib tyxml uint ulex ulib unison uri utop uucd uuidm uunf uutf variantslib wdialog webdav weberizer wget why why3 xenstore xml-light xmlm xstr xstrp4 yojson zarith zed zenon
Package base-bigarray is already installed (current version is base)
Package base-threads is already installed (current version is base)
Package base-unix is already installed (current version is base)
Package conf-ocaml is already installed (current version is 4.00.1)
[WARNING] unknown package "frama-c"

Note that in both cases, opam install does nothing but returns a successful exit code 0 (which is probably wrong?)

samoht commented 11 years ago

I've added a compiler constraint to orakuda; are you sure nothing is installed in the second case ? The warning message is not supposed to stop the execution of opam.

avsm commented 11 years ago

The problem here is that there is no valid solution. For example, if any two packages require the old and new type_conv, this will fail to install anything.

samoht commented 11 years ago

Hum, not sure how we can solve this properly then ... I guess we should try to iterate over all existing packages and try to install/remove them, but that can become very ... long!

avsm commented 11 years ago

I've manually created a matrix job with the output of opam list -short, which will either destroy the Jenkins machine or give us some useful results :)

avsm commented 11 years ago

Ok, a manual sync to Jenkins works ok for now, so I'm closing this issue as I can't see how we can make any progress in the short term.