diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-10-24 08:07:15 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2006-10-24 08:07:15 +0000 |
commit | d4578254b0c9c35deb00084d3a9099359c66df37 (patch) | |
tree | fb79b3ae9de4384130d196d9313f368fa86b6596 /pkgs/applications/networking/browsers/firefox | |
parent | f7b32f6bde0b87c0f9904eb7459a5062a8398a46 (diff) | |
download | nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.tar nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.tar.gz nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.tar.bz2 nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.tar.lz nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.tar.xz nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.tar.zst nixlib-d4578254b0c9c35deb00084d3a9099359c66df37.zip |
* Move.
svn path=/nixpkgs/trunk/; revision=6817
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox')
3 files changed, 102 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/builder.sh b/pkgs/applications/networking/browsers/firefox/builder.sh new file mode 100644 index 000000000000..66f1059d657f --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/builder.sh @@ -0,0 +1,30 @@ +source $stdenv/setup + +postInstall=postInstall +postInstall() { + + # Strip some more stuff + strip -S $out/lib/*/* || true + + # This fixes starting Firefox when there already is a running + # instance. The `firefox' wrapper script actually expects to be + # in the same directory as `run-mozilla.sh', apparently. + libDir=$(cd $out/lib && ls -d firefox-*) + test -n "$libDir" + cd $out/bin + mv firefox ../lib/$libDir/ + ln -s ../lib/$libDir/firefox . + + # Register extensions etc. + echo "running firefox -register..." + (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./firefox-bin -register) || false + + echo "running regxpcom..." + (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./regxpcom) || false + + # Put the Firefox icon in the right place. + ensureDir $out/lib/$libDir/chrome/icons/default + ln -s ../../../icons/default.xpm $out/lib/$libDir/chrome/icons/default/ +} + +genericBuild diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix new file mode 100644 index 000000000000..0f348d8a2f40 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, pkgconfig, gtk, perl, zip, libIDL, libXi +, libjpeg, libpng, zlib, cairo + +, # If you want the resulting program to call itself "Firefox" instead + # of "Deer Park", enable this option. However, those binaries may + # not be distributed without permission from the Mozilla Foundation, + # see http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false + +}: + +stdenv.mkDerivation { + name = "firefox-2.0"; + + builder = ./builder.sh; + src = fetchurl { + url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0/source/firefox-2.0-source.tar.bz2; + sha1 = "2bbc6b80cf184bf27101ec4315a19023547c85d4"; + }; + + buildInputs = [ + pkgconfig gtk perl zip libIDL libXi libjpeg libpng zlib cairo + ]; + + patches = [./writable-copies.patch]; + + configureFlags = [ + "--enable-application=browser" + "--enable-optimize" + "--disable-debug" + "--enable-xft" + "--disable-freetype2" + "--enable-svg" + "--enable-canvas" + "--enable-strip" + "--enable-default-toolkit=gtk2" + "--with-system-jpeg" + "--with-system-png" + "--with-system-zlib" + "--enable-system-cairo" + ] + ++ (if enableOfficialBranding then ["--enable-official-branding"] else []); + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + }; + + passthru = {inherit gtk;}; +} diff --git a/pkgs/applications/networking/browsers/firefox/writable-copies.patch b/pkgs/applications/networking/browsers/firefox/writable-copies.patch new file mode 100644 index 000000000000..e3c7752c0310 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/writable-copies.patch @@ -0,0 +1,23 @@ +diff -rc mozilla-orig/xpcom/io/nsLocalFileUnix.cpp mozilla/xpcom/io/nsLocalFileUnix.cpp +*** mozilla-orig/xpcom/io/nsLocalFileUnix.cpp 2004-04-03 01:48:18.000000000 +0200 +--- mozilla/xpcom/io/nsLocalFileUnix.cpp 2004-10-05 19:48:04.000000000 +0200 +*************** +*** 634,639 **** +--- 634,640 ---- + // get the dirs old permissions + if (NS_FAILED(rv = GetPermissions(&oldPerms))) + return rv; ++ oldPerms |= 0200; + if (NS_FAILED(rv = newParent->Create(DIRECTORY_TYPE, oldPerms))) + return rv; + } else { // dir exists lets try to use leaf +*************** +*** 758,763 **** +--- 759,765 ---- + // get the old permissions + PRUint32 myPerms; + GetPermissions(&myPerms); ++ myPerms |= 0200; + + // Create the new file with the old file's permissions, even if write + // permission is missing. We can't create with write permission and |