at 24.11-pre 3.4 kB view raw
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 51}: 52 53let 54 dist = { 55 aarch64-linux = { 56 arch = "arm64"; 57 sha256 = "sha256-yq2J5KRv/NJDaQG7e7RKyzbJqKWRolSU9X6khHxlrNo="; 58 }; 59 60 x86_64-linux = { 61 arch = "64"; 62 sha256 = "sha256-fAaxrLZSXGBYr4Vu0Cz2pZwXivSTkaIF5wL217cB9qM="; 63 }; 64 }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 65 66in 67stdenv.mkDerivation rec { 68 inherit pname version meta; 69 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 }; 75 76 dontConfigure = true; 77 78 desktopItems = [ 79 (makeDesktopItem { 80 name = "postman"; 81 exec = "postman"; 82 icon = "postman"; 83 comment = "API Development Environment"; 84 desktopName = "Postman"; 85 genericName = "Postman"; 86 categories = [ "Development" ]; 87 }) 88 ]; 89 90 buildInputs = [ 91 stdenv.cc.cc.lib 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 ]; 128 129 nativeBuildInputs = [ wrapGAppsHook3 copyDesktopItems ]; 130 131 installPhase = '' 132 runHook preInstall 133 mkdir -p $out/share/postman 134 cp -R app/* $out/share/postman 135 rm $out/share/postman/Postman 136 137 mkdir -p $out/bin 138 ln -s $out/share/postman/postman $out/bin/postman 139 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}}" 143 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 ''; 149 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 ''; 161}