nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 ant,
6 jdk,
7 makeWrapper,
8 wrapGAppsHook3,
9 makeDesktopItem,
10 copyDesktopItems,
11 stripJavaArchivesHook,
12}:
13
14stdenv.mkDerivation (finalAttrs: {
15 pname = "pattypan";
16 version = "22.03";
17
18 src = fetchFromGitHub {
19 owner = "yarl";
20 repo = "pattypan";
21 rev = "v${finalAttrs.version}";
22 hash = "sha256-wMQrBg+rEV1W7NgtWFXZr3pAxpyqdbEBKLNwDDGju2I=";
23 };
24
25 nativeBuildInputs = [
26 ant
27 jdk
28 makeWrapper
29 wrapGAppsHook3
30 copyDesktopItems
31 stripJavaArchivesHook
32 ];
33
34 dontWrapGApps = true;
35
36 env.JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8"; # needed for jdk versions below jdk19
37
38 buildPhase = ''
39 runHook preBuild
40 ant
41 runHook postBuild
42 '';
43
44 installPhase = ''
45 runHook preInstall
46 install -Dm644 pattypan.jar -t $out/share/pattypan
47 install -Dm644 src/pattypan/resources/logo.png $out/share/pixmaps/pattypan.png
48 runHook postInstall
49 '';
50
51 # gappsWrapperArgs is set in preFixup
52 postFixup = ''
53 makeWrapper ${jdk}/bin/java $out/bin/pattypan \
54 ''${gappsWrapperArgs[@]} \
55 --add-flags "-jar $out/share/pattypan/pattypan.jar"
56 '';
57
58 desktopItems = [
59 (makeDesktopItem {
60 name = "pattypan";
61 exec = "pattypan";
62 icon = "pattypan";
63 desktopName = "Pattypan";
64 genericName = "An uploader for Wikimedia Commons";
65 categories = [ "Utility" ];
66 })
67 ];
68
69 meta = with lib; {
70 description = "Uploader for Wikimedia Commons";
71 homepage = "https://commons.wikimedia.org/wiki/Commons:Pattypan";
72 license = licenses.mit;
73 mainProgram = "pattypan";
74 maintainers = with maintainers; [ fee1-dead ];
75 platforms = platforms.all;
76 sourceProvenance = with sourceTypes; [
77 fromSource
78 binaryBytecode # source bundles dependencies as jars
79 ];
80 };
81})