Merge pull request #70329 from worldofpeace/wrapgapps-opera
opera: use autoPatchelfHook, use wrapGAppsHook
This commit is contained in:
commit
2d9eb21602
|
@ -36,60 +36,14 @@
|
||||||
, systemd
|
, systemd
|
||||||
, at-spi2-atk
|
, at-spi2-atk
|
||||||
, at-spi2-core
|
, at-spi2-core
|
||||||
|
, autoPatchelfHook
|
||||||
|
, wrapGAppsHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
mirror = "https://get.geo.opera.com/pub/opera/desktop";
|
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 {
|
in stdenv.mkDerivation rec {
|
||||||
|
|
||||||
pname = "opera";
|
pname = "opera";
|
||||||
|
@ -102,21 +56,61 @@ in stdenv.mkDerivation rec {
|
||||||
|
|
||||||
unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
|
unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
|
||||||
|
|
||||||
installPhase = ''
|
nativeBuildInputs = [
|
||||||
mkdir --parent $out
|
autoPatchelfHook
|
||||||
mv * $out/
|
wrapGAppsHook
|
||||||
mv $out/lib/*/opera/*.so $out/lib/
|
];
|
||||||
'';
|
|
||||||
|
|
||||||
postFixup = ''
|
buildInputs = [
|
||||||
find $out -executable -type f \
|
alsaLib
|
||||||
| while read f
|
at-spi2-atk
|
||||||
do
|
at-spi2-core
|
||||||
patchelf \
|
atk
|
||||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
cairo
|
||||||
--set-rpath "$out/lib:${rpath}" \
|
cups
|
||||||
"$f"
|
curl
|
||||||
done
|
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 -p $out
|
||||||
|
cp -r . $out/
|
||||||
|
mv $out/lib/*/opera/*.so $out/lib/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
Loading…
Reference in New Issue