Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Nov 2017 00:58:52 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r454738 - in head/www: . palemoon palemoon/files
Message-ID:  <201711230058.vAN0wqSB098315@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Thu Nov 23 00:58:52 2017
New Revision: 454738
URL: https://svnweb.freebsd.org/changeset/ports/454738

Log:
  www/palemoon: add new port
  
  PR:		223597
  Submitted by:	lichray@gmail.com
  Tested by:	loader, many on forums.freebsd.org
  
  Pale Moon offers you a browsing experience in a browser completely built
  from its own, independently developed source that has been forked off
  from Firefox/Mozilla code a number of years ago, with carefully selected
  features and optimizations to improve the browser's stability and user
  experience, while offering full customization and a growing collection
  of extensions and themes to make the browser truly your own.
  
  Main features:
  
   o Support for many Firefox extensions
   o Support for a growing number of Pale Moon exclusive extensions
   o Secure: Additional security features and security-aware development
   o Extensive and growing support for HTML5 and CSS3
  
  https://www.palemoon.org/

Added:
  head/www/palemoon/
  head/www/palemoon/Makefile   (contents, props changed)
  head/www/palemoon/distinfo   (contents, props changed)
  head/www/palemoon/files/
  head/www/palemoon/files/patch-browser-app-nsBrowserApp.cpp   (contents, props changed)
  head/www/palemoon/files/patch-browser_installer_Makefile.in   (contents, props changed)
  head/www/palemoon/files/patch-bug1267513   (contents, props changed)
  head/www/palemoon/files/patch-bug1330119   (contents, props changed)
  head/www/palemoon/files/patch-bug1336791   (contents, props changed)
  head/www/palemoon/files/patch-bug847568   (contents, props changed)
  head/www/palemoon/files/patch-bug991253   (contents, props changed)
  head/www/palemoon/files/patch-config-baseconfig.mk   (contents, props changed)
  head/www/palemoon/files/patch-python_psutil_psutil___psutil__bsd.c   (contents, props changed)
  head/www/palemoon/files/patch-xpcom_io_nsLocalFileUnix.cpp   (contents, props changed)
  head/www/palemoon/pkg-descr   (contents, props changed)
Modified:
  head/www/Makefile   (contents, props changed)

Modified: head/www/Makefile
==============================================================================
--- head/www/Makefile	Thu Nov 23 00:56:36 2017	(r454737)
+++ head/www/Makefile	Thu Nov 23 00:58:52 2017	(r454738)
@@ -1398,6 +1398,7 @@
     SUBDIR += p5-pQuery
     SUBDIR += p5-webservice-validator-css-w3c
     SUBDIR += p5-webservice-validator-html-w3c
+    SUBDIR += palemoon
     SUBDIR += paros
     SUBDIR += payara
     SUBDIR += pear-HTML_AJAX

Added: head/www/palemoon/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/Makefile	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,64 @@
+# Created by: Zhihao Yuan <lichray@gmail.com>
+# $FreeBSD$
+
+PORTNAME=	palemoon
+DISTVERSION=	27.6.1
+DISTVERSIONSUFFIX=_Release
+CATEGORIES=	www ipv6
+
+MAINTAINER=	lichray@gmail.com
+COMMENT=	Open Source Goanna-based web browser
+
+BUILD_DEPENDS=	nspr>=4.15:devel/nspr \
+		nss>=3.31.1:security/nss \
+		libevent>=2.0.22:devel/libevent \
+		harfbuzz>=1.4.3:print/harfbuzz \
+		graphite2>=1.3.10:graphics/graphite2 \
+		png>=1.6.16:graphics/png \
+		libvpx>=1.5.0:multimedia/libvpx \
+		sqlite3>=3.19.3:databases/sqlite3 \
+		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
+		autoconf-2.13:devel/autoconf213 \
+		yasm:devel/yasm \
+		zip:archivers/zip
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	MoonchildProductions
+GH_PROJECT=	Pale-Moon
+
+USE_GECKO=	gecko
+MOZ_PKGCONFIG_FILES=	# empty
+USE_MOZILLA=	-soundtouch
+
+USE_GL=		gl
+
+PM_ICON=	${PORTNAME}.png
+PM_ICON_SRC=	${PREFIX}/lib/${PORTNAME}/browser/icons/mozicon128.png
+PM_DESKTOP=	${WRKSRC}/browser/branding/official/${PORTNAME}.desktop
+MOZ_OPTIONS=	--enable-application=browser \
+		--enable-official-branding \
+		--enable-devtools \
+		--enable-jemalloc \
+		--enable-jemalloc-lib
+
+OPTIONS_DEFAULT=	BUNDLED_CAIRO GTK2
+OPTIONS_EXCLUDE=	DTRACE INTEGER_SAMPLES JACK SNDIO TEST
+
+.include "${.CURDIR}/../../www/firefox/Makefile.options"
+
+WRKSRC:=	${WRKDIR}/${GH_PROJECT}-${DISTVERSIONFULL}
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+		${WRKSRC}/browser/app/nsBrowserApp.cpp
+
+pre-configure:
+	(cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13)
+	(cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13)
+
+post-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
+	${INSTALL_DATA} ${PM_DESKTOP} ${STAGEDIR}${PREFIX}/share/applications/
+	${LN} -sf ${PM_ICON_SRC} ${STAGEDIR}${PREFIX}/share/pixmaps/${PM_ICON}
+
+.include <bsd.port.mk>

