nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 66 lines 1.7 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchzip, 5 makeDesktopItem, 6 makeWrapper, 7 jre, 8}: 9 10stdenv.mkDerivation rec { 11 pname = "ganttproject-bin"; 12 version = "3.3.3316"; 13 14 src = fetchzip { 15 url = "https://dl.ganttproject.biz/ganttproject-${version}/ganttproject-${version}.zip"; 16 stripRoot = false; 17 hash = "sha256-tiEq/xdC0gXiUInLS9xGR/vI/BpdSA+mSf5yukuejc4="; 18 }; 19 20 nativeBuildInputs = [ makeWrapper ]; 21 buildInputs = [ jre ]; 22 23 installPhase = 24 let 25 26 desktopItem = makeDesktopItem { 27 name = "ganttproject"; 28 exec = "ganttproject"; 29 icon = "ganttproject"; 30 desktopName = "GanttProject"; 31 genericName = "Shedule and manage projects"; 32 comment = meta.description; 33 categories = [ "Office" ]; 34 }; 35 36 javaOptions = [ 37 "-Dawt.useSystemAAFontSettings=gasp" 38 ]; 39 40 in 41 '' 42 mkdir -pv "$out/share/ganttproject" 43 cp -rv * "$out/share/ganttproject" 44 45 mkdir -pv "$out/bin" 46 wrapProgram "$out/share/ganttproject/ganttproject" \ 47 --set JAVA_HOME "${jre}" \ 48 --prefix _JAVA_OPTIONS " " "${builtins.toString javaOptions}" 49 50 mv -v "$out/share/ganttproject/ganttproject" "$out/bin" 51 52 cp -rv "${desktopItem}/share/applications" "$out/share" 53 ''; 54 55 meta = with lib; { 56 description = "Project scheduling and management"; 57 homepage = "https://www.ganttproject.biz/"; 58 downloadPage = "https://www.ganttproject.biz/download"; 59 # GanttProject itself is GPL3+. All bundled libraries are declared 60 # ‘GPL3-compatible’. See ${downloadPage} for detailed information. 61 license = licenses.gpl3Plus; 62 platforms = platforms.linux; 63 maintainers = [ maintainers.vidbina ]; 64 mainProgram = "ganttproject"; 65 }; 66}