From b46faa7a45e72efbf32162f6f11e05f06de6c18d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 29 Sep 2008 21:58:25 +0000 Subject: [PATCH] GNU IceCat: Allow compilation of XulRunner. In turn, this allows compilation of plug-ins like MPlayer's. svn path=/nixpkgs/trunk/; revision=12930 --- .../networking/browsers/icecat-3/default.nix | 38 ++++++++++++------- pkgs/top-level/all-packages.nix | 13 ++++++- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/networking/browsers/icecat-3/default.nix b/pkgs/applications/networking/browsers/icecat-3/default.nix index 061c471dc65..26b42a67146 100644 --- a/pkgs/applications/networking/browsers/icecat-3/default.nix +++ b/pkgs/applications/networking/browsers/icecat-3/default.nix @@ -1,7 +1,8 @@ { stdenv, fetchurl, lzma, pkgconfig, gtk, pango, perl, python, zip, libIDL , libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs , gnomevfs, libgnomeui -, freetype, fontconfig }: +, freetype, fontconfig +, application ? "browser" }: let version = "3.0.2-g1"; in stdenv.mkDerivation { @@ -25,7 +26,7 @@ stdenv.mkDerivation { patches = [ ./skip-gre-registration.patch ]; configureFlags = [ - "--enable-application=browser" + "--enable-application=${application}" "--enable-libxul" "--disable-javaxpcom" @@ -47,24 +48,35 @@ stdenv.mkDerivation { # Strip some more stuff strip -S $out/lib/*/* || true - - # Fix some references to /bin paths in the IceCat shell script. - substituteInPlace $out/bin/icecat \ - --replace /bin/pwd "$(type -tP pwd)" \ - --replace /bin/ls "$(type -tP ls)" # This fixes starting IceCat when there already is a running # instance. The `icecat' wrapper script actually expects to be # in the same directory as `run-mozilla.sh', apparently. libDir=$(cd $out/lib && ls -d icecat-[0-9]*) test -n "$libDir" - cd $out/bin - mv icecat ../lib/$libDir/ - ln -s ../lib/$libDir/icecat . - # Register extensions etc. - echo "running icecat -register..." - (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./icecat-bin -register) || false + if [ -f "$out/bin/icecat" ] + then + # Fix references to /bin paths in the IceCat shell script. + substituteInPlace $out/bin/icecat \ + --replace /bin/pwd "$(type -tP pwd)" \ + --replace /bin/ls "$(type -tP ls)" + + cd $out/bin + mv icecat ../lib/$libDir/ + ln -s ../lib/$libDir/icecat . + + # Register extensions etc. + echo "running \`icecat -register'..." + (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./icecat-bin -register) || false + fi + + if [ -f "$out/lib/$libDir/xpidl" ] + then + # XulRunner's IDL compiler. + echo "linking \`xpidl'..." + ln -s "$out/lib/$libDir/xpidl" "$out/bin" + fi # Put the GNU IceCat icon in the right place. ensureDir $out/lib/$libDir/chrome/icons/default diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 95dc6ea6080..96ecb79f0a4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6335,7 +6335,18 @@ let inherit (gnome) libIDL libgnomeui gnomevfs gtk pango; }); - icecatWrapper = wrapFirefox icecat3 "icecat" ""; + icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 { + application = "xulrunner"; + inherit fetchurl stdenv lzma pkgconfig perl zip libjpeg libpng zlib cairo + python dbus dbus_glib freetype fontconfig bzip2 xlibs; + inherit (gnome) libIDL libgnomeui gnomevfs gtk pango; + }); + + icecat3Xul = + (symlinkJoin "icecat-3-with-xulrunner" [ icecat3 icecatXulrunner3 ]) + // { inherit (icecat3) gtk meta; }; + + icecatWrapper = wrapFirefox icecat3Xul "icecat" ""; icewm = import ../applications/window-managers/icewm { inherit fetchurl stdenv gettext libjpeg libtiff libungif libpng imlib;