mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-24 07:53:19 +00:00
a695ad5fb5
By just appending site-packages to the extraPackages, you would get situations like pysaml2 being included in pythonpath, but not its dependencies like pytz and dateutils
45 lines
1.0 KiB
Nix
45 lines
1.0 KiB
Nix
{ lib
|
|
, stdenv
|
|
, makeWrapper
|
|
, matrix-synapse-unwrapped
|
|
, extras ? [
|
|
"postgres"
|
|
"url-preview"
|
|
"user-search"
|
|
] ++ lib.optional (lib.meta.availableOn stdenv.hostPlatform matrix-synapse-unwrapped.python.pkgs.systemd) "systemd"
|
|
, plugins ? [ ]
|
|
, ...
|
|
}:
|
|
|
|
let
|
|
extraPackages = lib.concatMap (extra: matrix-synapse-unwrapped.optional-dependencies.${extra}) (lib.unique extras);
|
|
|
|
pythonEnv = matrix-synapse-unwrapped.python.buildEnv.override {
|
|
extraLibs = extraPackages ++ plugins;
|
|
};
|
|
|
|
searchPath = "${pythonEnv}/${matrix-synapse-unwrapped.python.sitePackages}";
|
|
in
|
|
stdenv.mkDerivation {
|
|
name = (lib.appendToName "wrapped" matrix-synapse-unwrapped).name;
|
|
|
|
nativeBuildInputs = [
|
|
makeWrapper
|
|
];
|
|
|
|
buildCommand = ''
|
|
for bin in ${matrix-synapse-unwrapped}/bin/*; do
|
|
echo $bin
|
|
makeWrapper "$bin" "$out/bin/$(basename $bin)" \
|
|
--set PYTHONPATH ${searchPath}
|
|
done;
|
|
'';
|
|
|
|
passthru = {
|
|
unwrapped = matrix-synapse-unwrapped;
|
|
|
|
# for backward compatibility
|
|
inherit (matrix-synapse-unwrapped) plugins tools;
|
|
};
|
|
}
|