librewolf: 132.0.1 -> 132.0.1-1 (#355483)
[NixPkgs.git] / pkgs / by-name / gl / glamoroustoolkit / package.nix
blobcd55899e6c9fe8c18073652c1490a7cdf23cbb36
1 { lib
2 , stdenv
3 , fetchzip
4 , fetchurl
5 , patchelf
6 , wrapGAppsHook3
7 , cairo
8 , dbus
9 , fontconfig
10 , freetype
11 , glib
12 , gtk3
13 , libX11
14 , libXcursor
15 , libXext
16 , libXi
17 , libXrandr
18 , libXrender
19 , libgit2
20 , libglvnd
21 , libuuid
22 , libxcb
23 , harfbuzz
24 , libsoup_3
25 , webkitgtk_4_1
26 , zenity
29 stdenv.mkDerivation (finalAttrs: {
30   pname = "glamoroustoolkit";
31   version = "1.1.4";
33   src = fetchzip {
34     url = "https://github.com/feenkcom/gtoolkit-vm/releases/download/v${finalAttrs.version}/GlamorousToolkit-x86_64-unknown-linux-gnu.zip";
35     stripRoot = false;
36     hash = "sha256-/p/oCE1fmlPjy1Xg36rsczZ74L0M7qWsdcFm6cHPVVY=";
37   };
39   nativeBuildInputs = [
40     wrapGAppsHook3
41   ];
43   sourceRoot = ".";
45   dontConfigure = true;
46   dontBuild = true;
47   dontPatchELF = true;
48   dontStrip = true;
50   installPhase = ''
51     runHook preInstall
53     install -d $out/bin $out/lib
54     cp -r $src/bin $src/lib $out/
55     cp ${./GlamorousToolkit-GetImage} $out/bin/GlamorousToolkit-GetImage
57     runHook postInstall
58   '';
60   preFixup = let
61     libPath = lib.makeLibraryPath [
62       cairo
63       dbus
64       fontconfig
65       freetype
66       glib
67       gtk3
68       libX11
69       libXcursor
70       libXext
71       libXi
72       libXrandr
73       libXrender
74       libglvnd
75       libuuid
76       libxcb
77       harfbuzz        # libWebView.so
78       libsoup_3       # libWebView.so
79       webkitgtk_4_1   # libWebView.so
80       (lib.getLib stdenv.cc.cc)
81     ];
82     binPath = lib.makeBinPath [
83       zenity          # File selection dialog
84     ];
85   in ''
86     chmod +x $out/lib/*.so
87     patchelf \
88       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
89       --set-rpath "${libPath}:$out/lib" \
90       $out/bin/GlamorousToolkit $out/bin/GlamorousToolkit-cli
91     patchelf --shrink-rpath \
92       $out/bin/GlamorousToolkit $out/bin/GlamorousToolkit-cli
93     patchelf \
94       --set-rpath "${libPath}:$out/lib" \
95       $out/lib/*.so
96     patchelf --shrink-rpath $out/lib/*.so
97     #
98     # shrink-rpath gets it wrong for the following libraries,
99     # restore the full rpath.
100     #
101     patchelf \
102       --set-rpath "${libPath}:$out/lib" \
103       $out/lib/libPharoVMCore.so \
104       $out/lib/libWinit.so \
105       $out/lib/libPixels.so
106     patchelf --set-rpath $out/lib $out/lib/libssl.so
108     ln -s $out/lib/libcrypto.so $out/lib/libcrypto.so.1.1
109     ln -s $out/lib/libcairo.so $out/lib/libcairo.so.2
110     rm $out/lib/libgit2.so
111     ln -s "${libgit2}/lib/libgit2.so" $out/lib/libgit2.so.1.1
113     gappsWrapperArgs+=(
114       --prefix PATH : ${binPath}
115     )
116   '';
118   meta = {
119     homepage = "https://gtoolkit.com";
120     description = "GlamorousToolkit Development Environment";
121     license = lib.licenses.mit;
122     maintainers = [ lib.maintainers.akgrant43 ];
123     platforms = [ "x86_64-linux" ];
124     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
125   };