summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2021-11-14 18:01:49 +0000
committerGitHub <noreply@github.com>2021-11-14 18:01:49 +0000
commit9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5 (patch)
tree30f6da47df18cf6bd88854c5e855f04d8c351a35 /pkgs/applications/version-management
parent4e1852096f34f3de5ad64b262c969bdcd7f4bfc7 (diff)
parent093d80687875ed18961b47c444a1d380b3b3cd02 (diff)
downloadnixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.tar
nixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.tar.gz
nixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.tar.bz2
nixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.tar.lz
nixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.tar.xz
nixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.tar.zst
nixpkgs-9f6360b7fbf4b29f22d8ac0b21a934bc3c8456d5.zip
Merge staging-next into staging
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix209
1 files changed, 118 insertions, 91 deletions
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index c1ec17f7e14..89a40388011 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -3,114 +3,141 @@
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
 , makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
-, e2fsprogs, krb5, libdrm, mesa
+, e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems
 }:
 
 with lib;
 
 let
   curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
-in
-stdenv.mkDerivation rec {
   pname = "gitkraken";
   version = "8.1.0";
 
-  src = fetchzip {
-    url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "1115616d642chnisil7gv6fxw699sryphrfrp92cq3vi6lcwqbn8";
-  };
-
-  dontBuild = true;
-  dontConfigure = true;
-
-  libPath = makeLibraryPath [
-    stdenv.cc.cc.lib
-    curlWithGnuTls
-    udev
-    libX11
-    libXext
-    libXcursor
-    libXi
-    libxcb
-    glib
-    libXScrnSaver
-    libxkbfile
-    libXtst
-    nss
-    nspr
-    cups
-    alsa-lib
-    expat
-    gdk-pixbuf
-    dbus
-    libXdamage
-    libXrandr
-    atk
-    pango
-    cairo
-    freetype
-    fontconfig
-    libXcomposite
-    libXfixes
-    libXrender
-    gtk3
-    libgnome-keyring
-    openssl
-    at-spi2-atk
-    at-spi2-core
-    libuuid
-    e2fsprogs
-    krb5
-    libdrm
-    mesa
-  ];
-
-  desktopItem = makeDesktopItem {
-    name = pname;
-    exec = "gitkraken";
-    icon = "gitkraken";
-    desktopName = "GitKraken";
-    genericName = "Git Client";
-    categories = "Development;";
-    comment = "Graphical Git client from Axosoft";
-  };
-
-  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
-  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/gitkraken/
-    cp -R $src/* $out/share/gitkraken/
-
-    mkdir -p $out/bin
-    ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
+  srcs = {
+    x86_64-linux = fetchzip {
 
-    mkdir -p $out/share/pixmaps
-    cp gitkraken.png $out/share/pixmaps/gitkraken.png
+      url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
+      sha256 = "sha256-yC7MGTVxD8xEutlleH3WKRnendnv0KijhUwQ00wwJYQ";
+    };
 
-    runHook postInstall
-  '';
+    x86_64-darwin = fetchzip {
+      url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
+      sha256 = "sha256-SP+LCsxjl5YNOu4rDZOiDIqkynGE+iiLJtxi8tFugKM=";
+    };
 
-  postFixup = ''
-    pushd $out/share/gitkraken
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" gitkraken
+    aarch64-darwin = srcs.x86_64-darwin;
+  };
 
-    for file in $(find . -type f \( -name \*.node -o -name gitkraken -o -name \*.so\* \) ); do
-      patchelf --set-rpath ${libPath}:$out/share/gitkraken $file || true
-    done
-    popd
-  '';
+  src = srcs.${stdenv.hostPlatform.system} or throwSystem;
 
   meta = {
     homepage = "https://www.gitkraken.com/";
     description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
     license = licenses.unfree;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ xnwdd evanjs ];
+    platforms = builtins.attrNames srcs;
+    maintainers = with maintainers; [ xnwdd evanjs arkivm ];
+  };
+
+  linux = stdenv.mkDerivation rec {
+    inherit pname version src meta;
+
+    dontBuild = true;
+    dontConfigure = true;
+
+    libPath = makeLibraryPath [
+      stdenv.cc.cc.lib
+      curlWithGnuTls
+      udev
+      libX11
+      libXext
+      libXcursor
+      libXi
+      libxcb
+      glib
+      libXScrnSaver
+      libxkbfile
+      libXtst
+      nss
+      nspr
+      cups
+      alsa-lib
+      expat
+      gdk-pixbuf
+      dbus
+      libXdamage
+      libXrandr
+      atk
+      pango
+      cairo
+      freetype
+      fontconfig
+      libXcomposite
+      libXfixes
+      libXrender
+      gtk3
+      libgnome-keyring
+      openssl
+      at-spi2-atk
+      at-spi2-core
+      libuuid
+      e2fsprogs
+      krb5
+      libdrm
+      mesa
+    ];
+
+    desktopItems = [ (makeDesktopItem {
+      name = pname;
+      exec = pname;
+      icon = pname;
+      desktopName = "GitKraken";
+      genericName = "Git Client";
+      categories = "Development;";
+      comment = "Graphical Git client from Axosoft";
+    }) ];
+
+    nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ];
+    buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/${pname}/
+      cp -R $src/* $out/share/${pname}
+
+      mkdir -p $out/bin
+      ln -s $out/share/${pname}/${pname} $out/bin/
+
+      mkdir -p $out/share/pixmaps
+      cp ${pname}.png $out/share/pixmaps/${pname}.png
+
+      runHook postInstall
+    '';
+
+    postFixup = ''
+      pushd $out/share/${pname}
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ${pname}
+
+      for file in $(find . -type f \( -name \*.node -o -name ${pname} -o -name \*.so\* \) ); do
+        patchelf --set-rpath ${libPath}:$out/share/${pname} $file || true
+      done
+      popd
+    '';
+  };
+
+  darwin = stdenv.mkDerivation {
+    inherit pname version src meta;
+
+    nativeBuildInputs = [ unzip ];
+
+    installPhase = ''
+      mkdir -p $out/Applications/GitKraken.app
+      cp -R . $out/Applications/GitKraken.app
+    '';
   };
-}
+in
+if stdenv.isDarwin
+then darwin
+else linux