diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/opera/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/browsers/opera/default.nix | 116 |
1 files changed, 55 insertions, 61 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix index 062d2e6582b..b968c4f3d9d 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix +++ b/nixpkgs/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"; |