Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ocamlPackages treewide: strictDeps all packages #162385

Merged

Conversation

ulrikstrid
Copy link
Member

@ulrikstrid ulrikstrid commented Mar 1, 2022

Motivation for this change

Followup on #161344. In addition to moving dependencies I've tried to add strictDeps = true; to all ocamlPackages in the tree.

A later commit also added it to buildDunePackage so that it's the norm in the future.

I've tried making the commit history be meaingful so that we can merge it without squashing and it should also be buildable at each commit.

alt-ergo and ocaml-r are also fixed as part of this PR but could be moved out to their own PRs if that's wanted.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@ulrikstrid ulrikstrid changed the title Ulrikstrid/ocamlpackages strict deps v2 ocamlPackages treewide: strictDeps all packages Mar 1, 2022
@ulrikstrid
Copy link
Member Author

@symphorien this PR includes a hold-over fix until #161575 is merged and implements basically what that does but only for buildDunePackage. This change should be removed when your PR is merged.

@ulrikstrid
Copy link
Member Author

930 packages updated: abella bibtex2html camlp4 camlp5 coccinelle coq coq coq coq coq coq coq coq coq coq coq coq coq coq8.13-aac-tactics coq8.13-addition-chains coq8.13-autosubst coq8.13-bignums coq8.13-category-theory coq8.13-ceres coq8.13-cheerios coq8.13-color coq8.13-compcert coq8.13-compcert coq8.13-coq-bits coq8.13-coq-ext-lib coq8.13-coq-record-update coq8.13-CoqEAL coq8.13-coqhammer coq8.13-coqprime coq8.13-coqtail-math coq8.13-coquelicot coq8.13-corn coq8.13-deriving coq8.13-dpdgraph coq8.13-elpi coq8.13-equations coq8.13-extructures coq8.13-flocq coq8.13-fourcolor coq8.13-gaia coq8.13-gaia-hydras coq8.13-gappalib coq8.13-goedel coq8.13-graph-theory coq8.13-hierarchy-builder coq8.13-hydra-battles coq8.13-InfSeqExt coq8.13-InteractionTrees coq8.13-interval coq8.13-iris coq8.13-itauto coq8.13-LibHyps coq8.13-math-classes coq8.13-mathcomp-algebra coq8.13-mathcomp-all coq8.13-mathcomp-character coq8.13-mathcomp-field coq8.13-mathcomp-fingroup coq8.13-mathcomp-solvable coq8.13-mathcomp-ssreflect coq8.13-mathcomp1.14-abel coq8.13-mathcomp1.14-analysis coq8.13-mathcomp1.14-bigenough coq8.13-mathcomp1.14-finmap coq8.13-mathcomp1.14-multinomials coq8.13-mathcomp1.14-real-closed coq8.13-mathcomp1.14-tarjan coq8.13-mathcomp1.14-word coq8.13-mathcomp1.14-zify coq8.13-metalib coq8.13-odd-order coq8.13-paco coq8.13-paramcoq coq8.13-parsec coq8.13-pocklington coq8.13-QuickChick coq8.13-reglang coq8.13-relation-algebra coq8.13-semantics coq8.13-serapi coq8.13-simple-io coq8.13-smpl coq8.13-stdpp coq8.13-StructTact coq8.13-tlc coq8.13-topology coq8.13-verdi coq8.13-VST coq8.13-zorns-lemma cryptoverif cubicle cvehound diffoscope eff eliom flow frama-c fstar glsurf haxe haxe haxe haxe haxe hevea hol_light-unstable hxcpp hxcs hxjava hxnodejs iprover lablgtk ledit leo2 libbap-master libguestfs libguestfs liquidsoap-full llpp megam mldonkey monotone-viz obuild ocaml-comparelib ocaml-config-file ocaml-curses ocaml-herelib ocaml-llvm ocaml-macaque ocaml-oasis ocaml-otfm ocaml-pipebang ocaml-react ocaml-type_conv ocaml-uucd ocaml4.07.1-ocamlformat ocaml4.07.1-ocamlformat ocaml4.07.1-ocamlformat ocaml4.07.1-ocamlformat ocaml4.07.1-ocamlformat ocaml4.07.1-ocamlformat ocaml4.10.2-google-drive-ocamlfuse ocaml4.10.2-ocamlformat ocaml4.10.2-ocamlformat ocaml4.10.2-ocamlformat ocaml4.10.2-ocamlformat ocaml4.12.0-accessor ocaml4.12.0-accessor_async ocaml4.12.0-accessor_base ocaml4.12.0-accessor_core ocaml4.12.0-acgtk ocaml4.12.0-afl-persistent ocaml4.12.0-alcotest ocaml4.12.0-alcotest-lwt ocaml4.12.0-alcotest-mirage ocaml4.12.0-alt-ergo ocaml4.12.0-anders ocaml4.12.0-angstrom ocaml4.12.0-angstrom-async ocaml4.12.0-angstrom-lwt-unix ocaml4.12.0-angstrom-unix ocaml4.12.0-ANSITerminal ocaml4.12.0-arp ocaml4.12.0-asn1-combinators ocaml4.12.0-astring ocaml4.12.0-async ocaml4.12.0-async_extra ocaml4.12.0-async_find ocaml4.12.0-async_inotify ocaml4.12.0-async_interactive ocaml4.12.0-async_js ocaml4.12.0-async_kernel ocaml4.12.0-async_rpc_kernel ocaml4.12.0-async_sendfile ocaml4.12.0-async_shell ocaml4.12.0-async_smtp ocaml4.12.0-async_ssl ocaml4.12.0-async_unix ocaml4.12.0-atd ocaml4.12.0-atdgen ocaml4.12.0-awa ocaml4.12.0-awa-lwt ocaml4.12.0-awa-mirage ocaml4.12.0-bap ocaml4.12.0-base ocaml4.12.0-base64 ocaml4.12.0-base_bigstring ocaml4.12.0-base_quickcheck ocaml4.12.0-batteries ocaml4.12.0-beluga ocaml4.12.0-benchmark ocaml4.12.0-bheap ocaml4.12.0-bigarray-compat ocaml4.12.0-bigarray-overlap ocaml4.12.0-bignum ocaml4.12.0-bigstring ocaml4.12.0-bigstringaf ocaml4.12.0-bin_prot ocaml4.12.0-biocaml ocaml4.12.0-bisect_ppx ocaml4.12.0-bistro-unstable ocaml4.12.0-bitstring ocaml4.12.0-bls12 ocaml4.12.0-bls12 ocaml4.12.0-bls12 ocaml4.12.0-bls12 ocaml4.12.0-bonsai ocaml4.12.0-bos ocaml4.12.0-ca-certs ocaml4.12.0-ca-certs-nss ocaml4.12.0-cairo2 ocaml4.12.0-callipyge ocaml4.12.0-camlimages ocaml4.12.0-camomile ocaml4.12.0-caqti ocaml4.12.0-caqti-async ocaml4.12.0-caqti-driver-mariadb ocaml4.12.0-caqti-driver-postgresql ocaml4.12.0-caqti-driver-sqlite3 ocaml4.12.0-caqti-dynload ocaml4.12.0-caqti-lwt ocaml4.12.0-caqti-type-calendar ocaml4.12.0-carton ocaml4.12.0-carton-git ocaml4.12.0-carton-lwt ocaml4.12.0-cfstream ocaml4.12.0-chacha ocaml4.12.0-charInfo_width ocaml4.12.0-checkseum ocaml4.12.0-cinaps ocaml4.12.0-cmdliner ocaml4.12.0-cohttp ocaml4.12.0-cohttp-async ocaml4.12.0-cohttp-lwt ocaml4.12.0-cohttp-lwt-unix ocaml4.12.0-cohttp-mirage ocaml4.12.0-coin ocaml4.12.0-color ocaml4.12.0-comby ocaml4.12.0-conduit ocaml4.12.0-conduit-async ocaml4.12.0-conduit-lwt ocaml4.12.0-conduit-lwt-unix ocaml4.12.0-conduit-mirage ocaml4.12.0-console ocaml4.12.0-containers ocaml4.12.0-containers-data ocaml4.12.0-cooltt-unstable ocaml4.12.0-core ocaml4.12.0-core_bench ocaml4.12.0-core_extended ocaml4.12.0-core_kernel ocaml4.12.0-cow ocaml4.12.0-cppo ocaml4.12.0-cppo_ocamlbuild ocaml4.12.0-cpu ocaml4.12.0-cpuid ocaml4.12.0-crowbar ocaml4.12.0-crunch ocaml4.12.0-crunch ocaml4.12.0-cryptokit ocaml4.12.0-csexp ocaml4.12.0-cstruct ocaml4.12.0-cstruct-async ocaml4.12.0-cstruct-lwt ocaml4.12.0-cstruct-sexp ocaml4.12.0-cstruct-unix ocaml4.12.0-csv ocaml4.12.0-csv-lwt ocaml4.12.0-csvfields ocaml4.12.0-csvtool ocaml4.12.0-ctypes ocaml4.12.0-cudf ocaml4.12.0-curly ocaml4.12.0-dap ocaml4.12.0-data-encoding ocaml4.12.0-dbf ocaml4.12.0-decompress ocaml4.12.0-delimited_parsing ocaml4.12.0-diet ocaml4.12.0-digestif ocaml4.12.0-dir ocaml4.12.0-directories ocaml4.12.0-dispatch ocaml4.12.0-dns ocaml4.12.0-dns-certify ocaml4.12.0-dns-cli ocaml4.12.0-dns-client ocaml4.12.0-dns-mirage ocaml4.12.0-dns-resolver ocaml4.12.0-dns-server ocaml4.12.0-dns-stub ocaml4.12.0-dns-tsig ocaml4.12.0-dolmen ocaml4.12.0-domain-name ocaml4.12.0-dose3 ocaml4.12.0-dot-merlin-reader ocaml4.12.0-dtoa ocaml4.12.0-duff ocaml4.12.0-dune-action-plugin ocaml4.12.0-dune-build-info ocaml4.12.0-dune-configurator ocaml4.12.0-dune-glob ocaml4.12.0-dune-private-libs ocaml4.12.0-dune-release ocaml4.12.0-dune-site ocaml4.12.0-duration ocaml4.12.0-earley ocaml4.12.0-earlybird ocaml4.12.0-ecaml ocaml4.12.0-eigen ocaml4.12.0-either ocaml4.12.0-elpi ocaml4.12.0-email_message ocaml4.12.0-emile ocaml4.12.0-encore ocaml4.12.0-eqaf ocaml4.12.0-erm_xmpp ocaml4.12.0-ethernet ocaml4.12.0-expat ocaml4.12.0-expect_test_helpers_async ocaml4.12.0-expect_test_helpers_core ocaml4.12.0-extlib ocaml4.12.0-extlib ocaml4.12.0-ezjsonm ocaml4.12.0-ezresto ocaml4.12.0-ezresto-directory ocaml4.12.0-ezxmlm ocaml4.12.0-faraday ocaml4.12.0-faraday-async ocaml4.12.0-faraday-lwt ocaml4.12.0-faraday-lwt-unix ocaml4.12.0-farfadet ocaml4.12.0-fdkaac ocaml4.12.0-ff ocaml4.12.0-ff-pbt ocaml4.12.0-ff-sig ocaml4.12.0-fiat-p256 ocaml4.12.0-fieldslib ocaml4.12.0-file-context-printer ocaml4.12.0-fileutils ocaml4.12.0-fix ocaml4.12.0-flitter-unstable ocaml4.12.0-fmt ocaml4.12.0-fp ocaml4.12.0-fpath ocaml4.12.0-functoria ocaml4.12.0-functoria-runtime ocaml4.12.0-gapi-ocaml ocaml4.12.0-gen ocaml4.12.0-gettext ocaml4.12.0-gettext-camomile ocaml4.12.0-gettext-stub ocaml4.12.0-gg ocaml4.12.0-git ocaml4.12.0-git-cohttp ocaml4.12.0-git-cohttp-unix ocaml4.12.0-git-paf ocaml4.12.0-git-unix ocaml4.12.0-gluten ocaml4.12.0-gluten-lwt ocaml4.12.0-gluten-lwt-unix ocaml4.12.0-gmap ocaml4.12.0-gnuplot ocaml4.12.0-graphics ocaml4.12.0-graphql ocaml4.12.0-graphql-cohttp ocaml4.12.0-graphql-lwt ocaml4.12.0-graphql_parser ocaml4.12.0-graphql_ppx ocaml4.12.0-gsl ocaml4.12.0-h2 ocaml4.12.0-hack_parallel ocaml4.12.0-hacl-star ocaml4.12.0-hacl-star-raw ocaml4.12.0-hacl_x25519 ocaml4.12.0-hashcons ocaml4.12.0-hex ocaml4.12.0-hidapi ocaml4.12.0-higher_kinded ocaml4.12.0-higlo ocaml4.12.0-hkdf ocaml4.12.0-hmap ocaml4.12.0-hpack ocaml4.12.0-httpaf ocaml4.12.0-hxd ocaml4.12.0-imagelib ocaml4.12.0-incremental ocaml4.12.0-incr_dom ocaml4.12.0-incr_map ocaml4.12.0-incr_select ocaml4.12.0-index ocaml4.12.0-inifiles ocaml4.12.0-inotify ocaml4.12.0-integers ocaml4.12.0-io-page ocaml4.12.0-io-page-unix ocaml4.12.0-ipaddr ocaml4.12.0-ipaddr-cstruct ocaml4.12.0-ipaddr-sexp ocaml4.12.0-iri ocaml4.12.0-irmin ocaml4.12.0-irmin-chunk ocaml4.12.0-irmin-containers ocaml4.12.0-irmin-fs ocaml4.12.0-irmin-git ocaml4.12.0-irmin-graphql ocaml4.12.0-irmin-http ocaml4.12.0-irmin-layers ocaml4.12.0-irmin-mirage ocaml4.12.0-irmin-mirage-git ocaml4.12.0-irmin-mirage-graphql ocaml4.12.0-irmin-pack ocaml4.12.0-irmin-test ocaml4.12.0-irmin-unix ocaml4.12.0-irmin-watcher ocaml4.12.0-iter ocaml4.12.0-jackline-unstable ocaml4.12.0-javalib ocaml4.12.0-jingoo ocaml4.12.0-json-data-encoding ocaml4.12.0-json-data-encoding-bson ocaml4.12.0-jsonm ocaml4.12.0-jsonrpc ocaml4.12.0-jst-config ocaml4.12.0-js_of_ocaml ocaml4.12.0-js_of_ocaml-compiler ocaml4.12.0-js_of_ocaml-lwt ocaml4.12.0-js_of_ocaml-ocamlbuild ocaml4.12.0-js_of_ocaml-ppx ocaml4.12.0-js_of_ocaml-ppx_deriving_json ocaml4.12.0-js_of_ocaml-tyxml ocaml4.12.0-junit ocaml4.12.0-junit_alcotest ocaml4.12.0-junit_ounit ocaml4.12.0-jwto ocaml4.12.0-kafka ocaml4.12.0-kafka_lwt ocaml4.12.0-ke ocaml4.12.0-lablgl ocaml4.12.0-lablgtk-extras ocaml4.12.0-lablgtk3 ocaml4.12.0-lablgtk3-gtkspell3 ocaml4.12.0-lablgtk3-sourceview3 ocaml4.12.0-labltk ocaml4.12.0-lacaml ocaml4.12.0-lambda-term ocaml4.12.0-lambdasoup ocaml4.12.0-lens ocaml4.12.0-letsencrypt ocaml4.12.0-letsencrypt-app ocaml4.12.0-letsencrypt-dns ocaml4.12.0-ligo ocaml4.12.0-linenoise ocaml4.12.0-logs ocaml4.12.0-lru ocaml4.12.0-lsp ocaml4.12.0-lua-ml ocaml4.12.0-lustre-v6 ocaml4.12.0-lutils ocaml4.12.0-luv ocaml4.12.0-lwt ocaml4.12.0-lwt-canceler ocaml4.12.0-lwt-dllist ocaml4.12.0-lwt-exit ocaml4.12.0-lwt-watcher ocaml4.12.0-lwt_log ocaml4.12.0-lwt_ppx ocaml4.12.0-lwt_react ocaml4.12.0-lwt_ssl ocaml4.12.0-macaddr ocaml4.12.0-macaddr-cstruct ocaml4.12.0-macaddr-sexp ocaml4.12.0-magic-mime ocaml4.12.0-mariadb ocaml4.12.0-markup ocaml4.12.0-mccs ocaml4.12.0-mdx ocaml4.12.0-menhir ocaml4.12.0-menhirLib ocaml4.12.0-menhirSdk ocaml4.12.0-merlin ocaml4.12.0-merlin-extend ocamlPackages.metrics (0.2.0 → 0.4.0) ocamlPackages.metrics-influx (0.2.0 → 0.4.0) ocamlPackages.metrics-lwt (0.2.0 → 0.4.0) ocamlPackages.metrics-unix (0.2.0 → 0.4.0) ocaml4.12.0-mew ocaml4.12.0-mew_vi ocaml4.12.0-mimic ocaml4.12.0-minisat ocaml4.12.0-mirage ocaml4.12.0-mirage-block ocaml4.12.0-mirage-block-combinators ocaml4.12.0-mirage-block-ramdisk ocaml4.12.0-mirage-block-unix ocaml4.12.0-mirage-bootvar-unix ocaml4.12.0-mirage-bootvar-xen ocaml4.12.0-mirage-channel ocaml4.12.0-mirage-clock ocaml4.12.0-mirage-clock-freestanding ocaml4.12.0-mirage-clock-unix ocaml4.12.0-mirage-console ocaml4.12.0-mirage-console-unix ocaml4.12.0-mirage-crypto ocaml4.12.0-mirage-crypto-ec ocaml4.12.0-mirage-crypto-pk ocaml4.12.0-mirage-crypto-rng ocaml4.12.0-mirage-crypto-rng-async ocaml4.12.0-mirage-crypto-rng-mirage ocaml4.12.0-mirage-device ocaml4.12.0-mirage-flow ocaml4.12.0-mirage-flow-combinators ocaml4.12.0-mirage-flow-unix ocaml4.12.0-mirage-fs ocaml4.12.0-mirage-kv ocaml4.12.0-mirage-logs ocaml4.12.0-mirage-nat ocaml4.12.0-mirage-net ocaml4.12.0-mirage-net-xen ocaml4.12.0-mirage-profile ocaml4.12.0-mirage-protocols ocaml4.12.0-mirage-random ocaml4.12.0-mirage-random-test ocaml4.12.0-mirage-runtime ocaml4.12.0-mirage-stack ocaml4.12.0-mirage-time ocaml4.12.0-mirage-time-unix ocaml4.12.0-mirage-types ocaml4.12.0-mirage-types-lwt ocaml4.12.0-mirage-unix ocaml4.12.0-mirage-vnetif ocaml4.12.0-mirage-xen ocaml4.12.0-mmap ocaml4.12.0-mparser ocaml4.12.0-mparser-pcre ocaml4.12.0-mrmime ocaml4.12.0-mtime ocaml4.12.0-mustache ocaml4.12.0-netchannel ocaml4.12.0-nocrypto ocaml4.12.0-noise ocaml4.12.0-notty ocaml4.12.0-npy ocaml4.12.0-obelisk ocaml4.12.0-ocaml-freestanding ocaml4.12.0-ocaml-lsp-server ocaml4.12.0-ocaml-migrate-parsetree ocaml4.12.0-ocaml-migrate-parsetree ocaml4.12.0-ocaml-monadic ocaml4.12.0-ocaml-print-intf ocaml4.12.0-ocaml-protoc ocaml4.12.0-ocaml-r ocaml4.12.0-ocaml-recovery-parser ocaml4.12.0-ocaml-sat-solvers ocaml4.12.0-ocaml-syntax-shims ocaml4.12.0-ocaml-top ocaml4.12.0-ocaml-version ocaml4.12.0-ocamlformat ocaml4.12.0-ocamlformat ocaml4.12.0-ocamlformat ocaml4.12.0-ocamlformat ocaml4.12.0-ocamlformat ocaml4.12.0-ocamlformat ocaml4.12.0-ocamlformat-rpc-lib ocaml4.12.0-ocamlgraph ocaml4.12.0-ocamlgraph_gtk ocaml4.12.0-ocamlnet ocaml4.12.0-ocb-stubblr ocaml4.12.0-ocf ocaml4.12.0-ocf_ppx ocaml4.12.0-ocp-build ocaml4.12.0-ocp-indent ocaml4.12.0-ocp-index ocaml4.12.0-ocp-ocamlres ocaml4.12.0-ocplib-endian ocaml4.12.0-ocplib-json-typed ocaml4.12.0-ocplib-json-typed-browser ocaml4.12.0-ocplib-json-typed-bson ocaml4.12.0-ocsigen-deriving ocaml4.12.0-ocsigen-start ocaml4.12.0-ocsigen-toolkit ocaml4.12.0-ocsigenserver ocaml4.12.0-octavius ocaml4.12.0-odate ocaml4.12.0-odoc ocaml4.12.0-odoc-parser ocaml4.12.0-opam-core ocaml4.12.0-opam-file-format ocaml4.12.0-opam-format ocaml4.12.0-opam-installer ocaml4.12.0-opam-repository ocaml4.12.0-opam-state ocaml4.12.0-opium ocaml4.12.0-opium_kernel ocaml4.12.0-opti ocaml4.12.0-optint ocaml4.12.0-orpie ocaml4.12.0-otoml ocaml4.12.0-otr ocaml4.12.0-ounit ocaml4.12.0-ounit2 ocaml4.12.0-owl ocaml4.12.0-owl-base ocaml4.12.0-paf ocaml4.12.0-paf-cohttp ocaml4.12.0-paf-le ocaml4.12.0-parany ocaml4.12.0-parmap ocaml4.12.0-parse-argv ocaml4.12.0-parsexp ocaml4.12.0-pastel ocaml4.12.0-pastel-console ocaml4.12.0-patdiff ocaml4.12.0-path_glob ocaml4.12.0-patience_diff ocaml4.12.0-pbkdf ocaml4.12.0-pcap-format ocaml4.12.0-pcre ocaml4.12.0-pecu ocaml4.12.0-pgocaml ocaml4.12.0-pgocaml_ppx ocaml4.12.0-pgsolver ocaml4.12.0-phylogenetics ocaml4.12.0-piaf ocaml4.12.0-piqi ocaml4.12.0-piqi-ocaml ocaml4.12.0-posix-base ocaml4.12.0-posix-socket ocaml4.12.0-posix-types ocaml4.12.0-posixat ocaml4.12.0-postgresql ocaml4.12.0-pp ocaml4.12.0-pprint ocaml4.12.0-ppxlib ocaml4.12.0-ppx_accessor ocaml4.12.0-ppx_assert ocaml4.12.0-ppx_bap ocaml4.12.0-ppx_base ocaml4.12.0-ppx_bench ocaml4.12.0-ppx_bin_prot ocaml4.12.0-ppx_bitstring ocaml4.12.0-ppx_blob ocaml4.12.0-ppx_cold ocaml4.12.0-ppx_compare ocaml4.12.0-ppx_cstruct ocaml4.12.0-ppx_cstubs ocaml4.12.0-ppx_custom_printf ocaml4.12.0-ppx_derivers ocaml4.12.0-ppx_deriving ocaml4.12.0-ppx_deriving_cmdliner ocaml4.12.0-ppx_deriving_protobuf ocaml4.12.0-ppx_deriving_rpc ocaml4.12.0-ppx_deriving_yaml ocaml4.12.0-ppx_deriving_yojson ocaml4.12.0-ppx_enumerate ocaml4.12.0-ppx_expect ocaml4.12.0-ppx_fields_conv ocaml4.12.0-ppx_fixed_literal ocaml4.12.0-ppx_gen_rec ocaml4.12.0-ppx_hash ocaml4.12.0-ppx_here ocaml4.12.0-ppx_import ocaml4.12.0-ppx_inline_test ocaml4.12.0-ppx_irmin ocaml4.12.0-ppx_jane ocaml4.12.0-ppx_js_style ocaml4.12.0-ppx_let ocaml4.12.0-ppx_log ocaml4.12.0-ppx_module_timer ocaml4.12.0-ppx_optcomp ocaml4.12.0-ppx_optional ocaml4.12.0-ppx_pattern_bind ocaml4.12.0-ppx_pipebang ocaml4.12.0-ppx_python ocaml4.12.0-ppx_repr ocaml4.12.0-ppx_sexp_conv ocaml4.12.0-ppx_sexp_message ocaml4.12.0-ppx_sexp_value ocaml4.12.0-ppx_stable ocaml4.12.0-ppx_string ocaml4.12.0-ppx_tools ocaml4.12.0-ppx_tools_versioned ocaml4.12.0-ppx_typerep_conv ocaml4.12.0-ppx_variants_conv ocaml4.12.0-ppx_yojson_conv_lib ocaml4.12.0-prettym ocaml4.12.0-printbox ocaml4.12.0-printbox-text ocaml4.12.0-progress ocaml4.12.0-protocol_version_header ocaml4.12.0-psmt2-frontend ocaml4.12.0-psq ocaml4.12.0-ptime ocaml4.12.0-ptmap ocaml4.12.0-ptset ocaml4.12.0-pythonlib ocaml4.12.0-qcheck ocaml4.12.0-qcheck-alcotest ocaml4.12.0-qcheck-core ocaml4.12.0-qcheck-ounit ocaml4.12.0-qcheck-rely ocaml4.12.0-qtest ocaml4.12.0-randomconv ocaml4.12.0-rdbg ocaml4.12.0-re ocaml4.12.0-re2 ocaml4.12.0-re2_stable ocaml4.12.0-reactiveData ocaml4.12.0-reason ocaml4.12.0-refmterr ocaml4.12.0-rely ocaml4.12.0-rely-junit-reporter ocaml4.12.0-repr ocaml4.12.0-resource-pooling ocaml4.12.0-resource_cache ocaml4.12.0-resto ocaml4.12.0-resto-acl ocaml4.12.0-resto-cohttp ocaml4.12.0-resto-cohttp-client ocaml4.12.0-resto-cohttp-self-serving-client ocaml4.12.0-resto-cohttp-server ocaml4.12.0-resto-directory ocaml4.12.0-resto-json ocaml4.12.0-result ocaml4.12.0-rfc7748 ocaml4.12.0-ringo ocaml4.12.0-ringo-lwt ocaml4.12.0-rope ocaml4.12.0-rosetta ocaml4.12.0-routes ocaml4.12.0-rpclib ocaml4.12.0-rpclib-lwt ocaml4.12.0-rresult ocaml4.12.0-safepass ocaml4.12.0-sawja ocaml4.12.0-secp256k1 ocaml4.12.0-secp256k1-internal ocaml4.12.0-sedlex ocaml4.12.0-sedlex ocaml4.12.0-semaphore-compat ocaml4.12.0-sexp ocaml4.12.0-sexplib ocaml4.12.0-sexp_diff_kernel ocaml4.12.0-sexp_macro ocaml4.12.0-sexp_pretty ocaml4.12.0-sexp_select ocaml4.12.0-sha ocaml4.12.0-shared-memory-ring ocaml4.12.0-shared-memory-ring-lwt ocaml4.12.0-shell ocaml4.12.0-shexp ocaml4.12.0-sodium ocaml4.12.0-soupault ocaml4.12.0-spawn ocaml4.12.0-spelll ocaml4.12.0-splay_tree ocaml4.12.0-splittable_random ocaml4.12.0-sqlite3 ocaml4.12.0-srt ocaml4.12.0-ssl ocaml4.12.0-stdint ocaml4.12.0-stdio ocaml4.12.0-stdlib-shims ocaml4.12.0-stog ocaml4.12.0-stringext ocaml4.12.0-syslog-message ocaml4.12.0-tar ocaml4.12.0-tar-unix ocaml4.12.0-tcpip ocaml4.12.0-tcslib ocaml4.12.0-terminal ocaml4.12.0-terminal_size ocaml4.12.0-textutils ocaml4.12.0-tezos ocaml4.12.0-tezos ocaml4.12.0-tezos-base ocaml4.12.0-tezos-base-test-helpers ocaml4.12.0-tezos-clic ocaml4.12.0-tezos-client ocaml4.12.0-tezos-client ocaml4.12.0-tezos-client-base ocaml4.12.0-tezos-context ocaml4.12.0-tezos-crypto ocaml4.12.0-tezos-embedded-protocol ocaml4.12.0-tezos-embedded-protocol-demo-noops ocaml4.12.0-tezos-error-monad ocaml4.12.0-tezos-event-logging ocaml4.12.0-tezos-event-logging-test-helpers ocaml4.12.0-tezos-hacl-glue ocaml4.12.0-tezos-hacl-glue-unix ocaml4.12.0-tezos-legacy-store ocaml4.12.0-tezos-lmdb ocaml4.12.0-tezos-lwt-result-stdlib ocaml4.12.0-tezos-micheline ocaml4.12.0-tezos-mockup-proxy ocaml4.12.0-tezos-mockup-registration ocaml4.12.0-tezos-p2p ocaml4.12.0-tezos-p2p-services ocaml4.12.0-tezos-protocol ocaml4.12.0-tezos-protocol ocaml4.12.0-tezos-protocol ocaml4.12.0-tezos-protocol ocaml4.12.0-tezos-protocol-alpha ocaml4.12.0-tezos-protocol-compiler ocaml4.12.0-tezos-protocol-demo-noops ocaml4.12.0-tezos-protocol-environment ocaml4.12.0-tezos-protocol-environment-packer ocaml4.12.0-tezos-protocol-environment-sigs ocaml4.12.0-tezos-protocol-environment-structs ocaml4.12.0-tezos-protocol-plugin ocaml4.12.0-tezos-protocol-plugin ocaml4.12.0-tezos-protocol-plugin-alpha ocaml4.12.0-tezos-protocol-updater ocaml4.12.0-tezos-proxy ocaml4.12.0-tezos-requester ocaml4.12.0-tezos-rpc ocaml4.12.0-tezos-rpc-http ocaml4.12.0-tezos-rpc-http-client ocaml4.12.0-tezos-rpc-http-client-unix ocaml4.12.0-tezos-sapling ocaml4.12.0-tezos-shell ocaml4.12.0-tezos-shell-context ocaml4.12.0-tezos-shell-services ocaml4.12.0-tezos-shell-services-test-helpers ocaml4.12.0-tezos-signer-backends ocaml4.12.0-tezos-signer-services ocaml4.12.0-tezos-stdlib ocaml4.12.0-tezos-stdlib-unix ocaml4.12.0-tezos-store ocaml4.12.0-tezos-test-helpers ocaml4.12.0-tezos-validation ocaml4.12.0-tezos-version ocaml4.12.0-tezos-workers ocaml4.12.0-timezone ocaml4.12.0-time_now ocaml4.12.0-tls ocaml4.12.0-tls-async ocaml4.12.0-tls-mirage ocaml4.12.0-toml ocaml4.12.0-topkg ocaml4.12.0-topological_sort ocaml4.12.0-torch ocaml4.12.0-trie ocaml4.12.0-tsdl ocaml4.12.0-tsort ocaml4.12.0-tuntap ocaml4.12.0-typerep ocaml4.12.0-tyxml ocaml4.12.0-uchar ocaml4.12.0-uecc ocaml4.12.0-ulex ocaml4.12.0-unstrctrd ocaml4.12.0-uri ocaml4.12.0-uri-sexp ocaml4.12.0-utop ocaml4.12.0-uucp ocaml4.12.0-uunf ocaml4.12.0-uuseg ocaml4.12.0-uutf ocaml4.12.0-uuuu ocaml4.12.0-variantslib ocaml4.12.0-vcaml ocaml4.12.0-vchan ocaml4.12.0-vector ocaml4.12.0-vg ocaml4.12.0-virtual_dom ocaml4.12.0-visitors ocaml4.12.0-vlq ocaml4.12.0-wayland ocaml4.12.0-wayland-proxy-virtwl-unstable ocaml4.12.0-webbrowser ocaml4.12.0-webmachine ocaml4.12.0-wodan-irmin-unstable ocaml4.12.0-wodan-unix-unstable ocaml4.12.0-wodan-unstable ocaml4.12.0-wtf8 ocaml4.12.0-x509 ocaml4.12.0-xenstore ocaml4.12.0-xenstore-tool ocaml4.12.0-xenstore_transport ocaml4.12.0-xmlm ocaml4.12.0-xtmpl ocaml4.12.0-xtmpl_ppx ocaml4.12.0-yaml ocaml4.12.0-yaml-sexp ocaml4.12.0-yojson ocaml4.12.0-yuscii ocaml4.12.0-zed ocaml4.12.0-zmq ocaml4.12.0-zmq-lwt ocaml4.12.0-zstandard ocamlify ocamlmod ocamlscript ocsigen-i18n ocurl omake opa opaline opam opam ott pdfsandwich prooftree proverif pyml python3.10-bap python3.10-guestfs python3.9-bap python3.9-guestfs satallax satysfi sawjap sks-unstable statverif teyjus tlaps unison usync uuidm vagrant virt-top why3 wyrd
1 package removed: ocaml4.12.0-metrics-mirage (†0.2.0)
2 packages failed to build: ligo ocamlPackages.torch
920 packages built: abella acgtk alt-ergo anders beluga bibtex2html coccinelle comby compcert coq coqPackages.Cheerios coqPackages.CoLoR coqPackages.ITree coqPackages.InfSeqExt coqPackages.LibHyps coqPackages.QuickChick coqPackages.StructTact coqPackages.VST coqPackages.Verdi coqPackages.aac-tactics coqPackages.addition-chains coqPackages.autosubst coqPackages.bignums coqPackages.category-theory coqPackages.ceres coqPackages.compcert coqPackages.coq-bits coqPackages.coq-elpi coqPackages.coq-ext-lib coqPackages.coq-record-update coqPackages.coqeal coqPackages.coqhammer coqPackages.coqprime coqPackages.coqtail-math coqPackages.coquelicot coqPackages.corn coqPackages.deriving coqPackages.dpdgraph coqPackages.equations coqPackages.extructures coqPackages.flocq coqPackages.fourcolor coqPackages.gaia coqPackages.gaia-hydras coqPackages.gappalib coqPackages.goedel coqPackages.graph-theory coqPackages.hierarchy-builder coqPackages.hydra-battles coqPackages.interval coqPackages.iris coqPackages.itauto coqPackages.math-classes coqPackages.mathcomp coqPackages.mathcomp-abel coqPackages.mathcomp-algebra coqPackages.mathcomp-analysis coqPackages.mathcomp-bigenough coqPackages.mathcomp-character coqPackages.mathcomp-field coqPackages.mathcomp-fingroup coqPackages.mathcomp-finmap coqPackages.mathcomp-real-closed coqPackages.mathcomp-solvable coqPackages.mathcomp-ssreflect coqPackages.mathcomp-tarjan coqPackages.mathcomp-word coqPackages.mathcomp-zify coqPackages.metalib coqPackages.multinomials coqPackages.odd-order coqPackages.paco coqPackages.paramcoq coqPackages.parsec coqPackages.pocklington coqPackages.reglang coqPackages.relation-algebra coqPackages.semantics coqPackages.serapi coqPackages.simple-io coqPackages.smpl coqPackages.stdpp coqPackages.tlc coqPackages.topology coqPackages.zorns-lemma coq_8_10 coq_8_11 coq_8_12 coq_8_14 coq_8_15 coq_8_5 coq_8_6 coq_8_7 coq_8_8 coq_8_9 cryptoverif csvtool cubicle cvehound diffoscope dot-merlin-reader dune-release eff flitter flow framac fstar glsurf google-drive-ocamlfuse haxe haxePackages.hxcpp haxePackages.hxcs haxePackages.hxjava haxePackages.hxnodejs_4 haxe_3_2 haxe_3_4 haxe_4_0 haxe_4_1 hevea hol_light iprover jackline ledit leo2 libbap libguestfs libguestfs-with-appliance liquidsoap llpp megam mldonkey monotoneViz obelisk obuild ocaml-crunch ocaml-top ocamlPackages.accessor ocamlPackages.accessor_base ocamlPackages.afl-persistent ocamlPackages.alcotest ocamlPackages.alcotest-lwt ocamlPackages.alcotest-mirage ocamlPackages.angstrom ocamlPackages.angstrom-async ocamlPackages.angstrom-lwt-unix ocamlPackages.angstrom-unix ocamlPackages.ansiterminal ocamlPackages.arp ocamlPackages.asn1-combinators ocamlPackages.astring ocamlPackages.async ocamlPackages.async_extra ocamlPackages.async_find ocamlPackages.async_inotify ocamlPackages.async_interactive ocamlPackages.async_js ocamlPackages.async_kernel ocamlPackages.async_rpc_kernel ocamlPackages.async_sendfile ocamlPackages.async_shell ocamlPackages.async_smtp ocamlPackages.async_ssl ocamlPackages.async_unix ocamlPackages.atd ocamlPackages.atdgen ocamlPackages.awa ocamlPackages.awa-lwt ocamlPackages.awa-mirage ocamlPackages.bap ocamlPackages.base ocamlPackages.base64 ocamlPackages.base_bigstring ocamlPackages.base_quickcheck ocamlPackages.batteries ocamlPackages.benchmark ocamlPackages.bheap ocamlPackages.bigarray-compat ocamlPackages.bigarray-overlap ocamlPackages.bignum ocamlPackages.bigstring ocamlPackages.bigstringaf ocamlPackages.bin_prot ocamlPackages.biocaml ocamlPackages.bisect_ppx ocamlPackages.bistro ocamlPackages.bitstring ocamlPackages.bls12-381 ocamlPackages.bls12-381-gen ocamlPackages.bls12-381-legacy ocamlPackages.bls12-381-unix ocamlPackages.bonsai ocamlPackages.bos ocamlPackages.ca-certs ocamlPackages.ca-certs-nss ocamlPackages.cairo2 ocamlPackages.callipyge ocamlPackages.camlimages ocamlPackages.camlp4 ocamlPackages.camlp5 ocamlPackages.camomile ocamlPackages.caqti ocamlPackages.caqti-async ocamlPackages.caqti-driver-mariadb ocamlPackages.caqti-driver-postgresql ocamlPackages.caqti-driver-sqlite3 ocamlPackages.caqti-dynload ocamlPackages.caqti-lwt ocamlPackages.caqti-type-calendar ocamlPackages.carton ocamlPackages.carton-git ocamlPackages.carton-lwt ocamlPackages.cfstream ocamlPackages.chacha ocamlPackages.charInfo_width ocamlPackages.checkseum ocamlPackages.cinaps ocamlPackages.cmdliner ocamlPackages.cohttp ocamlPackages.cohttp-async ocamlPackages.cohttp-lwt ocamlPackages.cohttp-lwt-unix ocamlPackages.cohttp-mirage ocamlPackages.coin ocamlPackages.color ocamlPackages.comparelib ocamlPackages.conduit ocamlPackages.conduit-async ocamlPackages.conduit-lwt ocamlPackages.conduit-lwt-unix ocamlPackages.conduit-mirage ocamlPackages.config-file ocamlPackages.containers ocamlPackages.containers-data ocamlPackages.cooltt ocamlPackages.core ocamlPackages.core_bench ocamlPackages.core_extended ocamlPackages.core_kernel ocamlPackages.cow ocamlPackages.cppo ocamlPackages.cppo_ocamlbuild ocamlPackages.cpu ocamlPackages.cpuid ocamlPackages.crowbar ocamlPackages.crunch ocamlPackages.cryptokit ocamlPackages.csexp ocamlPackages.cstruct ocamlPackages.cstruct-async ocamlPackages.cstruct-lwt ocamlPackages.cstruct-sexp ocamlPackages.cstruct-unix ocamlPackages.csv ocamlPackages.csv-lwt ocamlPackages.csvfields ocamlPackages.ctypes ocamlPackages.cudf ocamlPackages.curly ocamlPackages.curses ocamlPackages.dap ocamlPackages.data-encoding ocamlPackages.dbf ocamlPackages.decompress ocamlPackages.delimited_parsing ocamlPackages.diet ocamlPackages.digestif ocamlPackages.directories ocamlPackages.dispatch ocamlPackages.dns ocamlPackages.dns-certify ocamlPackages.dns-cli ocamlPackages.dns-client ocamlPackages.dns-mirage ocamlPackages.dns-resolver ocamlPackages.dns-server ocamlPackages.dns-stub ocamlPackages.dns-tsig ocamlPackages.dolmen ocamlPackages.domain-name ocamlPackages.dose3 ocamlPackages.dtoa ocamlPackages.duff ocamlPackages.dune-action-plugin ocamlPackages.dune-build-info ocamlPackages.dune-configurator ocamlPackages.dune-glob ocamlPackages.dune-private-libs ocamlPackages.dune-site ocamlPackages.duration ocamlPackages.earley ocamlPackages.earlybird ocamlPackages.ecaml ocamlPackages.eigen ocamlPackages.either ocamlPackages.eliom ocamlPackages.elpi ocamlPackages.email_message ocamlPackages.emile ocamlPackages.encore ocamlPackages.eqaf ocamlPackages.erm_xmpp ocamlPackages.ethernet ocamlPackages.expect_test_helpers_async ocamlPackages.expect_test_helpers_core ocamlPackages.ezjsonm ocamlPackages.ezresto ocamlPackages.ezresto-directory ocamlPackages.ezxmlm ocamlPackages.faraday ocamlPackages.faraday-async ocamlPackages.faraday-lwt ocamlPackages.faraday-lwt-unix ocamlPackages.farfadet ocamlPackages.fdkaac ocamlPackages.ff ocamlPackages.ff-pbt ocamlPackages.ff-sig ocamlPackages.fiat-p256 ocamlPackages.fieldslib ocamlPackages.fileutils ocamlPackages.fix ocamlPackages.fmt ocamlPackages.fpath ocamlPackages.functoria ocamlPackages.functoria-runtime ocamlPackages.gapi_ocaml ocamlPackages.gen ocamlPackages.gettext-camomile ocamlPackages.gettext-stub ocamlPackages.gg ocamlPackages.git ocamlPackages.git-cohttp ocamlPackages.git-cohttp-unix ocamlPackages.git-paf ocamlPackages.git-unix ocamlPackages.gluten ocamlPackages.gluten-lwt ocamlPackages.gluten-lwt-unix ocamlPackages.gmap ocamlPackages.gnuplot ocamlPackages.graphics ocamlPackages.graphql ocamlPackages.graphql-cohttp ocamlPackages.graphql-lwt ocamlPackages.graphql_parser ocamlPackages.graphql_ppx ocamlPackages.gsl ocamlPackages.h2 ocamlPackages.hack_parallel ocamlPackages.hacl-star ocamlPackages.hacl-star-raw ocamlPackages.hacl_x25519 ocamlPackages.hashcons ocamlPackages.herelib ocamlPackages.hex ocamlPackages.hidapi ocamlPackages.higher_kinded ocamlPackages.higlo ocamlPackages.hkdf ocamlPackages.hmap ocamlPackages.hpack ocamlPackages.httpaf ocamlPackages.hxd ocamlPackages.imagelib ocamlPackages.incr_dom ocamlPackages.incr_map ocamlPackages.incr_select ocamlPackages.incremental ocamlPackages.index ocamlPackages.inifiles ocamlPackages.inotify ocamlPackages.integers ocamlPackages.io-page ocamlPackages.io-page-unix ocamlPackages.ipaddr ocamlPackages.ipaddr-cstruct ocamlPackages.ipaddr-sexp ocamlPackages.iri ocamlPackages.irmin ocamlPackages.irmin-chunk ocamlPackages.irmin-containers ocamlPackages.irmin-fs ocamlPackages.irmin-git ocamlPackages.irmin-graphql ocamlPackages.irmin-http ocamlPackages.irmin-layers ocamlPackages.irmin-mirage ocamlPackages.irmin-mirage-git ocamlPackages.irmin-mirage-graphql ocamlPackages.irmin-pack ocamlPackages.irmin-test ocamlPackages.irmin-unix ocamlPackages.irmin-watcher ocamlPackages.iter ocamlPackages.javalib ocamlPackages.jingoo ocamlPackages.js_of_ocaml ocamlPackages.js_of_ocaml-compiler ocamlPackages.js_of_ocaml-lwt ocamlPackages.js_of_ocaml-ocamlbuild ocamlPackages.js_of_ocaml-ppx ocamlPackages.js_of_ocaml-ppx_deriving_json ocamlPackages.js_of_ocaml-tyxml ocamlPackages.json-data-encoding ocamlPackages.json-data-encoding-bson ocamlPackages.jsonm ocamlPackages.jsonrpc ocamlPackages.jst-config ocamlPackages.junit ocamlPackages.junit_alcotest ocamlPackages.junit_ounit ocamlPackages.jwto ocamlPackages.kafka ocamlPackages.kafka_lwt ocamlPackages.ke ocamlPackages.lablgl ocamlPackages.lablgtk ocamlPackages.lablgtk-extras ocamlPackages.lablgtk3 ocamlPackages.lablgtk3-gtkspell3 ocamlPackages.lablgtk3-sourceview3 ocamlPackages.labltk ocamlPackages.lacaml ocamlPackages.lambda-term ocamlPackages.lambdasoup ocamlPackages.lens ocamlPackages.letsencrypt ocamlPackages.letsencrypt-app ocamlPackages.letsencrypt-dns ocamlPackages.linenoise ocamlPackages.llvm ocamlPackages.logs ocamlPackages.lru ocamlPackages.lsp ocamlPackages.lua-ml ocamlPackages.lustre-v6 ocamlPackages.lutils ocamlPackages.luv ocamlPackages.lwt ocamlPackages.lwt-canceler ocamlPackages.lwt-dllist ocamlPackages.lwt-exit ocamlPackages.lwt-watcher ocamlPackages.lwt_log ocamlPackages.lwt_ppx ocamlPackages.lwt_react ocamlPackages.lwt_ssl ocamlPackages.macaddr ocamlPackages.macaddr-cstruct ocamlPackages.macaddr-sexp ocamlPackages.macaque ocamlPackages.magic-mime ocamlPackages.mariadb ocamlPackages.markup ocamlPackages.mccs ocamlPackages.mdx ocamlPackages.menhir ocamlPackages.menhirLib ocamlPackages.menhirSdk ocamlPackages.merlin ocamlPackages.merlin-extend ocamlPackages.metrics ocamlPackages.metrics-influx ocamlPackages.metrics-lwt ocamlPackages.metrics-unix ocamlPackages.mew ocamlPackages.mew_vi ocamlPackages.mimic ocamlPackages.minisat ocamlPackages.mirage ocamlPackages.mirage-block ocamlPackages.mirage-block-combinators ocamlPackages.mirage-block-ramdisk ocamlPackages.mirage-block-unix ocamlPackages.mirage-bootvar-unix ocamlPackages.mirage-bootvar-xen ocamlPackages.mirage-channel ocamlPackages.mirage-clock ocamlPackages.mirage-clock-freestanding ocamlPackages.mirage-clock-unix ocamlPackages.mirage-console ocamlPackages.mirage-console-unix ocamlPackages.mirage-crypto ocamlPackages.mirage-crypto-ec ocamlPackages.mirage-crypto-pk ocamlPackages.mirage-crypto-rng ocamlPackages.mirage-crypto-rng-async ocamlPackages.mirage-crypto-rng-mirage ocamlPackages.mirage-device ocamlPackages.mirage-flow ocamlPackages.mirage-flow-combinators ocamlPackages.mirage-flow-unix ocamlPackages.mirage-fs ocamlPackages.mirage-kv ocamlPackages.mirage-logs ocamlPackages.mirage-nat ocamlPackages.mirage-net ocamlPackages.mirage-net-xen ocamlPackages.mirage-profile ocamlPackages.mirage-protocols ocamlPackages.mirage-random ocamlPackages.mirage-random-test ocamlPackages.mirage-runtime ocamlPackages.mirage-stack ocamlPackages.mirage-time ocamlPackages.mirage-time-unix ocamlPackages.mirage-types ocamlPackages.mirage-types-lwt ocamlPackages.mirage-unix ocamlPackages.mirage-vnetif ocamlPackages.mirage-xen ocamlPackages.mmap ocamlPackages.mparser ocamlPackages.mparser-pcre ocamlPackages.mrmime ocamlPackages.mtime ocamlPackages.mustache ocamlPackages.netchannel ocamlPackages.nocrypto ocamlPackages.noise ocamlPackages.notty ocamlPackages.npy ocamlPackages.ocaml-freestanding ocamlPackages.ocaml-lsp ocamlPackages.ocaml-migrate-parsetree ocamlPackages.ocaml-migrate-parsetree-2 ocamlPackages.ocaml-monadic ocamlPackages.ocaml-print-intf ocamlPackages.ocaml-protoc ocamlPackages.ocaml-r ocamlPackages.ocaml-recovery-parser ocamlPackages.ocaml-sat-solvers ocamlPackages.ocaml-syntax-shims ocamlPackages.ocaml-version ocamlPackages.ocaml_expat ocamlPackages.ocaml_extlib ocamlPackages.ocaml_gettext ocamlPackages.ocaml_oasis ocamlPackages.ocaml_pcre ocamlPackages.ocaml_sqlite3 ocamlPackages.ocamlformat-rpc-lib ocamlPackages.ocamlgraph ocamlPackages.ocamlgraph_gtk ocamlPackages.ocamlify ocamlPackages.ocamlmod ocamlPackages.ocamlnet ocamlPackages.ocamlscript ocamlPackages.ocb-stubblr ocamlPackages.ocf ocamlPackages.ocf_ppx ocamlPackages.ocp-build ocamlPackages.ocp-indent ocamlPackages.ocp-index ocamlPackages.ocp-ocamlres ocamlPackages.ocplib-endian ocamlPackages.ocplib-json-typed ocamlPackages.ocplib-json-typed-browser ocamlPackages.ocplib-json-typed-bson ocamlPackages.ocsigen-start ocamlPackages.ocsigen-toolkit ocamlPackages.ocsigen_deriving ocamlPackages.ocsigen_server ocamlPackages.octavius ocamlPackages.ocurl ocamlPackages.odate ocamlPackages.odoc ocamlPackages.odoc-parser ocamlPackages.opam-core ocamlPackages.opam-file-format ocamlPackages.opam-format ocamlPackages.opam-repository ocamlPackages.opam-state ocamlPackages.opium ocamlPackages.opium_kernel ocamlPackages.opti ocamlPackages.optint ocamlPackages.otfm ocamlPackages.otoml ocamlPackages.otr ocamlPackages.ounit ocamlPackages.ounit2 ocamlPackages.owl ocamlPackages.owl-base ocamlPackages.paf ocamlPackages.paf-cohttp ocamlPackages.paf-le ocamlPackages.parany ocamlPackages.parmap ocamlPackages.parse-argv ocamlPackages.parsexp ocamlPackages.path_glob ocamlPackages.patience_diff ocamlPackages.pbkdf ocamlPackages.pcap-format ocamlPackages.pecu ocamlPackages.pgocaml ocamlPackages.pgocaml_ppx ocamlPackages.pgsolver ocamlPackages.phylogenetics ocamlPackages.piaf ocamlPackages.pipebang ocamlPackages.piqi ocamlPackages.piqi-ocaml ocamlPackages.posix-base ocamlPackages.posix-socket ocamlPackages.posix-types ocamlPackages.posixat ocamlPackages.postgresql ocamlPackages.pp ocamlPackages.pprint ocamlPackages.ppx_accessor ocamlPackages.ppx_assert ocamlPackages.ppx_bap ocamlPackages.ppx_base ocamlPackages.ppx_bench ocamlPackages.ppx_bin_prot ocamlPackages.ppx_bitstring ocamlPackages.ppx_blob ocamlPackages.ppx_cold ocamlPackages.ppx_compare ocamlPackages.ppx_cstruct ocamlPackages.ppx_cstubs ocamlPackages.ppx_custom_printf ocamlPackages.ppx_derivers ocamlPackages.ppx_deriving ocamlPackages.ppx_deriving_cmdliner ocamlPackages.ppx_deriving_protobuf ocamlPackages.ppx_deriving_rpc ocamlPackages.ppx_deriving_yaml ocamlPackages.ppx_deriving_yojson ocamlPackages.ppx_enumerate ocamlPackages.ppx_expect ocamlPackages.ppx_fields_conv ocamlPackages.ppx_fixed_literal ocamlPackages.ppx_gen_rec ocamlPackages.ppx_hash ocamlPackages.ppx_here ocamlPackages.ppx_import ocamlPackages.ppx_inline_test ocamlPackages.ppx_irmin ocamlPackages.ppx_jane ocamlPackages.ppx_js_style ocamlPackages.ppx_let ocamlPackages.ppx_log ocamlPackages.ppx_module_timer ocamlPackages.ppx_optcomp ocamlPackages.ppx_optional ocamlPackages.ppx_pattern_bind ocamlPackages.ppx_pipebang ocamlPackages.ppx_python ocamlPackages.ppx_repr ocamlPackages.ppx_sexp_conv ocamlPackages.ppx_sexp_message ocamlPackages.ppx_sexp_value ocamlPackages.ppx_stable ocamlPackages.ppx_string ocamlPackages.ppx_tools ocamlPackages.ppx_tools_versioned ocamlPackages.ppx_typerep_conv ocamlPackages.ppx_variants_conv ocamlPackages.ppx_yojson_conv_lib ocamlPackages.ppxlib ocamlPackages.prettym ocamlPackages.printbox ocamlPackages.printbox-text ocamlPackages.progress ocamlPackages.protocol_version_header ocamlPackages.psmt2-frontend ocamlPackages.psq ocamlPackages.ptime ocamlPackages.ptmap ocamlPackages.ptset ocamlPackages.pyml ocamlPackages.pythonlib ocamlPackages.qcheck ocamlPackages.qcheck-alcotest ocamlPackages.qcheck-core ocamlPackages.qcheck-ounit ocamlPackages.qtest ocamlPackages.randomconv ocamlPackages.rdbg ocamlPackages.re ocamlPackages.re2 ocamlPackages.re2_stable ocamlPackages.react ocamlPackages.reactivedata ocamlPackages.reason ocamlPackages.reason-native.console ocamlPackages.reason-native.dir ocamlPackages.reason-native.file-context-printer ocamlPackages.reason-native.fp ocamlPackages.reason-native.pastel ocamlPackages.reason-native.pastel-console ocamlPackages.reason-native.refmterr ocamlPackages.reason-native.rely ocamlPackages.reason-native.rely-junit-reporter ocamlPackages.repr ocamlPackages.resource-pooling ocamlPackages.resource_cache ocamlPackages.resto ocamlPackages.resto-acl ocamlPackages.resto-cohttp ocamlPackages.resto-cohttp-client ocamlPackages.resto-cohttp-self-serving-client ocamlPackages.resto-cohttp-server ocamlPackages.resto-directory ocamlPackages.resto-json ocamlPackages.result ocamlPackages.rfc7748 ocamlPackages.ringo ocamlPackages.ringo-lwt ocamlPackages.rope ocamlPackages.rosetta ocamlPackages.routes ocamlPackages.rpclib ocamlPackages.rpclib-lwt ocamlPackages.rresult ocamlPackages.safepass ocamlPackages.sawja ocamlPackages.secp256k1 ocamlPackages.secp256k1-internal ocamlPackages.sedlex ocamlPackages.sedlex_2 ocamlPackages.semaphore-compat ocamlPackages.sexp ocamlPackages.sexp_diff_kernel ocamlPackages.sexp_macro ocamlPackages.sexp_pretty ocamlPackages.sexp_select ocamlPackages.sexplib ocamlPackages.sha ocamlPackages.shared-memory-ring ocamlPackages.shared-memory-ring-lwt ocamlPackages.shell ocamlPackages.shexp ocamlPackages.sodium ocamlPackages.spawn ocamlPackages.spelll ocamlPackages.splay_tree ocamlPackages.splittable_random ocamlPackages.srt ocamlPackages.ssl ocamlPackages.stdint ocamlPackages.stdio ocamlPackages.stdlib-shims ocamlPackages.stog ocamlPackages.stringext ocamlPackages.syslog-message ocamlPackages.tar ocamlPackages.tar-unix ocamlPackages.tcpip ocamlPackages.tcslib ocamlPackages.terminal ocamlPackages.terminal_size ocamlPackages.textutils ocamlPackages.tezos-010-PtGRANAD-test-helpers ocamlPackages.tezos-011-PtHangz2-test-helpers ocamlPackages.tezos-base ocamlPackages.tezos-base-test-helpers ocamlPackages.tezos-clic ocamlPackages.tezos-client-010-PtGRANAD ocamlPackages.tezos-client-011-PtHangz2 ocamlPackages.tezos-client-base ocamlPackages.tezos-context ocamlPackages.tezos-crypto ocamlPackages.tezos-embedded-protocol-010-PtGRANAD ocamlPackages.tezos-embedded-protocol-demo-noops ocamlPackages.tezos-error-monad ocamlPackages.tezos-event-logging ocamlPackages.tezos-event-logging-test-helpers ocamlPackages.tezos-hacl-glue ocamlPackages.tezos-hacl-glue-unix ocamlPackages.tezos-legacy-store ocamlPackages.tezos-lmdb ocamlPackages.tezos-lwt-result-stdlib ocamlPackages.tezos-micheline ocamlPackages.tezos-mockup-proxy ocamlPackages.tezos-mockup-registration ocamlPackages.tezos-p2p ocamlPackages.tezos-p2p-services ocamlPackages.tezos-protocol-010-PtGRANAD ocamlPackages.tezos-protocol-010-PtGRANAD-parameters ocamlPackages.tezos-protocol-011-PtHangz2 ocamlPackages.tezos-protocol-011-PtHangz2-parameters ocamlPackages.tezos-protocol-alpha ocamlPackages.tezos-protocol-compiler ocamlPackages.tezos-protocol-demo-noops ocamlPackages.tezos-protocol-environment ocamlPackages.tezos-protocol-environment-packer ocamlPackages.tezos-protocol-environment-sigs ocamlPackages.tezos-protocol-environment-structs ocamlPackages.tezos-protocol-plugin-010-PtGRANAD ocamlPackages.tezos-protocol-plugin-011-PtHangz2 ocamlPackages.tezos-protocol-plugin-alpha ocamlPackages.tezos-protocol-updater ocamlPackages.tezos-proxy ocamlPackages.tezos-requester ocamlPackages.tezos-rpc ocamlPackages.tezos-rpc-http ocamlPackages.tezos-rpc-http-client ocamlPackages.tezos-rpc-http-client-unix ocamlPackages.tezos-sapling ocamlPackages.tezos-shell ocamlPackages.tezos-shell-context ocamlPackages.tezos-shell-services ocamlPackages.tezos-shell-services-test-helpers ocamlPackages.tezos-signer-backends ocamlPackages.tezos-signer-services ocamlPackages.tezos-stdlib ocamlPackages.tezos-stdlib-unix ocamlPackages.tezos-store ocamlPackages.tezos-test-helpers ocamlPackages.tezos-validation ocamlPackages.tezos-version ocamlPackages.tezos-workers ocamlPackages.time_now ocamlPackages.timezone ocamlPackages.tls ocamlPackages.tls-async ocamlPackages.tls-mirage ocamlPackages.toml ocamlPackages.topkg ocamlPackages.topological_sort ocamlPackages.trie ocamlPackages.tsdl ocamlPackages.tsort ocamlPackages.tuntap ocamlPackages.type_conv ocamlPackages.typerep ocamlPackages.tyxml ocamlPackages.uchar ocamlPackages.uecc ocamlPackages.ulex ocamlPackages.unstrctrd ocamlPackages.uri ocamlPackages.uri-sexp ocamlPackages.utop ocamlPackages.uucd ocamlPackages.uucp ocamlPackages.uuidm ocamlPackages.uunf ocamlPackages.uuseg ocamlPackages.uutf ocamlPackages.uuuu ocamlPackages.variantslib ocamlPackages.vcaml ocamlPackages.vchan ocamlPackages.vector ocamlPackages.vg ocamlPackages.virtual_dom ocamlPackages.visitors ocamlPackages.vlq ocamlPackages.wayland ocamlPackages.webbrowser ocamlPackages.webmachine ocamlPackages.wodan ocamlPackages.wodan-unix ocamlPackages.wtf8 ocamlPackages.x509 ocamlPackages.xenstore ocamlPackages.xenstore-tool ocamlPackages.xenstore_transport ocamlPackages.xmlm ocamlPackages.xtmpl ocamlPackages.xtmpl_ppx ocamlPackages.yaml ocamlPackages.yaml-sexp ocamlPackages.yojson ocamlPackages.yuscii ocamlPackages.zed ocamlPackages.zmq ocamlPackages.zmq-lwt ocamlPackages.zstandard ocamlformat ocamlformat_0_11_0 ocamlformat_0_12 ocamlformat_0_13_0 ocamlformat_0_14_0 ocamlformat_0_14_1 ocamlformat_0_14_2 ocamlformat_0_14_3 ocamlformat_0_15_0 ocamlformat_0_15_1 ocamlformat_0_16_0 ocamlformat_0_17_0 ocamlformat_0_18_0 ocamlformat_0_19_0 ocamlformat_0_20_0 ocsigen-i18n omake opa opaline opam opam-installer opam_1_2 orpie ott patdiff pdfsandwich prooftree proverif python310Packages.bap python310Packages.guestfs python39Packages.bap python39Packages.guestfs satallax satysfi sawjap sks soupault statverif teyjus tlaps unison usync vagrant virt-top wayland-proxy-virtwl why3 wyrd

