mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
ocamlPackages.findlib: detect conflicts of version early
just like pythonCatchConflictHook
This commit is contained in:
parent
3302bc3ddd
commit
6043e3af4e
|
@ -129,3 +129,8 @@ packaged libraries may still use the old spelling: maintainers are invited to
|
|||
fix this when updating packages. Massive renaming is strongly discouraged as it
|
||||
would be challenging to review, difficult to test, and will cause unnecessary
|
||||
rebuild.
|
||||
|
||||
The build will automatically fail if two distinct versions of the same library
|
||||
are added to `buildInputs` (which usually happens transitively because of
|
||||
`propagatedBuildInputs`). Set `dontDetectOcamlConflicts` to true to disable this
|
||||
behavior.
|
||||
|
|
|
@ -44,6 +44,15 @@ stdenv.mkDerivation rec {
|
|||
mkdir -p $OCAMLFIND_DESTDIR
|
||||
fi
|
||||
}
|
||||
detectOcamlConflicts () {
|
||||
local conflict
|
||||
conflict="$(ocamlfind list |& grep "has multiple definitions" || true)"
|
||||
if [[ -n "$conflict" ]]; then
|
||||
echo "Conflicting ocaml packages detected";
|
||||
echo "$conflict"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# run for every buildInput
|
||||
addEnvHooks "$targetOffset" addOCamlPath
|
||||
|
@ -51,6 +60,10 @@ stdenv.mkDerivation rec {
|
|||
preInstallHooks+=(createOcamlDestDir)
|
||||
# run even in nix-shell, and even without buildInputs
|
||||
addEnvHooks "$hostOffset" exportOcamlDestDir
|
||||
# runs after all calls to addOCamlPath
|
||||
if [[ -z "''${dontDetectOcamlConflicts-}" ]]; then
|
||||
postHooks+=("detectOcamlConflicts")
|
||||
fi
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
|
Loading…
Reference in a new issue