about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--overlays/default.nix8
-rw-r--r--overlays/python3-mautrix-0-19.nix82
2 files changed, 89 insertions, 1 deletions
diff --git a/overlays/default.nix b/overlays/default.nix
index ddb4f23..0dbd403 100644
--- a/overlays/default.nix
+++ b/overlays/default.nix
@@ -1 +1,7 @@
-self: super: { }
+self: super: {
+  pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
+    (p-final: p-prev: {
+      mautrix_0_19 = super.python3Packages.callPackage ./python3-mautrix-0-19.nix { };
+     })
+  ];
+}
diff --git a/overlays/python3-mautrix-0-19.nix b/overlays/python3-mautrix-0-19.nix
new file mode 100644
index 0000000..b97730f
--- /dev/null
+++ b/overlays/python3-mautrix-0-19.nix
@@ -0,0 +1,82 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+  # deps
+, aiohttp
+, attrs
+, yarl
+  # optional deps
+, python-magic
+, python-olm
+, unpaddedbase64
+, pycryptodome
+  # check deps
+, pytestCheckHook
+, pytest-asyncio
+, aiosqlite
+, sqlalchemy
+, asyncpg
+}:
+
+buildPythonPackage rec {
+  pname = "mautrix";
+  version = "0.19.16";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "mautrix";
+    repo = "python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aZlc4+J5Q+N9qEzGUMhsYguPdUy+E5I06wrjVyqvVDk=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    attrs
+    yarl
+  ];
+
+  passthru.optional-dependencies = {
+    detect_mimetype = [
+      python-magic
+    ];
+    encryption = [
+      python-olm
+      unpaddedbase64
+      pycryptodome
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    aiosqlite
+    sqlalchemy
+    asyncpg
+  ] ++ passthru.optional-dependencies.encryption;
+
+  SQLALCHEMY_SILENCE_UBER_WARNING = 1;
+
+  disabledTestPaths = [
+    # sqlalchemy 2 unsupported
+    "mautrix/client/state_store/tests/store_test.py"
+  ];
+
+  pythonImportsCheck = [
+    "mautrix"
+  ];
+
+  meta = with lib; {
+    description = "Asyncio Matrix framework";
+    homepage = "https://github.com/tulir/mautrix-python";
+    changelog = "https://github.com/mautrix/python/releases/tag/v${version}";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ nyanloutre ma27 sumnerevans nickcao ];
+  };
+}