Added: head/www/palemoon/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/distinfo	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1510878123
+SHA256 (MoonchildProductions-Pale-Moon-27.6.1_Release_GH0.tar.gz) = bf426f51274472178dec248b258bfc8f2f33fbecb1cb70c36ee36a46a4dd6926
+SIZE (MoonchildProductions-Pale-Moon-27.6.1_Release_GH0.tar.gz) = 179623221

Added: head/www/palemoon/files/patch-browser-app-nsBrowserApp.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-browser-app-nsBrowserApp.cpp	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,12 @@
+--- browser/app/nsBrowserApp.cpp.orig	2017-11-14 14:36:13 UTC
++++ browser/app/nsBrowserApp.cpp
+@@ -409,6 +409,9 @@ int main(int argc, char* argv[])
+ #endif
+   uint64_t start = TimeStamp_Now();
+ 
++  setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
++  setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
++
+ #ifdef XP_MACOSX
+   TriggerQuirks();
+ #endif

Added: head/www/palemoon/files/patch-browser_installer_Makefile.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-browser_installer_Makefile.in	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,13 @@
+--- browser/installer/Makefile.in.orig	2017-11-14 14:36:13 UTC
++++ browser/installer/Makefile.in
+@@ -108,10 +108,6 @@ MOZ_PKG_MAC_ICON=branding/disk.icns
+ MOZ_PKG_MAC_EXTRA=--symlink '/Applications:/ '
+ endif
+ 
+-ifndef LIBXUL_SDK
+-INSTALL_SDK = 1
+-endif
+-
+ include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
+ include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
+ 

