2019-06-27 16:44:42 +01:00
|
|
|
{
|
|
|
|
pkgs ? import <nixpkgs> { },
|
|
|
|
lib ? pkgs.lib,
|
|
|
|
}:
|
2019-06-24 12:31:59 +01:00
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
let
|
2019-06-24 12:31:59 +01:00
|
|
|
|
2019-06-23 23:11:38 +01:00
|
|
|
addSetupTools = self: super: drv: drv.overrideAttrs(old: {
|
2019-06-17 16:27:16 +01:00
|
|
|
buildInputs = old.buildInputs ++ [
|
2019-06-22 22:42:29 +01:00
|
|
|
self.setuptools_scm
|
2019-06-17 16:27:16 +01:00
|
|
|
];
|
2019-06-22 22:42:29 +01:00
|
|
|
});
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
renameLiteral = pname: (self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
src = old.src.override { inherit pname; };
|
|
|
|
}));
|
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
renameUnderscore = self: super: drv: drv.overrideAttrs(old: {
|
2019-06-29 18:41:22 +01:00
|
|
|
src = old.src.override { pname = builtins.replaceStrings ["-"] ["_"] old.pname; };
|
2019-06-24 12:31:59 +01:00
|
|
|
});
|
|
|
|
|
2019-06-27 16:44:42 +01:00
|
|
|
renameCapital = let
|
|
|
|
capitalise = s: let
|
|
|
|
len = builtins.stringLength s;
|
|
|
|
first = lib.toUpper (builtins.substring 0 1 s);
|
|
|
|
in first + builtins.substring 1 len s;
|
|
|
|
in self: super: drv: drv.overrideAttrs(old: {
|
2019-06-29 18:41:22 +01:00
|
|
|
src = old.src.override { pname = capitalise old.pname; };
|
2019-06-27 16:44:42 +01:00
|
|
|
});
|
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
# Chain multiple overrides into a single one
|
|
|
|
composeOverrides = overrides:
|
|
|
|
(self: super: drv: builtins.foldl' (drv: override: override self super drv) drv overrides);
|
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
getAttrDefault = attribute: set: default:
|
|
|
|
if builtins.hasAttr attribute set
|
|
|
|
then builtins.getAttr attribute set
|
|
|
|
else default;
|
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
in {
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
babel = renameCapital;
|
|
|
|
|
2019-06-27 16:44:42 +01:00
|
|
|
django-bakery = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
configurePhase = ''
|
|
|
|
if ! test -e LICENSE; then
|
|
|
|
touch LICENSE
|
|
|
|
fi
|
|
|
|
'' + old.configurePhase;
|
|
|
|
});
|
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
vat-moss = renameUnderscore;
|
2019-06-27 16:44:42 +01:00
|
|
|
|
|
|
|
django = self: super: drv: drv.overrideAttrs(old: {
|
2019-06-29 18:41:22 +01:00
|
|
|
propagatedNativeBuildInputs = (getAttrDefault "propagatedNativeBuildInputs" old [])
|
|
|
|
++ [ pkgs.gettext ];
|
|
|
|
});
|
|
|
|
|
|
|
|
cffi = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.libffi ];
|
|
|
|
});
|
|
|
|
|
|
|
|
cryptography = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.openssl ];
|
2019-06-27 16:44:42 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
django-compressor = renameUnderscore;
|
|
|
|
|
|
|
|
django-csp = renameUnderscore;
|
|
|
|
|
|
|
|
django-context-decorator = renameUnderscore;
|
|
|
|
|
|
|
|
markdown = renameCapital;
|
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
pyyaml = renameLiteral "PyYAML";
|
|
|
|
|
2019-06-27 16:44:42 +01:00
|
|
|
pillow = let
|
|
|
|
pillowOverride = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
nativeBuildInputs = [ pkgs.pkgconfig ]
|
|
|
|
++ old.nativeBuildInputs;
|
|
|
|
buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ]
|
|
|
|
++ old.buildInputs;
|
|
|
|
});
|
|
|
|
in composeOverrides [ renameCapital pillowOverride ];
|
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
pytest = addSetupTools;
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
six = addSetupTools;
|
|
|
|
|
|
|
|
py = addSetupTools;
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
zipp = addSetupTools;
|
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
importlib-metadata = composeOverrides [ renameUnderscore addSetupTools ];
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
typing-extensions = renameUnderscore;
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
pluggy = addSetupTools;
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
jsonschema = addSetupTools;
|
|
|
|
|
2019-06-24 16:23:02 +01:00
|
|
|
python-dateutil = addSetupTools;
|
|
|
|
|
|
|
|
numpy = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.openblasCompat ];
|
2019-06-27 16:44:42 +01:00
|
|
|
});
|
2019-06-24 16:23:02 +01:00
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
psycopg2-binary = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
|
|
|
|
});
|
|
|
|
|
2019-06-27 16:44:42 +01:00
|
|
|
lxml = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
|
|
|
|
buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
|
2019-06-24 16:23:02 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
shapely = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
|
|
|
|
inherit (super.shapely) patches GEOS_LIBRARY_PATH;
|
|
|
|
});
|
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
lockfile = self: super: drv: drv.overrideAttrs(old: {
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
|
|
|
|
});
|
|
|
|
|
2019-06-17 16:27:16 +01:00
|
|
|
}
|