btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / ap / apache-directory-studio / package.nix
blob7a051db5363e1912b22e5578131836b55097b2d6
1 { lib, stdenv, fetchurl, jdk, makeWrapper, autoPatchelfHook, makeDesktopItem, glib, libsecret, webkitgtk_4_0 }:
3 stdenv.mkDerivation rec {
4   pname = "apache-directory-studio";
5   version = "2.0.0-M17";
6   versionWithDate = "2.0.0.v20210717-M17";
8   src =
9     if stdenv.hostPlatform.system == "x86_64-linux" then
10       fetchurl {
11         url = "mirror://apache/directory/studio/${versionWithDate}/ApacheDirectoryStudio-${versionWithDate}-linux.gtk.x86_64.tar.gz";
12         sha256 = "19zdspzv4n3mfgb1g45s3wh0vbvn6a9zjd4xi5x2afmdjkzlwxi4";
13       }
14     else throw "Unsupported system: ${stdenv.hostPlatform.system}";
16   desktopItem = makeDesktopItem {
17     name = "apache-directory-studio";
18     exec = "ApacheDirectoryStudio";
19     icon = "apache-directory-studio";
20     comment = "Eclipse-based LDAP browser and directory client";
21     desktopName = "Apache Directory Studio";
22     genericName = "Apache Directory Studio";
23     categories = [ "Java" "Network" ];
24   };
26   buildInputs = [ glib libsecret ];
27   nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
29   installPhase = ''
30     dest="$out/libexec/ApacheDirectoryStudio"
31     mkdir -p "$dest"
32     cp -r . "$dest"
34     mkdir -p "$out/bin"
35     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
36         "$dest/ApacheDirectoryStudio"
38     makeWrapper "$dest/ApacheDirectoryStudio" \
39         "$out/bin/ApacheDirectoryStudio" \
40         --prefix PATH : "${jdk}/bin" \
41         --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ webkitgtk_4_0 ])}
42     install -D icon.xpm "$out/share/pixmaps/apache-directory-studio.xpm"
43     install -D -t "$out/share/applications" ${desktopItem}/share/applications/*
44   '';
46   meta = with lib; {
47     description = "Eclipse-based LDAP browser and directory client";
48     homepage = "https://directory.apache.org/studio/";
49     sourceProvenance = with sourceTypes; [
50       binaryBytecode
51       binaryNativeCode
52     ];
53     license = licenses.asl20;
54     # Upstream supports macOS and Windows too.
55     platforms = platforms.linux;
56     maintainers = [ maintainers.bjornfor ];
57     mainProgram = "ApacheDirectoryStudio";
58   };