summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2004-10-05 19:54:56 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2004-10-05 19:54:56 +0000
commit5ef6c2a34e1480e11e04dde7a67d36fce9f6a242 (patch)
tree9ca953d6bf5428d736288861475c779c8de5bf1e /pkgs/applications/networking
parentcc87524f17ac9524585d9d025dcf160fcf25a59e (diff)
downloadnixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.tar
nixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.tar.gz
nixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.tar.bz2
nixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.tar.lz
nixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.tar.xz
nixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.tar.zst
nixlib-5ef6c2a34e1480e11e04dde7a67d36fce9f6a242.zip
* Extensions now work properly. The extensions datasource etc. are
  now generated at build time (it turns out to be possible to do that
  non-interactively, after all).

* Fixed creation of the bookmarks file (and other stuff) when creating
  a new profile.  When a new profile is created, it's copied from a
  default profile which is part of the Firefox installation.  However,
  since the default profile directory is in the Nix store, it's
  read-only.  Firefox keeps the read-only permission when copying the
  profile, so creating files in it (such as adding the bookmarks file)
  fails.  The `writable-copies' patch is a quick hack that adds write
  permission when copying files/directories.

svn path=/nixpkgs/trunk/; revision=1542
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/browsers/firefox/builder.sh42
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/firefox/writable-copies.patch23
3 files changed, 55 insertions, 12 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/builder.sh b/pkgs/applications/networking/browsers/firefox/builder.sh
index d53ff776a156..b025a71d4253 100644
--- a/pkgs/applications/networking/browsers/firefox/builder.sh
+++ b/pkgs/applications/networking/browsers/firefox/builder.sh
@@ -13,22 +13,40 @@ ac_add_options --enable-strip
 ac_add_options --enable-default-toolkit=gtk2
 #ac_add_options --disable-shared
 #ac_add_options --enable-static
+#ac_add_options --with-system-jpeg
+#ac_add_options --with-system-png
+#ac_add_options --with-system-zlib
 EOF
 }
 
-makeFlags="-f client.mk build"
+postInstall=postInstall
+postInstall() {
 
-genericBuild
+    # Strip some more stuff
+    strip -S $out/lib/*/* || true
+
+    # We don't need this (do we?)
+    rm -rf $out/include
+
+    # 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.
+    cd $out/bin
+    mv firefox ../lib/firefox-*/
+    ln -s ../lib/firefox-*/firefox .
 
-# Strip some more stuff
-strip -S $out/lib/*/* || true
+    # Register extension etc.
+    echo "running firefox -register..."
+    (cd $out/lib/firefox-* && LD_LIBRARY_PATH=. ./firefox-bin -register) || false
 
-# We don't need this (do we?)
-rm -rf $out/include
+    echo "running regxpcom..."
+    (cd $out/lib/firefox-* && LD_LIBRARY_PATH=. ./regxpcom) || false
+    
+    echo "running regchrome..."
+    (cd $out/lib/firefox-* && LD_LIBRARY_PATH=. ./regchrome) || false
+    
+}
+
+makeFlags="-f client.mk build"
 
-# 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.
-cd $out/bin
-mv firefox ../lib/firefox-*/
-ln -s ../lib/firefox-*/firefox .
+genericBuild
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index eafbf4e425d1..f100b270f940 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -12,4 +12,6 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [pkgconfig gtk perl zip libIDL libXi];
+
+  patches = [./writable-copies.patch];
 }
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