[SVN-Commit] r353 - in branches/experimental/www/libxul-devel: .
files
svn-freebsd-gecko at chruetertee.ch
svn-freebsd-gecko at chruetertee.ch
Sun Jul 18 11:45:38 UTC 2010
Author: decke
Date: Sun Jul 18 11:45:31 2010
New Revision: 353
Log:
- Update to 1.9.2.6
- Added --disable-ipc like in Firefox 3.6
- Add mozilla_prefs_init patch otherwise kazehakase segfaults
- Improve patch-security_coreconf_FreeBSD.mk because we have the
default CPU_ARCH=$(OS_TEST) from upstream now. The reason why we
use amd64 instead of x86_64 is because otherwise the xpi extensions
would complain about an incompatible architecture.
- Fix libxul.pc.in patch because it seems like it was a mispatch
and caused the following pkg-config error:
Variable 'includetype' not defined in '/usr/local/libdata/pkgconfig/libxul.pc'
Added:
branches/experimental/www/libxul-devel/files/patch-modules-libpref-src-prefapi.cpp
Modified:
branches/experimental/www/libxul-devel/Makefile
branches/experimental/www/libxul-devel/distinfo
branches/experimental/www/libxul-devel/files/patch-security_coreconf_FreeBSD.mk
branches/experimental/www/libxul-devel/files/patch-xulrunner_installer_libxul.pc.in
Modified: branches/experimental/www/libxul-devel/Makefile
==============================================================================
--- branches/experimental/www/libxul-devel/Makefile Tue Jul 13 19:03:27 2010 (r352)
+++ branches/experimental/www/libxul-devel/Makefile Sun Jul 18 11:45:31 2010 (r353)
@@ -6,7 +6,7 @@
#
PORTNAME= libxul-devel
-DISTVERSION= 1.9.2
+DISTVERSION= 1.9.2.6
CATEGORIES?= www devel
MASTER_SITES= ${MASTER_SITE_MOZILLA}
MASTER_SITE_SUBDIR= xulrunner/releases/${DISTVERSION}/source
@@ -15,7 +15,7 @@
MAINTAINER?= gecko at FreeBSD.org
COMMENT?= Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps
-WRKSRC= ${WRKDIR}/mozilla-${PORTVERSION}
+WRKSRC= ${WRKDIR}/mozilla-1.9.2
LIB_DEPENDS?= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib \
notify.1:${PORTSDIR}/devel/libnotify
@@ -24,8 +24,7 @@
USE_AUTOTOOLS= autoconf:213
CONFLICTS= mozilla-[0-9]* xulrunner-[0-9]* libxul-1.9.1.[0-9]*
GECKO_PLIST_PRE_DIRS= lib/${MOZILLA}/bin lib/${MOZILLA}/idl \
- lib/${MOZILLA}/include lib/${MOZILLA}/lib \
- lib/${MOZILLA}/sdk/idl lib/${MOZILLA}/sdk/include
+ lib/${MOZILLA}/include lib/${MOZILLA}/lib
WANT_GNOME= yes
WANT_PERL= yes
@@ -41,7 +40,7 @@
MOZ_OPTIONS?= --with-default-mozilla-five-home=${PREFIX}/lib/${MOZILLA} \
--disable-javaxpcom --enable-canvas \
--enable-system-cairo --disable-updater \
- --disable-necko-wifi
+ --disable-necko-wifi --disable-ipc
MOZ_EXTENSIONS= default,cookie,permissions
OPTIONS= # Empty, used for generic gecko OPTIONS
USE_GECKO_OPTIONS= java debug logging optimized_cflags
Modified: branches/experimental/www/libxul-devel/distinfo
==============================================================================
--- branches/experimental/www/libxul-devel/distinfo Tue Jul 13 19:03:27 2010 (r352)
+++ branches/experimental/www/libxul-devel/distinfo Sun Jul 18 11:45:31 2010 (r353)
@@ -1,3 +1,3 @@
-MD5 (xulrunner-1.9.2.source.tar.bz2) = 458051557ff49e6a352c1d56eee5782a
-SHA256 (xulrunner-1.9.2.source.tar.bz2) = 8d4f12fff7bc361d83e6b486f9ec4264c60114ed86c805e1221b3d30efec0a4b
-SIZE (xulrunner-1.9.2.source.tar.bz2) = 48206915
+MD5 (xulrunner-1.9.2.6.source.tar.bz2) = c2592b2235c18fe760e9ff444265951f
+SHA256 (xulrunner-1.9.2.6.source.tar.bz2) = cd73d46d6193afd0e0e01d277903fa022319ba2ccce7a4f4df38cfdf819c955b
+SIZE (xulrunner-1.9.2.6.source.tar.bz2) = 51078660
Added: branches/experimental/www/libxul-devel/files/patch-modules-libpref-src-prefapi.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/experimental/www/libxul-devel/files/patch-modules-libpref-src-prefapi.cpp Sun Jul 18 11:45:31 2010 (r353)
@@ -0,0 +1,102 @@
+
+This bug is due to the fact, applications are restarted before extension
+defaults are loaded.
+
+To reproduce, choose any preference and set the values like:
+system default:
+ pref("prefkey",systemvalue);
+extension default:
+ pref("prefkey", extensiondefault);
+user pref:
+ user_pref("prefkey", systemvalue);
+
+Next, trigger application behaviour similar to upgrade by removing compreg.dat
+from profile and start the application.
+
+Result:
+User sees extensiondefault after upgrade, because the user_pref has been
+eliminated ... which is definitly not what the user expects because he explicitly
+had *systemvalue* set before the upgrade.
+
+Evaluation:
+The bug happens because restart is performed *before* extension defaults have been
+loaded and the prefapi.cpp always eliminate user preference if the user preference
+is equal to the actual default (which happens to be extensiondefault normally - so
+no reset, but is systemvalue during restart).
+
+Fix:
+1. savePrefs should not try to be smart ... this patch removes the heuristic that guesses
+whether a setting can be eliminated or not; it should be sufficient to only eliminate
+prefs in hashPrefs.
+
+2. This patch prevents hashPrefs from eliminating the user pref in case we are in
+*startup* ... unfortunately no such state info exists, which lets us guess that
+we are in startup for the previously not dealt case: !set_default &&
+!pref_ValueChanged(pref->defaultPref, value, type) && !PREF_HAS_USER_VALUE(pref).
+
+If is the case we explicitly remember that this setting is a user-pref ...
+even though it might be temporarily equal to the default pref.
+
+---
+ modules/libpref/src/prefapi.cpp | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+Index: modules/libpref/src/prefapi.cpp
+===================================================================
+--- modules/libpref/src/prefapi.cpp
++++ modules/libpref/src/prefapi.cpp
+@@ -324,23 +324,20 @@
+ if (!pref)
+ return PL_DHASH_NEXT;
+
+ nsCAutoString prefValue;
+
+ // where we're getting our pref from
+ PrefValue* sourcePref;
+
+- if (PREF_HAS_USER_VALUE(pref) &&
+- pref_ValueChanged(pref->defaultPref,
+- pref->userPref,
+- (PrefType) PREF_TYPE(pref)))
+- sourcePref = &pref->userPref;
+- else if (PREF_IS_LOCKED(pref))
++ if (PREF_IS_LOCKED(pref))
+ sourcePref = &pref->defaultPref;
++ else if (PREF_HAS_USER_VALUE(pref))
++ sourcePref = &pref->userPref;
+ else
+ // do not save default prefs that haven't changed
+ return PL_DHASH_NEXT;
+
+ // strings are in quotes!
+ if (pref->flags & PREF_STRING) {
+ prefValue = '\"';
+ str_escape(sourcePref->stringVal, prefValue);
+@@ -742,16 +739,27 @@
+ Otherwise, set the user value only if it has changed */
+ if ( !pref_ValueChanged(pref->defaultPref, value, type) )
+ {
+ if (PREF_HAS_USER_VALUE(pref))
+ {
+ pref->flags &= ~PREF_USERSET;
+ if (!PREF_IS_LOCKED(pref))
+ valueChanged = PR_TRUE;
++ } else {
++ // this is tricky: we have !set_default ...
++ // thus we are setting a user pref; however the user
++ // pref set is same as *current default*; this normally
++ // means to un-set ... however since we have
++ // !PREF_HAS_USER_VALUE(pref) this can only be during
++ // startup
++ pref_SetValue(&pref->userPref, value, type);
++ pref->flags |= PREF_USERSET;
++ if (!PREF_IS_LOCKED(pref))
++ valueChanged = PR_TRUE;
+ }
+ }
+ else if ( !PREF_HAS_USER_VALUE(pref) ||
+ pref_ValueChanged(pref->userPref, value, type) )
+ {
+ pref_SetValue(&pref->userPref, value, type);
+ pref->flags |= PREF_USERSET;
+ if (!PREF_IS_LOCKED(pref))
Modified: branches/experimental/www/libxul-devel/files/patch-security_coreconf_FreeBSD.mk
==============================================================================
--- branches/experimental/www/libxul-devel/files/patch-security_coreconf_FreeBSD.mk Tue Jul 13 19:03:27 2010 (r352)
+++ branches/experimental/www/libxul-devel/files/patch-security_coreconf_FreeBSD.mk Sun Jul 18 11:45:31 2010 (r353)
@@ -1,42 +1,18 @@
---- security/coreconf/FreeBSD.mk.orig 2009-11-09 01:34:19.000000000 +0100
-+++ security/coreconf/FreeBSD.mk 2009-11-11 18:15:55.000000000 +0100
-@@ -45,8 +45,24 @@
- ifeq ($(OS_TEST),alpha)
- CPU_ARCH = alpha
- else
-+ifeq ($(OS_TEST),amd64)
-+CPU_ARCH = amd64
-+else
-+ifeq ($(OS_TEST),ia64)
-+CPU_ARCH = ia64
-+else
-+ifeq ($(OS_TEST),powerpc)
-+CPU_ARCH = powerpc
-+else
-+ifeq ($(OS_TEST),sparc64)
-+CPU_ARCH = sparc64
-+else
+--- security/coreconf/FreeBSD.mk.orig 2010-06-26 07:29:06.000000000 +0200
++++ security/coreconf/FreeBSD.mk 2010-07-18 13:25:06.000000000 +0200
+@@ -49,9 +49,6 @@
+ ifeq ($(CPU_ARCH),pc98)
CPU_ARCH = x86
endif
-+endif
-+endif
-+endif
-+endif
+-ifeq ($(CPU_ARCH),amd64)
+-CPU_ARCH = x86_64
+-endif
OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
-@@ -73,7 +89,7 @@
- DLL_SUFFIX = so.1.0
- endif
-
--MKSHLIB = $(CC) $(DSO_LDOPTS)
-+MKSHLIB = $(CC) -Wl,-Bsymbolic -lc $(DSO_LDOPTS) -o $@
- ifdef MAPFILE
- MKSHLIB += -Wl,--version-script,$(MAPFILE)
- endif
-@@ -82,4 +98,4 @@
+@@ -87,4 +84,4 @@
G++INCLUDES = -I/usr/include/g++
-INCLUDES += -I/usr/X11R6/include
-+#INCLUDES += -I/usr/local/include
++#INCLUDES += -I/usr/X11R6/include
Modified: branches/experimental/www/libxul-devel/files/patch-xulrunner_installer_libxul.pc.in
==============================================================================
--- branches/experimental/www/libxul-devel/files/patch-xulrunner_installer_libxul.pc.in Tue Jul 13 19:03:27 2010 (r352)
+++ branches/experimental/www/libxul-devel/files/patch-xulrunner_installer_libxul.pc.in Sun Jul 18 11:45:31 2010 (r353)
@@ -1,11 +1,9 @@
---- xulrunner/installer/libxul.pc.in.orig 2007-08-03 10:46:28.000000000 -0400
-+++ xulrunner/installer/libxul.pc.in 2009-03-29 15:17:17.000000000 -0400
-@@ -12,5 +12,5 @@ Name: libxul
+--- xulrunner/installer/libxul.pc.in.orig 2010-01-21 04:31:27.000000000 +0100
++++ xulrunner/installer/libxul.pc.in 2010-06-21 19:39:57.000000000 +0200
+@@ -7,5 +7,5 @@
Description: The Mozilla Runtime and Embedding Engine
Version: %MOZILLA_VERSION%
Requires: %NSPR_NAME% >= %NSPR_VERSION%
-Libs: -L${sdkdir}/lib -lxpcomglue_s -lxul -lxpcom
--Cflags: -I${includedir}/${includetype} -fshort-wchar
-\ No newline at end of file
+Libs: -L${sdkdir}/lib -L%%MOZ_LIBDIR%% -lxpcomglue_s -lxul -lxpcom
-+Cflags: -I${includedir}/${includetype} -fshort-wchar
+ Cflags: -I${includedir} %WCHAR_CFLAGS%
More information about the freebsd-gecko
mailing list