summary refs log tree commit diff
path: root/pkgs/development/web
diff options
context:
space:
mode:
authorEvan Stoll <evanjsx@gmail.com>2019-09-05 19:24:31 -0400
committerEvan Stoll <evanjsx@gmail.com>2019-09-05 19:24:31 -0400
commitabd41c3f6867727592148d5265a66dc3d428ac20 (patch)
treebe349d7d561c33cadad703da6ab9fbf891464ede /pkgs/development/web
parent539d66aef61304ce05d490823d5175d2cc08bfde (diff)
downloadnixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.tar
nixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.tar.gz
nixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.tar.bz2
nixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.tar.lz
nixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.tar.xz
nixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.tar.zst
nixpkgs-abd41c3f6867727592148d5265a66dc3d428ac20.zip
postman: 7.0.7 -> 7.6.0
- Remove gnome2 (#39976)
  - Use pango instead of gnome2.pango
  - Remove gnome2.GConf
  - Remove gtk2-x11
- Add at-spi2-atk dependency
- Explicitly import packages rather than just pkgs or xorg
- Refactor patchelf to be more generic
- Use wrapGAppsHook
  - As this app uses GTK3 for the UI, we need to use wrapGAppsHook
- Move libPath creation to postFixup
- Remove dontPatchELF
- Remove unnecessary Postman binary, only use _Postman
- Remove unnecessary makeWrapper
- Add dontConfigure
- Remove unnecessary lib 
- Move libPath inputs to buildInputs
Diffstat (limited to 'pkgs/development/web')
-rw-r--r--pkgs/development/web/postman/default.nix110
1 files changed, 57 insertions, 53 deletions
diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix
index 1767eaab8bc..5dcecbe61f2 100644
--- a/pkgs/development/web/postman/default.nix
+++ b/pkgs/development/web/postman/default.nix
@@ -1,20 +1,22 @@
-{ stdenv, lib, gnome2, fetchurl, pkgs, xorg, makeWrapper, makeDesktopItem }:
+{ stdenv, fetchurl, makeDesktopItem, wrapGAppsHook
+, atk, at-spi2-atk, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
+, freetype, fontconfig, nss, nspr, pango, udev, libX11, libxcb, libXi
+, libXcursor, libXdamage, libXrandr, libXcomposite, libXext, libXfixes
+, libXrender, libXtst, libXScrnSaver
+}:
 
 stdenv.mkDerivation rec {
   pname = "postman";
-  version = "7.0.7";
+  version = "7.6.0";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "47be1b955759520f3a2c7dcdecb85b4c52c38df717da294ba184f46f2058014a";
-    name = "${pname}-${version}.tar.gz";
+    sha256 = "sha256:03y82ydkj46l7dn35y944gnghbrrhc75y3yxdyidbh8fl3xvmlfv";
+    name = "${pname}.tar.gz";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
-  dontPatchELF = true;
-
-  buildPhase = ":";   # nothing to build
+  dontBuild = true; # nothing to build
+  dontConfigure = true;
 
   desktopItem = makeDesktopItem {
     name = "postman";
@@ -26,12 +28,48 @@ stdenv.mkDerivation rec {
     categories = "Application;Development;";
   };
 
+  buildInputs = [
+    stdenv.cc.cc.lib
+    atk
+    at-spi2-atk
+    alsaLib
+    cairo
+    cups
+    dbus
+    expat
+    gdk-pixbuf
+    glib
+    gtk3
+    freetype
+    fontconfig
+    nss
+    nspr
+    pango
+    udev
+    libX11
+    libxcb
+    libXi
+    libXcursor
+    libXdamage
+    libXrandr
+    libXcomposite
+    libXext
+    libXfixes
+    libXrender
+    libXtst
+    libXScrnSaver
+  ];
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+
   installPhase = ''
     mkdir -p $out/share/postman
     cp -R app/* $out/share/postman
+    rm $out/share/postman/Postman
 
     mkdir -p $out/bin
-    ln -s $out/share/postman/Postman $out/bin/postman
+    ln -s $out/share/postman/_Postman $out/bin/postman
 
     mkdir -p $out/share/applications
     ln -s ${desktopItem}/share/applications/* $out/share/applications/
@@ -43,54 +81,20 @@ stdenv.mkDerivation rec {
     ln -s $out/share/postman/resources/app/assets/icon.png $iconSizeDir/postman.png
   '';
 
-  preFixup = let
-    libPath = lib.makeLibraryPath [
-      stdenv.cc.cc.lib
-      gnome2.pango
-      gnome2.GConf
-      pkgs.atk
-      pkgs.alsaLib
-      pkgs.cairo
-      pkgs.cups
-      pkgs.dbus.daemon.lib
-      pkgs.expat
-      pkgs.gdk-pixbuf
-      pkgs.glib
-      pkgs.gtk2-x11
-      pkgs.freetype
-      pkgs.fontconfig
-      pkgs.nss
-      pkgs.nspr
-      pkgs.udev.lib
-      xorg.libX11
-      xorg.libxcb
-      xorg.libXi
-      xorg.libXcursor
-      xorg.libXdamage
-      xorg.libXrandr
-      xorg.libXcomposite
-      xorg.libXext
-      xorg.libXfixes
-      xorg.libXrender
-      xorg.libX11
-      xorg.libXtst
-      xorg.libXScrnSaver
-    ];
-  in ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}:$out/share/postman" \
-      $out/share/postman/Postman
-    patchelf --set-rpath "${libPath}" $out/share/postman/libnode.so
-    patchelf --set-rpath "${libPath}" $out/share/postman/libffmpeg.so
-
-    wrapProgram $out/share/postman/Postman --prefix LD_LIBRARY_PATH : ${libPath}
+  postFixup = ''
+    pushd $out/share/postman
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" _Postman
+    for file in $(find . -type f \( -name \*.node -o -name _Postman -o -name \*.so\* \) ); do
+      ORIGIN=$(patchelf --print-rpath $file); \
+      patchelf --set-rpath "${stdenv.lib.makeLibraryPath buildInputs}:$ORIGIN" $file
+    done
+    popd
   '';
 
   meta = with stdenv.lib; {
     homepage = https://www.getpostman.com;
     description = "API Development Environment";
-    license = stdenv.lib.licenses.postman;
+    license = licenses.postman;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ xurei ];
   };