Commit graph

33 commits

Author SHA1 Message Date
sterni 2140791f9b
ocamlPackages.janeStreet{,_0_9_0}: join the ocamlPackages fix point, allowing overriding to work as expected (#113696)
* ocamlPackages.janeStreet_0_9_0: join the ocamlPackages fix point

Internal dependencies in the janeStreet sets were always taken from the
own rec attribute set. While this is pretty simple and convenient, it
has the disadvantage that it doesn't play nice with overriding: If you'd
override an attribute in a janeStreet set previously, it would be
changed when referenced directly, but the other packages in that
janeStreet set still would use the original, non-overridden version of
the derivation.

This is easily fixed by passing janeStreet_0_9_0 itself from the fix
point of ocamlPackages and using it to reference the dependencies.

Example showing it now works as expected:

test-overlay.nix:

    self: super: {
      ocamlPackages = super.ocamlPackages.overrideScope (old: _: {
        janeStreet_0_9_0 = old.janeStreet_0_9_0 // {
          base = old.janeStreet_0_9_0.base.overrideAttrs (_: {
            meta.broken = true;
          });
        };
      });
    }

nix-repl> (import ./. {
  overlays = [ (import ./test-overlay.nix) ];
}).ocamlPackages.janeStreet_0_9_0.stdio

error: Package ‘ocaml4.10.0-base-0.9.4’ in /home/lukas/src/nix/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage.nix:6 is marked as broken, refusing to evaluate.

a) To temporarily allow broken packages, you can use an environment variable
   for a single invocation of the nix tools.

     $ export NIXPKGS_ALLOW_BROKEN=1

b) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

* ocamlPackages.janeStreet: take part in fixpoint for OCaml >= 4.08

This change makes overrides to the janeStreet set work as expected by
making the janeStreet set take part in the ocamlPackages fixpoint for
janeStreet 0.14, i. e. OCaml >= 4.08

* ocamlPackages.janeStreet: take part in fixpoint for OCaml == 4.07

This change makes overrides to the janeStreet set work as expected by
making the janeStreet set take part in the ocamlPackages fixpoint for
janeStreet 0.12, i. e. OCaml == 4.07

* ocamlPackages.janeStreet: take part in fixpoint for OCaml < 4.07

This change makes overrides to the janeStreet set work as expected by
making the janeStreet set take part in the ocamlPackages fixpoint for
janeStreet 0.11, i. e. OCaml < 4.07

* ocamlPackages.janeStreet: remove self - super distinction

Previously, we inherited non-janestreet ocaml dependencies from super
and janestreet dependencies from self which always was super.janeStreet.

This behavior is however not really what we want due to liftJaneStreet:
Users and other packages will use ocamlPackages.base etc. instead of
ocamlPackages.janeStreet.base and the like. Consequently they also would
override the top-level attributes which would mean that other janestreet
packages would not pick up on it however.

As a consequence however, overriding ocamlPackages.janeStreet.base
doesn't work. Since this was never possible, I don't think this is an
issue. It is probably a good idea to deprecate that set anyways and
printing a warning when it is used via trace.

janeStreet_0_9_0 is unchanged as the disticniton between self and super
makes sense for it.

Below is an example showing how overriding would work from an user's
perspective:

test-overlay.nix:

    self: super: {
      ocamlPackages = super.ocamlPackages.overrideScope (old: _: {
        base = old.base.overrideAttrs (_: {
          meta.broken = true;
        });
      });
    }

nix-repl> (import ./. { overlays = [ (import ./test-overlay.nix) ]; }).ocamlPackages.
stdio
error: Package ‘ocaml4.10.0-base-0.14.0’ in /home/lukas/src/nix/nixpkgs/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix:12 is marked as broken, refusing to evaluate.

a) To temporarily allow broken packages, you can use an environment variable
   for a single invocation of the nix tools.

     $ export NIXPKGS_ALLOW_BROKEN=1

b) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.
2021-04-11 12:26:10 +02:00
sternenseemann 1979284362 ocamlPackages.ctypes: 0.17.1 -> 0.18.0
https://github.com/ocamllabs/ocaml-ctypes/blob/0.18.0/CHANGES.md#ctypes-0180

* ocamlPackages.async_ssl: fix compatibility with ctypes 0.18.0 by using
  ctypes.foreign instead of ctypes.foreign.threaded since the distinction
  between threaded and unthreaded has been removed in this release.
* libbap: link with -thread so linking ctypes.foreign doesn't fail
  https://github.com/BinaryAnalysisPlatform/bap-bindings/issues/18
* ocaml-ng.ocamlPackages_4_07.sodium: patch lib_gen/_tags to also add
  the `package(bigarray)` directive since `ctypes.stubs` no longer
  propgates that, leading to module not found error.
* ocaml-ng.ocamlPackages_4_{04,05,06,07}.async_ssl: mark as broken: due to
  the bigarray-compat dependency, we need dune 2 for ctypes which breaks
  compilation of the legacy async_ssl 0.11 version since we can't
  upgrade to dune 2 for it since that version doesn't support the legacy
  jbuild files.
