* 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
This commit is contained in:
Eelco Dolstra 2004-10-05 19:54:56 +00:00
parent cc87524f17
commit 5ef6c2a34e
3 changed files with 56 additions and 13 deletions

View File

@ -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
}
postInstall=postInstall
postInstall() {
# 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 .
# Register extension etc.
echo "running firefox -register..."
(cd $out/lib/firefox-* && LD_LIBRARY_PATH=. ./firefox-bin -register) || false
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"
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 .

View File

@ -12,4 +12,6 @@ stdenv.mkDerivation {
};
buildInputs = [pkgconfig gtk perl zip libIDL libXi];
patches = [./writable-copies.patch];
}

View File

@ -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