Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 153 lines 4.4 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 fetchurl, 6 ant, 7 unzip, 8 makeWrapper, 9 jdk, 10 jogl, 11 rsync, 12 ffmpeg, 13 batik, 14 stripJavaArchivesHook, 15 wrapGAppsHook3, 16 libGL, 17}: 18let 19 buildNumber = "1295"; 20 vaqua = fetchurl { 21 name = "VAqua9.jar"; 22 url = "https://violetlib.org/release/vaqua/9/VAqua9.jar"; 23 sha256 = "cd0b82df8e7434c902ec873364bf3e9a3e6bef8b59cbf42433130d71bf1a779c"; 24 }; 25 26 jna = fetchurl { 27 name = "jna-5.10.0.zip"; 28 url = "https://github.com/java-native-access/jna/archive/5.10.0.zip"; 29 sha256 = "B5CakOQ8225xNsk2TMV8CbK3RcsLlb+pHzjaY5JNwg0="; 30 }; 31 32 flatlaf = fetchurl { 33 name = "flatlaf-2.4.jar"; 34 url = "mirror://maven/com/formdev/flatlaf/2.4/flatlaf-2.4.jar"; 35 sha256 = "NVMYiCd+koNCJ6X3EiRx1Aj+T5uAMSJ9juMmB5Os+zc="; 36 }; 37 38 lsp4j = fetchurl { 39 name = "org.eclipse.lsp4j-0.19.0.jar"; 40 url = "mirror://maven/org/eclipse/lsp4j/org.eclipse.lsp4j/0.19.0/org.eclipse.lsp4j-0.19.0.jar"; 41 sha256 = "sha256-1DI5D9KW+GL4gT1qjwVZveOl5KVOEjt6uXDwsFzi8Sg="; 42 }; 43 44 lsp4j-jsonrpc = fetchurl { 45 name = "org.eclipse.lsp4j.jsonrpc-0.19.0.jar"; 46 url = "mirror://maven/org/eclipse/lsp4j/org.eclipse.lsp4j.jsonrpc/0.19.0/org.eclipse.lsp4j.jsonrpc-0.19.0.jar"; 47 sha256 = "sha256-ozYTkvv7k0psCeX/PbSM3/Bl17qT3upX3trt65lmM9I="; 48 }; 49 50 gson = fetchurl { 51 name = "gson-2.9.1.jar"; 52 url = "mirror://maven/com/google/code/gson/gson/2.9.1/gson-2.9.1.jar"; 53 sha256 = "sha256-N4U04znm5tULFzb7Ort28cFdG+P0wTzsbVNkEuI9pgM="; 54 }; 55 56 arch = 57 { 58 x86_64 = "amd64"; 59 } 60 .${stdenv.hostPlatform.parsed.cpu.name} or stdenv.hostPlatform.parsed.cpu.name; 61in 62stdenv.mkDerivation rec { 63 pname = "processing"; 64 version = "4.3.2"; 65 66 src = fetchFromGitHub { 67 owner = "processing"; 68 repo = "processing4"; 69 rev = "processing-${buildNumber}-${version}"; 70 sha256 = "sha256-jUkWnkP8up5vpaXfgFJ/jQjN1KfeX5EuYXSb+W6NEms="; 71 }; 72 73 # Processing did not update the todo.txt file before tagging this release, so 74 # the "revision-check" Ant target fails. 75 patches = [ ./disable-revision-check.patch ]; 76 77 nativeBuildInputs = [ 78 ant 79 unzip 80 makeWrapper 81 stripJavaArchivesHook 82 wrapGAppsHook3 83 ]; 84 buildInputs = [ 85 jdk 86 jogl 87 ant 88 rsync 89 ffmpeg 90 batik 91 ]; 92 93 dontWrapGApps = true; 94 95 buildPhase = '' 96 runHook preBuild 97 98 echo "tarring jdk" 99 tar --checkpoint=10000 -czf build/linux/jdk-17.0.8-${arch}.tgz ${jdk} 100 cp ${ant.home}/lib/{ant.jar,ant-launcher.jar} app/lib/ 101 mkdir -p core/library 102 ln -s ${jogl}/share/java/* core/library/ 103 ln -s ${vaqua} app/lib/VAqua9.jar 104 ln -s ${flatlaf} app/lib/flatlaf.jar 105 ln -s ${lsp4j} java/mode/org.eclipse.lsp4j.jar 106 ln -s ${lsp4j-jsonrpc} java/mode/org.eclipse.lsp4j.jsonrpc.jar 107 ln -s ${gson} java/mode/gson.jar 108 unzip -qo ${jna} -d app/lib/ 109 mv app/lib/{jna-5.10.0/dist/jna.jar,} 110 mv app/lib/{jna-5.10.0/dist/jna-platform.jar,} 111 ln -sf ${batik}/* java/libraries/svg/library/ 112 cp java/libraries/svg/library/share/java/batik-all-${batik.version}.jar java/libraries/svg/library/batik.jar 113 echo "tarring ffmpeg" 114 tar --checkpoint=10000 -czf build/shared/tools/MovieMaker/ffmpeg-5.0.1.gz ${ffmpeg} 115 cd build 116 ant build 117 cd .. 118 119 runHook postBuild 120 ''; 121 122 installPhase = '' 123 runHook preInstall 124 125 mkdir -p $out/share/ 126 mkdir -p $out/share/applications/ 127 cp -dp build/linux/${pname}.desktop $out/share/applications/ 128 cp -dpr build/linux/work $out/share/${pname} 129 rmdir $out/share/${pname}/java 130 ln -s ${jdk} $out/share/${pname}/java 131 makeWrapper $out/share/${pname}/processing $out/bin/processing \ 132 ''${gappsWrapperArgs[@]} \ 133 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \ 134 --prefix _JAVA_OPTIONS " " "-Dawt.useSystemAAFontSettings=gasp" 135 makeWrapper $out/share/${pname}/processing-java $out/bin/processing-java \ 136 ''${gappsWrapperArgs[@]} \ 137 --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \ 138 --prefix _JAVA_OPTIONS " " "-Dawt.useSystemAAFontSettings=gasp" 139 140 runHook postInstall 141 ''; 142 143 meta = with lib; { 144 description = "Language and IDE for electronic arts"; 145 homepage = "https://processing.org"; 146 license = with licenses; [ 147 gpl2Only 148 lgpl21Only 149 ]; 150 platforms = platforms.linux; 151 maintainers = with maintainers; [ evan-goode ]; 152 }; 153}