* Some cleanup of the Opera expression. It doesn't need the libstdcpp
from GCC 3.3 anymore, GCC 4.x is fine. So we can use the regular Qt 3 build. Also, there don't seem to be any references to Motif anymore. svn path=/nixpkgs/trunk/; revision=16932
This commit is contained in:
parent
f560f49faa
commit
c26262e72e
3 changed files with 26 additions and 50 deletions
|
@ -5,38 +5,27 @@ buildPhase() {
|
|||
}
|
||||
|
||||
installPhase() {
|
||||
set -x
|
||||
|
||||
sed -i 's=/bin/pwd=pwd=' install.sh
|
||||
substituteInPlace install.sh --replace /bin/pwd pwd
|
||||
|
||||
# Note: the "no" is because the install scripts asks whether we
|
||||
# want to install icons in some system-wide directories.
|
||||
echo no | ./install.sh --prefix=$out
|
||||
|
||||
rpath=/no-such-path
|
||||
for i in $libPath; do
|
||||
rpath="$rpath:$i/lib"
|
||||
done
|
||||
|
||||
[ -z ${system##*64*} ] && suf=64
|
||||
|
||||
# !!! ugh, should fix this eventually; just make a normal gcc dependency
|
||||
gcc=$(cat $NIX_GCC/nix-support/orig-gcc)
|
||||
rpath="$rpath:$libstdcpp5/lib$suf"
|
||||
|
||||
for i in $out/lib/opera/*/opera $out/lib/opera/*/operaplugincleaner $out/lib/opera/*/operapluginwrapper-native; do
|
||||
[ -h "$i" ] && i=$(readline "$i")
|
||||
for i in $out/lib/opera/*/opera $out/lib/opera/*/operaplugincleaner $out/lib/opera/*/operapluginwrapper; do
|
||||
echo "$i <<<<<<<<<<<<"
|
||||
patchelf \
|
||||
--set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "$rpath" \
|
||||
--set-rpath "$libPath" \
|
||||
"$i"
|
||||
done
|
||||
# substitute pwd as late as possible so that the md5 checkusm check of opera passes
|
||||
sed -i 's=/bin/pwd=pwd=' $out/bin/opera
|
||||
|
||||
# Substitute pwd as late as possible so that the md5 checksum check of opera passes.
|
||||
substituteInPlace $out/bin/opera --replace /bin/pwd pwd
|
||||
|
||||
ensureDir $out/share/applications
|
||||
cp $desktopItem/share/applications/* $out/share/applications
|
||||
|
||||
}
|
||||
|
||||
genericBuild
|
||||
|
|
|
@ -1,37 +1,33 @@
|
|||
{ stdenv, fetchurl, qt, zlib, libX11, libXext, libSM, libICE, libstdcpp5, glibc
|
||||
, motif ? null, libXt ? null
|
||||
{ stdenv, fetchurl, qt, zlib, libX11, libXext, libSM, libICE, libXt, glibc
|
||||
, makeDesktopItem
|
||||
}:
|
||||
|
||||
assert motif != null -> libXt != null;
|
||||
|
||||
# !!! Add Xinerama and Xrandr dependencies? Or should those be in Qt?
|
||||
|
||||
# Hm, does Opera 9.x still use Motif for anything?
|
||||
assert stdenv.isLinux;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "10.0";
|
||||
name = "opera-${version}";
|
||||
|
||||
inherit libstdcpp5;
|
||||
name = "opera-10.00";
|
||||
|
||||
builder = ./builder.sh;
|
||||
src = if (stdenv.system == "i686-linux") then
|
||||
|
||||
src =
|
||||
if stdenv.system == "i686-linux" then
|
||||
fetchurl {
|
||||
url = http://mirror.liteserver.nl/pub/opera/linux/1000/final/en/i386/shared/opera-10.00.gcc4-shared-qt3.i386.tar.gz ;
|
||||
url = "http://mirror.liteserver.nl/pub/opera/linux/1000/final/en/i386/shared/${name}.gcc4-shared-qt3.i386.tar.gz";
|
||||
sha256 = "1l87rxdzq2mb92jbwj4gg79j177yzyfbkqb52gcdwicw8jcmhsad";
|
||||
} else if (stdenv.system == "x86_64-linux") then
|
||||
}
|
||||
else if stdenv.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = http://mirror.liteserver.nl/pub/opera/linux/1000/final/en/x86_64/opera-10.00.gcc4-shared-qt3.x86_64.tar.gz ;
|
||||
url = "http://mirror.liteserver.nl/pub/opera/linux/1000/final/en/x86_64/${name}.gcc4-shared-qt3.x86_64.tar.gz";
|
||||
sha256 = "0w9a56j3jz0bjdj98k6n4xmrjnkvlxm32cfvh2c0f5pvgwcr642i";
|
||||
} else throw "unsupported platform ${stdenv.system} (only i686-linux and x86_64 linux supported yet)";
|
||||
}
|
||||
else throw "Opera is not supported on ${stdenv.system} (only i686-linux and x86_64 linux are supported)";
|
||||
|
||||
dontStrip = 1;
|
||||
# operapluginwrapper seems to require libXt ?
|
||||
# Adding it makes startup faster and omits error messages (on x68)
|
||||
libPath =
|
||||
[glibc qt motif zlib libX11 libXt libXext libSM libICE libstdcpp5]
|
||||
++ (if motif != null then [motif ] else []);
|
||||
|
||||
# `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 ];
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "Opera";
|
||||
|
@ -43,8 +39,8 @@ stdenv.mkDerivation rec {
|
|||
categories = "Application;Network;";
|
||||
};
|
||||
|
||||
|
||||
meta = {
|
||||
homepage = http://www.opera.com;
|
||||
description = "The Opera web browser";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4003,12 +4003,6 @@ let
|
|||
mysqlSupport = getConfig ["qt" "mysql"] false;
|
||||
};
|
||||
|
||||
qt3gcc33 = qt3.override {
|
||||
stdenv = overrideGCC stdenv gcc33;
|
||||
openglSupport = false;
|
||||
mysqlSupport = false;
|
||||
};
|
||||
|
||||
qt3mysql = qt3.override {
|
||||
mysqlSupport = true;
|
||||
};
|
||||
|
@ -6918,11 +6912,8 @@ let
|
|||
|
||||
opera = import ../applications/networking/browsers/opera {
|
||||
inherit fetchurl zlib glibc stdenv makeDesktopItem;
|
||||
# stdenv = overrideGCC stdenv gcc40;
|
||||
inherit (xlibs) libX11 libSM libICE libXt libXext;
|
||||
#33motif = lesstif;
|
||||
qt = if (stdenv.system == "i686-linux") then qt3gcc33 else qt3;
|
||||
libstdcpp5 = (if (stdenv.system == "i686-linux") then gcc33 /* stdc++ 3.8 is used */ else gcc42).gcc;
|
||||
qt = qt3;
|
||||
};
|
||||
|
||||
pan = import ../applications/networking/newsreaders/pan {
|
||||
|
|
Loading…
Reference in a new issue