forked from mirrors/nixpkgs
https://github.com/NixOS/nixpkgs/pull/192197 broke these packages by adding systemd as a dependency. This meant that the included package was no longer the python3 systemd package, but the general systemd derivation. This broke the packages at runtime. This PR fixes that.
114 lines
2.4 KiB
Nix
114 lines
2.4 KiB
Nix
{ lib, stdenv, fetchFromGitHub, python3, openssl, rustPlatform
|
|
, enableSystemd ? lib.meta.availableOn stdenv.hostPlatform python3.pkgs.systemd
|
|
, nixosTests
|
|
, enableRedis ? true
|
|
, callPackage
|
|
}:
|
|
|
|
let
|
|
plugins = python3.pkgs.callPackage ./plugins { };
|
|
tools = callPackage ./tools { };
|
|
in
|
|
with python3.pkgs;
|
|
buildPythonApplication rec {
|
|
pname = "matrix-synapse";
|
|
version = "1.75.0";
|
|
format = "pyproject";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "matrix-org";
|
|
repo = "synapse";
|
|
rev = "v${version}";
|
|
hash = "sha256-cfvekrZRLbdsUqkkPF8hz9B4qsum1kpIL0aCnJf3HYg=";
|
|
};
|
|
|
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
|
inherit src;
|
|
name = "${pname}-${version}";
|
|
hash = "sha256-oyXgHqOrMKs+mYGAI4Wn+fuVQWsQJIkPwCY4t+cUlQ4=";
|
|
};
|
|
|
|
postPatch = ''
|
|
# Remove setuptools_rust from runtime dependencies
|
|
# https://github.com/matrix-org/synapse/blob/v1.69.0/pyproject.toml#L177-L185
|
|
sed -i '/^setuptools_rust =/d' pyproject.toml
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
poetry-core
|
|
rustPlatform.cargoSetupHook
|
|
setuptools-rust
|
|
] ++ (with rustPlatform.rust; [
|
|
cargo
|
|
rustc
|
|
]);
|
|
|
|
buildInputs = [ openssl ];
|
|
|
|
propagatedBuildInputs = [
|
|
authlib
|
|
bcrypt
|
|
bleach
|
|
canonicaljson
|
|
daemonize
|
|
frozendict
|
|
ijson
|
|
jinja2
|
|
jsonschema
|
|
lxml
|
|
matrix-common
|
|
msgpack
|
|
netaddr
|
|
phonenumbers
|
|
pillow
|
|
prometheus-client
|
|
psutil
|
|
psycopg2
|
|
pyasn1
|
|
pydantic
|
|
pyicu
|
|
pyjwt
|
|
pymacaroons
|
|
pynacl
|
|
pyopenssl
|
|
pysaml2
|
|
pyyaml
|
|
requests
|
|
setuptools
|
|
signedjson
|
|
sortedcontainers
|
|
treq
|
|
twisted
|
|
typing-extensions
|
|
unpaddedbase64
|
|
] ++ lib.optional enableSystemd systemd
|
|
++ lib.optionals enableRedis [ hiredis txredisapi ];
|
|
|
|
nativeCheckInputs = [ mock parameterized openssl ];
|
|
|
|
doCheck = !stdenv.isDarwin;
|
|
|
|
checkPhase = ''
|
|
runHook preCheck
|
|
|
|
# remove src module, so tests use the installed module instead
|
|
rm -rf ./synapse
|
|
|
|
PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial -j $NIX_BUILD_CORES tests
|
|
|
|
runHook postCheck
|
|
'';
|
|
|
|
passthru.tests = { inherit (nixosTests) matrix-synapse; };
|
|
passthru.plugins = plugins;
|
|
passthru.tools = tools;
|
|
passthru.python = python3;
|
|
|
|
meta = with lib; {
|
|
homepage = "https://matrix.org";
|
|
description = "Matrix reference homeserver";
|
|
license = licenses.asl20;
|
|
maintainers = teams.matrix.members;
|
|
};
|
|
}
|