LIGO is mentoned in the PR text and torch is broken for me on master as well, it's a test failing on some floating number.

@ulrikstrid
Copy link
Member Author

@symphorien and @vbgl do you have any good commands to build all (most?) OCaml packages across versions?

So that I can catch regressions before merge instead of after like my last big PR.

@Ericson2314
Copy link
Member

:) warms my heart to see things like this!

@ulrikstrid
Copy link
Member Author

:) warms my heart to see things like this!

Yes, it is very helpful for cross compiling and it seems to decrease closure size as well 😁

@symphorien
Copy link
Member

:) warms my heart to see things like this!

@Ericson2314 to make this go further, would you mind reviewing #161575 (a fix for bad interactions between checkInputs and strictDeps)

@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch from fc741eb to 6ffa8c8 Compare April 2, 2022 06:16
@StridBot
Copy link
Contributor

StridBot commented Apr 3, 2022

Result of nixpkgs-review pr 162385 run on x86_64-linux 1

2 packages failed to build:
  • tlaps
  • usync
183 packages built:
  • abella
  • acgtk
  • alt-ergo
  • anders
  • beluga
  • bibtex2html
  • coccinelle
  • comby
  • compcert
  • coq (coqPackages.coq ,coq_8_13)
  • coqPackages.Cheerios
  • coqPackages.CoLoR
  • coqPackages.ITree
  • coqPackages.InfSeqExt
  • coqPackages.LibHyps
  • coqPackages.QuickChick
  • coqPackages.StructTact
  • coqPackages.VST
  • coqPackages.Verdi
  • coqPackages.aac-tactics
  • coqPackages.addition-chains
  • coqPackages.autosubst
  • coqPackages.bignums
  • coqPackages.category-theory
  • coqPackages.ceres
  • coqPackages.compcert
  • coqPackages.coq-bits
  • coqPackages.coq-elpi
  • coqPackages.coq-ext-lib
  • coqPackages.coq-record-update
  • coqPackages.coqeal
  • coqPackages.coqhammer
  • coqPackages.coqprime
  • coqPackages.coqtail-math
  • coqPackages.coquelicot
  • coqPackages.corn
  • coqPackages.deriving
  • coqPackages.dpdgraph
  • coqPackages.equations
  • coqPackages.extructures
  • coqPackages.flocq
  • coqPackages.fourcolor
  • coqPackages.gaia
  • coqPackages.gaia-hydras
  • coqPackages.gappalib
  • coqPackages.goedel
  • coqPackages.graph-theory
  • coqPackages.hierarchy-builder
  • coqPackages.hydra-battles
  • coqPackages.interval
  • coqPackages.iris
  • coqPackages.itauto
  • coqPackages.math-classes
  • coqPackages.mathcomp
  • coqPackages.mathcomp-abel
  • coqPackages.mathcomp-algebra
  • coqPackages.mathcomp-analysis
  • coqPackages.mathcomp-bigenough
  • coqPackages.mathcomp-character
  • coqPackages.mathcomp-field
  • coqPackages.mathcomp-fingroup
  • coqPackages.mathcomp-finmap
  • coqPackages.mathcomp-real-closed
  • coqPackages.mathcomp-solvable
  • coqPackages.ssreflect (coqPackages.mathcomp-ssreflect)
  • coqPackages.mathcomp-tarjan
  • coqPackages.mathcomp-word
  • coqPackages.mathcomp-zify
  • coqPackages.metalib
  • coqPackages.multinomials
  • coqPackages.odd-order
  • coqPackages.paco
  • coqPackages.paramcoq
  • coqPackages.parsec
  • coqPackages.pocklington
  • coqPackages.reglang
  • coqPackages.relation-algebra
  • coqPackages.semantics
  • coqPackages.serapi
  • coqPackages.simple-io
  • coqPackages.smpl
  • coqPackages.stdpp
  • coqPackages.tlc
  • coqPackages.topology
  • coqPackages.zorns-lemma
  • coq_8_10
  • coq_8_11
  • coq_8_12
  • coq_8_14
  • coq_8_15
  • coq_8_5
  • coq_8_6
  • coq_8_7
  • coq_8_8
  • coq_8_9
  • cryptoverif
  • csvtool
  • cubicle
  • cvehound
  • diffoscope
  • dot-merlin-reader
  • dune-release
  • eff
  • flitter
  • flow
  • framac
  • fstar
  • glsurf
  • google-drive-ocamlfuse
  • haxe (haxe_4_2)
  • hxcpp (haxePackages.hxcpp)
  • haxePackages.hxcs
  • haxePackages.hxjava
  • haxePackages.hxnodejs_4
  • haxe_3_2
  • haxe_3_4
  • haxe_4_0
  • haxe_4_1
  • hevea
  • hol_light
  • iprover
  • jackline
  • ledit
  • leo2
  • libbap
  • libguestfs
  • ligo
  • liquidsoap
  • llpp
  • megam
  • mldonkey
  • monotoneViz
  • obelisk
  • obuild
  • ocaml-crunch
  • ocaml-top
  • ocamlformat (ocamlformat_0_20_1)
  • ocamlformat_0_11_0
  • ocamlformat_0_12
  • ocamlformat_0_13_0
  • ocamlformat_0_14_0
  • ocamlformat_0_14_1
  • ocamlformat_0_14_2
  • ocamlformat_0_14_3
  • ocamlformat_0_15_0
  • ocamlformat_0_15_1
  • ocamlformat_0_16_0
  • ocamlformat_0_17_0
  • ocamlformat_0_18_0
  • ocamlformat_0_19_0
  • ocamlformat_0_20_0
  • ocsigen-i18n
  • omake
  • opa
  • opaline
  • opam
  • opam-installer
  • opam_1_2
  • orpie
  • ott
  • patdiff
  • pdfsandwich
  • prooftree
  • proverif
  • python310Packages.bap
  • python310Packages.guestfs
  • python39Packages.bap
  • python39Packages.guestfs
  • reason
  • satallax
  • satysfi
  • sawjap
  • sks
  • soupault
  • statverif
  • stog
  • teyjus
  • unison
  • vagrant
  • virt-top
  • wayland-proxy-virtwl
  • why3
  • wyrd