Added: head/www/palemoon/files/patch-bug1267513
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-bug1267513	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,13 @@
+https://github.com/kinetiknz/nestegg/commit/3b7f1ae5dfd5
+
+--- media/libnestegg/src/align.h.orig	2017-11-14 14:36:13 UTC
++++ media/libnestegg/src/align.h
+@@ -22,7 +22,7 @@
+  */
+ typedef double max_align_t;
+ 
+-#else
++#elif !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T)
+ 
+ /*
+  *	a type with the most strict alignment requirements

Added: head/www/palemoon/files/patch-bug1330119
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-bug1330119	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,13 @@
+Build Linux aarch64 code in XPTCALL also on BSDs
+
+--- xpcom/reflect/xptcall/md/unix/moz.build.orig	2017-11-14 14:36:13 UTC
++++ xpcom/reflect/xptcall/md/unix/moz.build
+@@ -143,7 +143,7 @@ if CONFIG['OS_ARCH'] == 'NetBSD':
+             'xptcstubs_netbsd_m68k.cpp'
+         ]
+ 
+-if CONFIG['OS_ARCH'] == 'Linux':
++if CONFIG['OS_ARCH'] in ('Linux', 'FreeBSD', 'NetBSD', 'OpenBSD'):
+     if CONFIG['OS_TEST'] == 'aarch64':
+         SOURCES += [
+             'xptcinvoke_aarch64.cpp',

Added: head/www/palemoon/files/patch-bug1336791
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-bug1336791	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,21 @@
+Allow readelf to print types without parentheses
+
+--- toolkit/library/dependentlibs.py.orig	2017-11-14 14:36:13 UTC
++++ toolkit/library/dependentlibs.py
+@@ -59,11 +59,15 @@ def dependentlibs_readelf(lib):
+     for line in proc.stdout:
+         # Each line has the following format:
+         #  tag (TYPE)          value
++        # or with BSD readelf:
++        #  tag TYPE            value
+         # Looking for NEEDED type entries
+         tmp = line.split(' ', 3)
+-        if len(tmp) > 3 and tmp[2] == '(NEEDED)':
++        if len(tmp) > 3 and 'NEEDED' in tmp[2]:
+             # NEEDED lines look like:
+             # 0x00000001 (NEEDED)             Shared library: [libname]
++            # or with BSD readelf:
++            # 0x00000001 NEEDED               Shared library: [libname]
+             match = re.search('\[(.*)\]', tmp[3])
+             if match:
+                 deps.append(match.group(1))

Added: head/www/palemoon/files/patch-bug847568
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-bug847568	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,216 @@
+# Allow building against system-wide graphite2/harfbuzz.
+
+--- config/Makefile.in.orig	2017-11-14 14:36:13 UTC
++++ config/Makefile.in
+@@ -78,6 +78,8 @@ export:: $(export-preqs)
+ 		-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
+ 		-DMOZ_NATIVE_LIBWEBP=$(MOZ_NATIVE_LIBWEBP) \
+ 		-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
++		-DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
++		-DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
+ 		$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
+ 	$(INSTALL) system_wrappers $(DIST)
+ 
+--- config/system-headers.orig	2017-11-14 14:36:13 UTC
++++ config/system-headers
+@@ -1359,3 +1359,11 @@ unicode/utypes.h
+ #endif
+ libutil.h
+ unwind.h
++#if MOZ_NATIVE_GRAPHITE2==1
++graphite2/Font.h
++graphite2/Segment.h
++#endif
++#if MOZ_NATIVE_HARFBUZZ==1
++harfbuzz/hb-ot.h
++harfbuzz/hb.h
++#endif
+--- configure.in.orig	2017-11-14 14:36:13 UTC
++++ configure.in
+@@ -7746,6 +7746,49 @@ if test "$USE_FC_FREETYPE"; then
+ fi
+ 
+ dnl ========================================================
++dnl Check for harfbuzz
++dnl ========================================================
++
++MOZ_ARG_WITH_BOOL(system-harfbuzz,
++[  --with-system-harfbuzz  Use system harfbuzz (located with pkgconfig)],
++MOZ_NATIVE_HARFBUZZ=1,
++MOZ_NATIVE_HARFBUZZ=)
++
++if test -n "$MOZ_NATIVE_HARFBUZZ"; then
++    PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.4.3)
++fi
++
++AC_SUBST(MOZ_NATIVE_HARFBUZZ)
++
++dnl ========================================================
++dnl Check for graphite2
++dnl ========================================================
++
++MOZ_ARG_WITH_BOOL(system-graphite2,
++[  --with-system-graphite2 Use system graphite2 (located with pkgconfig)],
++MOZ_NATIVE_GRAPHITE2=1,
++MOZ_NATIVE_GRAPHITE2=)
++
++if test -n "$MOZ_NATIVE_GRAPHITE2"; then
++    PKG_CHECK_MODULES(MOZ_GRAPHITE2, graphite2)
++
++    dnl graphite2.pc has bogus version, check manually
++    AC_TRY_COMPILE([ #include <graphite2/Font.h>
++                     #define GR2_VERSION_REQUIRE(major,minor,bugfix)  \
++                             ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
++                               * 100 + GR2_VERSION_BUGFIX >= \
++                               (major) * 10000 + (minor) * 100 + (bugfix) )
++                   ], [
++                     #if !GR2_VERSION_REQUIRE(1,3,10)
++                     #error "Insufficient graphite2 version."
++                     #endif
++                   ], [],
++                   [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
++fi
++
++AC_SUBST(MOZ_NATIVE_GRAPHITE2)
++
++dnl ========================================================
+ dnl Check for pixman and cairo
+ dnl ========================================================
+ 
+--- dom/base/moz.build.orig	2017-11-14 14:36:13 UTC
++++ dom/base/moz.build
+@@ -366,6 +366,9 @@ if CONFIG['INTEL_ARCHITECTURE']:
+     SOURCES += ['nsTextFragmentSSE2.cpp']
+     SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+ 
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ EXTRA_COMPONENTS += [
+     'ConsoleAPI.manifest',
+     'ConsoleAPIStorage.js',
+--- gfx/graphite2/moz-gr-update.sh.orig	2017-11-14 14:36:13 UTC
++++ gfx/graphite2/moz-gr-update.sh
+@@ -37,6 +37,9 @@ echo "See" $0 "for update procedure." >> gfx/graphite2
+ #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
+ #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
+ 
++perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
++  if /GR2_VERSION_REQUIRE/" configure.in
++
+ # summarize what's been touched
+ echo Updated to $RELEASE.
+ echo Here is what changed in the gfx/graphite2 directory:
+--- gfx/harfbuzz/README-mozilla.orig	2017-11-14 14:36:13 UTC
++++ gfx/harfbuzz/README-mozilla
+@@ -19,3 +19,8 @@ the mozilla tree.
+ 
+ If the collection of source files changes, manual updates to moz.build may be
+ needed, as we don't use the upstream makefiles.
++
++The in-tree copy may be omitted during build by --with-system-harfbuzz.
++Make sure to keep pkg-config version check within configure.in in sync
++with checkout version or increment latest tag by one if it's not based
++on upstream release.
+--- gfx/moz.build.orig	2017-11-14 14:36:13 UTC
++++ gfx/moz.build
+@@ -7,6 +7,12 @@
+ if CONFIG['MOZ_TREE_CAIRO']:
+     DIRS += ['cairo']
+ 
++if not CONFIG['MOZ_NATIVE_GRAPHITE2']:
++    DIRS += ['graphite2/src' ]
++
++if not CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    DIRS += ['harfbuzz/src']
++
+ DIRS += [
+     '2d',
+     'ycbcr',
+@@ -15,8 +21,6 @@ DIRS += [
+     'qcms',
+     'gl',
+     'layers',
+-    'graphite2/src',
+-    'harfbuzz/src',
+     'ots/src',
+     'thebes',
+     'ipc',
+--- gfx/skia/generate_mozbuild.py.orig	2017-11-14 14:36:13 UTC
++++ gfx/skia/generate_mozbuild.py
+@@ -157,6 +157,9 @@ if CONFIG['CLANG_CXX']:
+             '-Wno-unused-private-field',
+         ]
+ 
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
+     CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+     CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
+--- gfx/skia/moz.build.orig	2017-11-14 14:36:13 UTC
++++ gfx/skia/moz.build
+@@ -987,6 +987,9 @@ if CONFIG['CLANG_CXX']:
+         '-Wno-unused-private-field',
+     ]
+ 
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
+     CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+     CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
+--- gfx/thebes/moz.build.orig	2017-11-14 14:36:13 UTC
++++ gfx/thebes/moz.build
+@@ -298,7 +298,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'qt'):
+     CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']
+ 
+-DEFINES['GRAPHITE2_STATIC'] = True
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
++if CONFIG['MOZ_NATIVE_GRAPHITE2']:
++    CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
++else:
++    DEFINES['GRAPHITE2_STATIC'] = True
+ 
+ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
+     DEFINES['OTS_DLL'] = True
+--- intl/unicharutil/util/moz.build.orig	2017-11-14 14:36:13 UTC
++++ intl/unicharutil/util/moz.build
+@@ -38,5 +38,8 @@ if CONFIG['_MSC_VER']:
+ if CONFIG['ENABLE_INTL_API']:
+     CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+ 
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['GNU_CXX']:
+     FAIL_ON_WARNINGS = True
+--- netwerk/dns/moz.build.orig	2017-11-14 14:36:13 UTC
++++ netwerk/dns/moz.build
+@@ -68,5 +68,8 @@ LOCAL_INCLUDES += [
+     '/netwerk/base',
+ ]
+ 
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19':
+     CXXFLAGS += ['-I%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']]
+--- toolkit/library/moz.build.orig	2017-11-14 14:36:13 UTC
++++ toolkit/library/moz.build
+@@ -230,6 +230,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
+ if not CONFIG['MOZ_TREE_PIXMAN']:
+     OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
+ 
++if CONFIG['MOZ_NATIVE_GRAPHITE2']:
++    OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
++
++if CONFIG['MOZ_NATIVE_HARFBUZZ']:
++    OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
++
+ if CONFIG['MOZ_ALSA']:
+     OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
+ 

Added: head/www/palemoon/files/patch-bug991253
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-bug991253	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,17 @@
+--- extensions/spellcheck/hunspell/glue/mozHunspell.cpp.orig	2017-11-14 14:36:13 UTC
++++ extensions/spellcheck/hunspell/glue/mozHunspell.cpp
+@@ -400,6 +400,14 @@ mozHunspell::LoadDictionaryList(bool aNotifyChildProce
+     }
+   }
+ 
++  // load system hunspell dictionaries
++  nsCOMPtr<nsIFile> hunDir;
++  NS_NewNativeLocalFile(NS_LITERAL_CSTRING("%%LOCALBASE%%/share/hunspell"),
++                        true, getter_AddRefs(hunDir));
++  if (hunDir) {
++      LoadDictionariesFromDir(hunDir);
++  }
++
+   // find dictionaries from extensions requiring restart
+   nsCOMPtr<nsISimpleEnumerator> dictDirs;
+   rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,

Added: head/www/palemoon/files/patch-config-baseconfig.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-config-baseconfig.mk	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,17 @@
+--- config/baseconfig.mk.orig	2017-11-14 14:36:13 UTC
++++ config/baseconfig.mk
+@@ -2,10 +2,10 @@
+ # directly in python/mozbuild/mozbuild/base.py for gmake validation.
+ # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
+ # whether a normal build is happening or whether the check is running.
+-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
++includedir := $(includedir)/%%MOZILLA%%
++idldir = $(datadir)/idl/%%MOZILLA%%
++installdir = $(libdir)/%%MOZILLA%%
++sdkdir = $(libdir)/%%MOZILLA%%
+ ifndef TOP_DIST
+ TOP_DIST = dist
+ endif

Added: head/www/palemoon/files/patch-python_psutil_psutil___psutil__bsd.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-python_psutil_psutil___psutil__bsd.c	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,212 @@
+--- python/psutil/psutil/_psutil_bsd.c.orig	2017-11-14 14:36:13 UTC
++++ python/psutil/psutil/_psutil_bsd.c
+@@ -12,6 +12,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <err.h>
+ #include <signal.h>
+ #include <fcntl.h>
+ #include <paths.h>
+@@ -957,11 +958,19 @@ psutil_sockaddr_matches(int family, int port, void *pc
+                    psutil_sockaddr_addrlen(family)) == 0);
+ }
+ 
++#if __FreeBSD_version >= 1200026
++static struct xtcpcb *
++psutil_search_tcplist(char *buf, struct kinfo_file *kif)
++{
++    struct xtcpcb *tp;
++    struct xinpcb *inp;
++#else
+ static struct tcpcb *
+ psutil_search_tcplist(char *buf, struct kinfo_file *kif)
+ {
+     struct tcpcb *tp;
+     struct inpcb *inp;
++#endif
+     struct xinpgen *xig, *oxig;
+     struct xsocket *so;
+ 
+@@ -969,9 +978,15 @@ psutil_search_tcplist(char *buf, struct kinfo_file *ki
+     for (xig = (struct xinpgen *)((char *)xig + xig->xig_len);
+             xig->xig_len > sizeof(struct xinpgen);
+             xig = (struct xinpgen *)((char *)xig + xig->xig_len)) {
++#if __FreeBSD_version >= 1200026
++	tp = (struct xtcpcb *)xig;
++	inp = &tp->xt_inp;
++	so = &inp->xi_socket;
++#else
+         tp = &((struct xtcpcb *)xig)->xt_tp;
+         inp = &((struct xtcpcb *)xig)->xt_inp;
+         so = &((struct xtcpcb *)xig)->xt_socket;
++#endif
+ 
+         if (so->so_type != kif->kf_sock_type ||
+                 so->xso_family != kif->kf_sock_domain ||
+@@ -981,20 +996,36 @@ psutil_search_tcplist(char *buf, struct kinfo_file *ki
+         if (kif->kf_sock_domain == AF_INET) {
+             if (!psutil_sockaddr_matches(
+                     AF_INET, inp->inp_lport, &inp->inp_laddr,
++#if __FreeBSD_version < 1200031
+                     &kif->kf_sa_local))
++#else
++                    &kif->kf_un.kf_sock.kf_sa_local))
++#endif
+                 continue;
+             if (!psutil_sockaddr_matches(
+                     AF_INET, inp->inp_fport, &inp->inp_faddr,
++#if __FreeBSD_version < 1200031
+                     &kif->kf_sa_peer))
++#else
++                    &kif->kf_un.kf_sock.kf_sa_peer))
++#endif
+                 continue;
+         } else {
+             if (!psutil_sockaddr_matches(
+                     AF_INET6, inp->inp_lport, &inp->in6p_laddr,
++#if __FreeBSD_version < 1200031
+                     &kif->kf_sa_local))
++#else
++                    &kif->kf_un.kf_sock.kf_sa_local))
++#endif
+                 continue;
+             if (!psutil_sockaddr_matches(
+                     AF_INET6, inp->inp_fport, &inp->in6p_faddr,
++#if __FreeBSD_version < 1200031
+                     &kif->kf_sa_peer))
++#else
++                    &kif->kf_un.kf_sock.kf_sa_peer))
++#endif
+                 continue;
+         }
+ 
+@@ -1019,7 +1050,11 @@ psutil_proc_connections(PyObject *self, PyObject *args
+     struct kinfo_file *freep = NULL;
+     struct kinfo_file *kif;
+     char *tcplist = NULL;
++#if __FreeBSD_version >= 1200026
++    struct xtcpcb *tcp;
++#else
+     struct tcpcb *tcp;
++#endif
+ 
+     PyObject *retList = PyList_New(0);
+     PyObject *tuple = NULL;
+@@ -1094,19 +1129,35 @@ psutil_proc_connections(PyObject *self, PyObject *args
+                 inet_ntop(
+                     kif->kf_sock_domain,
+                     psutil_sockaddr_addr(kif->kf_sock_domain,
++#if __FreeBSD_version < 1200031
+                                          &kif->kf_sa_local),
++#else
++                                         &kif->kf_un.kf_sock.kf_sa_local),
++#endif
+                     lip,
+                     sizeof(lip));
+                 inet_ntop(
+                     kif->kf_sock_domain,
+                     psutil_sockaddr_addr(kif->kf_sock_domain,
++#if __FreeBSD_version < 1200031
+                                          &kif->kf_sa_peer),
++#else
++                                         &kif->kf_un.kf_sock.kf_sa_peer),
++#endif
+                     rip,
+                     sizeof(rip));
+                 lport = htons(psutil_sockaddr_port(kif->kf_sock_domain,
++#if __FreeBSD_version < 1200031
+                                                    &kif->kf_sa_local));
++#else
++                                                   &kif->kf_un.kf_sock.kf_sa_local));
++#endif
+                 rport = htons(psutil_sockaddr_port(kif->kf_sock_domain,
++#if __FreeBSD_version < 1200031
+                                                    &kif->kf_sa_peer));
++#else
++                                                   &kif->kf_un.kf_sock.kf_sa_peer));
++#endif
+ 
+                 // construct python tuple/list
+                 laddr = Py_BuildValue("(si)", lip, lport);
+@@ -1137,10 +1188,14 @@ psutil_proc_connections(PyObject *self, PyObject *args
+             else if (kif->kf_sock_domain == AF_UNIX) {
+                 struct sockaddr_un *sun;
+ 
++#if __FreeBSD_version < 1200031
+                 sun = (struct sockaddr_un *)&kif->kf_sa_local;
++#else
++                sun = (struct sockaddr_un *)&kif->kf_un.kf_sock.kf_sa_local;
++#endif
+                 snprintf(
+                     path, sizeof(path), "%.*s",
+-                    (sun->sun_len - (sizeof(*sun) - sizeof(sun->sun_path))),
++                    (int)(sun->sun_len - (sizeof(*sun) - sizeof(sun->sun_path))),
+                     sun->sun_path);
+ 
+                 tuple = Py_BuildValue("(iiisOi)",
+@@ -1250,7 +1305,7 @@ void remove_spaces(char *str) {
+     do
+         while (*p2 == ' ')
+             p2++;
+-    while (*p1++ = *p2++);
++    while ((*p1++ = *p2++));
+ }
+ 
+ 
+@@ -1779,7 +1834,11 @@ int psutil_gather_inet(int proto, PyObject *py_retlist
+     struct xinpgen *xig, *exig;
+     struct xinpcb *xip;
+     struct xtcpcb *xtp;
++#if __FreeBSD_version >= 1200026
++    struct xinpcb *inp;
++#else
+     struct inpcb *inp;
++#endif
+     struct xsocket *so;
+     struct sock *sock;
+     const char *varname;
+@@ -1849,13 +1908,22 @@ int psutil_gather_inet(int proto, PyObject *py_retlist
+                 PyErr_Format(PyExc_RuntimeError, "struct xinpcb size mismatch");
+                 goto error;
+             }
++#if __FreeBSD_version >= 1200026
++            inp = xip;
++#else
+             inp = &xip->xi_inp;
++#endif
+             so = &xip->xi_socket;
+             break;
+         }
+ 
++#if __FreeBSD_version >= 1200026
++        inp = xip;
++	so = xtp->t_state;
++#else
+         inp = &xtp->xt_inp;
+         so = &xtp->xt_socket;
++#endif
+         char lip[200], rip[200];
+         int family, lport, rport, pid, status;
+ 
+@@ -1865,7 +1933,11 @@ int psutil_gather_inet(int proto, PyObject *py_retlist
+             continue;
+         lport = ntohs(inp->inp_lport);
+         rport = ntohs(inp->inp_fport);
++#if __FreeBSD_version >= 1200026
++        status = xtp->t_state;
++#else
+         status = xtp->xt_tp.t_state;
++#endif
+ 
+         if (inp->inp_vflag & INP_IPV4) {
+             family = AF_INET;
+@@ -1985,7 +2057,7 @@ int psutil_gather_unix(int proto, PyObject *py_retlist
+ 
+         sun = (struct sockaddr_un *)&xup->xu_addr;
+         snprintf(path, sizeof(path), "%.*s",
+-                 (sun->sun_len - (sizeof(*sun) - sizeof(sun->sun_path))),
++                 (int)(sun->sun_len - (sizeof(*sun) - sizeof(sun->sun_path))),
+                  sun->sun_path);
+ 
+         tuple = Py_BuildValue("(iiisOii)", -1, AF_UNIX, proto, path, Py_None,

Added: head/www/palemoon/files/patch-xpcom_io_nsLocalFileUnix.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/files/patch-xpcom_io_nsLocalFileUnix.cpp	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,23 @@
+--- xpcom/io/nsLocalFileUnix.cpp.orig	2017-11-14 14:36:13 UTC
++++ xpcom/io/nsLocalFileUnix.cpp
+@@ -13,9 +13,6 @@
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#if !defined(XP_MACOSX)
+-#include <sys/sysmacros.h> // No longer implicitly included in later glibc
+-#endif
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+@@ -31,6 +28,10 @@
+ #define USE_LINUX_QUOTACTL
+ #include <sys/mount.h>
+ #include <sys/quota.h>
++#include <sys/sysmacros.h>
++#ifndef BLOCK_SIZE
++#define BLOCK_SIZE 1024 /* kernel block size */
++#endif
+ #endif
+ 
+ #include "xpcom-private.h"

Added: head/www/palemoon/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/palemoon/pkg-descr	Thu Nov 23 00:58:52 2017	(r454738)
@@ -0,0 +1,15 @@
+Pale Moon offers you a browsing experience in a browser completely built
+from its own, independently developed source that has been forked off
+from Firefox/Mozilla code a number of years ago, with carefully selected
+features and optimizations to improve the browser's stability and user
+experience, while offering full customization and a growing collection
+of extensions and themes to make the browser truly your own.
+
+Main features:
+
+ o Support for many Firefox extensions
+ o Support for a growing number of Pale Moon exclusive extensions
+ o Secure: Additional security features and security-aware development
+ o Extensive and growing support for HTML5 and CSS3
+
+WWW: https://www.palemoon.org/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711230058.vAN0wqSB098315>