about summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
authorworldofpeace <worldofpeace@protonmail.ch>2019-10-03 16:08:59 +0000
committerGitHub <noreply@github.com>2019-10-03 16:08:59 +0000
commit2d9eb216020fcd5d6c10b087a6f76d46313a5079 (patch)
tree0e7a0843fa1ed0a962ed12bf77d97520d59f7b6e /pkgs/applications/networking
parent4c37faa8dafde34fb13143d817645eca837857d9 (diff)
parent68543580f4e67647cb55b1d06f0fe288c33e3182 (diff)
Merge pull request #70329 from worldofpeace/wrapgapps-opera
opera: use autoPatchelfHook, use wrapGAppsHook
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix116
1 files changed, 55 insertions, 61 deletions
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 062d2e6582b11..b968c4f3d9d1b 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -36,60 +36,14 @@
 , systemd
 , at-spi2-atk
 , at-spi2-core
+, autoPatchelfHook
+, wrapGAppsHook
 }:
 
 let
 
   mirror = "https://get.geo.opera.com/pub/opera/desktop";
 
-  rpath = lib.makeLibraryPath [
-
-    # These provide shared libraries loaded when starting. If one is missing,
-    # an error is shown in stderr.
-    alsaLib.out
-    atk.out
-    cairo.out
-    cups
-    curl.out
-    dbus.lib
-    expat.out
-    fontconfig.lib
-    freetype.out
-    gdk-pixbuf.out
-    glib.out
-    gnome2.GConf
-    gtk3.out
-    libX11.out
-    libXScrnSaver.out
-    libXcomposite.out
-    libXcursor.out
-    libXdamage.out
-    libXext.out
-    libXfixes.out
-    libXi.out
-    libXrandr.out
-    libXrender.out
-    libXtst.out
-    libxcb.out
-    libnotify.out
-    libuuid.out
-    nspr.out
-    nss.out
-    pango.out
-    stdenv.cc.cc.lib
-
-    # This is a little tricky. Without it the app starts then crashes. Then it
-    # brings up the crash report, which also crashes. `strace -f` hints at a
-    # missing libudev.so.0.
-    systemd.lib
-
-    # Works fine without this except there is no sound.
-    libpulseaudio.out
-
-    at-spi2-atk
-    at-spi2-core
-  ];
-
 in stdenv.mkDerivation rec {
 
   pname = "opera";
@@ -102,23 +56,63 @@ in stdenv.mkDerivation rec {
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
 
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    alsaLib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    curl
+    dbus
+    expat
+    fontconfig.lib
+    freetype
+    gdk-pixbuf
+    glib
+    gnome2.GConf
+    gtk3
+    libX11
+    libXScrnSaver
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    libnotify
+    libuuid
+    libxcb
+    nspr
+    nss
+    pango
+    stdenv.cc.cc.lib
+  ];
+
+  runtimeDependencies = [
+    # Works fine without this except there is no sound.
+    libpulseaudio.out
+
+    # This is a little tricky. Without it the app starts then crashes. Then it
+    # brings up the crash report, which also crashes. `strace -f` hints at a
+    # missing libudev.so.0.
+    systemd.lib
+  ];
+
   installPhase = ''
-    mkdir --parent $out
-    mv * $out/
+    mkdir -p $out
+    cp -r . $out/
     mv $out/lib/*/opera/*.so $out/lib/
   '';
 
-  postFixup = ''
-    find $out -executable -type f \
-    | while read f
-      do
-        patchelf \
-          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath "$out/lib:${rpath}" \
-          "$f"
-      done
-  '';
-
   meta = with lib; {
     homepage = "https://www.opera.com";
     description = "Web browser";