Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7949b4f90e97
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3ba0d9f75ccf
Choose a head ref
  • 1 commit
  • 1 file changed
  • 1 contributor

Commits on Oct 3, 2019

  1. opera: use autoPatchelfHook, use wrapGAppsHook

    Fixes #70322
    
    (cherry picked from commit 6854358)
    worldofpeace committed Oct 3, 2019
    Copy the full SHA
    3ba0d9f View commit details
Showing with 55 additions and 61 deletions.
  1. +55 −61 pkgs/applications/networking/browsers/opera/default.nix
116 changes: 55 additions & 61 deletions pkgs/applications/networking/browsers/opera/default.nix
Original file line number Diff line number Diff line change
@@ -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";