diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix index a3b043adbe5..292c3cf2156 100644 --- a/pkgs/applications/graphics/hydrus/default.nix +++ b/pkgs/applications/graphics/hydrus/default.nix @@ -1,53 +1,56 @@ { lib , fetchFromGitHub -, xz , wrapQtAppsHook , miniupnpc_2 +, ffmpeg , enableSwftools ? false , swftools -, pythonPackages +, python3Packages }: -pythonPackages.buildPythonPackage rec { +python3Packages.buildPythonPackage rec { pname = "hydrus"; - version = "441"; + version = "447"; format = "other"; src = fetchFromGitHub { owner = "hydrusnetwork"; repo = "hydrus"; rev = "v${version}"; - sha256 = "13h4qcz0iqba4mwyvgmdqh99jy22x7kw20f3g43b5aq3qyk9ca2h"; + sha256 = "0a9nrsbw3w1229bm90xayixvkpvr6g338w64x4v75sqxvpbx84lz"; }; nativeBuildInputs = [ wrapQtAppsHook ]; - propagatedBuildInputs = with pythonPackages; [ + propagatedBuildInputs = with python3Packages; [ beautifulsoup4 + chardet + cloudscraper html5lib lxml + lz4 + nose numpy opencv4 pillow psutil + pylzma pyopenssl + pyside2 + pysocks + pythonPackages.mpv pyyaml + qtpy requests send2trash service-identity + six twisted - lz4 - xz - pysocks - matplotlib - qtpy - pyside2 - mpv ]; - checkInputs = with pythonPackages; [ nose httmock ]; + checkInputs = with python3Packages; [ nose mock httmock ]; # most tests are failing, presumably because we are not using test.py checkPhase = '' @@ -77,37 +80,34 @@ pythonPackages.buildPythonPackage rec { outputs = [ "out" "doc" ]; - postPatch = '' - sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${miniupnpc_2}/bin/upnpc";' \ - -i ./hydrus/core/networking/HydrusNATPunch.py - '' + lib.optionalString enableSwftools '' - sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${swftools}/bin/swfrender";' \ - -i ./hydrus/core/HydrusFlashHandling.py - ''; - - #doCheck = true; - installPhase = '' # Move the hydrus module and related directories - mkdir -p $out/${pythonPackages.python.sitePackages} - mv {hydrus,static} $out/${pythonPackages.python.sitePackages} + mkdir -p $out/${python3Packages.python.sitePackages} + mv {hydrus,static} $out/${python3Packages.python.sitePackages} mv help $out/doc/ # install the hydrus binaries mkdir -p $out/bin install -m0755 server.py $out/bin/hydrus-server install -m0755 client.py $out/bin/hydrus-client + '' + lib.optionalString enableSwftools '' + mkdir -p $out/${python3Packages.python.sitePackages}/bin + # swfrender seems to have to be called sfwrender_linux + # not sure if it can be loaded through PATH, but this is simpler + # $out/python3Packages.python.sitePackages/bin is correct NOT .../hydrus/bin + ln -s ${swftools}/bin/swfrender $out/${python3Packages.python.sitePackages}/bin/swfrender_linux ''; dontWrapQtApps = true; preFixup = '' makeWrapperArgs+=("''${qtWrapperArgs[@]}") + makeWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg miniupnpc_2 ]}) ''; meta = with lib; { description = "Danbooru-like image tagging and searching system for the desktop"; license = licenses.wtfpl; homepage = "https://hydrusnetwork.github.io/hydrus/"; - maintainers = [ maintainers.evanjs ]; + maintainers = with maintainers; [ dandellion evanjs ]; }; } diff --git a/pkgs/development/python-modules/pylzma/default.nix b/pkgs/development/python-modules/pylzma/default.nix new file mode 100644 index 00000000000..78bc24d35d4 --- /dev/null +++ b/pkgs/development/python-modules/pylzma/default.nix @@ -0,0 +1,23 @@ +{ lib, buildPythonPackage, fetchPypi }: + +buildPythonPackage rec { + pname = "pylzma"; + version = "0.5.0"; + + # This vendors an old LZMA SDK + # After some discussion, it seemed most reasonable to keep it that way + # xz, and uefi-firmware-parser also does this + src = fetchPypi { + inherit pname version; + sha256 = "074anvhyjgsv2iby2ql1ixfvjgmhnvcwjbdz8gk70xzkzcm1fx5q"; + }; + + pythonImportsCheck = [ "pylzma" ]; + + meta = with lib; { + homepage = "https://www.joachim-bauch.de/projects/pylzma/"; + description = "Platform independent python bindings for the LZMA compression library"; + license = licenses.lgpl21Only; + maintainers = with maintainers; [ dandellion ]; + }; +} diff --git a/pkgs/tools/video/swftools/default.nix b/pkgs/tools/video/swftools/default.nix index 6867869a0a9..c48d684d3fc 100644 --- a/pkgs/tools/video/swftools/default.nix +++ b/pkgs/tools/video/swftools/default.nix @@ -19,7 +19,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2Only; maintainers = [ maintainers.koral ]; platforms = lib.platforms.unix; - broken = true; knownVulnerabilities = [ "CVE-2017-10976" "CVE-2017-11096" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 80fec635408..d7ab54bcbc4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6215,6 +6215,8 @@ in { pylxd = callPackage ../development/python-modules/pylxd { }; + pylzma = callPackage ../development/python-modules/pylzma { }; + pymacaroons = callPackage ../development/python-modules/pymacaroons { }; pymaging = callPackage ../development/python-modules/pymaging { };