depot/packages/patched-derivations.nix

94 lines
2.6 KiB
Nix

let
tools = import ./lib/tools.nix;
pins = import ./sources;
dvcMd5ToSha256 = old: {
postPatch = (old.postPatch or "") + ''
grep -Rwl md5 | xargs sed -i s/md5/sha256/g
'';
};
dvcYamlToJson = old: {
postPatch = (old.postPatch or "") + ''
grep -Rwl yaml | xargs sed -i s/yaml/json/g
grep -Rwl ruamel.json | xargs sed -i s/ruamel.json/ruamel.yaml/g
'';
};
in with tools;
super: rec {
dvc = patch (super.dvc.overrideAttrs (old: let
filteredBaseDeps = super.lib.subtractLists [
super.python3Packages.dvc-data
super.python3Packages.dvc-http
] old.propagatedBuildInputs;
baseDeps = filteredBaseDeps ++ [
dvc-data
dvc-http
];
patched = dvcMd5ToSha256 old;
patched' = dvcYamlToJson patched;
in patched' // {
propagatedBuildInputs = with super.python3Packages; baseDeps ++ [
aiobotocore
boto3
(s3fs.overrideAttrs (_: { postPatch = ''
substituteInPlace requirements.txt \
--replace "fsspec==2023.3.0" "fsspec" \
--replace "aiobotocore~=2.1.0" "aiobotocore"
'';
}))
];
})) "patches/base/dvc";
dvc-data = (super.python3Packages.dvc-data.override {
inherit dvc-objects;
}).overrideAttrs dvcMd5ToSha256;
dvc-http = super.python3Packages.dvc-http.override {
inherit dvc-objects;
};
dvc-objects = super.python3Packages.dvc-objects.overrideAttrs dvcMd5ToSha256;
jellyfin = patch (super.jellyfin.override {
ffmpeg = super.ffmpeg.override {
withMfx = true;
};
}) "patches/base/jellyfin";
jre17_standard = let
jre = super.jre_minimal.override {
jdk = super.jdk17_headless;
modules = [
"java.se"
"jdk.naming.dns"
"jdk.crypto.ec"
"jdk.zipfs"
"jdk.security.auth"
"jdk.unsupported"
"jdk.xml.dom"
"jdk.sctp"
"jdk.management"
"jdk.dynalink"
];
};
in jre // { meta = jre.meta // { inherit (super.jdk17_headless.meta) platforms; }; };
kanidm = patch super.kanidm "patches/base/kanidm";
keycloak = super.keycloak.override {
jre = jre17_standard;
};
powerdns-admin = patch super.powerdns-admin "patches/base/powerdns-admin";
prometheus-jitsi-exporter = patch super.prometheus-jitsi-exporter "patches/base/prometheus-jitsi-exporter";
tempo = (super.tempo.override { buildGoModule = super.buildGo119Module; }).overrideAttrs (_: {
version = builtins.substring 1 (-1) pins.tempo.version;
src = super.npins.mkSource pins.tempo;
subPackages = [ "cmd/tempo" ];
});
}