diff options
author | Florian Smeets <flo@FreeBSD.org> | 2013-08-08 18:42:03 +0000 |
---|---|---|
committer | Florian Smeets <flo@FreeBSD.org> | 2013-08-08 18:42:03 +0000 |
commit | 48f9528b90d58ac57bc0dcf8b05e939026b26799 (patch) | |
tree | e865dbceb17400d2f950e44a8979cf576a6eee98 /www/firefox | |
parent | 1004b19b87434832a42045b63a6c0d71d11048c4 (diff) |
Notes
Diffstat (limited to 'www/firefox')
-rw-r--r-- | www/firefox/Makefile | 38 | ||||
-rw-r--r-- | www/firefox/Makefile.options | 2 | ||||
-rw-r--r-- | www/firefox/distinfo | 4 | ||||
-rw-r--r-- | www/firefox/files/patch-bug803480 | 94 | ||||
-rw-r--r-- | www/firefox/files/patch-bug807492 | 22 | ||||
-rw-r--r-- | www/firefox/files/patch-bug826985 | 8 | ||||
-rw-r--r-- | www/firefox/files/patch-bug851992 | 373 | ||||
-rw-r--r-- | www/firefox/files/patch-bug862759 | 10 | ||||
-rw-r--r-- | www/firefox/files/patch-bug878791 (renamed from www/firefox/files/patch-toolkit-components-osfile-osfile_unix_allthreads.jsm) | 0 | ||||
-rw-r--r-- | www/firefox/files/patch-bug893397 | 205 |
10 files changed, 682 insertions, 74 deletions
diff --git a/www/firefox/Makefile b/www/firefox/Makefile index 79ba698589fa..b41d77d97bca 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 22.0 +DISTVERSION= 23.0 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source @@ -11,9 +11,9 @@ DISTNAME= ${PORTNAME}-${DISTVERSION}.source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.9.6:${PORTSDIR}/devel/nspr \ - nss>=3.14.3:${PORTSDIR}/security/nss \ - sqlite3>=3.7.14.1:${PORTSDIR}/databases/sqlite3 \ +BUILD_DEPENDS= nspr>=4.10:${PORTSDIR}/devel/nspr \ + nss>=3.15:${PORTSDIR}/security/nss \ + sqlite3>=3.7.16.1:${PORTSDIR}/databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \ cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \ unzip:${PORTSDIR}/archivers/unzip @@ -45,7 +45,7 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \ --enable-application=browser \ --enable-official-branding -OPTIONS_DEFINE= PGO WEBRTC +OPTIONS_DEFINE= WEBRTC OPTIONS_DEFAULT=WEBRTC .include "${.CURDIR}/../../www/firefox/Makefile.options" @@ -57,33 +57,6 @@ OPTIONS_SINGLE_AUDIO:=${OPTIONS_SINGLE_AUDIO:S/OSS//} WRKSRC:= ${WRKDIR}/mozilla-release -.if ${PORT_OPTIONS:MPGO} -USE_GCC?= yes -USE_DISPLAY= yes -.include "${PORTSDIR}/Mk/bsd.python.mk" - -.undef GNU_CONFIGURE -MOZ_OPTIONS+= ${CONFIGURE_TARGET} -MAKEFILE= ${WRKSRC}/client.mk -ALL_TARGET= profiledbuild -MOZ_MK_OPTIONS+=PROFILE_GEN_SCRIPT="${PYTHON_CMD} \ - @MOZ_OBJDIR@/_profile/pgo/profileserver.py" -.endif - -pre-extract: -.if ${PORT_OPTIONS:MPGO} - @${ECHO} "*****************************************************************" - @${ECHO} "**************************** attention **************************" - @${ECHO} "*****************************************************************" - @${ECHO} "To build Firefox with PGO support you need a running X server and" - @${ECHO} " build this port with an user who could access the X server! " - @${ECHO} "" - @${ECHO} "During the build a Firefox instance will start and run some test." - @${ECHO} " Do not interrupt or close Firefox during this tests! " - @${ECHO} "*****************************************************************" - @sleep 10 -.endif - post-extract: @${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \ -e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \ @@ -91,7 +64,6 @@ post-extract: post-patch: @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \ - -e '/^SQLITE_VERSION/s/=.*/=3.7.14.1/' \ ${WRKSRC}/configure.in @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/browser/app/nsBrowserApp.cpp diff --git a/www/firefox/Makefile.options b/www/firefox/Makefile.options index 2636d411aae4..23feea6ee0c6 100644 --- a/www/firefox/Makefile.options +++ b/www/firefox/Makefile.options @@ -1,7 +1,7 @@ # -*- makefile-bsdmake -*- OPTIONS_DEFINE+= DBUS DEBUG GCONF GIO GNOMEUI GNOMEVFS2 GSTREAMER \ - LIBPROXY LOGGING OPTIMIZED_CFLAGS + LIBPROXY LOGGING OPTIMIZED_CFLAGS PGO OPTIONS_DEFAULT+= ALSA DBUS GIO LOGGING OPTIONS_SINGLE+= AUDIO diff --git a/www/firefox/distinfo b/www/firefox/distinfo index ac6d99fc0121..b34a489f9980 100644 --- a/www/firefox/distinfo +++ b/www/firefox/distinfo @@ -1,2 +1,2 @@ -SHA256 (firefox-22.0.source.tar.bz2) = 040d4e7fb5076b6aa25f0d3851f8d98c2a2e72ef1599f4387f09f47f6096515e -SIZE (firefox-22.0.source.tar.bz2) = 111109062 +SHA256 (firefox-23.0.source.tar.bz2) = 2d64bd12cfa80c57e4a7f4156c7b4fde725a6173dfe48e2fac12e1927faf563e +SIZE (firefox-23.0.source.tar.bz2) = 115821591 diff --git a/www/firefox/files/patch-bug803480 b/www/firefox/files/patch-bug803480 index c15992fa36f8..1d99d93d7215 100644 --- a/www/firefox/files/patch-bug803480 +++ b/www/firefox/files/patch-bug803480 @@ -1,8 +1,55 @@ diff --git configure.in configure.in -index fa283d0..936b6e0 100644 +index a0575dc..be327fd 100644 --- configure.in +++ configure.in -@@ -8229,16 +8229,26 @@ MOZ_ARG_DISABLE_BOOL(necko-wifi, +@@ -4306,7 +4306,6 @@ NS_PRINTING=1 + MOZ_PDF_PRINTING= + MOZ_DISABLE_CRYPTOLEGACY= + NSS_DISABLE_DBM= +-NECKO_WIFI=1 + NECKO_COOKIES=1 + NECKO_PROTOCOLS_DEFAULT="about data file ftp http res viewsource websocket wyciwyg device" + USE_ARM_KUSER= +@@ -4336,11 +4335,6 @@ case "${target}" in + fi + + NSS_DISABLE_DBM=1 +- if test -z "$gonkdir"; then +- NECKO_WIFI= +- else +- NECKO_WIFI=1 +- fi + MOZ_THEME_FASTSTRIPE=1 + MOZ_TREE_FREETYPE=1 + MOZ_MEMORY=1 +@@ -8485,28 +8479,39 @@ done + dnl + dnl option to disable necko's wifi scanner + dnl ++ ++case "$OS_TARGET" in ++ OS2) ++ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 ++ ;; ++ Android) ++ if test -n "$gonkdir"; then ++ NECKO_WIFI=1 ++ fi ++ ;; ++ Darwin|SunOS|WINNT) ++ NECKO_WIFI=1 ++ ;; ++ Linux) ++ if test -z "$MOZ_ENABLE_DBUS"; then ++ AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi]) ++ fi ++ NECKO_WIFI=1 ++ NECKO_WIFI_DBUS=1 ++ ;; ++esac ++ + MOZ_ARG_DISABLE_BOOL(necko-wifi, + [ --disable-necko-wifi Disable necko wifi scanner], NECKO_WIFI=, NECKO_WIFI=1) @@ -16,26 +63,27 @@ index fa283d0..936b6e0 100644 - "$OS_ARCH" != "SunOS" -a \ - "$OS_ARCH" != "WINNT"; then - AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi]) -+if test "$NECKO_WIFI"; then -+ case "$OS_TARGET" in -+ Android) -+ ;; -+ Darwin) -+ ;; -+ SunOS) -+ ;; -+ WINNT) -+ ;; -+ OS2) -+ dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566 -+ NECKO_WIFI= -+ ;; -+ *) -+ if test -z "$MOZ_ENABLE_DBUS"; then -+ AC_MSG_ERROR([Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi]) -+ fi -+ ;; -+ esac +-fi +- + if test "$NECKO_WIFI"; then + AC_DEFINE(NECKO_WIFI) + _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_WIFI" fi + AC_SUBST(NECKO_WIFI) ++AC_SUBST(NECKO_WIFI_DBUS) - if test "$NECKO_WIFI"; then + dnl + dnl option to disable cookies +diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in +index 39d7364..e8d276b 100644 +--- netwerk/wifi/Makefile.in ++++ netwerk/wifi/Makefile.in +@@ -41,7 +41,7 @@ CPPSRCS += nsWifiScannerSolaris.cpp + OS_INCLUDES += $(GLIB_CFLAGS) + endif + +-ifdef MOZ_ENABLE_DBUS ++ifdef NECKO_WIFI_DBUS + CPPSRCS += nsWifiScannerDBus.cpp + OS_INCLUDES += $(MOZ_DBUS_GLIB_CFLAGS) + endif diff --git a/www/firefox/files/patch-bug807492 b/www/firefox/files/patch-bug807492 index f9e5de6739ac..4b4e90f52ba1 100644 --- a/www/firefox/files/patch-bug807492 +++ b/www/firefox/files/patch-bug807492 @@ -17,17 +17,17 @@ diff --git configure.in configure.in index c167461..8346c11 100644 --- configure.in +++ configure.in -@@ -5258,17 +5258,17 @@ if test -n "$MOZ_WEBRTC"; then - *-android*|*-linuxandroid*) - if test -n "$MOZ_B2G"; then - MOZ_WEBRTC=1 - else - dnl Make sure doesn't get matched by *-linux* - MOZ_WEBRTC= - fi - ;; -- *-linux*|*-mingw*|*-darwin*) -+ *-linux*|*-mingw*|*-darwin*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*) +@@ -5246,17 +5246,17 @@ if test "$NS_PRINTING"; then + AC_DEFINE(NS_PRINT_PREVIEW) + fi + + dnl Turn off webrtc for OS's we don't handle yet, but allow + dnl --enable-webrtc to override. Can disable for everything in + dnl the master list above. + if test -n "$MOZ_WEBRTC"; then + case "$target" in +- *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*) ++ *-linux*|*-mingw*|*-darwin*|*-android*|*-linuxandroid*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*) dnl Leave enabled ;; *) diff --git a/www/firefox/files/patch-bug826985 b/www/firefox/files/patch-bug826985 index 217655c0b81a..fe55ff667281 100644 --- a/www/firefox/files/patch-bug826985 +++ b/www/firefox/files/patch-bug826985 @@ -16,16 +16,16 @@ diff --git configure.in configure.in index 55e4cd1..76567b3 100644 --- configure.in +++ configure.in -@@ -5294,6 +5294,9 @@ if test -n "$MOZ_WEBRTC"; then +@@ -5309,6 +5309,9 @@ if test -n "$MOZ_WEBRTC"; then MOZ_VP8_ENCODER=1 MOZ_VP8_ERROR_CONCEALMENT=1 + dnl with libv4l2 we can support more cameras + PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2) + - if test "$MOZ_WIDGET_TOOLKIT" != "gonk"; then - dnl OpenSLES is only available in Android 2.3 and later; we'll change this - dnl hard dependency to a dynamic load with graceful runtime failure before + dnl enable once Signaling lands + MOZ_WEBRTC_SIGNALING=1 + AC_DEFINE(MOZ_WEBRTC_SIGNALING) @@ -8981,6 +8984,10 @@ elif test "${OS_TARGET}" = "Android"; then fi fi diff --git a/www/firefox/files/patch-bug851992 b/www/firefox/files/patch-bug851992 new file mode 100644 index 000000000000..3185452e2b44 --- /dev/null +++ b/www/firefox/files/patch-bug851992 @@ -0,0 +1,373 @@ +diff --git a/config/Makefile.in b/config/Makefile.in +--- config/Makefile.in ++++ config/Makefile.in +@@ -97,16 +97,17 @@ export:: $(export-preqs) + -DMOZ_TREE_PIXMAN=$(MOZ_TREE_PIXMAN) \ + -DMOZ_NATIVE_HUNSPELL=$(MOZ_NATIVE_HUNSPELL) \ + -DMOZ_NATIVE_BZ2=$(MOZ_NATIVE_BZ2) \ + -DMOZ_NATIVE_ZLIB=$(MOZ_NATIVE_ZLIB) \ + -DMOZ_NATIVE_PNG=$(MOZ_NATIVE_PNG) \ + -DMOZ_NATIVE_JPEG=$(MOZ_NATIVE_JPEG) \ + -DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \ + -DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \ ++ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ + $(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers + $(INSTALL) system_wrappers $(DIST) + + GARBAGE_DIRS += system_wrappers + endif + + ifdef WRAP_STL_INCLUDES + ifdef GNU_CXX +diff --git a/config/system-headers b/config/system-headers +--- config/system-headers ++++ config/system-headers +@@ -1125,8 +1125,19 @@ gst/video/video.h + sys/msg.h + sys/ipc.h + sys/thr.h + sys/user.h + kvm.h + spawn.h + err.h + xlocale.h ++#if MOZ_NATIVE_ICU==1 ++unicode/locid.h ++unicode/numsys.h ++unicode/ucal.h ++unicode/ucol.h ++unicode/udat.h ++unicode/udatpg.h ++unicode/uenum.h ++unicode/unum.h ++unicode/ustring.h ++#endif +diff --git a/configure.in b/configure.in +--- configure.in ++++ configure.in +@@ -4134,16 +4134,32 @@ if test -n "$MOZ_NATIVE_FFI"; then + PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9) + else + PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9) + fi + MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS" + fi + + dnl ======================================================== ++dnl system icu support ++dnl ======================================================== ++MOZ_NATIVE_ICU= ++MOZ_ARG_WITH_BOOL(system-icu, ++[ --with-system-icu ++ Use system icu (located with pkgconfig)], ++ MOZ_NATIVE_ICU=1) ++ ++if test -n "$MOZ_NATIVE_ICU"; then ++ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1) ++ MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS" ++fi ++ ++AC_SUBST(MOZ_NATIVE_ICU) ++ ++dnl ======================================================== + dnl Java SDK support + dnl ======================================================== + + JAVA_BIN_PATH= + MOZ_ARG_WITH_STRING(java-bin-path, + [ --with-java-bin-path=dir + Location of Java binaries (java, javac, jar)], + JAVA_BIN_PATH=$withval) +diff --git a/js/src/Makefile.in b/js/src/Makefile.in +--- js/src/Makefile.in ++++ js/src/Makefile.in +@@ -232,48 +232,54 @@ endif + + ############################################# + # BEGIN ECMAScript Internationalization API + # + + # ICU headers need to be available whether we build with the complete + # Internationalization API or not - ICU stubs rely on them. + ++ifdef MOZ_NATIVE_ICU ++LOCAL_INCLUDES += $(MOZ_ICU_CFLAGS) ++else + LOCAL_INCLUDES += \ + -I$(topsrcdir)/../../intl/icu/source/common \ + -I$(topsrcdir)/../../intl/icu/source/i18n \ + $(NULL) ++endif + + ifdef ENABLE_INTL_API + + ifeq ($(OS_ARCH),WINNT) + # Parallel gmake is buggy on Windows + ICU_GMAKE_OPTIONS="-j1" + # Library names: On Windows, ICU uses modified library names for static + # and debug libraries. + ifdef MOZ_DEBUG + ICU_LIB_SUFFIX=d + endif + ICU_LIB_RENAME = $(foreach libname,$(ICU_LIB_NAMES),\ + cp -p intl/icu/lib/s$(libname)$(ICU_LIB_SUFFIX).lib intl/icu/lib/$(libname).lib;) + endif + ++ifndef MOZ_NATIVE_ICU + # - Build ICU as part of the "export" target, so things get built + # in the right order. + # - ICU requires GNU make according to its readme.html. pymake can't be used + # because it doesn't support order only dependencies. + # - Force ICU to use the standard suffix for object files because expandlibs + # will discard all files with a non-standard suffix (bug 857450). + # - Options for genrb: -k strict parsing; -R omit collation tailoring rules. + export:: + $(GMAKE) $(ICU_GMAKE_OPTIONS) -C intl/icu STATIC_O=$(OBJ_SUFFIX) GENRBOPTS='-k -R' + $(ICU_LIB_RENAME) + + distclean clean:: + $(call SUBMAKE,$@,intl/icu) ++endif + + endif + + # + # END ECMAScript Internationalization API + ############################################# + + +@@ -398,17 +404,21 @@ CFLAGS += $(MOZ_ZLIB_CFLAGS) + EXTRA_LIBS += $(MOZ_ZLIB_LIBS) + # Enable zlib usage if zlib has been located. When building the browser on + # Windows, MOZ_ZLIB_LIBS is empty because zlib is part of libmozglue. We thus + # also enable zlib if mozglue is present. + ifneq (,$(MOZ_ZLIB_LIBS)$(MOZ_GLUE_LDFLAGS)) + DEFINES += -DUSE_ZLIB + endif + +-SHARED_LIBRARY_LIBS += $(ICU_LIBS) ++ifdef MOZ_NATIVE_ICU ++EXTRA_DSO_LDOPTS += $(MOZ_ICU_LIBS) ++else ++SHARED_LIBRARY_LIBS += $(MOZ_ICU_LIBS) ++endif + + # Prevent floating point errors caused by VC++ optimizations + ifdef _MSC_VER + # XXX We should add this to CXXFLAGS, too? + CFLAGS += -fp:precise + + ifeq ($(CPU_ARCH),x86) + # Workaround compiler bug on PGO (Bug 721284) +diff --git a/js/src/config/Makefile.in b/js/src/config/Makefile.in +--- js/src/config/Makefile.in ++++ js/src/config/Makefile.in +@@ -54,16 +54,17 @@ include $(topsrcdir)/config/rules.mk + + HOST_CFLAGS += -DUNICODE -D_UNICODE + + ifdef WRAP_SYSTEM_INCLUDES + export:: \ + $(call mkdir_deps,system_wrappers_js) \ + $(NULL) + $(PYTHON) $(srcdir)/Preprocessor.py $(DEFINES) $(ACDEFINES) \ ++ -DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \ + $(srcdir)/system-headers | $(PERL) $(srcdir)/make-system-wrappers.pl system_wrappers_js + $(INSTALL) system_wrappers_js $(DIST) + + GARBAGE_DIRS += system_wrappers_js + endif + + GARBAGE += $(srcdir)/*.pyc *.pyc + +diff --git a/js/src/config/system-headers b/js/src/config/system-headers +--- js/src/config/system-headers ++++ js/src/config/system-headers +@@ -1125,8 +1125,19 @@ gst/video/video.h + sys/msg.h + sys/ipc.h + sys/thr.h + sys/user.h + kvm.h + spawn.h + err.h + xlocale.h ++#if MOZ_NATIVE_ICU==1 ++unicode/locid.h ++unicode/numsys.h ++unicode/ucal.h ++unicode/ucol.h ++unicode/udat.h ++unicode/udatpg.h ++unicode/uenum.h ++unicode/unum.h ++unicode/ustring.h ++#endif +diff --git a/js/src/configure.in b/js/src/configure.in +--- js/src/configure.in ++++ js/src/configure.in +@@ -4406,59 +4406,68 @@ if test "$ACCESSIBILITY" -a "$MOZ_ENABLE + AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION) + AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION) + fi + + + dnl ======================================================== + dnl ECMAScript Internationalization API Support (uses ICU) + dnl ======================================================== ++ICU_LIB_NAMES= ++MOZ_NATIVE_ICU= ++MOZ_ARG_WITH_BOOL(system-icu, ++[ --with-system-icu ++ Use system icu (located with pkgconfig)], ++ MOZ_NATIVE_ICU=1) ++ ++if test -n "$MOZ_NATIVE_ICU"; then ++ PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1) ++fi + + if test -n "$JS_STANDALONE"; then + ENABLE_INTL_API=1 + fi + MOZ_ARG_ENABLE_BOOL(intl-api, + [ --enable-intl-api Enable ECMAScript Internationalization API (default=yes for standalone JS)], + ENABLE_INTL_API=1, + ENABLE_INTL_API= ) + + dnl Settings for the implementation of the ECMAScript Internationalization API + if test -n "$ENABLE_INTL_API"; then + AC_DEFINE(ENABLE_INTL_API) +- # We build ICU as a static library. +- AC_DEFINE(U_STATIC_IMPLEMENTATION) +- +- case "$OS_TARGET" in +- WINNT) +- ICU_LIB_NAMES="icuin icuuc icudt" +- ;; +- Darwin|Linux) +- ICU_LIB_NAMES="icui18n icuuc icudata" +- ;; +- *) +- AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform]) +- esac +- +- ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)' +-else +- ICU_LIB_NAMES= +- ICU_LIBS= ++ ++ if test -z "$MOZ_NATIVE_ICU"; then ++ case "$OS_TARGET" in ++ WINNT) ++ ICU_LIB_NAMES="icuin icuuc icudt" ++ ;; ++ Darwin|Linux) ++ ICU_LIB_NAMES="icui18n icuuc icudata" ++ ;; ++ *) ++ AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform]) ++ esac ++ MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/lib)' ++ fi + fi + + AC_SUBST(ENABLE_INTL_API) + AC_SUBST(ICU_LIB_NAMES) +-AC_SUBST(ICU_LIBS) +- +-dnl Source files that use ICU should have control over which parts of the ICU +-dnl namespace they want to use. +-AC_DEFINE(U_USING_ICU_NAMESPACE,0) +- ++AC_SUBST(MOZ_ICU_LIBS) ++AC_SUBST(MOZ_NATIVE_ICU) + + dnl Settings for ICU +-if test -n "$ENABLE_INTL_API" ; then ++if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then ++ dnl We build ICU as a static library. ++ AC_DEFINE(U_STATIC_IMPLEMENTATION) ++ ++ dnl Source files that use ICU should have control over which parts of the ICU ++ dnl namespace they want to use. ++ AC_DEFINE(U_USING_ICU_NAMESPACE,0) ++ + # Set ICU compile options + ICU_CPPFLAGS="" + # don't use icu namespace automatically in client code + ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0" + # don't include obsolete header files + ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" + # remove chunks of the library that we don't need (yet) + ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION" +diff --git a/js/src/gdb/Makefile.in b/js/src/gdb/Makefile.in +--- js/src/gdb/Makefile.in ++++ js/src/gdb/Makefile.in +@@ -14,16 +14,20 @@ include $(DEPTH)/config/autoconf.mk + # Building against js_static requires that we declare mfbt sybols "exported" + # on its behalf. + DEFINES += -DEXPORT_JS_API -DIMPL_MFBT + + LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS) + + LOCAL_INCLUDES += -I$(topsrcdir) -I.. + ++ifdef MOZ_NATIVE_ICU ++EXTRA_LIBS += $(MOZ_ICU_LIBS) ++endif ++ + EXTRA_LIBS += $(MOZ_FFI_LIBS) + + # Place a GDB Python auto-load file next to the gdb-tests executable, both + # in the build directory and in the dist/bin directory. + PP_TARGETS += GDB_AUTOLOAD + GDB_AUTOLOAD := gdb-tests-gdb.py.in + GDB_AUTOLOAD_FLAGS := -Dtopsrcdir=$(abspath $(topsrcdir)) + +diff --git a/js/src/jsapi-tests/Makefile.in b/js/src/jsapi-tests/Makefile.in +--- js/src/jsapi-tests/Makefile.in ++++ js/src/jsapi-tests/Makefile.in +@@ -15,16 +15,20 @@ DEFINES += -DEXPORT_JS_API + # Building against js_static requires that we declare mfbt sybols "exported" + # on its behalf. + DEFINES += -DIMPL_MFBT + + LIBS = $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(NSPR_LIBS) $(MOZ_ZLIB_LIBS) + + LOCAL_INCLUDES += -I$(topsrcdir) -I.. + ++ifdef MOZ_NATIVE_ICU ++EXTRA_LIBS += $(MOZ_ICU_LIBS) ++endif ++ + EXTRA_LIBS += $(MOZ_FFI_LIBS) + + ifdef QEMU_EXE + MOZ_POST_PROGRAM_COMMAND = $(topsrcdir)/build/qemu-wrap --qemu $(QEMU_EXE) --libdir $(CROSS_LIB) + endif + + # Place a GDB Python auto-load file next to the jsapi-tests executable in + # the build directory. +diff --git a/js/src/shell/Makefile.in b/js/src/shell/Makefile.in +--- js/src/shell/Makefile.in ++++ js/src/shell/Makefile.in +@@ -22,16 +22,19 @@ DEFINES += -DEXPORT_JS_API + # Building against js_static requires that we declare mfbt sybols "exported" + # on its behalf. + DEFINES += -DIMPL_MFBT + + LIBS = $(NSPR_LIBS) $(EDITLINE_LIBS) $(DEPTH)/$(LIB_PREFIX)js_static.$(LIB_SUFFIX) $(MOZ_ZLIB_LIBS) + ifdef MOZ_NATIVE_FFI + EXTRA_LIBS += $(MOZ_FFI_LIBS) + endif ++ifdef MOZ_NATIVE_ICU ++EXTRA_LIBS += $(MOZ_ICU_LIBS) ++endif + + LOCAL_INCLUDES += -I$(topsrcdir) -I.. + + ifeq ($(OS_ARCH),Darwin) + ifeq ($(TARGET_CPU),x86_64) + DARWIN_EXE_LDFLAGS += -pagezero_size 10000 -image_base 100000000 + endif + endif diff --git a/www/firefox/files/patch-bug862759 b/www/firefox/files/patch-bug862759 new file mode 100644 index 000000000000..c6ff6607f75c --- /dev/null +++ b/www/firefox/files/patch-bug862759 @@ -0,0 +1,10 @@ +--- js/src/frontend/ParseMaps.cpp~ ++++ js/src/frontend/ParseMaps.cpp +@@ -134,5 +134,5 @@ frontend::InitAtomMap(JSContext *cx, frontend::AtomIndexMap *indices, HeapPtrAto + } + } + +-template class AtomDecls<FullParseHandler>; +-template class AtomDecls<SyntaxParseHandler>; ++template class frontend::AtomDecls<FullParseHandler>; ++template class frontend::AtomDecls<SyntaxParseHandler>; diff --git a/www/firefox/files/patch-toolkit-components-osfile-osfile_unix_allthreads.jsm b/www/firefox/files/patch-bug878791 index d8a3612e1702..d8a3612e1702 100644 --- a/www/firefox/files/patch-toolkit-components-osfile-osfile_unix_allthreads.jsm +++ b/www/firefox/files/patch-bug878791 diff --git a/www/firefox/files/patch-bug893397 b/www/firefox/files/patch-bug893397 new file mode 100644 index 000000000000..b9bd05aaa7f3 --- /dev/null +++ b/www/firefox/files/patch-bug893397 @@ -0,0 +1,205 @@ +diff --git configure.in configure.in +index 549ad06..2878d9f 100644 +--- configure.in ++++ configure.in +@@ -8491,7 +8491,7 @@ case "$OS_TARGET" in + NECKO_WIFI=1 + fi + ;; +- Darwin|SunOS|WINNT) ++ Darwin|FreeBSD|SunOS|WINNT) + NECKO_WIFI=1 + ;; + Linux) +diff --git netwerk/wifi/Makefile.in netwerk/wifi/Makefile.in +index 07b01de..11706af 100644 +--- netwerk/wifi/Makefile.in ++++ netwerk/wifi/Makefile.in +@@ -32,6 +32,10 @@ CPPSRCS += nsWifiScannerMac.cpp + CMMSRCS = osx_corewlan.mm + endif + ++ifeq ($(OS_ARCH),FreeBSD) ++CPPSRCS += nsWifiScannerFreeBSD.cpp ++endif ++ + ifneq (,$(filter WINNT,$(OS_ARCH))) + CPPSRCS += nsWifiScannerWin.cpp + endif +diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp +new file mode 100644 +index 0000000..80d4cb6 +--- /dev/null ++++ netwerk/wifi/nsWifiScannerFreeBSD.cpp +@@ -0,0 +1,171 @@ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++// Developed by J.R. Oldroyd <fbsd@opal.com>, December 2012. ++ ++// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces ++// and then check for those with an 802.11 media type and able to return ++// a list of stations. This is similar to ifconfig(8). ++ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <sys/socket.h> ++#include <net/if.h> ++#include <net/if_media.h> ++#include <net80211/ieee80211_ioctl.h> ++ ++#include <ifaddrs.h> ++#include <string.h> ++#include <unistd.h> ++ ++#include "nsWifiAccessPoint.h" ++ ++using namespace mozilla; ++ ++static nsresult ++FreeBSDGetAccessPointData(nsCOMArray<nsWifiAccessPoint> &accessPoints) ++{ ++ bool res = false; ++ char *dupn = NULL; ++ struct ifaddrs *ifal, *ifa; ++ unsigned len; ++ ++ // get list of interfaces ++ if (getifaddrs(&ifal) < 0) ++ return NS_ERROR_FAILURE; ++ ++ accessPoints.Clear(); ++ ++ // loop through the interfaces ++ for (ifa = ifal; ifa; ifa = ifa->ifa_next) { ++ int s; ++ struct ifreq ifr; ++ struct ifmediareq ifmr; ++ struct ieee80211req i802r; ++ char iscanbuf[32*1024], *vsr; ++ ++ memset(&ifr, 0, sizeof(ifr)); ++ ++ // list can contain duplicates, so ignore those ++ if (dupn != NULL && strcmp(dupn, ifa->ifa_name) == 0) ++ continue; ++ dupn = ifa->ifa_name; ++ ++ // store interface name in socket structure ++ strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name)); ++ ifr.ifr_addr.sa_family = AF_LOCAL; ++ ++ // open socket to interface ++ if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0) ++ continue; ++ ++ // clear interface media structure ++ (void) memset(&ifmr, 0, sizeof(ifmr)); ++ (void) strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name)); ++ ++ // get interface media information ++ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { ++ close(s); ++ continue; ++ } ++ ++ // check interface is a WiFi interface ++ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) { ++ close(s); ++ continue; ++ } ++ ++ // perform WiFi scan ++ (void) memset(&i802r, 0, sizeof(i802r)); ++ (void) strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name)); ++ i802r.i_type = IEEE80211_IOC_SCAN_RESULTS; ++ i802r.i_data = iscanbuf; ++ i802r.i_len = sizeof(iscanbuf); ++ if (ioctl(s, SIOCG80211, &i802r) < 0) { ++ close(s); ++ continue; ++ } ++ ++ // close socket ++ close(s); ++ ++ // loop through WiFi networks and build geoloc-lookup structure ++ vsr = (char *) i802r.i_data; ++ len = i802r.i_len; ++ while (len >= sizeof(struct ieee80211req_scan_result)) { ++ struct ieee80211req_scan_result *isr; ++ char *id; ++ int idlen; ++ char ssid[IEEE80211_NWID_LEN+1]; ++ nsWifiAccessPoint *ap; ++ ++ isr = (struct ieee80211req_scan_result *) vsr; ++ ++ // determine size of this entry ++ if (isr->isr_meshid_len) { ++ id = vsr + isr->isr_ie_off + isr->isr_ssid_len; ++ idlen = isr->isr_meshid_len; ++ } ++ else { ++ id = vsr + isr->isr_ie_off; ++ idlen = isr->isr_ssid_len; ++ } ++ ++ // copy network data ++ strncpy(ssid, id, idlen); ++ ssid[idlen] = '\0'; ++ ap = new nsWifiAccessPoint(); ++ ap->setSSID(ssid, strlen(ssid)); ++ ap->setMac(isr->isr_bssid); ++ ap->setSignal(isr->isr_rssi); ++ accessPoints.AppendObject(ap); ++ res = true; ++ ++ // log the data ++ LOG(( "FreeBSD access point: " ++ << "SSID: " << ssid << ", " ++ << "MAC: " << isr->isr_bssid << ", " ++ << "Strength: " << isr->isr_rssi ", " ++ << "Channel: " << isr->isr_freq << "MHz" )); ++ ++ // increment pointers ++ len -= isr->isr_len; ++ vsr += isr->isr_len; ++ } ++ } ++ ++ freeifaddrs(ifal); ++ ++ return res ? NS_OK : NS_ERROR_FAILURE; ++} ++ ++nsresult ++nsWifiMonitor::DoScan() ++{ ++ // Regularly get the access point data. ++ ++ nsCOMArray<nsWifiAccessPoint> lastAccessPoints; ++ nsCOMArray<nsWifiAccessPoint> accessPoints; ++ ++ do { ++ nsresult rv = FreeBSDGetAccessPointData(accessPoints); ++ if (NS_FAILED(rv)) ++ return rv; ++ ++ bool accessPointsChanged = !AccessPointsEqual(accessPoints, lastAccessPoints); ++ ReplaceArray(lastAccessPoints, accessPoints); ++ ++ rv = CallWifiListeners(lastAccessPoints, accessPointsChanged); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ // wait for some reasonable amount of time. pref? ++ LOG(("waiting on monitor\n")); ++ ++ ReentrantMonitorAutoEnter mon(mReentrantMonitor); ++ mon.Wait(PR_SecondsToInterval(60)); ++ } ++ while (mKeepGoing); ++ ++ return NS_OK; ++} |