about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/firefox
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2006-10-24 08:07:15 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2006-10-24 08:07:15 +0000
commitd4578254b0c9c35deb00084d3a9099359c66df37 (patch)
treefb79b3ae9de4384130d196d9313f368fa86b6596 /pkgs/applications/networking/browsers/firefox
parentf7b32f6bde0b87c0f9904eb7459a5062a8398a46 (diff)
downloadnixlib-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')
-rw-r--r--pkgs/applications/networking/browsers/firefox/builder.sh30
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix49
-rw-r--r--pkgs/applications/networking/browsers/firefox/writable-copies.patch23
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