brmodelo: make deterministic and clean up

TomaSajt d36c0cca 2d5db19d

+35 -23
+35 -23
pkgs/applications/science/engineering/brmodelo/default.nix
··· 2 2 , stdenv 3 3 , fetchFromGitHub 4 4 , fetchpatch 5 - , openjdk8 6 5 , ant 6 + , jdk8 7 7 , makeWrapper 8 8 , makeDesktopItem 9 9 , copyDesktopItems 10 + , strip-nondeterminism 11 + , stripJavaArchivesHook 10 12 }: 11 13 12 - stdenv.mkDerivation rec { 14 + stdenv.mkDerivation (finalAttrs: { 13 15 pname = "brmodelo"; 14 16 version = "3.31"; 15 17 16 18 src = fetchFromGitHub { 17 19 owner = "chcandido"; 18 - repo = pname; 19 - rev = version; 20 - sha256 = "09qrhqhv264x8phnf3pnb0cwq75l7xdsj9xkwlvhry81nxz0d5v0"; 20 + repo = "brmodelo"; 21 + rev = finalAttrs.version; 22 + hash = "sha256-YJcGfrcB+Qw35bMnqVs/tBzMGVj2DmfhRZ0YsSGGGSc="; 21 23 }; 22 24 23 - nativeBuildInputs = [ ant makeWrapper copyDesktopItems ]; 24 - 25 - buildInputs = [ openjdk8 ]; 25 + nativeBuildInputs = [ 26 + ant 27 + jdk8 28 + makeWrapper 29 + copyDesktopItems 30 + strip-nondeterminism 31 + stripJavaArchivesHook 32 + ]; 26 33 27 34 patches = [ 28 35 # Fixes for building with Ant. ··· 30 37 (fetchpatch { 31 38 name = "fix-self-closing-element-not-allowed.patch"; 32 39 url = "https://github.com/yuuyins/brModelo/commit/0d712b74fd5d29d67be07480ed196da28a77893b.patch"; 33 - sha256 = "sha256-yy03arE6xetotzyvpToi9o9crg3KnMRn1J70jDUvSXE="; 40 + hash = "sha256-yy03arE6xetotzyvpToi9o9crg3KnMRn1J70jDUvSXE="; 34 41 }) 35 42 (fetchpatch { 36 43 name = "fix-tag-closing.patch"; 37 44 url = "https://github.com/yuuyins/brModelo/commit/e8530ff75f024cf6effe0408ed69985405e9709c.patch"; 38 - sha256 = "sha256-MNuh/ORbaAkB5qDSlA/nPrXN+tqzz4oOglVyEtSangI="; 45 + hash = "sha256-MNuh/ORbaAkB5qDSlA/nPrXN+tqzz4oOglVyEtSangI="; 39 46 }) 40 47 (fetchpatch { 41 48 name = "fix-bad-use-greater-than.patch"; 42 49 url = "https://github.com/yuuyins/brModelo/commit/498a6ef8129daff5a472b318f93c8f7f2897fc7f.patch"; 43 - sha256 = "sha256-MmAwYUmx38DGRsiSxCWCObtpqxk0ykUQiDSC76bCpFc="; 50 + hash = "sha256-MmAwYUmx38DGRsiSxCWCObtpqxk0ykUQiDSC76bCpFc="; 44 51 }) 45 52 (fetchpatch { 46 53 name = "fix-param-errors.patch"; 47 54 url = "https://github.com/yuuyins/brModelo/commit/8a508aaba0bcffe13a3f95cff495230beea36bc4.patch"; 48 - sha256 = "sha256-qME9gZChSMzu1vs9HaosD+snb+jlOrQLY97meNoA8oU="; 55 + hash = "sha256-qME9gZChSMzu1vs9HaosD+snb+jlOrQLY97meNoA8oU="; 49 56 }) 50 57 51 58 # Add SVG icons. ··· 53 60 (fetchpatch { 54 61 name = "add-brmodelo-logo-icons-svg.patch"; 55 62 url = "https://github.com/yuuyins/brModelo/commit/f260b82b664fad3325bbf3ebd7a15488d496946b.patch"; 56 - sha256 = "sha256-UhgcWxsHkNFS1GgaRnmlZohjDR8JwHof2cIb3SBetYs="; 63 + hash = "sha256-UhgcWxsHkNFS1GgaRnmlZohjDR8JwHof2cIb3SBetYs="; 57 64 }) 58 65 ]; 59 66 60 67 buildPhase = '' 68 + runHook postBuild 61 69 ant 70 + runHook preBuild 62 71 ''; 63 72 64 73 desktopItems = [ ··· 68 77 genericName = "Entity-relationship diagramming tool"; 69 78 exec = "brmodelo"; 70 79 icon = "brmodelo"; 71 - comment = meta.description; 80 + comment = finalAttrs.meta.description; 72 81 categories = [ "Development" "Education" "Database" "2DGraphics" "ComputerScience" "DataVisualization" "Engineering" "Java" ]; 73 82 }) 74 83 ]; 75 84 76 85 installPhase = '' 77 - install -d $out/bin $out/share/doc/${pname} $out/share/java 86 + runHook preInstall 78 87 79 - cp -rv ./dist/javadoc $out/share/doc/${pname}/ 88 + mkdir -p $out/share/doc/brmodelo 89 + cp -rv ./dist/javadoc $out/share/doc/brmodelo/ 80 90 81 91 install -Dm755 ./dist/brModelo.jar -t $out/share/java/ 82 92 # NOTE: The standard Java GUI toolkit has a ··· 85 95 # in WMs that are not in that list (e.g. XMonad). 86 96 # Solution/Workaround: set the environment variable 87 97 # _JAVA_AWT_WM_NONREPARENTING=1. 88 - makeWrapper ${openjdk8}/bin/java $out/bin/brmodelo \ 98 + makeWrapper ${jdk8}/bin/java $out/bin/brmodelo \ 89 99 --prefix _JAVA_AWT_WM_NONREPARENTING : 1 \ 90 100 --prefix _JAVA_OPTIONS : "-Dawt.useSystemAAFontSettings=on" \ 91 101 --add-flags "-jar $out/share/java/brModelo.jar" 92 102 93 - runHook postInstall 94 - ''; 95 - 96 - postInstall = '' 97 103 for size in 16 24 32 48 64 128 256; do 98 104 install -Dm644 ./src/imagens/icone_"$size"x"$size".svg \ 99 105 $out/share/icons/hicolor/"$size"x"$size"/apps/brmodelo.svg 100 106 done 107 + 108 + runHook postInstall 109 + ''; 110 + 111 + preFixup = '' 112 + find $out/share/doc/brmodelo/javadoc -name "*.html" -exec strip-nondeterminism --type javadoc {} + 101 113 ''; 102 114 103 115 meta = with lib; { 104 116 description = "Entity-relationship diagram tool for making conceptual and logical database models"; 105 - mainProgram = "brmodelo"; 106 117 homepage = "https://github.com/chcandido/brModelo"; 107 118 license = licenses.gpl3; 119 + mainProgram = "brmodelo"; 108 120 maintainers = with maintainers; [ yuu ]; 109 121 }; 110 - } 122 + })