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.js_of_ocaml*: 3.7.0 -> 3.8.0 #106343

Closed
wants to merge 3 commits into from

Conversation

sternenseemann
Copy link
Member

Motivation for this change

Tried to see if I could do the broken auto-update properly. Unfortunately it seems that this update currently breaks
eliom which should be fixed as soon as they support ocaml-migrate-parsetree 2.1.0 or we have a patch for it:

+ ocamlfind ocamlc -c -g -keep-locs -w +A-4-6-7-9-40-42-44-48 -package 'ppx_tools_versioned, ppx_tools_versioned.metaquot_408' -I src/ppx -o src/ppx/ppx_eliom_client.cmi src/ppx/ppx_eliom_client.mli
findlib: [WARNING] Package ocaml-migrate-parsetree has multiple definitions in /nix/store/4fpj30ah88j7zcpc3mgrgwc4y4qmdkyl-ocaml4.10.0-ocaml-migrate-parsetree-2.1.0/lib/ocaml/4.10.0/site-lib/ocaml-migrate-parsetree/META, /nix/store/c0sga3bi7dbbh40lsfg9i91w9s9aj542-ocaml4.10.0-ocaml-migrate-parsetree-1.8.0/lib/ocaml/4.10.0/site-lib/ocaml-migrate-parsetree/META
findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /nix/store/lqgcqn9nh1bknq3dj7qnh1k7fcapsdag-ocaml-4.10.0/lib/ocaml, /nix/store/lqgcqn9nh1bknq3dj7qnh1k7fcapsdag-ocaml-4.10.0/lib/ocaml/compiler-libs
File "src/ppx/ppx_eliom_client.mli", line 2, characters 45-78:
2 |   Migrate_parsetree.Versions.OCaml_408.types Migrate_parsetree.Driver.rewriter
                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: Unbound module Migrate_parsetree.Driver
Command exited with code 2.
Compilation unsuccessful after building 11 targets (4 cached) in 00:00:00.
make: *** [Makefile:14: native] Error 10
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@sternenseemann
Copy link
Member Author

@vbgl rebased against the janeStreet update seems like this fixed things, currently running a nixpkgs-review to make sure, but seems promising: eliom is no longer broken by this change.

@sternenseemann
Copy link
Member Author

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

65 packages built:
  • acgtk
  • dune-release
  • eff
  • framac
  • jackline
  • ocaml-crunch
  • ocamlPackages.asn1-combinators
  • ocamlPackages.async_js
  • ocamlPackages.bonsai
  • ocamlPackages.ca-certs
  • ocamlPackages.cohttp-lwt-unix
  • ocamlPackages.conduit-lwt-unix
  • ocamlPackages.crunch
  • ocamlPackages.curly
  • ocamlPackages.dns
  • ocamlPackages.dns-client
  • ocamlPackages.eliom
  • ocamlPackages.fiat-p256
  • ocamlPackages.functoria
  • ocamlPackages.functoria-runtime
  • ocamlPackages.git
  • ocamlPackages.git-http
  • ocamlPackages.git-unix
  • ocamlPackages.graphql-cohttp
  • ocamlPackages.incr_dom
  • ocamlPackages.index
  • ocamlPackages.irmin-fs
  • ocamlPackages.irmin-git
  • ocamlPackages.irmin-graphql
  • ocamlPackages.irmin-http
  • ocamlPackages.irmin-mem
  • ocamlPackages.irmin-pack
  • ocamlPackages.irmin-test
  • ocamlPackages.irmin-unix
  • 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.metrics-unix
  • ocamlPackages.mirage
  • ocamlPackages.mirage-crypto-pk
  • ocamlPackages.mirage-crypto-rng
  • ocamlPackages.mirage-crypto-rng-mirage
  • ocamlPackages.mirage-logs
  • ocamlPackages.mirage-runtime
  • ocamlPackages.mirage-unix
  • ocamlPackages.mtime
  • ocamlPackages.ocplib-json-typed-browser
  • ocamlPackages.ocsigen-start
  • ocamlPackages.ocsigen-toolkit
  • ocamlPackages.opium
  • ocamlPackages.otr
  • ocamlPackages.prof_spacetime
  • ocamlPackages.ptime
  • ocamlPackages.tls
  • ocamlPackages.vg
  • ocamlPackages.virtual_dom
  • ocamlPackages.webmachine
  • ocamlPackages.x509
  • ocamlPackages.xtmpl
  • stog
  • why3

pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix Outdated Show resolved Hide resolved

nativeBuildInputs = [ ocaml findlib dune_2 cppo menhir ];
Copy link
Contributor

Choose a reason for hiding this comment

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

These three elements have been put in nativeBuildInputs in that PR: #73820. Probably for a reason. Isn’t this reason still valid?

ping @balsoft

Copy link
Member

Choose a reason for hiding this comment

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

The reason is obvious -- all of those are nativeBuildInputs (they are build-time dependencies, so have to run on build platform) and not buildInputs (which would run on host platform).

Copy link
Member Author

Choose a reason for hiding this comment

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

Nevermind what I wrote earlier, I wouldn't see why this made any difference or they would be required as buildDunePackage adds them to buildInputs. I think we don't support cross compiling for OCaml packages so this is no issue per se?!

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks. But my question was more: is there a realistic scenario in which the host and build platforms are different?

Copy link
Member Author

Choose a reason for hiding this comment

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

I see. I'd say it'd be simpler to address that in buildDunePackage for the whole of ocamlPackages.

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

3 participants