1{ stdenv
2, lib
3, fetchurl
4, autoPatchelfHook
5, wrapGAppsHook
6, gnome
7, libsecret
8, git
9, curl
10, nss
11, nspr
12, xorg
13, libdrm
14, alsa-lib
15, cups
16, mesa
17, systemd
18}:
19
20stdenv.mkDerivation rec {
21 pname = "github-desktop";
22 version = "2.9.4";
23
24 src = fetchurl {
25 url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux1/GitHubDesktop-linux-${version}-linux1.deb";
26 sha256 = "sha256-CcAOATIEcrUKhVQWFr0dMvY9Q5rHWQI9/KdSEZ/ncD4=";
27 };
28
29 nativeBuildInputs = [
30 autoPatchelfHook
31 wrapGAppsHook
32 ];
33
34 buildInputs = [
35 gnome.gnome-keyring
36 xorg.libXdamage
37 xorg.libX11
38 libsecret
39 git
40 curl
41 nss
42 nspr
43 libdrm
44 alsa-lib
45 cups
46 mesa
47 ];
48
49 unpackPhase = ''
50 mkdir -p $TMP/${pname} $out/{opt,bin}
51 cp $src $TMP/${pname}.deb
52 ar vx ${pname}.deb
53 tar --no-overwrite-dir -xvf data.tar.xz -C $TMP/${pname}/
54 '';
55
56 installPhase = ''
57 cp -R $TMP/${pname}/usr/share $out/
58 cp -R $TMP/${pname}/usr/lib/${pname}/* $out/opt/
59 ln -sf $out/opt/${pname} $out/bin/${pname}
60 '';
61
62 runtimeDependencies = [
63 (lib.getLib systemd)
64 ];
65
66 meta = with lib; {
67 description = "GUI for managing Git and GitHub.";
68 homepage = "https://desktop.github.com/";
69 license = licenses.mit;
70 maintainers = with maintainers; [ dan4ik605743 ];
71 platforms = platforms.linux;
72 };
73}