From 808846b2c934abeb10b3d82c2da0f58d5b025285 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 4 Oct 2006 13:59:41 +0000 Subject: [PATCH] * Firefox 2.0 RC 1. svn path=/nixpkgs/trunk/; revision=6655 --- .../browsers/firefox-2.0/builder.sh | 30 ++++++++++++ .../browsers/firefox-2.0/default.nix | 49 +++++++++++++++++++ .../firefox-2.0/writable-copies.patch | 23 +++++++++ pkgs/top-level/all-packages.nix | 8 +++ 4 files changed, 110 insertions(+) create mode 100644 pkgs/applications/networking/browsers/firefox-2.0/builder.sh create mode 100644 pkgs/applications/networking/browsers/firefox-2.0/default.nix create mode 100644 pkgs/applications/networking/browsers/firefox-2.0/writable-copies.patch diff --git a/pkgs/applications/networking/browsers/firefox-2.0/builder.sh b/pkgs/applications/networking/browsers/firefox-2.0/builder.sh new file mode 100644 index 000000000000..66f1059d657f --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-2.0/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-2.0/default.nix b/pkgs/applications/networking/browsers/firefox-2.0/default.nix new file mode 100644 index 000000000000..dcfda578f668 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-2.0/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-pre-rc1"; + + builder = ./builder.sh; + src = fetchurl { + url = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0rc1/source/firefox-2.0rc1-source.tar.bz2; + sha1 = "0f6bcab71becb4fb92900fc900b20301434f4e00"; + }; + + 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-2.0/writable-copies.patch b/pkgs/applications/networking/browsers/firefox-2.0/writable-copies.patch new file mode 100644 index 000000000000..e3c7752c0310 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-2.0/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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d738a52306a..6fc7a0d06f68 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2318,6 +2318,14 @@ rec { #enableOfficialBranding = true; }; + firefox20 = (import ../applications/networking/browsers/firefox-2.0) { + inherit fetchurl stdenv pkgconfig perl zip libjpeg libpng zlib cairo; + inherit (gtkLibs) gtk; + inherit (gnome) libIDL; + inherit (xlibs) libXi; + #enableOfficialBranding = true; + }; + firefoxWrapper = wrapFirefox firefox; flac = (import ../applications/audio/flac) {