diff --git a/pkgs/applications/misc/HentaiAtHome/default.nix b/pkgs/applications/misc/HentaiAtHome/default.nix index 8eec91d529d..4932379ef02 100644 --- a/pkgs/applications/misc/HentaiAtHome/default.nix +++ b/pkgs/applications/misc/HentaiAtHome/default.nix @@ -1,24 +1,43 @@ -{ buildGraalvmNativeImage, fetchzip, graalvm17-ce, lib }: - -buildGraalvmNativeImage rec { +{ buildPackages +, buildPlatform +, fetchzip +, javaOpts ? "-XX:+UseZGC" +, jdk +, jre_headless +, lib +, makeWrapper +, stdenvNoCC +, +}: +stdenvNoCC.mkDerivation rec { pname = "HentaiAtHome"; version = "1.6.1"; + src = fetchzip { - url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}.zip"; + url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}_src.zip"; hash = - "sha512-nGGCuVovj4NJGrihKKYXnh0Ic9YD36o7r6wv9zSivZn22zm8lBYVXP85LnOw2z9DiJARivOctQGl48YFD7vxOQ=="; + "sha512-j+B0kx6fjUibI3MjVJ5PVTq9xxtSOTTY/XizAJKjeNkpExJF9DIV4VCwf+sfLlg+7W4UBosnyb8hZNNoidRBKA=="; stripRoot = false; }; - jar = "${src}/HentaiAtHome.jar"; - dontUnpack = true; + nativeBuildInputs = [ jdk makeWrapper ]; - graalvmDrv = graalvm17-ce; - extraNativeImageBuildArgs = [ - "--enable-url-protocols=http,https" - "--install-exit-handlers" - "--no-fallback" - ]; + LANG = "en_US.UTF-8"; + LOCALE_ARCHIVE = lib.optionalString (buildPlatform.libc == "glibc") + "${buildPackages.glibcLocales}/lib/locale/locale-archive"; + + buildPhase = '' + make all + ''; + + installPhase = '' + mkdir -p $out/share/java + cp build/HentaiAtHome.jar $out/share/java + + mkdir -p $out/bin + makeWrapper ${jre_headless}/bin/java $out/bin/HentaiAtHome \ + --add-flags "${javaOpts} -jar $out/share/java/HentaiAtHome.jar" + ''; doInstallCheck = true; installCheckPhase = '' @@ -27,11 +46,12 @@ buildGraalvmNativeImage rec { popd ''; + strictDeps = true; + meta = with lib; { homepage = "https://ehwiki.org/wiki/Hentai@Home"; description = "Hentai@Home is an open-source P2P gallery distribution system which reduces the load on the E-Hentai Galleries"; - sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.gpl3; maintainers = with maintainers; [ terrorjack ]; };