opam: 2.3.0 -> 2.4.0

This commit is contained in:
Kate 2025-07-18 14:04:40 +01:00 committed by Vincent Laporte
parent 4ae8242fb8
commit 4d2c18b7df
4 changed files with 20 additions and 25 deletions

View File

@ -8,6 +8,7 @@
sha, sha,
swhid_core, swhid_core,
uutf, uutf,
patch,
}: }:
buildDunePackage { buildDunePackage {
@ -22,6 +23,7 @@ buildDunePackage {
re re
sha sha
swhid_core swhid_core
patch
]; ];
# get rid of check for curl at configure time # get rid of check for curl at configure time

View File

@ -3,6 +3,7 @@
buildDunePackage, buildDunePackage,
opam-format, opam-format,
curl, curl,
patch,
}: }:
buildDunePackage { buildDunePackage {
@ -10,7 +11,10 @@ buildDunePackage {
inherit (opam-format) src version; inherit (opam-format) src version;
propagatedBuildInputs = [ opam-format ]; propagatedBuildInputs = [
opam-format
patch
];
configureFlags = [ "--disable-checks" ]; configureFlags = [ "--disable-checks" ];

View File

@ -15,11 +15,11 @@ assert lib.versionAtLeast ocaml.version "4.08.0";
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "opam"; pname = "opam";
version = "2.3.0"; version = "2.4.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/ocaml/opam/releases/download/${finalAttrs.version}/opam-full-${finalAttrs.version}.tar.gz"; url = "https://github.com/ocaml/opam/releases/download/${finalAttrs.version}/opam-full-${finalAttrs.version}.tar.gz";
hash = "sha256-UGunaGXcMVtn35qonnq9XBqJen8KkteyaUl0/cUys0Y="; hash = "sha256-EZ9B77EZLa019Ef78cYgL/wzEQXpSdKYCnXfjLLJMoI=";
}; };
strictDeps = true; strictDeps = true;
@ -38,12 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
patches = [ ./opam-shebangs.patch ]; patches = [ ./opam-shebangs.patch ];
preConfigure = ''
# Fix opam sandboxing on nixos. Remove after opam >= 2.4.0 is released
substituteInPlace src/state/shellscripts/bwrap.sh \
--replace-fail 'for dir in /*; do' 'for dir in /{*,run/current-system/sw}; do'
'';
configureFlags = [ configureFlags = [
"--with-vendored-deps" "--with-vendored-deps"
"--with-mccs" "--with-mccs"

View File

@ -2,7 +2,7 @@ diff --git a/src/client/opamInitDefaults.ml b/src/client/opamInitDefaults.ml
index eca13a7c..1fd66f43 100644 index eca13a7c..1fd66f43 100644
--- a/src/client/opamInitDefaults.ml --- a/src/client/opamInitDefaults.ml
+++ b/src/client/opamInitDefaults.ml +++ b/src/client/opamInitDefaults.ml
@@ -42,16 +42,20 @@ let eval_variables = [ @@ -38,6 +38,9 @@ let eval_variables =
let os_filter os = let os_filter os =
FOp (FIdent ([], OpamVariable.of_string "os", None), `Eq, FString os) FOp (FIdent ([], OpamVariable.of_string "os", None), `Eq, FString os)
@ -12,32 +12,27 @@ index eca13a7c..1fd66f43 100644
let linux_filter = os_filter "linux" let linux_filter = os_filter "linux"
let macos_filter = os_filter "macos" let macos_filter = os_filter "macos"
let openbsd_filter = os_filter "openbsd" let openbsd_filter = os_filter "openbsd"
let freebsd_filter = os_filter "freebsd" @@ -51,6 +54,7 @@ let win32_filter = os_filter "win32"
let netbsd_filter = os_filter "netbsd"
let dragonflybsd_filter = os_filter "dragonfly"
let not_open_free_bsd_filter =
FNot (FOr (openbsd_filter, freebsd_filter))
let win32_filter = os_filter "win32"
let not_win32_filter = let not_win32_filter =
FOp (FIdent ([], OpamVariable.of_string "os", None), `Neq, FString "win32") FOp (FIdent ([], OpamVariable.of_string "os", None), `Neq, FString "win32")
let sandbox_filter = FOr (linux_filter, macos_filter) let sandbox_filter = FOr (linux_filter, macos_filter)
+let nixos_filter = os_distribution_filter "nixos" +let nixos_filter = os_distribution_filter "nixos"
let gpatch_filter = let gtar_filter = openbsd_filter
FOr (FOr (openbsd_filter, netbsd_filter), let tar_filter = FNot gtar_filter
FOr (freebsd_filter, dragonflybsd_filter)) @@ -69,6 +73,11 @@ let sandbox_wrappers =
let patch_filter = FNot gpatch_filter
@@ -79,4 +81,9 @@ let wrappers ~sandboxing () = let wrappers ~sandboxing () =
let w = OpamFile.Wrappers.empty in let w = OpamFile.Wrappers.empty in
+ let w = { w with + let w = { w with
+ OpamFile.Wrappers. + OpamFile.Wrappers.
+ pre_build = [[CString "%{hooks}%/shebangs.sh", None], Some nixos_filter]; + pre_build = [[CString "%{hooks}%/shebangs.sh", None], Some nixos_filter];
+ } + }
+ in + in
if sandboxing then if sandboxing then
List.fold_left OpamFile.Wrappers.(fun w -> function List.fold_left OpamFile.Wrappers.(fun w -> function
| `build wrap_build -> { w with wrap_build } | `build wrap_build -> { w with wrap_build }
@@ -113,6 +122,7 @@ let required_tools ~sandboxing () = @@ -147,6 +156,7 @@ let required_packages_for_cygwin =
let init_scripts () = [ let init_scripts () = [
("sandbox.sh", OpamScript.bwrap), Some bwrap_filter; ("sandbox.sh", OpamScript.bwrap), Some bwrap_filter;
("sandbox.sh", OpamScript.sandbox_exec), Some macos_filter; ("sandbox.sh", OpamScript.sandbox_exec), Some macos_filter;