Unverified Commit 70a818cc authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

hydrus: 609 -> 612, move to by-name, fix on darwin (#387547)

parents fb934aa9 7c4cc944
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@
  lib,
  stdenv,
  fetchurl,
  fetchpatch2,
  autoreconfHook,
  pkg-config,
  installShellFiles,
@@ -21,6 +20,7 @@
  qtbase ? null,
  qttools ? null,
  python3,
  versionCheckHook,
  nixosTests,
  withGui,
  withWallet ? true,
@@ -33,13 +33,13 @@ let
    sha256 = "0cpna0nxcd1dw3nnzli36nf9zj28d2g9jf5y0zl9j18lvanvniha";
  };
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = if withGui then "bitcoin" else "bitcoind";
  version = "28.1";

  src = fetchurl {
    urls = [
      "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
      "https://bitcoincore.org/bin/bitcoin-core-${finalAttrs.version}/bitcoin-${finalAttrs.version}.tar.gz"
    ];
    # hash retrieved from signed SHA256SUMS
    sha256 = "c5ae2dd041c7f9d9b7c722490ba5a9d624f7e9a089c67090615e1ba4ad0883ba";
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
      "--with-boost-libdir=${boost.out}/lib"
      "--disable-bench"
    ]
    ++ lib.optionals (!doCheck) [
    ++ lib.optionals (!finalAttrs.doCheck) [
      "--disable-tests"
      "--disable-gui-tests"
    ]
@@ -124,11 +124,20 @@ stdenv.mkDerivation rec {

  enableParallelBuilding = true;

  __darwinAllowLocalNetworking = true;

  nativeInstallCheckInputs = [
    versionCheckHook
  ];
  versionCheckProgram = "${placeholder "out"}/bin/bitcoin-cli";
  versionCheckProgramArg = [ "--version" ];
  doInstallCheck = true;

  passthru.tests = {
    smoke-test = nixosTests.bitcoind;
  };

  meta = with lib; {
  meta = {
    description = "Peer-to-peer electronic cash system";
    longDescription = ''
      Bitcoin is a free open source peer-to-peer electronic cash system that is
@@ -137,13 +146,13 @@ stdenv.mkDerivation rec {
      with each other, with the help of a P2P network to check for double-spending.
    '';
    homepage = "https://bitcoin.org/en/";
    downloadPage = "https://bitcoincore.org/bin/bitcoin-core-${version}/";
    changelog = "https://bitcoincore.org/en/releases/${version}/";
    maintainers = with maintainers; [
    downloadPage = "https://bitcoincore.org/bin/bitcoin-core-${finalAttrs.version}/";
    changelog = "https://bitcoincore.org/en/releases/${finalAttrs.version}/";
    maintainers = with lib.maintainers; [
      prusnak
      roconnor
    ];
    license = licenses.mit;
    platforms = platforms.unix;
    license = lib.licenses.mit;
    platforms = lib.platforms.unix;
  };
}
})
+171 −0
Original line number Diff line number Diff line
{ lib
, fetchFromGitHub
, wrapQtAppsHook
, miniupnpc
, ffmpeg
, enableSwftools ? false
, swftools
, python3Packages
, pythonOlder
, qtbase
, qtcharts
, makeDesktopItem
, copyDesktopItems
{
  lib,
  stdenv,
  python3Packages,
  fetchFromGitHub,
  qt6,
  copyDesktopItems,
  makeDesktopItem,
  writableTmpDirAsHomeHook,
  swftools,
  ffmpeg,
  miniupnpc,

  enableSwftools ? false,
}:

python3Packages.buildPythonPackage rec {
python3Packages.buildPythonApplication rec {
  pname = "hydrus";
  version = "609";
  version = "612";
  format = "other";

  src = fetchFromGitHub {
    owner = "hydrusnetwork";
    repo = "hydrus";
    tag = "v${version}";
    hash = "sha256-yHRYGZ38H3nlOlo3NrSqG+2Z3kUiKMfHpMFvAM+T80U=";
    hash = "sha256-zRaabW1QwNNgA3F84CFSDbxyALV74T3t8u8WdL8GwG0=";
  };

  nativeBuildInputs = [
    wrapQtAppsHook
    qt6.wrapQtAppsHook
    python3Packages.mkdocs-material
    copyDesktopItems
  ];

  buildInputs = [
    qtbase
    qtcharts
    qt6.qtbase
    qt6.qtcharts
  ];

  desktopItems = [
@@ -45,12 +46,14 @@ python3Packages.buildPythonPackage rec {
      comment = meta.description;
      terminal = false;
      type = "Application";
      categories = [ "FileTools" "Utility" ];
      categories = [
        "FileTools"
        "Utility"
      ];
    })
  ];


  propagatedBuildInputs = with python3Packages; [
  dependencies = with python3Packages; [
    beautifulsoup4
    cbor2
    chardet
@@ -82,14 +85,22 @@ python3Packages.buildPythonPackage rec {
    twisted
  ];

  nativeCheckInputs = with python3Packages; [
  nativeCheckInputs =
    (with python3Packages; [
      mock
      httmock
    ])
    ++ [
      writableTmpDirAsHomeHook
    ];

  outputs = [ "out" "doc" ];
  outputs = [
    "out"
    "doc"
  ];

  installPhase = ''
  installPhase =
    ''
      runHook preInstall

      # Move the hydrus module and related directories
@@ -111,13 +122,15 @@ python3Packages.buildPythonPackage rec {
      # desktop item
      mkdir -p "$out/share/icons/hicolor/scalable/apps"
      ln -s "$doc/share/doc/hydrus/assets/hydrus-white.svg" "$out/share/icons/hicolor/scalable/apps/hydrus-client.svg"
  '' + lib.optionalString enableSwftools ''
    ''
    + 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
  '' + ''
    ''
    + ''
      runHook postInstall
    '';

@@ -125,22 +138,34 @@ python3Packages.buildPythonPackage rec {
    runHook preCheck

    export QT_QPA_PLATFORM=offscreen
    export HOME=$(mktemp -d)
    $out/bin/hydrus-test

    runHook postCheck
  '';

  # Tests crash even with __darwinAllowLocalNetworking enabled
  # hydrus.core.HydrusExceptions.DataMissing: That service was not found!
  doCheck = !stdenv.hostPlatform.isDarwin;

  dontWrapQtApps = true;
  preFixup = ''
    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
    makeWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg miniupnpc ]})
    makeWrapperArgs+=(--prefix PATH : ${
      lib.makeBinPath [
        ffmpeg
        miniupnpc
      ]
    })
  '';

  meta = with lib; {
  meta = {
    description = "Danbooru-like image tagging and searching system for the desktop";
    license = licenses.wtfpl;
    license = lib.licenses.wtfpl;
    homepage = "https://hydrusnetwork.github.io/hydrus/";
    maintainers = with maintainers; [ dandellion evanjs ];
    changelog = "https://github.com/hydrusnetwork/hydrus/releases/tag/v${version}";
    maintainers = with lib.maintainers; [
      dandellion
      evanjs
    ];
  };
}
+13 −4
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
  stdenv,
  fetchFromGitHub,
  cmake,
  versionCheckHook,
  nixosTests,
}:

@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
  src = fetchFromGitHub {
    owner = "miniupnp";
    repo = "miniupnp";
    rev = "miniupnpc_${lib.replaceStrings [ "." ] [ "_" ] version}";
    tag = "miniupnpc_${lib.replaceStrings [ "." ] [ "_" ] version}";
    hash = "sha256-Fjd4JPk6Uc7cPPQu9NiBv82XArd11TW+7sTL3wC9/+s=";
  };

@@ -26,6 +27,12 @@ stdenv.mkDerivation rec {
    (lib.cmakeBool "UPNPC_BUILD_STATIC" stdenv.hostPlatform.isStatic)
  ];

  nativeInstallCheckInputs = [
    versionCheckHook
  ];
  versionCheckProgram = "${placeholder "out"}/bin/upnpc";
  doInstallCheck = true;

  doCheck = !stdenv.hostPlatform.isFreeBSD;

  postInstall = ''
@@ -34,15 +41,17 @@ stdenv.mkDerivation rec {
    mv $out/bin/external-ip.sh $out/bin/external-ip
  '';

  __darwinAllowLocalNetworking = true;

  passthru.tests = {
    inherit (nixosTests) upnp;
  };

  meta = with lib; {
  meta = {
    homepage = "https://miniupnp.tuxfamily.org/";
    description = "Client that implements the UPnP Internet Gateway Device (IGD) specification";
    platforms = with platforms; linux ++ freebsd ++ darwin;
    license = licenses.bsd3;
    platforms = with lib.platforms; linux ++ freebsd ++ darwin;
    license = lib.licenses.bsd3;
    mainProgram = "upnpc";
  };
}
+0 −5
Original line number Diff line number Diff line
@@ -13502,11 +13502,6 @@ with pkgs;
  gtk-pipe-viewer = perlPackages.callPackage ../applications/video/pipe-viewer { withGtk3 = true; };
  hydrus = python3Packages.callPackage ../applications/graphics/hydrus {
    inherit miniupnpc swftools;
    inherit (qt6) wrapQtAppsHook qtbase qtcharts;
  };
  kemai = qt6Packages.callPackage ../applications/misc/kemai { };
  jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {