Opera updated - works now on x64-linux as well

svn path=/nixpkgs/trunk/; revision=9805
This commit is contained in:
Marc Weber 2007-11-28 02:10:27 +00:00
parent 7939dcdd29
commit 0250bd7bac
3 changed files with 26 additions and 18 deletions

View file

@ -7,6 +7,7 @@ buildPhase() {
installPhase=installPhase installPhase=installPhase
installPhase() { installPhase() {
sed -i 's=/bin/pwd=pwd=' opera install.sh
# Note: the "no" is because the install scripts asks whether we # Note: the "no" is because the install scripts asks whether we
# want to install icons in some system-wide directories. # want to install icons in some system-wide directories.
echo no | ./install.sh --prefix=$out echo no | ./install.sh --prefix=$out
@ -16,20 +17,18 @@ installPhase() {
rpath="$rpath:$i/lib" rpath="$rpath:$i/lib"
done done
[ -z ${system##*64*} ] && suf=64
# !!! ugh, should fix this eventually; just make a normal gcc dependency # !!! ugh, should fix this eventually; just make a normal gcc dependency
gcc=$(cat $NIX_GCC/nix-support/orig-gcc) gcc=$(cat $NIX_GCC/nix-support/orig-gcc)
rpath="$rpath:$gcc/lib" rpath="$rpath:$libstdcpp5/lib$suf"
for i in $out/lib/opera/*/opera $out/lib/opera/plugins/opera*; do for i in $out/lib/opera/*/opera $out/lib/opera/*/operaplugin{wrapper,cleaner}; do
patchelf \ patchelf \
--set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath "$rpath" \ --set-rpath "$rpath" \
"$i" "$i"
done done
# opera seems to need libnpp.so in the same path ?
# (search the opera help for libnpp..
cp $out/lib/opera/plugins/libnpp.so $out/lib/opera/9*
} }
genericBuild genericBuild

View file

@ -1,7 +1,6 @@
{ stdenv, fetchurl, qt, zlib, libX11, libXext, libSM, libICE, libstdcpp5 { stdenv, fetchurl, qt, zlib, libX11, libXext, libSM, libICE, libstdcpp5, glibc
, motif ? null, libXt ? null}: , motif ? null, libXt ? null}:
assert stdenv.system == "i686-linux";
assert motif != null -> libXt != null; assert motif != null -> libXt != null;
# !!! Add Xinerama and Xrandr dependencies? Or should those be in Qt? # !!! Add Xinerama and Xrandr dependencies? Or should those be in Qt?
@ -12,13 +11,22 @@ stdenv.mkDerivation rec {
version = "9.24-20071015.5"; version = "9.24-20071015.5";
name = "opera-${version}"; name = "opera-${version}";
builder = ./builder.sh; inherit libstdcpp5;
src = fetchurl {
url = ftp://ftp.task.gda.pl/pub/opera/linux/924/final/en/i386/shared/opera-9.24-20071015.5-shared-qt.i386-en.tar.bz2;
sha256 = "1frhnrp63k4lz29a8z9c99h383xrsrby432xp20hxrylh0zypzb5";
};
builder = ./builder.sh;
src = if (stdenv.system == "i686-linux") then
fetchurl {
url = ftp://ftp.task.gda.pl/pub/opera/linux/950b/final/en/i386/shared/opera-9.50b-20071024.5-shared-qt.i386-en.tar.bz2;
sha256 = "0vv1q86is9x6vw8fx92wrnvlyn4x29zgk9zjn66rcx37n6grqqah";
} else if (stdenv.system == "x86_64-linux") then
fetchurl {
url = ftp://ftp.task.gda.pl/pub/opera/linux/950b/final/en/x86_64/opera-9.50-20071024.2-shared-qt.x86_64-1643.tar.bz2;
sha256 = "1gv1r18ar3vz1l24nf8qixjlba1yb5d3xvg3by41i4dy0vlznqn6";
} else throw "unsupported platform ${stdenv.system} (only i686-linux and x86_64 linux supported yet)";
# operapluginwrapper seems to require libXt ?
# Adding it makes startup faster and omits error messages (on x68)
libPath = libPath =
[qt motif zlib libX11 libXext libSM libICE libstdcpp5] [glibc qt motif zlib libX11 libXt libXext libSM libICE libstdcpp5]
++ (if motif != null then [motif libXt ] else []); ++ (if motif != null then [motif ] else []);
} }

View file

@ -4057,11 +4057,12 @@ rec {
}; };
opera = import ../applications/networking/browsers/opera { opera = import ../applications/networking/browsers/opera {
inherit fetchurl stdenv zlib; inherit fetchurl zlib glibc;
stdenv = overrideGCC stdenv gcc40;
inherit (xlibs) libX11 libSM libICE libXt libXext; inherit (xlibs) libX11 libSM libICE libXt libXext;
qt = qt3; qt = qt3;
#motif = lesstif; #33motif = lesstif;
libstdcpp5 = gcc33.gcc; libstdcpp5 = (if (stdenv.system == "i686-linux") then gcc33 /* stdc++ 3.8 is used */ else gcc).gcc;
}; };
pan = import ../applications/networking/newsreaders/pan { pan = import ../applications/networking/newsreaders/pan {