ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / po / postman / linux.nix
blobfe15275bfb7d58516413484e9145de483917ecc3
1 { lib
2 , stdenv
3 , fetchurl
4 , makeDesktopItem
5 , wrapGAppsHook3
6 , atk
7 , at-spi2-atk
8 , at-spi2-core
9 , alsa-lib
10 , cairo
11 , cups
12 , dbus
13 , expat
14 , gdk-pixbuf
15 , glib
16 , gtk3
17 , freetype
18 , fontconfig
19 , nss
20 , nspr
21 , pango
22 , udev
23 , libsecret
24 , libuuid
25 , libX11
26 , libxcb
27 , libXi
28 , libXcursor
29 , libXdamage
30 , libXrandr
31 , libXcomposite
32 , libXext
33 , libXfixes
34 , libXrender
35 , libXtst
36 , libXScrnSaver
37 , libxkbcommon
38 , libdrm
39 , mesa
40 # It's unknown which version of openssl that postman expects but it seems that
41 # OpenSSL 3+ seems to work fine (cf.
42 # https://github.com/NixOS/nixpkgs/issues/254325). If postman breaks apparently
43 # around OpenSSL stuff then try changing this dependency version.
44 , openssl
45 , xorg
46 , pname
47 , version
48 , meta
49 , copyDesktopItems
50 , makeWrapper
53 let
54   dist = {
55     aarch64-linux = {
56       arch = "arm64";
57       sha256 = "sha256-yq2J5KRv/NJDaQG7e7RKyzbJqKWRolSU9X6khHxlrNo=";
58     };
60     x86_64-linux = {
61       arch = "64";
62       sha256 = "sha256-fAaxrLZSXGBYr4Vu0Cz2pZwXivSTkaIF5wL217cB9qM=";
63     };
64   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
67 stdenv.mkDerivation rec {
68   inherit pname version meta;
70   src = fetchurl {
71     url = "https://dl.pstmn.io/download/version/${version}/linux${dist.arch}";
72     inherit (dist) sha256;
73     name = "${pname}-${version}.tar.gz";
74   };
76   dontConfigure = true;
78   desktopItems = [
79       (makeDesktopItem {
80       name = "postman";
81       exec = "postman %U";
82       icon = "postman";
83       comment = "API Development Environment";
84       desktopName = "Postman";
85       genericName = "Postman";
86       categories = [ "Development" ];
87     })
88   ];
90   buildInputs = [
91     (lib.getLib stdenv.cc.cc)
92     atk
93     at-spi2-atk
94     at-spi2-core
95     alsa-lib
96     cairo
97     cups
98     dbus
99     expat
100     gdk-pixbuf
101     glib
102     gtk3
103     freetype
104     fontconfig
105     mesa
106     nss
107     nspr
108     pango
109     udev
110     libdrm
111     libsecret
112     libuuid
113     libX11
114     libxcb
115     libXi
116     libXcursor
117     libXdamage
118     libXrandr
119     libXcomposite
120     libXext
121     libXfixes
122     libXrender
123     libXtst
124     libXScrnSaver
125     libxkbcommon
126     xorg.libxshmfence
127   ];
129   nativeBuildInputs = [ wrapGAppsHook3 copyDesktopItems ];
131   installPhase = ''
132     runHook preInstall
133     mkdir -p $out/share/postman
134     cp -R app/* $out/share/postman
135     rm $out/share/postman/Postman
137     mkdir -p $out/bin
138     ln -s $out/share/postman/postman $out/bin/postman
140     source "${makeWrapper}/nix-support/setup-hook"
141     wrapProgram $out/bin/${pname} \
142         --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime=true}}"
144     mkdir -p $out/share/icons/hicolor/128x128/apps
145     ln -s $out/share/postman/resources/app/assets/icon.png $out/share/icons/postman.png
146     ln -s $out/share/postman/resources/app/assets/icon.png $out/share/icons/hicolor/128x128/apps/postman.png
147     runHook postInstall
148   '';
150   postFixup = ''
151     pushd $out/share/postman
152     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" postman
153     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" chrome_crashpad_handler
154     for file in $(find . -type f \( -name \*.node -o -name postman -o -name \*.so\* \) ); do
155       ORIGIN=$(patchelf --print-rpath $file); \
156       patchelf --set-rpath "${lib.makeLibraryPath buildInputs}:$ORIGIN" $file
157     done
158     popd
159     wrapProgram $out/bin/postman --set PATH ${lib.makeBinPath [ openssl ]}
160   '';