nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ buildPackages
2, fetchzip
3, javaOpts ? "-XX:+UseZGC"
4, jdk
5, jre_headless
6, lib
7, makeWrapper
8, stdenvNoCC
9,
10}:
11stdenvNoCC.mkDerivation rec {
12 pname = "HentaiAtHome";
13 version = "1.6.1";
14
15 src = fetchzip {
16 url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}_src.zip";
17 hash =
18 "sha512-j+B0kx6fjUibI3MjVJ5PVTq9xxtSOTTY/XizAJKjeNkpExJF9DIV4VCwf+sfLlg+7W4UBosnyb8hZNNoidRBKA==";
19 stripRoot = false;
20 };
21
22 nativeBuildInputs = [ jdk makeWrapper ];
23
24 LANG = "en_US.UTF-8";
25 LOCALE_ARCHIVE = lib.optionalString (stdenvNoCC.buildPlatform.libc == "glibc")
26 "${buildPackages.glibcLocales}/lib/locale/locale-archive";
27
28 buildPhase = ''
29 make all
30 '';
31
32 installPhase = ''
33 mkdir -p $out/share/java
34 cp build/HentaiAtHome.jar $out/share/java
35
36 mkdir -p $out/bin
37 makeWrapper ${jre_headless}/bin/java $out/bin/HentaiAtHome \
38 --add-flags "${javaOpts} -jar $out/share/java/HentaiAtHome.jar"
39 '';
40
41 doInstallCheck = true;
42 installCheckPhase = ''
43 pushd $(mktemp -d)
44 $out/bin/HentaiAtHome
45 popd
46 '';
47
48 strictDeps = true;
49
50 meta = with lib; {
51 homepage = "https://ehwiki.org/wiki/Hentai@Home";
52 description =
53 "Hentai@Home is an open-source P2P gallery distribution system which reduces the load on the E-Hentai Galleries";
54 license = licenses.gpl3;
55 maintainers = with maintainers; [ terrorjack ];
56 };
57}