Copy link
Member

@symphorien symphorien left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks good. Can you

  • justify the addition of pycaml and the removal of metrics-mirage? (or move them to their own PR)
  • remove the change of the default value of buildDunePackage? This is a breaking change to a documented API, and given the feature freeze, it should probably wait for branch off.
  • this breaks ocamlPackages_4_09.ocaml-lsp (cppo is missing from PATH)

usync fails to build because of a failure to fetch the source of a dependency, and tlaps fails because of an unrelated dependency.

pkgs/development/ocaml-modules/pycaml/default.nix Outdated Show resolved Hide resolved
pkgs/top-level/ocaml-packages.nix Outdated Show resolved Hide resolved
pkgs/build-support/ocaml/dune.nix Show resolved Hide resolved
@ulrikstrid
Copy link
Member Author

ulrikstrid commented Apr 3, 2022

Thank you for the review @symphorien, I will fix things a bit later or tomorrow

Since I created this some time ago I can't remember why I needed to upgrade metrics, but metrics-mirage was removed from upstream because "it's not needed".

Pycaml was probably added because of a bad rebase on my part, I will remove it.

The dune change was deliberately put in a separate commit so that we could easily remove it. I hoped some other more general fix would supersede it, the problem is that we now have to move all checkInputs to buildInputs as well in this PR.