2021-03-10 16:12:03 +01:00
Vincent Laporte d050e5e399 ocamlPackages.email_message: remove at 0.11.0 2020-11-06 15:30:03 +01:00
sternenseemann 031037f1ac
ocamlPackages_4_06.ppx_let: propagate base and ppxlib to fix build of angstrom 2020-09-30 07:55:10 +02:00
sternenseemann 2c616aa638
ocamlPackages.angstrom*: 0.13.0 -> 0.14.1
ocamlPackages.email_message: fix 0.12.0 version for angstrom 0.14
ocamlPackages.encore: 0.3 → 0.5
ocamlPackages.git{,-http,-unix}: 2.1.2 → 2.1.3
2020-07-01 13:51:04 +02:00
Vincent Laporte 5c274c6c05 ocamlPackages.core_profiler: remove at 0.11.0
This package is broken with glibc ≥ 2.28
2020-02-28 21:24:26 +01:00
Vincent Laporte 9095ca22bc ocamlPackages.ocaml_plugin: remove at 0.11.0
This package is broken with glibc ≥ 2.28
2020-02-28 21:24:26 +01:00
volth f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Vincent Laporte b5c224d2a5 ocamlPackages.bignum: remove at 0.11.0 2019-04-12 16:48:32 +02:00
Vincent Laporte a01129912f ocamlPackages.re2: fix build on darwin 2019-04-02 09:37:30 +02:00
Théo Zimmermann 794158fcd5
buildDunePackage: new support function; use it to refactor some OCaml derivations 2018-11-07 10:08:03 +01:00
Vincent Laporte 44f18a5a4f ocamlPackages.incremental_kernel: 0.11.0 -> 0.11.1 2018-08-14 07:48:39 +00:00
Vincent Laporte 2aae0c0442 ocamlPackages.async_extra: 0.11.0 -> 0.11.1 2018-08-14 07:48:39 +00:00
Vincent Laporte 72d1be9b96 ocamlPackages.async_kernel: 0.11.0 -> 0.11.1 2018-08-14 07:48:39 +00:00
Vincent Laporte 4b542fdf8e ocamlPackages.core: 0.11.1 -> 0.11.2 2018-08-14 07:48:39 +00:00
Vincent Laporte 18408650fb
ocamlPackages.core_kernel: 0.11.0 -> 0.11.1 2018-07-31 20:15:26 +00:00
Vincent Laporte 5a2ee49f3c ocamlPackages.base: 0.11.0 -> 0.11.1 2018-07-28 14:10:47 +00:00
volth 52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
Vincent Laporte 3b0cd74f55
ocamlPackages.janeStreet: 0.10 -> 0.11 2018-07-05 19:40:31 +00:00
Masayuki Takeda 84adbd0d98 janeStreet: 0.9.0 -> 0.10.0 2018-03-03 11:55:35 +09:00
Vincent Laporte 32ac626973
ocamlPackages.sexplib: 0.9.3 -> 0.10.0 2017-12-16 21:47:59 +00:00
Vladimír Čunát 6f5d989478
treewide: checkMeta fixes for x86_64-linux 2017-12-07 07:50:47 -05:00
Vincent Laporte 9e0159c04c
ocamlPackages.stdio: 0.9.0 -> 0.9.1 2017-11-04 18:50:23 +00:00
Vincent Laporte a8c4829f7c
ocamlPackages.base: 0.9.3 -> 0.9.4 2017-11-04 17:47:38 +00:00
Vincent Laporte 8923737cd5
ocamlPackages.sexplib: 0.9.2 -> 0.9.3 2017-11-04 17:09:50 +00:00
Vincent Laporte 28cd0f240a ocamlPackages.ppx_ast: 0.9.0 -> 0.9.{1,2} 2017-10-09 08:02:11 +00:00
Vincent Laporte 8c506dfb64 ocamlPackages.posixat: mark as broken with OCaml 4.05 2017-08-30 02:28:56 +00:00
Vincent Laporte 77404dbf37 jbuilder: 1.0+beta7 -> 1.0+beta12
ocamlPackages.sexplib: 0.9.1 -> 0.9.2

ocamlPackages.base: 0.9.1 -> 0.9.3

ocamlPackages.ppx_driver: 0.9.0 -> 0.9.1

ocamlPackages.bin_prot: 0.9.0 -> 0.9.1

ocamlPackages.ppx_inline_test: 0.9.0 -> 0.9.2
2017-08-24 17:53:55 +00:00
Vincent Laporte 6e200f2644 ocamlPackages.core: 0.9.0 -> 0.9.1 2017-08-23 20:22:00 +00:00
Vincent Laporte 9074440f11 ocamlPackages.configurator: 0.9.0 -> 0.9.1 2017-08-12 09:46:59 +00:00
Vincent Laporte 68eb2c2379 ocamlPackages.re2: mark broken on darwin 2017-06-05 05:45:59 +00:00
Théo Zimmermann 1562201643 ocamlPackages.janeStreet.{base,sexplib}: 0.9.0 -> 0.9.1 2017-05-30 20:50:36 +02:00
Théo Zimmermann 1dac99b7c9 ocamlPackages.janeStreet package set: init at 0.9.0
This contains a collection of Jane Street packages at version 0.9.0.
Packages not already present in ocamlPackages are also made available
without the janeStreet prefix.
2017-05-30 20:50:36 +02:00