meteor-git: 0.23.1 -> 0.24.2 (#363782)
[NixPkgs.git] / pkgs / development / tools / unityhub / default.nix
blobd875c176b91065c7f0fdbade36177b967794bd68
1 { lib
2 , stdenv
3 , fetchurl
4 , dpkg
5 , makeWrapper
6 , buildFHSEnv
7 , extraPkgs ? pkgs: [ ]
8 , extraLibs ? pkgs: [ ]
9 }:
11 stdenv.mkDerivation rec {
12   pname = "unityhub";
13   version = "3.10.0";
15   src = fetchurl {
16     url = "https://hub-dist.unity3d.com/artifactory/hub-debian-prod-local/pool/main/u/unity/unityhub_amd64/unityhub-amd64-${version}.deb";
17     sha256 = "sha256-9dm6tVQ5nsDC8X2clrT4cAl8jg4wLwcihE4bnFgdU+A=";
18   };
20   nativeBuildInputs = [
21     dpkg
22     makeWrapper
23   ];
25   fhsEnv = buildFHSEnv {
26     pname = "${pname}-fhs-env";
27     inherit version;
28     runScript = "";
30     targetPkgs = pkgs: with pkgs; [
31       # Unity Hub binary dependencies
32       xorg.libXrandr
33       xdg-utils
35       # GTK filepicker
36       gsettings-desktop-schemas
37       hicolor-icon-theme
39       # Bug Reporter dependencies
40       fontconfig
41       freetype
42       lsb-release
43     ] ++ extraPkgs pkgs;
45     multiPkgs = pkgs: with pkgs; [
46       # Unity Hub ldd dependencies
47       cups
48       gtk3
49       expat
50       libxkbcommon
51       lttng-ust_2_12
52       krb5
53       alsa-lib
54       nss
55       libdrm
56       mesa
57       nspr
58       atk
59       dbus
60       at-spi2-core
61       pango
62       xorg.libXcomposite
63       xorg.libXext
64       xorg.libXdamage
65       xorg.libXfixes
66       xorg.libxcb
67       xorg.libxshmfence
68       xorg.libXScrnSaver
69       xorg.libXtst
71       # Unity Hub additional dependencies
72       libva
73       openssl
74       cairo
75       libnotify
76       libuuid
77       libsecret
78       udev
79       libappindicator
80       wayland
81       cpio
82       icu
83       libpulseaudio
85       # Unity Editor dependencies
86       libglvnd # provides ligbl
87       xorg.libX11
88       xorg.libXcursor
89       glib
90       gdk-pixbuf
91       libxml2
92       zlib
93       clang
94       git # for git-based packages in unity package manager
96       # Unity Editor 2019 specific dependencies
97       xorg.libXi
98       xorg.libXrender
99       gnome2.GConf
100       libcap
102       # Unity Editor 6000 specific dependencies
103       harfbuzz
104     ] ++ extraLibs pkgs;
105   };
107   unpackCmd = "dpkg -x $curSrc src";
109   dontConfigure = true;
110   dontBuild = true;
112   installPhase = ''
113     runHook preInstall
115     mkdir -p $out
116     mv opt/ usr/share/ $out
118     # `/opt/unityhub/unityhub` is a shell wrapper that runs `/opt/unityhub/unityhub-bin`
119     # Which we don't need and overwrite with our own custom wrapper
120     makeWrapper ${fhsEnv}/bin/${pname}-fhs-env $out/opt/unityhub/unityhub \
121       --add-flags $out/opt/unityhub/unityhub-bin \
122       --argv0 unityhub
124     # Link binary
125     mkdir -p $out/bin
126     ln -s $out/opt/unityhub/unityhub $out/bin/unityhub
128     # Replace absolute path in desktop file to correctly point to nix store
129     substituteInPlace $out/share/applications/unityhub.desktop \
130       --replace /opt/unityhub/unityhub $out/opt/unityhub/unityhub
132     runHook postInstall
133   '';
135   passthru.updateScript = ./update.sh;
137   meta = with lib; {
138     description = "Official Unity3D app to download and manage Unity Projects and installations";
139     homepage = "https://unity.com/";
140     downloadPage = "https://unity.com/unity-hub";
141     changelog = "https://unity.com/unity-hub/release-notes";
142     license = licenses.unfree;
143     maintainers = with maintainers; [ tesq0 huantian ];
144     platforms = [ "x86_64-linux" ];
145     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
146   };