@siraben
Copy link
Member

siraben commented Apr 3, 2022

Suggestions based on things I found with nix-lint

diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index 41b8a7d0b6c..63bcbfdf1d5 100644
--- a/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -14,8 +14,9 @@ stdenv.mkDerivation rec {
       '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4'
   '';
 
+  strictDeps = true;
+  nativeBuildInputs = with ocamlPackages; [ ocaml ];
   buildInputs = (with ocamlPackages; [
-    ocaml
     camlp4
     num
   ]) ++ [
diff --git a/pkgs/applications/science/logic/ekrhyper/default.nix b/pkgs/applications/science/logic/ekrhyper/default.nix
index d6d9bb11a9a..c7305559f7e 100644
--- a/pkgs/applications/science/logic/ekrhyper/default.nix
+++ b/pkgs/applications/science/logic/ekrhyper/default.nix
@@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-fEe0DIMGj7wO+79/BZf45kykgyTXpbZJsyFSt31XqpM=";
   };
 
+  strictDeps = true;
+  nativeBuildInputs = [ ocaml ];
   buildInputs = [
-    ocaml
     perl
   ];
   setSourceRoot = "export sourceRoot=$(echo */ekrh/src/)";
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index a820539eb9a..949c49d6979 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -29,10 +29,11 @@ stdenv.mkDerivation rec {
     sha256 = "jPSTVSndp/T7n+VxZ/g9Rjco00Up+9xeDIVkeLl1MTw=";
   };
 
-  nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  strictDeps = true;
+  nativeBuildInputs = optionals ocamlBindings [ ocaml findlib ] ++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
   buildInputs = [ python ]
     ++ optional javaBindings jdk
-    ++ optionals ocamlBindings [ ocaml findlib zarith ]
+    ++ [ zarith ]
   ;
   propagatedBuildInputs = [ python.pkgs.setuptools ];
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/math/scilab/default.nix b/pkgs/applications/science/math/scilab/default.nix
index 4ce04340f3a..6276f8d9d76 100644
--- a/pkgs/applications/science/math/scilab/default.nix
+++ b/pkgs/applications/science/math/scilab/default.nix
@@ -19,11 +19,10 @@ stdenv.mkDerivation rec {
     sha256 = "1adk6jqlj7i3gjklvlf1j3il1nb22axnp4rvwl314an62siih0sc";
   };
 
-  nativeBuildInputs = [ gfortran ];
+  nativeBuildInputs = [ gfortran ] ++ lib.optionals withOCaml [ ocaml ];
 
   buildInputs = [ ncurses ]
     ++ lib.optionals withGtk [ gtk2 ]
-    ++ lib.optionals withOCaml [ ocaml ]
     ++ lib.optional withX xlibsWrapper;
 
 
diff --git a/pkgs/applications/virtualization/xen/generic.nix b/pkgs/applications/virtualization/xen/generic.nix
index c85e7011668..9e741985f51 100644
--- a/pkgs/applications/virtualization/xen/generic.nix
+++ b/pkgs/applications/virtualization/xen/generic.nix
@@ -66,7 +66,8 @@ stdenv.mkDerivation (rec {
 
   hardeningDisable = [ "stackprotector" "fortify" "pic" ];
 
-  nativeBuildInputs = [ pkg-config ];
+  strictDeps = true;
+  nativeBuildInputs = [ pkg-config ocamlPackages.findlib ocamlPackages.ocaml ];
   buildInputs = [
     cmake which
 
@@ -75,7 +76,7 @@ stdenv.mkDerivation (rec {
     libiconv libuuid ncurses openssl perl python2Packages.python xz yajl zlib
 
     # oxenstored
-    ocamlPackages.findlib ocamlPackages.ocaml systemd
+    systemd
 
     # Python fixes
     python2Packages.wrapPython
diff --git a/pkgs/development/compilers/hhvm/default.nix b/pkgs/development/compilers/hhvm/default.nix
index d8495977e78..1a97c5bba13 100644
--- a/pkgs/development/compilers/hhvm/default.nix
+++ b/pkgs/development/compilers/hhvm/default.nix
@@ -18,14 +18,14 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake pkg-config flex bison ];
+  strictDeps = true;
+  nativeBuildInputs = [ cmake pkg-config flex bison ocamlPackages.ocaml ocamlPackages.ocamlbuild ];
   buildInputs =
     [ boost libunwind libmysqlclient libmemcached pcre gdb git perl
       libevent gd curl libxml2 icu openssl zlib php expat libcap
       oniguruma libdwarf libmcrypt tbb gperftools bzip2 openldap readline
       libelf uwimap binutils cyrus_sasl pam glog libpng libxslt libkrb5
       gmp libyaml libedit libvpx imagemagick fribidi gperf which
-      ocamlPackages.ocaml ocamlPackages.ocamlbuild
     ];
 
   patches = [
diff --git a/pkgs/development/compilers/obliv-c/default.nix b/pkgs/development/compilers/obliv-c/default.nix
index b7ec54ace7a..b4d05ef3215 100644
--- a/pkgs/development/compilers/obliv-c/default.nix
+++ b/pkgs/development/compilers/obliv-c/default.nix
@@ -2,8 +2,9 @@
 stdenv.mkDerivation rec {
   pname = "obliv-c";
   version = "0.0pre20180624";
-  buildInputs = [ perl ]
-  ++ (with ocamlPackages; [ ocaml findlib ocamlbuild ]);
+  buildInputs = [ perl ];
+  strictDeps = true;
+  nativeBuildInputs = with ocamlPackages; [ ocaml findlib ocamlbuild ];
   propagatedBuildInputs = [ libgcrypt ];
   src = fetchFromGitHub {
     owner = "samee";
diff --git a/pkgs/development/compilers/opa/default.nix b/pkgs/development/compilers/opa/default.nix
index 8e70ca8dac2..1d0b182c94a 100644
--- a/pkgs/development/compilers/opa/default.nix
+++ b/pkgs/development/compilers/opa/default.nix
@@ -44,10 +44,12 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "-ocamlfind ${ocamlPackages.findlib}/bin/ocamlfind" ];
 
+  strictDeps = true;
+  nativeBuildInputs = with ocamlPackages; [ ocaml findlibag ];
   buildInputs = [ which perl jdk openssl coreutils zlib ncurses
     makeWrapper gcc binutils gnumake nodejs
   ] ++ (with ocamlPackages; [
-    ocaml findlib ssl cryptokit camlzip ulex ocamlgraph camlp4
+    ssl cryptokit camlzip ulex ocamlgraph camlp4
   ]);
 
   NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
diff --git a/pkgs/development/compilers/reason/default.nix b/pkgs/development/compilers/reason/default.nix
index cc99aa078f9..80d44672491 100644
--- a/pkgs/development/compilers/reason/default.nix
+++ b/pkgs/development/compilers/reason/default.nix
@@ -11,9 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256:0yc94m3ddk599crg33yxvkphxpy54kmdsl599c320wvn055p4y4l";
   };
 
+  strictDeps = true;
   nativeBuildInputs = [
     makeWrapper
     menhir
+    ocaml
   ];
 
   buildInputs = [
@@ -23,7 +25,6 @@ stdenv.mkDerivation rec {
     fix
     menhir
     menhirSdk
-    ocaml
     ppxlib
     utop
   ];
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/ec.nix b/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
index 7088daa3f02..f7740c16fac 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
@@ -26,9 +26,8 @@ buildDunePackage rec {
     version
     useDune2;
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config ocaml ];
   buildInputs = [
-    ocaml
     dune-configurator
   ];
   propagatedBuildInputs = [
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index d1244cc73c4..c9a1b9c9c43 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -13,7 +13,9 @@ stdenv.mkDerivation rec {
     substituteInPlace curses/curses.ml --replace 'pp gcc' "pp $CC"
   '';
 
-  buildInputs = [ ocamlPackages.ocaml ncurses remind ocamlPackages.camlp4 ];
+  strictDeps = true;
+  nativeBuildInputs = [ ocaml ];
+  buildInputs = [ ncurses remind ocamlPackages.camlp4 ];
 
   preferLocalBuild = true;

@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch 2 times, most recently from deb2f16 to d012af6 Compare April 4, 2022 07:54
@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch from 5485ea1 to d012af6 Compare April 4, 2022 11:44
@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch from d012af6 to 7edffdd Compare April 4, 2022 11:57
@ulrikstrid
Copy link
Member Author

@siraben I included most of those changes and did some other minor fixes here

@Mindavi Mindavi added the 6.topic: cross-compilation Building packages on a different sort platform than than they will be run on label Apr 13, 2022
@@ -40,6 +40,10 @@ stdenv.mkDerivation ({

nativeBuildInputs = [ ocaml Dune findlib ] ++ nativeBuildInputs;

buildInputs = buildInputs ++ (if doCheck then checkInputs else []);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you drop this, what's the fallout? I'm also not keen on keeping this tbh

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it breaks everything that uses a unit test library (ounit, alcotest...). I agree that such a hack is undesirable, so in my mind this is blocked on #161570

@Mindavi
Copy link
Contributor

Mindavi commented May 5, 2022

Doesn't nixpkgs-review build these packages?

@ulrikstrid
Copy link
Member Author

Thank you for pointing that out @wegank, I'll drop that commit from this PR then.

@symphorien I have now added a commit to add a release note, just wanting approval on it and then I can squash it into the main commit.

@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch from 7806d96 to 4feb856 Compare January 30, 2023 10:32
@ulrikstrid
Copy link
Member Author

cherry-picked ocaml-r to #213545, will drop it from this PR

@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch from 4feb856 to 9b3df64 Compare January 30, 2023 10:36
@symphorien
Copy link
Member

Release notes look good. The note about PPX is a good idea!

If you rework this file can you incorporate this?

diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md
index 148b317ba28..819a1651255 100644
--- a/nixos/doc/manual/release-notes/rl-2305.section.md
+++ b/nixos/doc/manual/release-notes/rl-2305.section.md
@@ -52,7 +52,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `carnix` and `cratesIO` has been removed due to being unmaintained, use alternatives such as [naersk](https://github.com/nix-community/naersk) and [crate2nix](https://github.com/kolloch/crate2nix) instead.
 
-- `checkInputs` have been renamed to `nativeCheckInputs`, because they behave the same as `nativeBuildInputs` when `doCheck` is set. `checkInputs` now denote a new type of dependencies, added to `buildInputs` when `doCheck` is set. As a rule of thumb, `nativeCheckInputs` are tools on `$PATH` used during the tests, and `checkInputs` are libraries which are linked to executables built as part of the tests. Similarly, `installCheckInputs` are renamed to `nativeInstallCheckInputs`, corresponding to `nativeBuildInputs`, and `installCheckInputs` are a new type of dependencies added to `buildInputs` when `doInstallCheck` is set. (Note that this change will not cause breakage to derivations with `strictDeps` unset, which are most packages except python, rust and go packages).
+- `checkInputs` have been renamed to `nativeCheckInputs`, because they behave the same as `nativeBuildInputs` when `doCheck` is set. `checkInputs` now denote a new type of dependencies, added to `buildInputs` when `doCheck` is set. As a rule of thumb, `nativeCheckInputs` are tools on `$PATH` used during the tests, and `checkInputs` are libraries which are linked to executables built as part of the tests. Similarly, `installCheckInputs` are renamed to `nativeInstallCheckInputs`, corresponding to `nativeBuildInputs`, and `installCheckInputs` are a new type of dependencies added to `buildInputs` when `doInstallCheck` is set. (Note that this change will not cause breakage to derivations with `strictDeps` unset, which are most packages except python, rust, ocaml and go packages).
 
 - `borgbackup` module now has an option for inhibiting system sleep while backups are running, defaulting to off (not inhibiting sleep), available as [`services.borgbackup.jobs.<name>.inhibitsSleep`](#opt-services.borgbackup.jobs._name_.inhibitsSleep).
 

@Et7f3
Copy link
Contributor

Et7f3 commented Jan 30, 2023

regression on ocamlPackages.mdx:

error: builder for '/nix/store/njp857n1zh3c2habk26d69gmyc8mv5iv-ocaml4.14.0-mdx-2.2.1.drv' failed with exit code 1;
       last 10 log lines:
       > File "lib/top/dune", line 14, characters 2-13:
       > 14 |   findlib.top))
       >        ^^^^^^^^^^^
       > Error: Library "findlib.top" not found.
       > -> required by library "mdx.top" in _build/default/lib/top
       > -> required by _build/default/META.mdx
       > -> required by _build/install/default/lib/mdx/META
       > -> required by _build/default/mdx.install
       > -> required by alias install
       >
       For full logs, run 'nix log /nix/store/njp857n1zh3c2habk26d69gmyc8mv5iv-ocaml4.14.0-mdx-2.2.1.drv'.
and ocamlPackages.arp:
Full test results in `/private/tmp/nix-build-ocaml4.14.0-arp-3.0.0.drv-0/arp-v3.0.0/_build/default/t>
Test Successful in 0.066s. 39 tests run.
Done: 94% (36/38, 2 left) (jobs: 2)^M                                   ^MDone: 97% (37/38, 1 left) >
2 |  (name tests)
           ^^^^^
(cd _build/default/test/mirage && ./tests.exe)
Testing `arp'.
This run has ID `UBOHB3YU'.

Ok after multiple run it does pass and I haven't preserved the full logs.

@wegank
Copy link
Member

wegank commented Jan 30, 2023

I suppose findlib should be added to buildInputs (or the propagated one).

@Et7f3
Copy link
Contributor

Et7f3 commented Jan 31, 2023

The arp failure is really strange: nix build multiple time (<5) and it pass locally and when I try to debug it doesn't happen in multiple run. Do you know how to enter the sandbox ? I see sandbox-exec but I don't see where is the profile used.

@Et7f3 Et7f3 mentioned this pull request Jan 31, 2023
13 tasks
@Et7f3
Copy link
Contributor

Et7f3 commented Feb 2, 2023

gnatcoll-core doesn't build on master but it will with this PR #211526 so once merged I will re-test again.

@ulrikstrid ulrikstrid force-pushed the ulrikstrid/ocamlpackages-strict-deps-v2 branch from 9b3df64 to f12b9ea Compare February 3, 2023 07:59
@ulrikstrid
Copy link
Member Author

If you rework this file can you incorporate this?
@symphorien done

@Et7f3 I fixed the mdx failure

The PR is rebased and fixed comments

@wegank
Copy link
Member

wegank commented Feb 3, 2023

@ofborg build isabelle

@wegank
Copy link
Member

wegank commented Feb 3, 2023

If there are no objections, I will merge this very soon (within the next hour) to avoid merge conflicts.

@wegank wegank merged commit 1e17068 into NixOS:master Feb 3, 2023
@ulrikstrid ulrikstrid deleted the ulrikstrid/ocamlpackages-strict-deps-v2 branch February 3, 2023 10:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet