diff options
author | Martin Weinelt <mweinelt@users.noreply.github.com> | 2023-05-12 18:15:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-12 18:15:38 +0200 |
commit | a9d8cb2c16b2f95a876dae825d16cdb9e4e253ad (patch) | |
tree | 568e2597715353a8e9b4b025281f64062f269643 | |
parent | 162d87100bbf46b4049becf19c3dcfce2a1244db (diff) | |
parent | 8b54d13aac4362370f231a676fe5bdc62a1fb5e7 (diff) |
Merge pull request #230821 from pmiddend/pyca-update
pyCA: 2.1 -> 4.5
-rw-r--r-- | pkgs/applications/video/pyca/default.nix | 62 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
2 files changed, 58 insertions, 6 deletions
diff --git a/pkgs/applications/video/pyca/default.nix b/pkgs/applications/video/pyca/default.nix index decba42dd5f4e..ed167aeb91cbb 100644 --- a/pkgs/applications/video/pyca/default.nix +++ b/pkgs/applications/video/pyca/default.nix @@ -1,25 +1,77 @@ -{ stdenv, lib, buildPythonApplication, fetchFromGitHub, pycurl, python-dateutil, configobj, sqlalchemy, sdnotify, flask }: +{ stdenv, lib, python3, fetchFromGitHub, buildNpmPackage, jq }: -buildPythonApplication rec { +let + python = python3.override { + packageOverrides = self: super: { + # pyCA is incompatible with SQLAlchemy 2.0 + sqlalchemy = super.sqlalchemy.overridePythonAttrs (old: rec { + version = "1.4.46"; + src = self.fetchPypi { + pname = "SQLAlchemy"; + inherit version; + hash = "sha256-aRO4JH2KKS74MVFipRkx4rQM6RaB8bbxj2lwRSAMSjA="; + }; + }); + }; + }; + + frontend = buildNpmPackage rec { + pname = "pyca"; + version = "4.5"; + + src = fetchFromGitHub { + owner = "opencast"; + repo = "pyCA"; + rev = "v${version}"; + sha256 = "sha256-cTkWkOmgxJZlddqaSYKva2wih4Mvsdrd7LD4NggxKQk="; + }; + + npmDepsHash = "sha256-0U+semrNWTkNu3uQQkiJKZT1hB0/IfkL84G7/oP8XYY="; + + nativeBuildInputs = [ jq python ]; + + postPatch = '' + ${jq}/bin/jq '. += {"version": "${version}"}' < package.json > package.json.tmp + mv package.json.tmp package.json + ''; + + installPhase = '' + mkdir -p $out/static + cp -R pyca/ui/static/* $out/static/ + ''; + }; + +in +python3.pkgs.buildPythonApplication rec { pname = "pyca"; - version = "2.1"; + version = "4.5"; src = fetchFromGitHub { owner = "opencast"; repo = "pyCA"; rev = "v${version}"; - sha256 = "0cvkmdlcax9da9iw4ls73vw0pxvm8wvchab5gwdy9w9ibqdpcmwh"; + sha256 = "sha256-cTkWkOmgxJZlddqaSYKva2wih4Mvsdrd7LD4NggxKQk="; }; - propagatedBuildInputs = [ + propagatedBuildInputs = with python.pkgs; [ pycurl python-dateutil configobj sqlalchemy sdnotify + psutil flask + prometheus-client ]; + postPatch = '' + sed -i -e 's#static_folder=.*#static_folder="${frontend}/static")#' pyca/ui/__init__.py + ''; + + passthru = { + inherit frontend; + }; + meta = with lib; { broken = stdenv.isDarwin; description = "A fully functional Opencast capture agent written in Python"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8594fe67238eb..d5be122b5c007 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5643,7 +5643,7 @@ with pkgs; waitron = callPackage ../tools/networking/waitron { }; - pyCA = python3Packages.callPackage ../applications/video/pyca { }; + pyCA = callPackage ../applications/video/pyca { }; pyznap = python3Packages.callPackage ../tools/backup/pyznap { }; |