rPackages: s/overrideDerivation/overrideAttrs

and attrs.NIX_CFLAGS_COMPILE to attrs.env.NIX_CFLAGS_COMPILE

https://nixos.org/manual/nixpkgs/stable/#sec-pkg-overrideDerivation

> Do not use this function in Nixpkgs as it evaluates a Derivation before modifying it, which breaks package abstraction and removes error-checking of function arguments
This commit is contained in:
Artturin 2023-02-23 18:23:32 +02:00
parent 06567334be
commit 5110d8b6fb

View file

@ -84,13 +84,13 @@ let
# results in
#
# {
# foo = old.foo.overrideDerivation (attrs: {
# foo = old.foo.overrideAttrs (attrs: {
# nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
# });
# }
overrideNativeBuildInputs = overrides: old:
lib.mapAttrs (name: value:
(builtins.getAttr name old).overrideDerivation (attrs: {
(builtins.getAttr name old).overrideAttrs (attrs: {
nativeBuildInputs = attrs.nativeBuildInputs ++ value;
})
) overrides;
@ -105,13 +105,13 @@ let
# results in
#
# {
# foo = old.foo.overrideDerivation (attrs: {
# foo = old.foo.overrideAttrs (attrs: {
# buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
# });
# }
overrideBuildInputs = overrides: old:
lib.mapAttrs (name: value:
(builtins.getAttr name old).overrideDerivation (attrs: {
(builtins.getAttr name old).overrideAttrs (attrs: {
buildInputs = attrs.buildInputs ++ value;
})
) overrides;
@ -146,14 +146,14 @@ let
# results in
#
# {
# foo = old.foo.overrideDerivation (attrs: {
# foo = old.foo.overrideAttrs (attrs: {
# nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
# propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
# });
# }
overrideRDepends = overrides: old:
lib.mapAttrs (name: value:
(builtins.getAttr name old).overrideDerivation (attrs: {
(builtins.getAttr name old).overrideAttrs (attrs: {
nativeBuildInputs = attrs.nativeBuildInputs ++ value;
propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ value;
})
@ -913,7 +913,7 @@ let
];
otherOverrides = old: new: {
gifski = old.gifski.overrideDerivation (attrs: {
gifski = old.gifski.overrideAttrs (attrs: {
cargoDeps = pkgs.rustPlatform.fetchCargoTarball {
src = attrs.src;
sourceRoot = "gifski/src/myrustlib";
@ -929,7 +929,7 @@ let
];
});
stringi = old.stringi.overrideDerivation (attrs: {
stringi = old.stringi.overrideAttrs (attrs: {
postInstall = let
icuName = "icudt52l";
icuSrc = pkgs.fetchzip {
@ -943,72 +943,75 @@ let
'';
});
xml2 = old.xml2.overrideDerivation (attrs: {
xml2 = old.xml2.overrideAttrs (attrs: {
preConfigure = ''
export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
patchShebangs configure
'';
});
rzmq = old.rzmq.overrideDerivation (attrs: {
rzmq = old.rzmq.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
clustermq = old.clustermq.overrideDerivation (attrs: {
clustermq = old.clustermq.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
Cairo = old.Cairo.overrideDerivation (attrs: {
Cairo = old.Cairo.overrideAttrs (attrs: {
NIX_LDFLAGS = "-lfontconfig";
});
curl = old.curl.overrideDerivation (attrs: {
curl = old.curl.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
RcppParallel = old.RcppParallel.overrideDerivation (attrs: {
RcppParallel = old.RcppParallel.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
RcppArmadillo = old.RcppArmadillo.overrideDerivation (attrs: {
RcppArmadillo = old.RcppArmadillo.overrideAttrs (attrs: {
patchPhase = "patchShebangs configure";
});
data_table = old.data_table.overrideDerivation (attrs: {
env.NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE + " -fopenmp";
data_table = old.data_table.overrideAttrs (attrs: {
env = (attrs.env or { }) // {
NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -fopenmp";
};
patchPhase = "patchShebangs configure";
});
ModelMetrics = old.ModelMetrics.overrideDerivation (attrs: {
env.NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE
+ lib.optionalString stdenv.isDarwin " -fopenmp";
ModelMetrics = old.ModelMetrics.overrideAttrs (attrs: {
env = (attrs.env or { }) // {
NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + lib.optionalString stdenv.isDarwin " -fopenmp";
};
});
rpf = old.rpf.overrideDerivation (attrs: {
rpf = old.rpf.overrideAttrs (attrs: {
patchPhase = "patchShebangs configure";
});
rJava = old.rJava.overrideDerivation (attrs: {
rJava = old.rJava.overrideAttrs (attrs: {
preConfigure = ''
export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
export JAVA_HOME=${pkgs.jdk}
'';
});
JavaGD = old.JavaGD.overrideDerivation (attrs: {
JavaGD = old.JavaGD.overrideAttrs (attrs: {
preConfigure = ''
export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
export JAVA_HOME=${pkgs.jdk}
'';
});
jqr = old.jqr.overrideDerivation (attrs: {
jqr = old.jqr.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
pbdZMQ = old.pbdZMQ.overrideDerivation (attrs: {
pbdZMQ = old.pbdZMQ.overrideAttrs (attrs: {
postPatch = lib.optionalString stdenv.isDarwin ''
for file in R/*.{r,r.in}; do
sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.darwin.cctools}/bin/\1"#g' $file
@ -1016,42 +1019,42 @@ let
'';
});
quarto = old.quarto.overrideDerivation (attrs: {
quarto = old.quarto.overrideAttrs (attrs: {
postPatch = ''
substituteInPlace "R/quarto.R" \
--replace "path_env <- Sys.getenv(\"QUARTO_PATH\", unset = NA)" "path_env <- Sys.getenv(\"QUARTO_PATH\", unset = '${lib.getBin pkgs.quarto}/bin/quarto')"
'';
});
s2 = old.s2.overrideDerivation (attrs: {
s2 = old.s2.overrideAttrs (attrs: {
PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
});
Rmpi = old.Rmpi.overrideDerivation (attrs: {
Rmpi = old.Rmpi.overrideAttrs (attrs: {
configureFlags = [
"--with-Rmpi-type=OPENMPI"
];
});
Rmpfr = old.Rmpfr.overrideDerivation (attrs: {
Rmpfr = old.Rmpfr.overrideAttrs (attrs: {
configureFlags = [
"--with-mpfr-include=${pkgs.mpfr.dev}/include"
];
});
RVowpalWabbit = old.RVowpalWabbit.overrideDerivation (attrs: {
RVowpalWabbit = old.RVowpalWabbit.overrideAttrs (attrs: {
configureFlags = [
"--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
];
});
RAppArmor = old.RAppArmor.overrideDerivation (attrs: {
RAppArmor = old.RAppArmor.overrideAttrs (attrs: {
patches = [ ./patches/RAppArmor.patch ];
LIBAPPARMOR_HOME = pkgs.libapparmor;
});
RMySQL = old.RMySQL.overrideDerivation (attrs: {
RMySQL = old.RMySQL.overrideAttrs (attrs: {
MYSQL_DIR = "${pkgs.libmysqlclient}";
PKGCONFIG_CFLAGS = "-I${pkgs.libmysqlclient.dev}/include/mysql";
NIX_CFLAGS_LINK = "-L${pkgs.libmysqlclient}/lib/mysql -lmysqlclient";
@ -1060,24 +1063,24 @@ let
'';
});
devEMF = old.devEMF.overrideDerivation (attrs: {
devEMF = old.devEMF.overrideAttrs (attrs: {
NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
NIX_LDFLAGS = "-lX11";
});
slfm = old.slfm.overrideDerivation (attrs: {
slfm = old.slfm.overrideAttrs (attrs: {
PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
});
SamplerCompare = old.SamplerCompare.overrideDerivation (attrs: {
SamplerCompare = old.SamplerCompare.overrideAttrs (attrs: {
PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
});
spMC = old.spMC.overrideDerivation (attrs: {
spMC = old.spMC.overrideAttrs (attrs: {
patches = [ ./patches/spMC.patch ];
});
openssl = old.openssl.overrideDerivation (attrs: {
openssl = old.openssl.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
@ -1085,19 +1088,19 @@ let
PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
});
websocket = old.websocket.overrideDerivation (attrs: {
websocket = old.websocket.overrideAttrs (attrs: {
PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
});
Rserve = old.Rserve.overrideDerivation (attrs: {
Rserve = old.Rserve.overrideAttrs (attrs: {
patches = [ ./patches/Rserve.patch ];
configureFlags = [
"--with-server" "--with-client"
];
});
V8 = old.V8.overrideDerivation (attrs: {
V8 = old.V8.overrideAttrs (attrs: {
postPatch = ''
substituteInPlace configure \
--replace " -lv8_libplatform" ""
@ -1115,45 +1118,45 @@ let
'');
});
acs = old.acs.overrideDerivation (attrs: {
acs = old.acs.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
gdtools = old.gdtools.overrideDerivation (attrs: {
gdtools = old.gdtools.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
NIX_LDFLAGS = "-lfontconfig -lfreetype";
});
magick = old.magick.overrideDerivation (attrs: {
magick = old.magick.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
libgeos = old.libgeos.overrideDerivation (attrs: {
libgeos = old.libgeos.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
protolite = old.protolite.overrideDerivation (attrs: {
protolite = old.protolite.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
rpanel = old.rpanel.overrideDerivation (attrs: {
rpanel = old.rpanel.overrideAttrs (attrs: {
preConfigure = ''
export TCLLIBPATH="${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}"
'';
TCLLIBPATH = "${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}";
});
RPostgres = old.RPostgres.overrideDerivation (attrs: {
RPostgres = old.RPostgres.overrideAttrs (attrs: {
preConfigure = ''
export INCLUDE_DIR=${pkgs.postgresql}/include
export LIB_DIR=${pkgs.postgresql.lib}/lib
@ -1161,33 +1164,35 @@ let
'';
});
OpenMx = old.OpenMx.overrideDerivation (attrs: {
OpenMx = old.OpenMx.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
odbc = old.odbc.overrideDerivation (attrs: {
odbc = old.odbc.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
x13binary = old.x13binary.overrideDerivation (attrs: {
x13binary = old.x13binary.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
geojsonio = old.geojsonio.overrideDerivation (attrs: {
geojsonio = old.geojsonio.overrideAttrs (attrs: {
buildInputs = [ cacert ] ++ attrs.buildInputs;
});
rstan = old.rstan.overrideDerivation (attrs: {
env.NIX_CFLAGS_COMPILE = "${attrs.NIX_CFLAGS_COMPILE} -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
rstan = old.rstan.overrideAttrs (attrs: {
env = (attrs.env or { }) // {
NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
};
});
mongolite = old.mongolite.overrideDerivation (attrs: {
mongolite = old.mongolite.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
@ -1195,15 +1200,15 @@ let
PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -L${pkgs.cyrus_sasl.out}/lib -L${pkgs.zlib.out}/lib -lssl -lcrypto -lsasl2 -lz";
});
ps = old.ps.overrideDerivation (attrs: {
ps = old.ps.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
rlang = old.rlang.overrideDerivation (attrs: {
rlang = old.rlang.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
systemfonts = old.systemfonts.overrideDerivation (attrs: {
systemfonts = old.systemfonts.overrideAttrs (attrs: {
preConfigure = "patchShebangs configure";
});
@ -1219,13 +1224,13 @@ let
'';
});
lpsymphony = old.lpsymphony.overrideDerivation (attrs: {
lpsymphony = old.lpsymphony.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
sodium = old.sodium.overrideDerivation (attrs: with pkgs; {
sodium = old.sodium.overrideAttrs (attrs: with pkgs; {
preConfigure = ''
patchShebangs configure
'';
@ -1233,19 +1238,19 @@ let
buildInputs = [ libsodium.dev ] ++ attrs.buildInputs;
});
keyring = old.keyring.overrideDerivation (attrs: {
keyring = old.keyring.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
Rhtslib = old.Rhtslib.overrideDerivation (attrs: {
Rhtslib = old.Rhtslib.overrideAttrs (attrs: {
preConfigure = ''
substituteInPlace R/zzz.R --replace "-lcurl" "-L${pkgs.curl.out}/lib -lcurl"
'';
});
h2o = old.h2o.overrideDerivation (attrs: {
h2o = old.h2o.overrideAttrs (attrs: {
preConfigure = ''
# prevent download of jar file during install and postpone to first use
sed -i '/downloadJar()/d' R/zzz.R
@ -1258,26 +1263,26 @@ let
'';
});
SICtools = old.SICtools.overrideDerivation (attrs: {
SICtools = old.SICtools.overrideAttrs (attrs: {
preConfigure = ''
substituteInPlace src/Makefile --replace "-lcurses" "-lncurses"
'';
});
arrow = old.arrow.overrideDerivation (attrs: {
arrow = old.arrow.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
proj4 = old.proj4.overrideDerivation (attrs: {
proj4 = old.proj4.overrideAttrs (attrs: {
preConfigure = ''
substituteInPlace configure \
--replace "-lsqlite3" "-L${lib.makeLibraryPath [ pkgs.sqlite ]} -lsqlite3"
'';
});
rrd = old.rrd.overrideDerivation (attrs: {
rrd = old.rrd.overrideAttrs (attrs: {
preConfigure = ''
patchShebangs configure
'';
@ -1285,7 +1290,7 @@ let
ChIPXpress = old.ChIPXpress.override { hydraPlatforms = []; };
rgl = old.rgl.overrideDerivation (attrs: {
rgl = old.rgl.overrideAttrs (attrs: {
RGL_USE_NULL = "true";
});
@ -1295,11 +1300,11 @@ let
flowClust = old.flowClust.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
geomorph = old.geomorph.overrideDerivation (attrs: {
geomorph = old.geomorph.overrideAttrs (attrs: {
RGL_USE_NULL = "true";
});
Rhdf5lib = old.Rhdf5lib.overrideDerivation (attrs: {
Rhdf5lib = old.Rhdf5lib.overrideAttrs (attrs: {
propagatedBuildInputs = attrs.propagatedBuildInputs ++ [ pkgs.hdf5.dev ];
});
};