From 7c02d7eb0b90cfce67b759dd195240fd64b546e9 Mon Sep 17 00:00:00 2001 From: Marc Weber Date: Thu, 10 Sep 2009 16:57:45 +0000 Subject: [PATCH] fix opera on x86_64 svn path=/nixpkgs/trunk/; revision=17024 --- pkgs/applications/networking/browsers/opera/builder.sh | 10 +++++++--- .../applications/networking/browsers/opera/default.nix | 6 ++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/browsers/opera/builder.sh b/pkgs/applications/networking/browsers/opera/builder.sh index f79dd05a4be..66a3388bc88 100644 --- a/pkgs/applications/networking/browsers/opera/builder.sh +++ b/pkgs/applications/networking/browsers/opera/builder.sh @@ -13,12 +13,16 @@ installPhase() { [ -z ${system##*64*} ] && suf=64 - for i in $out/lib/opera/*/opera $out/lib/opera/*/operaplugincleaner $out/lib/opera/*/operapluginwrapper $out/lib/opera/*/operapluginwrapper-native; do - echo "$i <<<<<<<<<<<<" + find $out -type f | while read f; do + echo testing "$f" + # patch all executables + if readelf -h "$f" | grep 'EXEC (Executable file)' &> /dev/null; then + echo "patching $f <<" patchelf \ --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ --set-rpath "$libPath" \ - "$i" + "$f" + fi done # Substitute pwd as late as possible so that the md5 checksum check of opera passes. diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix index dc62030641b..4a8b365c467 100644 --- a/pkgs/applications/networking/browsers/opera/default.nix +++ b/pkgs/applications/networking/browsers/opera/default.nix @@ -26,8 +26,10 @@ stdenv.mkDerivation rec { # `operapluginwrapper' requires libXt. Adding it makes startup faster # and omits error messages (on x86). - libPath = stdenv.lib.makeLibraryPath - [ stdenv.gcc.gcc glibc qt zlib libX11 libXt libXext libSM libICE ]; + libPath = + let list = [ stdenv.gcc.gcc glibc qt zlib libX11 libXt libXext libSM libICE]; + in stdenv.lib.makeLibraryPath list + + ":" + (if stdenv.system == "x86_64-linux" then stdenv.lib.makeSearchPath "lib64" list else []); desktopItem = makeDesktopItem { name = "Opera";