summaryrefslogtreecommitdiff
path: root/newmoon/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'newmoon/debian/patches')
-rw-r--r--newmoon/debian/patches/UXP-GTK-3-interface-Ensure-horizontal-scrollbars-are-not-too-tall.patch23
-rw-r--r--newmoon/debian/patches/UXP-eliminate-need-for-GTK-2.patch382
-rw-r--r--newmoon/debian/patches/UXP-strip-object-files-before-shared-library-linking.patch39
-rw-r--r--newmoon/debian/patches/pm-devuan.patch59
-rw-r--r--newmoon/debian/patches/pm-to-nm.patch392
-rw-r--r--newmoon/debian/patches/series6
-rw-r--r--newmoon/debian/patches/small-icons.patch22
7 files changed, 923 insertions, 0 deletions
diff --git a/newmoon/debian/patches/UXP-GTK-3-interface-Ensure-horizontal-scrollbars-are-not-too-tall.patch b/newmoon/debian/patches/UXP-GTK-3-interface-Ensure-horizontal-scrollbars-are-not-too-tall.patch
new file mode 100644
index 0000000..0c06d85
--- /dev/null
+++ b/newmoon/debian/patches/UXP-GTK-3-interface-Ensure-horizontal-scrollbars-are-not-too-tall.patch
@@ -0,0 +1,23 @@
+# This patch was created by Gordon N. Squash.
+#
+# When applied, this patch corrects a long-standing bug in UXP and sizes
+# horizontal scrollbars correctly in the GTK+ 3 user interface backend to UXP.
+#
+# This patch is stable. It does not adversely affect UXP in any way -- in
+# fact, its application is beneficial, as far as the author can tell.
+#
+# WARNING! This is not an official patch in any way, shape or form! Do not
+# contact the original authors of UXP for support of this patch!
+#
+diff -uprN palemoon-28.12.0-original/platform/widget/gtk/nsNativeThemeGTK.cpp palemoon-28.12.0-patched/platform/widget/gtk/nsNativeThemeGTK.cpp
+--- palemoon-28.12.0-original/platform/widget/gtk/nsNativeThemeGTK.cpp 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/widget/gtk/nsNativeThemeGTK.cpp 2020-08-06 15:43:22.876133836 -0400
+@@ -1438,7 +1438,7 @@ nsNativeThemeGTK::GetMinimumWidgetSize(n
+ {
+ if (gtk_check_version(3,20,0) == nullptr) {
+ moz_gtk_get_widget_min_size(MOZ_GTK_SCROLLBAR_BUTTON,
+- &(aResult->width), &(aResult->height));
++ &(aResult->height), &(aResult->width));
+ } else {
+ MozGtkScrollbarMetrics metrics;
+ moz_gtk_get_scrollbar_metrics(&metrics);
diff --git a/newmoon/debian/patches/UXP-eliminate-need-for-GTK-2.patch b/newmoon/debian/patches/UXP-eliminate-need-for-GTK-2.patch
new file mode 100644
index 0000000..f28fd10
--- /dev/null
+++ b/newmoon/debian/patches/UXP-eliminate-need-for-GTK-2.patch
@@ -0,0 +1,382 @@
+# This patch and its previous revision were created by Gordon N. Squash.
+#
+# This patch can be used to eliminate the Unified XUL Platform's need for both
+# GTK+ 2 and GTK+ 3, even when you are compiling UXP only to use GTK+ 3.
+#
+# This patch is still highly experimental. The author of this patch has not
+# yet encountered any issues with this patch, but there are no guarantees.
+#
+# This is revision 2 of the patch. The previous revisions eliminated a stub
+# function from mozgtk which disabled the X Shared Memory (X MIT-SHM) extension
+# from getting used by Cairo. Unfortunately, that function, while overly
+# simplistic, was necessary to ensure the guaranteed operability of UXP; in
+# other words, UXP crashed sometimes if this function wasn't present.
+# This revision re-introduces this function into the codebase -- but part of
+# libxul this time, not libmozgtk.
+#
+# WARNING! This is not an official patch in any way, shape or form! Do not
+# contact the original authors of UXP for support of this patch!
+#
+diff -uprN palemoon-28.12.0-original/platform/config/recurse.mk palemoon-28.12.0-patched/platform/config/recurse.mk
+--- palemoon-28.12.0-original/platform/config/recurse.mk 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/config/recurse.mk 2020-08-19 13:12:24.228334662 -0400
+@@ -161,9 +161,9 @@ endif
+
+ # Interdependencies that moz.build world don't know about yet for compilation.
+ # Note some others are hardcoded or "guessed" in recursivemake.py and emitter.py
+-ifeq ($(MOZ_WIDGET_TOOLKIT),gtk3)
+-toolkit/library/target: widget/gtk/mozgtk/gtk3/target
+-endif
++#ifeq ($(MOZ_WIDGET_TOOLKIT),gtk3)
++#toolkit/library/target: widget/gtk/mozgtk/gtk3/target
++#endif
+ ifdef MOZ_LDAP_XPCOM
+ ldap/target: config/external/nss/target mozglue/build/target
+ toolkit/library/target: ldap/target
+diff -uprN palemoon-28.12.0-original/platform/dom/ipc/moz.build palemoon-28.12.0-patched/platform/dom/ipc/moz.build
+--- palemoon-28.12.0-original/platform/dom/ipc/moz.build 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/dom/ipc/moz.build 2020-08-19 11:20:54.768059475 -0400
+@@ -114,6 +114,7 @@ LOCAL_INCLUDES += [
+ '/dom/workers',
+ '/embedding/components/printingui/ipc',
+ '/extensions/cookie',
++ '/extensions/spellcheck/hunspell/glue',
+ '/extensions/spellcheck/src',
+ '/gfx/2d',
+ '/hal/sandbox',
+diff -uprN palemoon-28.12.0-original/platform/dom/plugins/ipc/moz.build palemoon-28.12.0-patched/platform/dom/plugins/ipc/moz.build
+--- palemoon-28.12.0-original/platform/dom/plugins/ipc/moz.build 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/dom/plugins/ipc/moz.build 2020-08-18 14:55:40.548143359 -0400
+@@ -121,11 +121,7 @@ LOCAL_INCLUDES += [
+
+ DEFINES['FORCE_PR_LOG'] = True
+
+-if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'gtk3':
+- CXXFLAGS += CONFIG['TK_CFLAGS']
+-else:
+- # Force build against gtk+2 for struct offsets and such.
+- CXXFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
++CXXFLAGS += CONFIG['TK_CFLAGS']
+
+ CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+
+diff -uprN palemoon-28.12.0-original/platform/dom/plugins/ipc/PluginInstanceChild.cpp palemoon-28.12.0-patched/platform/dom/plugins/ipc/PluginInstanceChild.cpp
+--- palemoon-28.12.0-original/platform/dom/plugins/ipc/PluginInstanceChild.cpp 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/dom/plugins/ipc/PluginInstanceChild.cpp 2020-08-19 12:33:46.736239327 -0400
+@@ -52,7 +52,9 @@
+ #include <gtk/gtk.h>
+ #include <gdk/gdkx.h>
+ #include <gdk/gdk.h>
++#if MOZ_WIDGET_GTK == 2
+ #include "gtk2xtbin.h"
++#endif
+
+ #elif defined(OS_WIN)
+
+@@ -152,7 +154,7 @@
+ , mAsyncInvalidateTask(0)
+ , mCachedWindowActor(nullptr)
+ , mCachedElementActor(nullptr)
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ , mXEmbed(false)
+ #endif // MOZ_WIDGET_GTK
+ #if defined(OS_WIN)
+@@ -201,7 +203,7 @@
+ #if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
+ mWindow.ws_info = &mWsInfo;
+ memset(&mWsInfo, 0, sizeof(mWsInfo));
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ mWsInfo.display = nullptr;
+ mXtClient.top_widget = nullptr;
+ #else
+@@ -610,7 +612,7 @@
+ return NPERR_GENERIC_ERROR;
+
+ NPWindowType newWindowType = windowed ? NPWindowTypeWindow : NPWindowTypeDrawable;
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ if (mWindow.type != newWindowType && mWsInfo.display) {
+ // plugin type has been changed but we already have a valid display
+ // so update it for the recent plugin mode
+@@ -1202,7 +1204,7 @@
+ aWindow.x, aWindow.y,
+ aWindow.width, aWindow.height));
+
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ if (mXEmbed) {
+ mWindow.window = reinterpret_cast<void*>(aWindow.window);
+ }
+@@ -1231,7 +1233,7 @@
+ if (!mWindow.window)
+ return;
+
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ if (mXtClient.top_widget) {
+ xt_client_unrealize(&mXtClient);
+ xt_client_destroy(&mXtClient);
+@@ -1313,7 +1315,7 @@
+ CreateWindow(aWindow);
+ }
+
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ if (mXEmbed && gtk_check_version(2,18,7) != nullptr) { // older
+ if (aWindow.type == NPWindowTypeWindow) {
+ GdkWindow* socket_window = gdk_window_lookup(static_cast<GdkNativeWindow>(aWindow.window));
+@@ -1439,7 +1441,7 @@
+ bool
+ PluginInstanceChild::Initialize()
+ {
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ NPError rv;
+
+ if (mWsInfo.display) {
+@@ -4650,7 +4652,7 @@
+
+ mPendingAsyncCalls.Clear();
+
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ if (mWindow.type == NPWindowTypeWindow && !mXEmbed) {
+ xt_client_xloop_destroy();
+ }
+diff -uprN palemoon-28.12.0-original/platform/dom/plugins/ipc/PluginInstanceChild.h palemoon-28.12.0-patched/platform/dom/plugins/ipc/PluginInstanceChild.h
+--- palemoon-28.12.0-original/platform/dom/plugins/ipc/PluginInstanceChild.h 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/dom/plugins/ipc/PluginInstanceChild.h 2020-08-19 11:51:36.556135241 -0400
+@@ -35,7 +35,7 @@
+
+ #include <map>
+
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ #include "gtk2xtbin.h"
+ #endif
+
+@@ -458,7 +458,7 @@ private:
+
+ #if defined(MOZ_X11) && defined(XP_UNIX) && !defined(XP_MACOSX)
+ NPSetWindowCallbackStruct mWsInfo;
+-#ifdef MOZ_WIDGET_GTK
++#if MOZ_WIDGET_GTK == 2
+ bool mXEmbed;
+ XtClient mXtClient;
+ #endif
+diff -uprN palemoon-28.12.0-original/platform/dom/plugins/ipc/PluginModuleChild.cpp palemoon-28.12.0-patched/platform/dom/plugins/ipc/PluginModuleChild.cpp
+--- palemoon-28.12.0-original/platform/dom/plugins/ipc/PluginModuleChild.cpp 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/dom/plugins/ipc/PluginModuleChild.cpp 2020-08-19 12:52:01.880284378 -0400
+@@ -13,6 +13,7 @@
+
+ #ifdef MOZ_WIDGET_GTK
+ #include <gtk/gtk.h>
++#include <gtk/gtkx.h>
+ #endif
+
+ #include "nsIFile.h"
+@@ -1094,7 +1095,7 @@ _getvalue(NPP aNPP,
+ case NPNVSupportsWindowless:
+ *(NPBool*)aValue = PluginModuleChild::GetChrome()->Settings().supportsWindowless();
+ return NPERR_NO_ERROR;
+-#if defined(MOZ_WIDGET_GTK)
++#if MOZ_WIDGET_GTK == 2
+ case NPNVxDisplay: {
+ if (aNPP) {
+ return InstCast(aNPP)->NPN_GetValue(aVariable, aValue);
+diff -uprN palemoon-28.12.0-original/platform/dom/plugins/test/testplugin/testplugin.mozbuild palemoon-28.12.0-patched/platform/dom/plugins/test/testplugin/testplugin.mozbuild
+--- palemoon-28.12.0-original/platform/dom/plugins/test/testplugin/testplugin.mozbuild 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/dom/plugins/test/testplugin/testplugin.mozbuild 2020-08-18 14:56:31.168144491 -0400
+@@ -49,13 +49,20 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'wind
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' and '64' in CONFIG['OS_TEST']:
+ OS_LIBS += ['-framework Carbon']
+
+-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3'):
++if CONFIG['MOZ_WIDGET_TOOLKIT'] in 'gtk2':
+ CXXFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
+ CFLAGS += CONFIG['MOZ_GTK2_CFLAGS']
+ OS_LIBS += CONFIG['MOZ_GTK2_LIBS']
+ OS_LIBS += CONFIG['XLDFLAGS']
+ OS_LIBS += CONFIG['XLIBS']
+ OS_LIBS += CONFIG['XEXT_LIBS']
++elif CONFIG['MOZ_WIDGET_TOOLKIT'] in 'gtk3':
++ CXXFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
++ CFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
++ OS_LIBS += CONFIG['MOZ_GTK3_LIBS']
++ OS_LIBS += CONFIG['XLDFLAGS']
++ OS_LIBS += CONFIG['XLIBS']
++ OS_LIBS += CONFIG['XEXT_LIBS']
+
+ if CONFIG['_MSC_VER']:
+ # This is intended as a temporary hack to support building with VS2015.
+diff -uprN palemoon-28.12.0-original/platform/old-configure.in palemoon-28.12.0-patched/platform/old-configure.in
+--- palemoon-28.12.0-original/platform/old-configure.in 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/old-configure.in 2020-08-18 14:54:27.952141735 -0400
+@@ -2324,8 +2324,6 @@ if test "$COMPILE_ENVIRONMENT"; then
+ fi
+ if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then
+ GLIB_VERSION_MAX_ALLOWED=$GLIB_VERSION_MIN_REQUIRED
+- fi
+- if test "$MOZ_ENABLE_GTK"; then
+ if test "$MOZ_X11"; then
+ GDK_PACKAGES=gdk-x11-2.0
+ fi
+@@ -2334,8 +2332,6 @@ if test "$COMPILE_ENVIRONMENT"; then
+
+ PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 $GDK_PACKAGES)
+ MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS"
+- fi
+- if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then
+ TK_CFLAGS=$MOZ_GTK2_CFLAGS
+ TK_LIBS=$MOZ_GTK2_LIBS
+ fi
+diff -uprN palemoon-28.12.0-original/platform/toolkit/library/moz.build palemoon-28.12.0-patched/platform/toolkit/library/moz.build
+--- palemoon-28.12.0-original/platform/toolkit/library/moz.build 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/toolkit/library/moz.build 2020-08-19 14:14:17.820487430 -0400
+@@ -117,10 +117,10 @@ if CONFIG['USE_ICU']:
+ 'icu',
+ ]
+
+-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
+- USE_LIBS += [
+- 'mozgtk_stub',
+- ]
++#if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
++# USE_LIBS += [
++# 'mozgtk_stub',
++# ]
+
+ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT'] or \
+ CONFIG['MOZ_TREE_FREETYPE']:
+@@ -231,16 +231,18 @@ if CONFIG['MOZ_ENABLE_DBUS']:
+ OS_LIBS += CONFIG['MOZ_DBUS_GLIB_LIBS']
+
+ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
+- OS_LIBS += [l for l in CONFIG['TK_LIBS']
+- if l not in ('-lgtk-3', '-lgdk-3')]
+- else:
+- OS_LIBS += CONFIG['TK_LIBS']
++# if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
++# OS_LIBS += [l for l in CONFIG['TK_LIBS']
++# if l not in ('-lgtk-3', '-lgdk-3')]
++# else:
++# OS_LIBS += CONFIG['TK_LIBS']
++ OS_LIBS += CONFIG['TK_LIBS']
+ OS_LIBS += CONFIG['XLDFLAGS']
+ OS_LIBS += CONFIG['XLIBS']
+ OS_LIBS += CONFIG['XEXT_LIBS']
+ OS_LIBS += CONFIG['MOZ_PANGO_LIBS']
+- OS_LIBS += CONFIG['XT_LIBS']
++ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2':
++ OS_LIBS += CONFIG['XT_LIBS']
+ OS_LIBS += [
+ 'gthread-2.0',
+ ]
+diff -uprN palemoon-28.12.0-original/platform/widget/gtk/moz.build palemoon-28.12.0-patched/platform/widget/gtk/moz.build
+--- palemoon-28.12.0-original/platform/widget/gtk/moz.build 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/widget/gtk/moz.build 2020-08-19 12:31:16.304233138 -0400
+@@ -4,8 +4,8 @@
+ # 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/.
+
+-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
+- DIRS += ['mozgtk']
++#if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
++# DIRS += ['mozgtk']
+
+ EXPORTS += [
+ 'mozcontainer.h',
+diff -uprN palemoon-28.12.0-original/platform/widget/moz.build palemoon-28.12.0-patched/platform/widget/moz.build
+--- palemoon-28.12.0-original/platform/widget/moz.build 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/widget/moz.build 2020-08-18 15:01:26.856151106 -0400
+@@ -53,7 +53,7 @@ if toolkit in ('cocoa', 'gtk2', 'gtk3'):
+ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+ DIRS += ['gtk']
+
+- if CONFIG['MOZ_X11']:
++ if CONFIG['MOZ_X11'] and CONFIG['MOZ_WIDGET_TOOKIT'] == 'gtk2':
+ DIRS += ['gtkxtbin']
+
+ XPIDL_SOURCES += [
+Date: 2020-08-20
+Message: The following was added in revision 1 of this patch. The location of the UXP
+application's package manifest must be changed before this patch is applied
+to any UXP application other than Pale Moon. However, this patch works
+without modification on Pale Moon.
+diff -uprN palemoon-28.12.0-original/palemoon/installer/package-manifest.in palemoon-28.12.0-patched/palemoon/installer/package-manifest.in
+--- palemoon-28.12.0-original/palemoon/installer/package-manifest.in 2020-07-30 06:09:43.000000000 -0400
++++ palemoon-28.12.0-patched/palemoon/installer/package-manifest.in 2020-08-20 20:57:55.116007204 -0400
+@@ -103,10 +103,6 @@
+ #ifdef MOZ_ICU_DATA_ARCHIVE
+ @RESPATH@/@ICU_DATA_FILE@
+ #endif
+-#ifdef MOZ_GTK3
+-@BINPATH@/@DLL_PREFIX@mozgtk@DLL_SUFFIX@
+-@BINPATH@/gtk2/@DLL_PREFIX@mozgtk@DLL_SUFFIX@
+-#endif
+
+ [browser]
+ ; [Base Browser Files]
+# CHANGES MADE IN REVISION 2
+#
+# Hooray GTK+ 3 users! UXP does not play well with Cairo! Therefore we
+# need this separate file. This code was borrowed from mozgtk.c.
+# According to bug # 1271100, basically if you scroll (or do almost anything)
+# while UXP is rendering something on the page, UXP is not designed properly
+# to handle this situation and a race condition results. The race condition
+# ends up with the scratch buffer drawable UXP uses getting deleted. When
+# this happens, the next operation UXP performs is a CopyArea request, to
+# copy the drawable to the actual window where this stuff is getting displayed.
+# The X server recognizes that the drawable has been deleted, signals an
+# error condition, and GTK, which catches the error, throws up its hands and
+# kills the whole #$@% application.
+#
+# This all apparently has something to do with the usage of the X MIT-SHM
+# extension. Apparently by disabling Cairo's, and ultimately GTK's, use
+# of the SHM extension, this bug does not occur. It turns out that the
+# dynamic linker will load this function first and the real function second;
+# Cairo will use this function and failures will be no more. UXP however
+# uses XCB instead of XLib, so UXP still uses SHM.
+#
+# In other words, the Mozilla codebase does not play well with other libraries.
+# Now, the Mozilla and UXP people can say that the other libraries should play
+# well with Mozilla and UXP, but the fact is code should always adapt to error
+# conditions if possible -- error conditions should not adapt to code.
+#
+# But at the very least this stuff works!
+#
+diff -uprN palemoon-28.12.0-original/platform/widget/gtk/gtk3frictionworkarounds.c palemoon-28.12.0-patched/platform/widget/gtk/gtk3frictionworkarounds.c
+--- palemoon-28.12.0-original/platform/widget/gtk/gtk3frictionworkarounds.c 1969-12-31 19:00:00.000000000 -0500
++++ palemoon-28.12.0-patched/platform/widget/gtk/gtk3frictionworkarounds.c 2020-08-21 20:30:01.616049093 -0400
+@@ -0,0 +1,16 @@
++/*
++ * This file was added by Gordon N. Squash. Please see his original patch
++ * for details on what this code is for. If you have not received his patch
++ * then at least understand that THIS IS NOT THE OFFICIAL UXP SOURCE CODE IN
++ * ANY WAY, SHAPE OR FORM: IT IS A PATCHED VERSION. DO NOT CONTACT THE
++ * ORIGINAL DEVELOPERS OF UXP OR MOZILLA FOR SUPPORT OF THIS CODE.
++ */
++
++#include "mozilla/Types.h"
++#include <X11/Xlib.h>
++
++MOZ_EXPORT Bool
++XShmQueryExtension(Display* aDisplay)
++{
++ return False;
++}
+diff -uprN palemoon-28.12.0-original/platform/widget/gtk/moz.build palemoon-28.12.0-patched/platform/widget/gtk/moz.build
+--- palemoon-28.12.0-original/platform/widget/gtk/moz.build 2020-08-20 21:24:39.148073190 -0400
++++ palemoon-28.12.0-patched/platform/widget/gtk/moz.build 2020-08-21 20:31:09.660050615 -0400
+@@ -104,6 +104,7 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2
+ else:
+ UNIFIED_SOURCES += [
+ 'gtk3drawing.cpp',
++ 'gtk3frictionworkarounds.c',
+ 'nsApplicationChooser.cpp',
+ 'WidgetStyleCache.cpp',
+ ]
+
diff --git a/newmoon/debian/patches/UXP-strip-object-files-before-shared-library-linking.patch b/newmoon/debian/patches/UXP-strip-object-files-before-shared-library-linking.patch
new file mode 100644
index 0000000..ee6f1a0
--- /dev/null
+++ b/newmoon/debian/patches/UXP-strip-object-files-before-shared-library-linking.patch
@@ -0,0 +1,39 @@
+# This patch was created by Gordon N. Squash.
+#
+# This patch, when applied, strips unneeded symbols from object files which
+# are about to be linked into a library built as part of the Unified XUL
+# Platform. This is useful to reduce memory consumption during the actual
+# linking process; the author of this patch has noted that stripping component
+# object files before linking into a UXP library often means the linker uses
+# less than a tenth of the memory that it normally would. The author has
+# also noted that with this patch applied, the linking process takes about a
+# tenth as long as it normally would.
+#
+# As far as the author can tell, this patch does not break UXP in any way.
+#
+# WARNING! This is not an official patch in any way, shape or form! Do not
+# contact the original authors of UXP for support of this patch!
+#
+diff -uprN palemoon-28.12.0-original/platform/config/rules.mk palemoon-28.12.0-patched/platform/config/rules.mk
+--- palemoon-28.12.0-original/platform/config/rules.mk 2020-07-30 05:37:13.000000000 -0400
++++ palemoon-28.12.0-patched/platform/config/rules.mk 2020-08-19 14:02:28.300458242 -0400
+@@ -776,9 +776,19 @@ ifdef DTRACE_LIB_DEPENDENT
+ ifndef XP_MACOSX
+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
+ endif
++ifdef ENABLE_STRIP
++ifneq ($(strip $(STATIC_LIBS)),)
++ $(EXPAND_LIBS_EXEC) -- $(STRIP) --strip-unneeded $(STATIC_LIBS)
++endif # $(STATIC_LIBS) != ""
++endif # ENABLE_STRIP
+ $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(RUST_STATIC_LIB_FOR_SHARED_LIB) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(SHLIB_LDENDFILE)
+ @$(RM) $(DTRACE_PROBE_OBJ)
+ else # ! DTRACE_LIB_DEPENDENT
++ifdef ENABLE_STRIP
++ifneq ($(strip $(STATIC_LIBS)),)
++ $(EXPAND_LIBS_EXEC) -- $(STRIP) --strip-unneeded $(STATIC_LIBS)
++endif # $(STATIC_LIBS) != ""
++endif # ENABLE_STRIP
+ $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(STATIC_LIBS) $(RUST_STATIC_LIB_FOR_SHARED_LIB) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(SHLIB_LDENDFILE)
+ endif # DTRACE_LIB_DEPENDENT
+ $(call CHECK_BINARY,$@)
diff --git a/newmoon/debian/patches/pm-devuan.patch b/newmoon/debian/patches/pm-devuan.patch
new file mode 100644
index 0000000..97d7471
--- /dev/null
+++ b/newmoon/debian/patches/pm-devuan.patch
@@ -0,0 +1,59 @@
+diff -Naur Pale-Moon-28.9.0.2_Release/palemoon/base/content/aboutDialog.xul Pale-Moon-28.9.0.2_Release-new/palemoon/base/content/aboutDialog.xul
+--- Pale-Moon-28.9.0.2_Release/palemoon/base/content/aboutDialog.xul 2020-03-25 09:49:13.000000000 -0400
++++ Pale-Moon-28.9.0.2_Release-new/palemoon/base/content/aboutDialog.xul 2020-05-05 09:12:48.776096853 -0400
+@@ -39,9 +39,9 @@
+ <vbox id="aboutHeaderBox" />
+ <vbox id="aboutVersionBox" flex="3">
+ #ifdef HAVE_64BIT_BUILD
+-#expand <label id="aboutVersion">Version: __MOZ_APP_VERSION__ (64-bit)</label>
++#expand <label id="aboutVersion">Version: __MOZ_APP_VERSION__ (64-bit) for Devuan</label>
+ #else
+-#expand <label id="aboutVersion">Version: __MOZ_APP_VERSION__ (32-bit)</label>
++#expand <label id="aboutVersion">Version: __MOZ_APP_VERSION__ (32-bit) for Devuan</label>
+ #endif
+ <label id="distribution" class="text-blurb"/>
+ <label id="distributionId" class="text-blurb"/>
+@@ -53,7 +53,7 @@
+ #ifdef MC_PRIVATE_BUILD
+ This is a private build of Pale Moon. If you did not manually build this copy from source yourself, then please download an official version from the <label class="text-link" href="http://www.palemoon.org/">Pale Moon website</label>.
+ #else
+- <label class="text-link" href="http://www.palemoon.org">Pale Moon</label> is released by <label class="text-link" href="http://www.moonchildproductions.info">Moonchild Productions</label>.
++ This build of newmoon is released by custom.
+ </description>
+ <description class="text-credits text-center">
+ Special thanks to all our supporters and donors for making this browser possible!
+diff -Naur Pale-Moon-28.9.0.2_Release/palemoon/branding/official/content/aboutDialog.css Pale-Moon-28.9.0.2_Release-new/palemoon/branding/official/content/aboutDialog.css
+--- Pale-Moon-28.9.0.2_Release/palemoon/branding/official/content/aboutDialog.css 2020-03-25 09:49:13.000000000 -0400
++++ Pale-Moon-28.9.0.2_Release-new/palemoon/branding/official/content/aboutDialog.css 2020-05-05 09:02:38.318463672 -0400
+@@ -21,8 +21,6 @@
+ }
+
+ #aboutTextBox {
+- animation: 3s fadeIn;
+- animation-fill-mode: forwards;
+ text-shadow: 1px 1px 0px #9ABCD5;
+ color: #101020;
+ }
+diff -Naur Pale-Moon-28.9.0.2_Release/palemoon/branding/official/locales/en-US/brand.dtd Pale-Moon-28.9.0.2_Release-new/palemoon/branding/official/locales/en-US/brand.dtd
+--- Pale-Moon-28.9.0.2_Release/palemoon/branding/official/locales/en-US/brand.dtd 2020-03-25 09:49:13.000000000 -0400
++++ Pale-Moon-28.9.0.2_Release-new/palemoon/branding/official/locales/en-US/brand.dtd 2020-05-05 08:28:53.071897555 -0400
+@@ -1,4 +1,4 @@
+-<!ENTITY brandShortName "Pale Moon">
+-<!ENTITY brandFullName "Pale Moon">
+-<!ENTITY vendorShortName "Moonchild">
++<!ENTITY brandShortName "newmoon">
++<!ENTITY brandFullName "newmoon">
++<!ENTITY vendorShortName "custom">
+ <!ENTITY trademarkInfo.part1 "The Pale Moon logo and project names are trademarks of Moonchild Productions (M.C. Straver BASc). All rights reserved.">
+diff -Naur Pale-Moon-28.9.0.2_Release/palemoon/branding/official/locales/en-US/brand.properties Pale-Moon-28.9.0.2_Release-new/palemoon/branding/official/locales/en-US/brand.properties
+--- Pale-Moon-28.9.0.2_Release/palemoon/branding/official/locales/en-US/brand.properties 2020-03-25 09:49:13.000000000 -0400
++++ Pale-Moon-28.9.0.2_Release-new/palemoon/branding/official/locales/en-US/brand.properties 2020-05-05 08:28:07.923487413 -0400
+@@ -1,5 +1,5 @@
+-brandShortName=Pale Moon
+-brandFullName=Pale Moon
+-vendorShortName=Moonchild
++brandShortName=newmoon
++brandFullName=newmoon
++vendorShortName=custom
+
+ syncBrandShortName=Sync
diff --git a/newmoon/debian/patches/pm-to-nm.patch b/newmoon/debian/patches/pm-to-nm.patch
new file mode 100644
index 0000000..d895072
--- /dev/null
+++ b/newmoon/debian/patches/pm-to-nm.patch
@@ -0,0 +1,392 @@
+Date: 2020-08-18
+Purpose: Use newmoon branding instead of palemoon
+##############################
+
+Message: This changes the application to use ~/.config/newmoon instead of some other directory.
+diff -aur Pale-Moon/palemoon/app/application.ini Pale-Moon.new/palemoon/app/application.ini
+--- Pale-Moon/palemoon/app/application.ini 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/app/application.ini 2020-08-25 10:41:14.038625499 -0400
+@@ -20,10 +20,10 @@
+
+ [App]
+ # Vendor=@MOZ_APP_VENDOR@
+-Vendor=Moonchild Productions
++Vendor=Config
+ # Name=@MOZ_APP_BASENAME@
+-Name=Pale Moon
+-RemotingName=@MOZ_APP_REMOTINGNAME@
++Name=newmoon
++RemotingName=newmoon
+ #ifdef MOZ_APP_DISPLAYNAME
+ CodeName=@MOZ_APP_DISPLAYNAME@
+ #endif
+@@ -47,4 +47,4 @@
+ [XRE]
+ #ifdef MOZ_PROFILE_MIGRATOR
+ EnableProfileMigrator=1
+-#endif
+\ No newline at end of file
++#endif
+#############################
+
+Message: This set changes the name of the application.
+Made with approximately:
+$ cd Palemoon.new/palemoon/branding/unofficial
+$ sed -i -r -e 's/New Moon/newmoon/ig;' $( grep -l -riIE 'new moon' )
+$ sed -i -r -e 's/pale/new/g;' newmoon.desktop
+diff -aur Pale-Moon/palemoon/branding/unofficial/branding.nsi Pale-Moon.new/palemoon/branding/unofficial/branding.nsi
+--- Pale-Moon/palemoon/branding/unofficial/branding.nsi 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/unofficial/branding.nsi 2020-08-22 13:39:41.676568689 -0400
+@@ -8,7 +8,7 @@
+
+ # BrandFullNameInternal is used for some registry and file system values
+ # instead of BrandFullName and typically should not be modified.
+-!define BrandFullNameInternal "New Moon"
++!define BrandFullNameInternal "newmoon"
+ !define CompanyName "Moonchild Productions"
+ !define URLInfoAbout "http://www.palemoon.org"
+ !define URLUpdateInfo "http://www.palemoon.org"
+diff -aur Pale-Moon/palemoon/branding/unofficial/configure.sh Pale-Moon.new/palemoon/branding/unofficial/configure.sh
+--- Pale-Moon/palemoon/branding/unofficial/configure.sh 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/unofficial/configure.sh 2020-08-22 13:39:41.676568689 -0400
+@@ -2,4 +2,4 @@
+ # 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/.
+
+-MOZ_APP_DISPLAYNAME="New Moon"
++MOZ_APP_DISPLAYNAME="newmoon"
+diff -aur Pale-Moon/palemoon/branding/unofficial/locales/en-US/brand.dtd Pale-Moon.new/palemoon/branding/unofficial/locales/en-US/brand.dtd
+--- Pale-Moon/palemoon/branding/unofficial/locales/en-US/brand.dtd 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/unofficial/locales/en-US/brand.dtd 2020-08-22 13:39:41.676568689 -0400
+@@ -2,7 +2,7 @@
+ - 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/. -->
+
+-<!ENTITY brandShortName "New Moon">
+-<!ENTITY brandFullName "New Moon">
++<!ENTITY brandShortName "newmoon">
++<!ENTITY brandFullName "newmoon">
+ <!ENTITY vendorShortName "a community developer">
+ <!ENTITY trademarkInfo.part1 " ">
+diff -aur Pale-Moon/palemoon/branding/unofficial/locales/en-US/brand.properties Pale-Moon.new/palemoon/branding/unofficial/locales/en-US/brand.properties
+--- Pale-Moon/palemoon/branding/unofficial/locales/en-US/brand.properties 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/unofficial/locales/en-US/brand.properties 2020-08-22 13:39:41.676568689 -0400
+@@ -2,8 +2,8 @@
+ # 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/.
+
+-brandShortName=New Moon
+-brandFullName=New Moon
++brandShortName=newmoon
++brandFullName=newmoon
+ vendorShortName=Moonchild
+
+ syncBrandShortName=Sync
+diff -aur Pale-Moon/palemoon/branding/unofficial/newmoon.desktop Pale-Moon.new/palemoon/branding/unofficial/newmoon.desktop
+--- Pale-Moon/palemoon/branding/unofficial/newmoon.desktop 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/unofficial/newmoon.desktop 2020-08-22 19:22:15.505363587 -0400
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+-Name=New Moon
++Name=newmoon
+ GenericName=Web Browser
+ GenericName[ar]=متصفح ويب
+ GenericName[ast]=Restolador Web
+@@ -81,15 +81,15 @@
+ Comment[vi]=Để duyệt các trang web
+ Comment[zh_CN]=浏览互联网
+ Comment[zh_TW]=瀏覽網際網路
+-Exec=palemoon %u
++Exec=newmoon %u
+ Terminal=false
+ Type=Application
+-Icon=palemoon
++Icon=newmoon
+ Categories=Network;WebBrowser;
+ MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
+ StartupNotify=false
+ Actions=NewTab;NewWindow;NewPrivateWindow;
+-StartupWMClass="new moon"
++StartupWMClass="newmoon"
+
+ [Desktop Action NewTab]
+ Name=Open new tab
+@@ -176,7 +176,7 @@
+ Name[xh]=Vula ithebhu entsha
+ Name[zh_CN]=打开新标签页
+ Name[zh_TW]=開啟新分頁
+-Exec=palemoon -new-tab
++Exec=newmoon -new-tab
+
+ [Desktop Action NewWindow]
+ Name=Open new window
+@@ -263,7 +263,7 @@
+ Name[xh]=Vula iwindow entsha
+ Name[zh_CN]=打开新窗口
+ Name[zh_TW]=開啟新視窗
+-Exec=palemoon -new-window
++Exec=newmoon -new-window
+
+ [Desktop Action NewPrivateWindow]
+ Name=New private window
+@@ -350,4 +350,4 @@
+ Name[xh]=Ifestile yangasese entsha
+ Name[zh_CN]=新建隐私浏览窗口
+ Name[zh_TW]=新增隱私視窗
+-Exec=palemoon -private-window
++Exec=newmoon -private-window
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/browser/palemoon.dtd Pale-Moon.new/palemoon/locales/en-US/chrome/browser/palemoon.dtd
+--- Pale-Moon/palemoon/locales/en-US/chrome/browser/palemoon.dtd 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/browser/palemoon.dtd 2020-08-25 10:37:02.679470445 -0400
+@@ -3,13 +3,11 @@
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+ <!ENTITY chronicles.title.66.1
+-'The Chronicles of the Pale Moon, 66:1'>
++'newmoon'>
+
+ <!ENTITY chronicles.quote.66.1
+-'The <em>landscape changed</em> as time went on: flowing, twisting, corrupting. The dull sheen of <em>tainted metal</em> shining through everywhere.<br/>
+-In the trees, roots, animals, and even the <em>mountainous valleys</em> that had always been an <em>oasis of difference</em>.<br/>
+-Still, our dragon continued, untainted and resolute, soaring above.<br/>
+-There would be a home yet, <em>a sanctuary</em>, a place for all those not given in to this <em>singular</em> invading force that was <em>misshaping</em> the world.'>
++'custom build<br/>'
++>
+
+ <!ENTITY chronicles.from.66.1
+-'from <strong>The Chronicles of the Pale Moon,</strong> 66:1'>
++'custom build'>
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/browser/preferences/tabs.dtd Pale-Moon.new/palemoon/locales/en-US/chrome/browser/preferences/tabs.dtd
+--- Pale-Moon/palemoon/locales/en-US/chrome/browser/preferences/tabs.dtd 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/browser/preferences/tabs.dtd 2020-08-25 10:36:14.030859348 -0400
+@@ -31,6 +31,6 @@
+ <!ENTITY newtabPage.label "When opening a new tab, show:">
+ <!ENTITY newtabPage.custom.label "A custom URL">
+ <!ENTITY newtabPage.blank.label "A blank page">
+-<!ENTITY newtabPage.home.label "The Pale Moon start page">
++<!ENTITY newtabPage.home.label "The newmoon start page">
+ <!ENTITY newtabPage.myhome.label "My home page">
+ <!ENTITY newtabPage.quickdial.label "The Quickdial page">
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-overlay.dtd Pale-Moon.new/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-overlay.dtd
+--- Pale-Moon/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-overlay.dtd 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-overlay.dtd 2020-08-25 10:35:58.006658061 -0400
+@@ -5,6 +5,6 @@
+ <!ENTITY status4evar.throbber.widget.title "Activity Indicator">
+ <!ENTITY status4evar.download.widget.title "Download Status">
+ <!ENTITY status4evar.options.widget.title "Status Bar Preferences">
+-<!ENTITY status4evar.options.widget.label "Pale Moon status bar">
++<!ENTITY status4evar.options.widget.label "newmoon status bar">
+ <!ENTITY status4evar.menu.options.label "Status Bar Preferences">
+
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-prefs.dtd Pale-Moon.new/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-prefs.dtd
+--- Pale-Moon/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-prefs.dtd 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/browser/statusbar/statusbar-prefs.dtd 2020-08-25 10:36:02.982720569 -0400
+@@ -1,4 +1,4 @@
+-<!ENTITY status4evar.window.title "Pale Moon status bar preferences">
++<!ENTITY status4evar.window.title "newmoon status bar preferences">
+
+ <!ENTITY status4evar.pane.status "Status">
+ <!ENTITY status4evar.pane.progress "Progress">
+@@ -33,7 +33,7 @@
+ <!ENTITY status4evar.option.no-repeat "No Repeat">
+ <!ENTITY status4evar.option.space "Space">
+ <!ENTITY status4evar.option.round "Round">
+-<!ENTITY status4evar.option.firefoxdefault "Pale Moon default">
++<!ENTITY status4evar.option.firefoxdefault "newmoon default">
+ <!ENTITY status4evar.option.download.library "Library">
+ <!ENTITY status4evar.option.download.tab "Tab">
+ <!ENTITY status4evar.option.download.thirdparty "3rd Party">
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/browser/syncBrand.dtd Pale-Moon.new/palemoon/locales/en-US/chrome/browser/syncBrand.dtd
+--- Pale-Moon/palemoon/locales/en-US/chrome/browser/syncBrand.dtd 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/browser/syncBrand.dtd 2020-08-25 10:36:09.222798953 -0400
+@@ -3,4 +3,4 @@
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+ <!ENTITY syncBrand.shortName.label "Sync">
+-<!ENTITY syncBrand.fullName.label "Pale Moon Sync">
++<!ENTITY syncBrand.fullName.label "newmoon Sync">
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/browser/syncSetup.properties Pale-Moon.new/palemoon/locales/en-US/chrome/browser/syncSetup.properties
+--- Pale-Moon/palemoon/locales/en-US/chrome/browser/syncSetup.properties 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/browser/syncSetup.properties 2020-08-25 10:37:10.675570887 -0400
+@@ -38,7 +38,7 @@
+ addonsCount.label = #1 addon;#1 addons
+
+ save.recoverykey.title = Save Recovery Key
+-save.recoverykey.defaultfilename = Pale Moon Recovery Key.html
++save.recoverykey.defaultfilename = newmoon Recovery Key.html
+
+ newAccount.action.label = Sync is now set up to automatically sync all of your browser data.
+ newAccount.change.label = You can choose exactly what to sync by selecting Sync Options below.
+diff -aur Pale-Moon/palemoon/locales/en-US/chrome/overrides/appstrings.properties Pale-Moon.new/palemoon/locales/en-US/chrome/overrides/appstrings.properties
+--- Pale-Moon/palemoon/locales/en-US/chrome/overrides/appstrings.properties 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/chrome/overrides/appstrings.properties 2020-08-25 10:35:52.150584503 -0400
+@@ -3,24 +3,24 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ malformedURI=The URL is not valid and cannot be loaded.
+-fileNotFound=Pale Moon can't find the file at %S.
+-dnsNotFound=Pale Moon can't find the server at %S.
+-unknownProtocolFound=Pale Moon doesn't know how to open this address, because the protocol (%S) isn't associated with any program.
+-connectionFailure=Pale Moon can't establish a connection to the server at %S.
++fileNotFound=newmoon can't find the file at %S.
++dnsNotFound=newmoon can't find the server at %S.
++unknownProtocolFound=newmoon doesn't know how to open this address, because the protocol (%S) isn't associated with any program.
++connectionFailure=newmoon can't establish a connection to the server at %S.
+ netInterrupt=The connection to %S was interrupted while the page was loading.
+ netTimeout=The server at %S is taking too long to respond.
+-redirectLoop=Pale Moon has detected that the server is redirecting the request for this address in a way that will never complete.
++redirectLoop=newmoon has detected that the server is redirecting the request for this address in a way that will never complete.
+ ## LOCALIZATION NOTE (confirmRepostPrompt): In this item, don't translate "%S"
+ confirmRepostPrompt=To display this page, %S must send information that will repeat any action (such as a search or order confirmation) that was performed earlier.
+ resendButton.label=Resend
+-unknownSocketType=Pale Moon doesn't know how to communicate with the server.
++unknownSocketType=newmoon doesn't know how to communicate with the server.
+ netReset=The connection to the server was reset while the page was loading.
+ notCached=This document is no longer available.
+-netOffline=Pale Moon is currently in offline mode and can't browse the Web.
++netOffline=newmoon is currently in offline mode and can't browse the Web.
+ isprinting=The document cannot change while Printing or in Print Preview.
+-deniedPortAccess=This address uses a network port which is normally used for purposes other than Web browsing. Pale Moon has canceled the request for your protection.
+-proxyResolveFailure=Pale Moon is configured to use a proxy server that can't be found.
+-proxyConnectFailure=Pale Moon is configured to use a proxy server that is refusing connections.
++deniedPortAccess=This address uses a network port which is normally used for purposes other than Web browsing. newmoon has canceled the request for your protection.
++proxyResolveFailure=newmoon is configured to use a proxy server that can't be found.
++proxyConnectFailure=newmoon is configured to use a proxy server that is refusing connections.
+ contentEncodingError=The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.
+ unsafeContentType=The page you are trying to view cannot be shown because it is contained in a file type that may not be safe to open. Please contact the website owners to inform them of this problem.
+ externalProtocolTitle=External Protocol Request
+@@ -32,6 +32,6 @@
+ cspBlocked=This page has a content security policy that prevents it from being embedded in this way.
+ xssBlockMode=This page contains an XSS attack that has been blocked for your security.
+ corruptedContentError=The page you are trying to view cannot be shown because an error in the data transmission was detected.
+-remoteXUL=This page uses an unsupported technology that is no longer available by default in Pale Moon.
++remoteXUL=This page uses an unsupported technology that is no longer available by default in newmoon.
+ ## LOCALIZATION NOTE (sslv3Used) - Do not translate "%S".
+-sslv3Used=Pale Moon cannot guarantee the safety of your data on %S because it uses SSLv3, a broken security protocol.
++sslv3Used=newmoon cannot guarantee the safety of your data on %S because it uses SSLv3, a broken security protocol.
+diff -aur Pale-Moon/palemoon/locales/en-US/searchplugins/duckduckgo-palemoon.xml Pale-Moon.new/palemoon/locales/en-US/searchplugins/duckduckgo-palemoon.xml
+--- Pale-Moon/palemoon/locales/en-US/searchplugins/duckduckgo-palemoon.xml 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/searchplugins/duckduckgo-palemoon.xml 2020-08-25 10:35:10.570062193 -0400
+@@ -6,7 +6,7 @@
+ <LongName>Search Plugin for DuckDuckGo (HTTPS version)</LongName>
+ <Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA11RgALs6oACbQ9wAj0v8AI9L/ACfQ9wAu0agANdUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzzN4CNdL/oK/z//////////////////////+jsPv/BDXX/wAz0t4AAAAAAAAAAAAAAAAAAAAAAAAAAAAyzvNSduD//////8jK/v+P+Lf/IbQL/17RPP+J3Y//wOKX//////9YeuX/ADLO8wAAAAAAAAAAAAAAAAAw091piOX/8/X9/1Fx5P9xhu//WOWZ/0W9Lv9Lwjn/J8BB/xyDAP9bdfL/9fP//2mI5v8AMNPdAAAAAAc610YRQ9f//////0Zr4P8AGdD/sb32////////////wrv//wAh1/8MPab/ACPc/05r4///////EkPX/wc610YANtWkrr/y/6S48P8AJ9L/AB3R/+/w/v///////////3+D7f8AQeL/AYTw/wFr5/8AMNb/p7Tv/6698v8AM9WkADLW//////8yXt//AC3V/wAw1/////////////z///8A0P7/AKb1/wWI7P8AuPf/AJ3w/zZW3P//////ADHV/wAx2P//////AzrZ/wAu1/84ZOL////////////e////AND//wC1+f8Atff/AZbv/wY62f8ELNf//////wAw1/8AMtn//////wAw2f8ALNn/kKrz////+//cwbH////////////R////Rcb8/wDO/f8A/P//AHzo//////8AMNj/ADXa//////8vXuL/ACna/4yq9///79T/jUkg/9i+r///////r2Q0/7Cozv8BKdr/AirY/zdZ4P//////ADTa/wI72tOuv/T/prr0/wAl2v+JqPb//7yW/+bUxv/9+/n////u//W+n/+Op/L/ADPd/wAv2v+ru/T/r7/0/wI72tMLQd1DEEjg//////9Cbef/ADng///////////////////////R3///AC3g/wAy3v9SeOn//////xFI4P8LQd1DAAAAAAM64PNmiuz/9/j//2mN7f/m7P3///////////9Cb+n/ACXd/wAt3v9rju3//////2iL7P8DOuDzAAAAAAAAAAAAAAAAAT3g/0p16f//////3OT8/3OS7v8AKt3/ACPc/zhn5/+xw/b//////0956v8CPeD/AAAAAAAAAAAAAAAAAAAAAAAAAAAEPODzBUDh/5uz8//7/f7/////////////////prz0/wtF4v8FQeDzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtF5kYDQOOkADrj/wA44v8AOeP/ADzk/wVB46QPReZGAAAAAAAAAAAAAAAAAAAAAPAPAADgBwAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAADAAwAA4AcAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAATCwAAEwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChIzyAnRNFwJ0TQryND0d8nRNH/J0TR/ydE0f8nRNH/I0PR3ydE0K8nRNFwKEjPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChE00AlRdK/J0XS/ydF0v8nRdL/XXPd/11z3f94i+P/k6Lp/5Oi6f9rf+D/NVDV/ydF0v8nRdL/JUXSvyhE00AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAzxAnRNOvJ0XT/ydF0/8lRdK/KEXSYOvu+6/+/v6//v7+v/39/c////////////7+/r/J0fOAKEXSYCVF0r8nRdP/J0XT/ydE068gQM8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlRdUwJ0bT7ydG0/8nRtHPKETTQAAAAADHx8dA2vHhn5TYpN/o9+z/////////////////8PL83ydG0o8lRdUwAAAAAChE00AnRtHPJ0bT/ydG0+8lRdUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKEXVYCdG1P8nRtT/KEbTgAAAAAAmRtZQI0PU38jIyP/F6s//Rrtk/0a7ZP9/yIr/c796/4vLkv+JpNf/M3Kq/zyWh/8zeKTfJkbWUAAAAAAoRtOAJ0bU/ydG1P8oRdVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVF1TAnR9X/J0fV/yhF1WAgQM8QJ0fTrydH1f9CW8//2tra/6Pdsv9Gu2T/Rrtk/0WzWv9Gu2T/Rrtk/0a7ZP9Gu2T/Rrtk/z6egP8nR9X/J0fTryBAzxAoRdVgJ0fV/ydH1f8lRdUwAAAAAAAAAAAAAAAAAAAAAAAAAAAgQM8QJ0fV7ydH1f8oSNVgIEDPECdH1c8nR9X/J0fV/1xwyf/t7e3/o92y/0a7ZP9Gu2T/Ra5U/0a7ZP9Gu2T/Rrtk/0a7ZP9Gu2T/Pp6A/ydH1f8nR9X/J0fVzyBAzxAoSNVgJ0fV/ydH1e8gQM8QAAAAAAAAAAAAAAAAAAAAACdH1q8nR9b/KEjVgCBQzxAnR9bPJ0fW/ydH1v8nR9b/gIzB//r6+v+j3bL/Rrtk/13Ed/+i26//ruG7/z6egf8+noH/Rrtk/0a7ZP86kI//J0fW/ydH1v8nR9b/J0fWzyBQzxAoSNWAJ0fW/ydH1q8AAAAAAAAAAAAAAAAoSNdAJkjW/yZH1s8AAAAAJEfWryZI1v8mSNb/JkjW/yZI1v+jqsT//////+j37P/R7tj////////////W3ff/JkjW/yZI1v8uZbr/PJeI/zJzrP8mSNb/JkjW/yZI1v8mSNb/JEfWrwAAAAAmR9bPJkjW/yhI10AAAAAAAAAAACVI1r8mSNf/KEjXQCZJ1lAmSNf/JkjX/yZI1/8mSNf/JkjX/9HR0f///////////////////////////5Ok6/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JkjX/yZI1/8mSNf/JknWUChI10AmSNf/JUjWvwAAAAAoSNcgJknY/yZH2M8AAAAAI0nY3yZJ2P8mSdj/JknY/yZJ2P9KZM//39/f////////////////////////////XHfi/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8mSdj/JknY/yZJ2P8jSdjfAAAAACZH2M8mSdj/KEjXICdJ2HAmSdj/JUjXYCVK2jAmSdj/JknY/yZJ2P8mSdj/JknY/2V4yf/t7e3///////////////////////////9cd+L/HXTj/xSf7/8Nwfj/CdL8/wnS/P8J0vz/ELDz/xt85v8mSdj/JknY/yZJ2P8lStowJUjXYCZJ2P8nSdhwJErZryZK2f8oSNcgJUnajyZK2f8mStn/JkrZ/yZK2f8mStn/iJPA////////////////////////////0ff+/xjV/P8J0vz/Drn1/xiO6/8Yjuv/GI7r/xCw8/8Lyvr/CdL8/xmF6P8mStn/JkrZ/yVJ2o8oSNcgJkrZ/yRK2a8jStrfI0rZ3wAAAAAlSdq/Jkra/yZK2v8mStr/Jkra/yZK2v+xtsf///////////////////////////8o2Pz/CdL8/wvK+v8mStr/Jkra/yZK2v8mStr/Jkra/yZK2v8iW97/Jkra/yZK2v8mStr/JUnavwAAAAAjStnfI0ra3yZK2v8lSdq/AAAAACZH2O8mStr/Jkra/yZK2v8mStr/L1HY/9HR0f///////////////////////////yjY/P8J0vz/CdL8/xCw9P8QsPT/ELD0/xSf7/8ddeX/Jkra/yZK2v8mStr/Jkra/yZK2v8mR9jvAAAAACVJ2r8mStr/Jkvb/yVJ2r8AAAAAJkvb/yZL2/8mS9v/Jkvb/yZL2/9KZtL/4+Pj////////////////////////////4Pn//0fd/f8J0vz/CdL8/wnS/P8J0vz/CdL8/wnS/P8Lyvr/Fpfu/yJc3/8mS9v/Jkvb/yZL2/8AAAAAJUnavyZL2/8mS9z/JUncvwAAAAAmS9z/Jkvc/yZL3P8mS9z/Jkvc/26AyP/x8fH//////////////////////////////////////9H3/v/C9P7/o+7+/2fa+/8Oufb/CdL8/wnS/P8J0vz/CdL8/xiP7P8mS9z/Jkvc/wAAAAAlSdy/Jkvc/yZM3P8lTNy/AAAAACZJ2e8mTNz/Jkzc/yZM3P8mTNz/iJTB////////////qnth/5VaOf/x6eX///////////////////////Hp5f/x6eX/ydL2/yZM3P8kVN7/G37o/xKo8v8QsfT/HXbm/yZM3P8mSdnvAAAAACVM3L8mTNz/I0vc3yZJ2u8AAAAAJUzevyZM3f8mTN3/Jkzd/yZM3f+fqc3///////////+VWjn/v5yI/+re1///////////////////////jk8s/7iRe//J0vb/Jkzd/yZM3f8mTN3/Jkzd/yZM3f8mTN3/Jkzd/yVM3r8AAAAAI0vc3yNL3N8kTd2vJk3d/yhQ3yAlTd2PJk3d/yZN3f8mTd3/Jk3d/6St0v////////////Hp5f/q3tf///////////////////////////+xhm7/49PK/6Cx8P8mTd3/Jk3d/yZN3f8mTd3/Jk3d/yZN3f8mTd3/JU3djyhQ3yAmTd3/JE3drydN33AmTd7/J03fcCVK3zAmTd7/Jk3e/yZN3v8mTd7/pK7S///////Sp5r/////////////////////////////////////////////////T27k/yZN3v8mTd7/Jk3e/yZN3v8mTd7/Jk3e/yZN3v8lSt8wJ03fcCZN3v8nTd9wKFDfICZO3/8mTt3PAAAAACVN3r8mTt//Jk7f/yZO3/+EltX//////+fRyv/SqaD/59LO///////////////////////at63/vIBy/7Glxf8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8mTt//JU3evwAAAAAmTt3PJk7f/yhQ3yAAAAAAJE/dryZO3/8oUN9AKFDfQCZO3/8mTt//Jk7f/zhb2v/o6/T/////////////////////////////////////////////////XHrn/yZO3/8mTt//Jk7f/yZO3/8mTt//Jk7f/yZO3/8oUN9AKFDfQCZO3/8kT92vAAAAAAAAAAAoUN9AJk7g/yZO4M8AAAAAJk/hnyZO4P8mTuD/Jk7g/05v5v/k6fv//////////////////////////////////////3eR7P8mTuD/Jk7g/yZO4P8mTuD/Jk7g/yZO4P8mTuD/Jk/hnwAAAAAmTuDPJk7g/yhQ30AAAAAAAAAAAAAAAAAjT+GfJU/h/yVO4Y8gUN8QIk7gzyVP4f8lT+H/SWnW/0lp1v+bq+H/8fHx/////////////////6Cy8v9OcOb/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yJO4M8gUN8QJU7hjyVP4f8jT+GfAAAAAAAAAAAAAAAAAAAAACBQ3xAlTOHvJU/h/yVQ4mAgUN8QIk7hzyVP4f+ktOv///////////////////////H0/f9phur/JU/h/yVP4f8lT+H/JU/h/yVP4f8lT+H/JU/h/yVP4f8iTuHPIFDfECVQ4mAlT+H/JUzh7yBQ3xAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ3zAlUOLvJVDi/yVQ4mAgUN8QI1Din4mb2//J0/j/ydP4/6299P93ku3/M1vk/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/I1DinyBQ3xAlUOJgJVDi/yVQ4u8lUN8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ5DAlUOLvJVDi/yVQ4o8AAAAAJFDjQCVQ4r8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDi/yVQ4v8lUOL/JVDivyRQ40AAAAAAJVDijyVQ4v8lUOLvJVDkMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVQ5DAjUeTfJVHj/yNR5N8kUONAAAAAACVQ5DAmUuOAJVHivyNR5N8lUeP/JVHj/yNR5N8lUeK/JlLjgCVQ5DAAAAAAJFDjQCNR5N8lUeP/I1Hk3yVQ5DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBQ3xAjUuSfJVHk/yVR5P8jUeTfJFLkcChQ5yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoUOcgJFLkcCNR5N8lUeT/JVHk/yNS5J8gUN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkUONAI1LknyVS5P8lUuT/JVLk/yVS5O8lUeS/JVHkvyVR5L8lUeS/JVLk7yVS5P8lUuT/JVLk/yRS468kUONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFDfECVS5GAjUuWfIlPlzyVS5f8lUuX/JVLl/yVS5f8iU+XPI1LlnyVS5GAgUN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/ggBB/wgAEP4AAAB8AAAAPAAAADiAAAEYAAAAEQAAAIAAAAAAAAAAAgAAAEIAAABCAAAAQgAAAEIAAABCAAAAQAAAAAAAAAABAAAAiAAAABiAAAEcAAAAPAAAAD4AAAB/CAAQ/4IAQf/AfgP/8AAP//wAP/</Image>
+ <Url type="text/html" method="get" template="https://duckduckgo.com/">
+- <Param name="t" value="palemoon"/>
++ <Param name="t" value="newmoon"/>
+ <Param name="q" value="{searchTerms}"/>
+ </Url>
+ <Url type="application/x-suggestions+json" method="GET" template="https://duckduckgo.com/ac/">
+diff -aur Pale-Moon/palemoon/locales/en-US/searchplugins/ekoru.xml Pale-Moon.new/palemoon/locales/en-US/searchplugins/ekoru.xml
+--- Pale-Moon/palemoon/locales/en-US/searchplugins/ekoru.xml 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/locales/en-US/searchplugins/ekoru.xml 2020-08-25 10:35:21.254196398 -0400
+@@ -5,6 +5,6 @@
+ <InputEncoding>UTF-8</InputEncoding>
+ <LongName>Ekoru Search</LongName>
+ <Image height="16" width="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABMLAAATCwAAAAAAAAAAAAAAAAAAxKIkAKyyPgLUmhFN2JkKwtKfEObJoxrvyaQb8NCgEenTmQvTzJQRe8CUHg/FlBYAkpLMAAAAAAAAAAAAxaEoABa5/wDUng9Z1aAJ562pI/96skP+Y7RQ9mS1Uvh3tEX/qaoi/82eB/rOmQycyJQaEsqWFQAAAAAAAAAAANagBwDSnxA606EJ45OuNP9Qt1neQbVYdDyyWDs/s1dDQrdcgFC6ZN2Psjj/zKQF/s2fCoqunzsIt54sDv9tAADQnSQN158IsJ+tKv9Ot1XiRq9QPuShCg63qiY9uqsnPt2fEA1Cs2MyTLtt0JyyLP/OpQTrvKUcR6enKnnMnhce2J4NUMalEfJht1T+Q7RTc7yqIjaKt07BZsBv+GnAbveAu1q6q687Jz65cE9hu2D1vakO/8ilCoiRqjKNw6AaddyhCKOprCX/Sblf2oesM0CTtkTMT8SC6z7Fj347xpRrSMiQ2nLAcKpxrUsYS71wx6KxK//Opge2gqs2d7ykGb7dpAjdkK82/0S1WqqxrCNzar9q/z3EioS3aWABMtSuADrKoHBVypPToLBFFUW9d6OLtkP/zKgKx3+uNW26phfk2aUG+YaxO/9Es1mHq64sj1jDfP8+wYJmQ9G0J0DOqmNBzqOrWMmRkp+WKwZCvnuniLZI/8enCrt8rz1xv6YW99mlBfuJsTr/RLRbd7KtJ4JiwnT/QMODlVLHmgtMzaNRWcmTXIC+chFEum0kRMN/2pqzO//FqA+Sd68/iMWjE/jcpgbilq80/0K4Yoi/qRxQhrlS+kLGi+ZDvHxMZpdOBGWRPAJGu3YnPcSEql/CcP+1rh/wqakiUISuNrzQogzc3KQHpLarH/9Rt1vCg6gzIK6vJ7Z1vmH/RsWK7UHDi7o9xYm0QMeM4VfEfP+hszT9w6gWilOzU1GfrCbz1qEKldajD0vTpgrweLNE+EK0WF3Cqhsota8jupi2QPt/u1r/eb1c/4u5TP+rsSruwKwXh2axRjJ4sTzHxaUQ59ifEDnMoSkJ2qIJobioGf9gtE/hQbRUTbKoJxW+qx1YuasdkbusGZ7CrBh8vaocOk+xUDR2sDu7vacT/tagCoOvmU8C1qAQANSfFifXnwjMtKgd/2qzRe5Os1CaQbNTTT2yUjRBsFI3QLJST1aySI2GrjDhwqUQ/9afCLDTnBwU1J0XALqZOwDhowAA0p4VLdafCazGpA/zpaoi/4yuLvt7rzTyfK408o2sLfuwqBn/0aMH8digCZbRnBgb1Z0OAK2OZwAAAAAAqIddAMqeEADHmyAM1Z4OUdegB6bUoQbe0aIH+NGiB/vWoAjj1Z8IqdafD0zQoyEI06MYAAAAAAAAAAAAwA8AAIAHAACAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAADAAwAA4AcAAA==</Image>
+- <Url type="text/html" method="get" template="https://www.ekoru.org/?ext=palemoon&amp;q={searchTerms}"/>
+- <Url type="application/x-suggestions+json" template="https://ac.ekoru.org/?ext=palemoon&amp;q={searchTerms}"/>
++ <Url type="text/html" method="get" template="https://www.ekoru.org/?ext=newmoon&amp;q={searchTerms}"/>
++ <Url type="application/x-suggestions+json" template="https://ac.ekoru.org/?ext=newmoon&amp;q={searchTerms}"/>
+ </OpenSearchDescription>
+#######################################
+
+Message: Fix the bookmarks
+I used newmoon itself to save a bookmark, and then export the bookmarks to an html file. Then I grabbed the relevant entries and placed them here. Also, I move the "Most Visited" link to bookmarks menu and not on the toolbar.
+diff -aur Pale-Moon/palemoon/locales/generic/profile/bookmarks.html.in Pale-Moon.new/palemoon/locales/generic/profile/bookmarks.html.in
+--- Pale-Moon/palemoon/locales/generic/profile/bookmarks.html.in 2020-08-23 07:27:49.208091003 -0400
++++ Pale-Moon.new/palemoon/locales/generic/profile/bookmarks.html.in 2020-08-23 07:28:41.640742172 -0400
+@@ -11,9 +11,6 @@
+ <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">@bookmarks_toolbarfolder@</H3>
+ <DD>@bookmarks_toolbarfolder_description@
+ <DL><p>
+- <DT><A HREF="http://www.palemoon.org/" ICON_URI="http://www.palemoon.org/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfjBQQNKi3s6zvVAAAAB3RJTUUH4wUFDiY4QniqfgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAn1JREFUeNpVU9FKW0EUnLO7NzdFY5uqRSMSoSj1F/paP0EEoU/2H/pWIkiLX+GzH5HnQj9BENQqpSgWkdbeu/fubudsCKQ3CSS7M3PmzDmRb5f3mH1SShsGcmAF7wTYaGMC35cQjBNwYoxczeJlKpASrAFGHYOP3cKUJMO3Cb4JMPwhIggJdZNwLEaOKBiU52bIp73S7jp+iyyJFNG2/JBlSBYC6KrsWhnR1XYQ2Sc1GuRKcTTXMbudwqpcfokxUPtamV/heGWdgaVKYWXPpvRp0sLF/ZB3Z72uKx0B3ocswis8VQ0CRf7yTMWflRZTh00bq1awpS18IK8kXltBQWDbBroK2X7Byxc9m9tIk7Qyju66EThwjHhHyS3DQpG0dSYVEELM9rWdyKskmmDMEpaphjpAnOw4VhuayAMGBi85cX0UzF7xVEfUdJNyV5Ltu5wNYIJsOK1GPji6TFKBkm3wJxq6iLQkMWVXhkmqkAktHHF/qgDnfXsZUhi03mTVqm7gFKiDzuPUXWg4FabPqbdRRVWcZOcuiJXx02P1VgjU8HJM2rtWysFOzh1dcXSaPizolEKdue5Yvp7fDn+efz+LtS81Bt2YIHn1Jn0SqLO31ubwtLzlGfekerm5vuWss1fzz3vHtxc/RpE9q4cmkcCKUW2yGc2EFLQpTdcei8OVL8a567zKCyuLR78f6u37m7s9iS0rE1HrhD1qilXC6vyIddCr/mr/dH516bNy8ypz3mHwZrD/anPt0JuyqkOBqtJlKrhMFk2dUPkID1MtvV45XNsevCcn/vdvnD6+btbvbn4dPNw+7lSVH+pZOde96i8vjJcH/ZNO6a5n8f8A5KRcUpQlS3kAAAAASUVORK5CYII=">Pale Moon</A>
+- <DT><A HREF="https://forum.palemoon.org/index.php" ICON_URI="https://forum.palemoon.org/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfjBQQNKi3s6zvVAAAAB3RJTUUH4wUFDiY4QniqfgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAn1JREFUeNpVU9FKW0EUnLO7NzdFY5uqRSMSoSj1F/paP0EEoU/2H/pWIkiLX+GzH5HnQj9BENQqpSgWkdbeu/fubudsCKQ3CSS7M3PmzDmRb5f3mH1SShsGcmAF7wTYaGMC35cQjBNwYoxczeJlKpASrAFGHYOP3cKUJMO3Cb4JMPwhIggJdZNwLEaOKBiU52bIp73S7jp+iyyJFNG2/JBlSBYC6KrsWhnR1XYQ2Sc1GuRKcTTXMbudwqpcfokxUPtamV/heGWdgaVKYWXPpvRp0sLF/ZB3Z72uKx0B3ocswis8VQ0CRf7yTMWflRZTh00bq1awpS18IK8kXltBQWDbBroK2X7Byxc9m9tIk7Qyju66EThwjHhHyS3DQpG0dSYVEELM9rWdyKskmmDMEpaphjpAnOw4VhuayAMGBi85cX0UzF7xVEfUdJNyV5Ltu5wNYIJsOK1GPji6TFKBkm3wJxq6iLQkMWVXhkmqkAktHHF/qgDnfXsZUhi03mTVqm7gFKiDzuPUXWg4FabPqbdRRVWcZOcuiJXx02P1VgjU8HJM2rtWysFOzh1dcXSaPizolEKdue5Yvp7fDn+efz+LtS81Bt2YIHn1Jn0SqLO31ubwtLzlGfekerm5vuWss1fzz3vHtxc/RpE9q4cmkcCKUW2yGc2EFLQpTdcei8OVL8a567zKCyuLR78f6u37m7s9iS0rE1HrhD1qilXC6vyIddCr/mr/dH516bNy8ypz3mHwZrD/anPt0JuyqkOBqtJlKrhMFk2dUPkID1MtvV45XNsevCcn/vdvnD6+btbvbn4dPNw+7lSVH+pZOde96i8vjJcH/ZNO6a5n8f8A5KRcUpQlS3kAAAAASUVORK5CYII=" LAST_CHARSET="UTF-8">Pale Moon forum</A>
+- <DT><A HREF="https://forum.palemoon.org/viewforum.php?f=24" ICON_URI="http://www.palemoon.org/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfjBQQNKi3s6zvVAAAAB3RJTUUH4wUFDiY4QniqfgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAn1JREFUeNpVU9FKW0EUnLO7NzdFY5uqRSMSoSj1F/paP0EEoU/2H/pWIkiLX+GzH5HnQj9BENQqpSgWkdbeu/fubudsCKQ3CSS7M3PmzDmRb5f3mH1SShsGcmAF7wTYaGMC35cQjBNwYoxczeJlKpASrAFGHYOP3cKUJMO3Cb4JMPwhIggJdZNwLEaOKBiU52bIp73S7jp+iyyJFNG2/JBlSBYC6KrsWhnR1XYQ2Sc1GuRKcTTXMbudwqpcfokxUPtamV/heGWdgaVKYWXPpvRp0sLF/ZB3Z72uKx0B3ocswis8VQ0CRf7yTMWflRZTh00bq1awpS18IK8kXltBQWDbBroK2X7Byxc9m9tIk7Qyju66EThwjHhHyS3DQpG0dSYVEELM9rWdyKskmmDMEpaphjpAnOw4VhuayAMGBi85cX0UzF7xVEfUdJNyV5Ltu5wNYIJsOK1GPji6TFKBkm3wJxq6iLQkMWVXhkmqkAktHHF/qgDnfXsZUhi03mTVqm7gFKiDzuPUXWg4FabPqbdRRVWcZOcuiJXx02P1VgjU8HJM2rtWysFOzh1dcXSaPizolEKdue5Yvp7fDn+efz+LtS81Bt2YIHn1Jn0SqLO31ubwtLzlGfekerm5vuWss1fzz3vHtxc/RpE9q4cmkcCKUW2yGc2EFLQpTdcei8OVL8a567zKCyuLR78f6u37m7s9iS0rE1HrhD1qilXC6vyIddCr/mr/dH516bNy8ypz3mHwZrD/anPt0JuyqkOBqtJlKrhMFk2dUPkID1MtvV45XNsevCcn/vdvnD6+btbvbn4dPNw+7lSVH+pZOde96i8vjJcH/ZNO6a5n8f8A5KRcUpQlS3kAAAAASUVORK5CYII=">F.A.Q.</A>
+- <DT><A HREF="http://www.palemoon.org/releasenotes.shtml" ICON_URI="http://www.palemoon.org/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfjBQQNKi3s6zvVAAAAB3RJTUUH4wUFDiY4QniqfgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAn1JREFUeNpVU9FKW0EUnLO7NzdFY5uqRSMSoSj1F/paP0EEoU/2H/pWIkiLX+GzH5HnQj9BENQqpSgWkdbeu/fubudsCKQ3CSS7M3PmzDmRb5f3mH1SShsGcmAF7wTYaGMC35cQjBNwYoxczeJlKpASrAFGHYOP3cKUJMO3Cb4JMPwhIggJdZNwLEaOKBiU52bIp73S7jp+iyyJFNG2/JBlSBYC6KrsWhnR1XYQ2Sc1GuRKcTTXMbudwqpcfokxUPtamV/heGWdgaVKYWXPpvRp0sLF/ZB3Z72uKx0B3ocswis8VQ0CRf7yTMWflRZTh00bq1awpS18IK8kXltBQWDbBroK2X7Byxc9m9tIk7Qyju66EThwjHhHyS3DQpG0dSYVEELM9rWdyKskmmDMEpaphjpAnOw4VhuayAMGBi85cX0UzF7xVEfUdJNyV5Ltu5wNYIJsOK1GPji6TFKBkm3wJxq6iLQkMWVXhkmqkAktHHF/qgDnfXsZUhi03mTVqm7gFKiDzuPUXWg4FabPqbdRRVWcZOcuiJXx02P1VgjU8HJM2rtWysFOzh1dcXSaPizolEKdue5Yvp7fDn+efz+LtS81Bt2YIHn1Jn0SqLO31ubwtLzlGfekerm5vuWss1fzz3vHtxc/RpE9q4cmkcCKUW2yGc2EFLQpTdcei8OVL8a567zKCyuLR78f6u37m7s9iS0rE1HrhD1qilXC6vyIddCr/mr/dH516bNy8ypz3mHwZrD/anPt0JuyqkOBqtJlKrhMFk2dUPkID1MtvV45XNsevCcn/vdvnD6+btbvbn4dPNw+7lSVH+pZOde96i8vjJcH/ZNO6a5n8f8A5KRcUpQlS3kAAAAASUVORK5CYII=">Release notes</A>
++ <DT><A HREF="https://start.duckduckgo.com/" ICON_URI="https://start.duckduckgo.com/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFnklEQVRYhcVXb0wTZxzmEyZsbovJnG7xw0j2wZm55K4jWzQh0wwkZFsMgetVMhVB0Bm3ocEMo2MoEZcwkzlYLIHJUIGJdraoiAwq2yRz0TEcTgz3p73SUQo97or0P88+dDutvXqd27I3edP70N/7/N7n97y/PykpSS5U5adyhoxshibqOYrsZyjdKEMR3ujWjXIU2c/QRD1nyMhGVX5qsudqrpFNK5ZwFNnA0DqJ1ZNwVBbC3VwL0dQE2WqGbDVDNDXB3VwLR2UhWD0JhtZJHEU2jGxaseSRgZGTs4AvIKs5mpi178iF1N2O0LQLwQkBcp8Jnk4j3I01cDfWwNNphNxnQnBCQGjaBam7HfYdueBoYpYvIKuRk7PgEW5NDPJFmZixtCLslSCaWyDsLgCrJx+6hd0FEM0tCHslzFhawW3OBEcRg0mzwdLESobWCUJ5HoJOG+SBLti2rdMEfnDbtq2DPNCFoNMGoTwPDK0ThA3kS5o3Z2id4KwuRVgS4TYeBKsnMb6/CFJ3B6Tes5g++RnsO99O2hG38SDCkghndSkYWickZAI5OQs4ihgUyvOiBjXblUM8HV8gLHlw//L9dgNCeV5STjhrtiMsiRDK88BRxKCqJvgCspovykTQaVNurtBZlg1bWTZcR/fCPzaiOBGWRbiNB8AXr9FmorEGQacNfFEm+AKyOl50NDE7Y2mFfMUSZ8xveR13b3yHRCvsnYHz4xJNJ+SBrqgwaWI2JhQcRTbYd+Qi7JVUBecf+zUhuOKEOAW+9A1NYYa9UvSJUmRDNPZV+akMrZOk7naI547HGU0cqQAAcOMeXP2Zx5w/FAd+i3HhwsBtOCwdmiyI5hZI3e1gaJ2EqvzUFM6Qkc3qSYSmXarvfOZiGwDg+ohDk4VIwAe+ZK1mnghNu8DqSXCGjOwUhibqHZWFCE4Iqgaz1/oVgEAwDFH2qYK3fHMdg0M2uI7u1WQhOCHAUVkIhibqUziK7Hc3H4bcZ1IXjtWigBTv68T6nV/BF4gPQ/4HJ/BJkxVSz2ltMfaZ4G6uBUeR/SkMpRsVTU3wdBpV/+w506iAtJ0fwv6jPaoMzM9Hf2Xrn6/IQMJZsRyexmWY+fI5jO968d6ZnUaIpiYwlG40haEIr2w1w91Yo+rARN1uzdhjfg7w3QS8vZjrN2D2zGKEf3ockeE0RIbTEPzhCTgrlsfkBNlqBkMRXk0HbO/mPgTYj3nnLkRuPqmAKfuXNNw1Pw3XgRfAbohPSrLVDIbWyZohYPVkXBpW8IWSKNjQY5BOLYW3YwnktqWYqkuHbevLCc+LCUFUhLUJRcjqyYRZcF4oRmQ4Db5LizSFl1iEGs+Q1ZPwnD6mHoKwiLnL6YgMp2HWtBhTdelwH07H1KfPY6blWfguLULo2kLYy1Y+5BlqJCJWT+L3w+8llIH9/fWwl67EVF06vJ3PIDDwFELXFsLXswieY8tgL40Fj0tEManY3KLqAF+yNqEDQgX1t+iPS8XJFCNWTyI4Oa7qwOTn+5IGVy1GceV4oEvV2HtVPQE9WL5vF+rA0AnEl6gcazUkrJ7EVOsRAAAj3cJ57hQm56KMRO56wRa+ijFahxOHVmN7dxa697wWZ+82HkTQaQO3WaUh0WrJWD2J8Y+2AACuOLpQ0puFrd9m49CPu7CzLx9ll9Zh79drUNKbhZLeLLTXrI6xTaoli2lKD8Q2payeBPfOKsxHwrjq7FGADJYs5bu49953a+3qmJsn1ZT+teLa8isWRZgB/g6G3IMK0Mbzb8LQlYWii2+h7dRGVJ2MsnC6etWjteUxonxwMDl3HN7By3DNjWPP94W4wLfDH55TxBhwcGDpV8B8SMFj+QeDyf2aUBvNQqIbfv4O/PwoAvYxBOxj8POj8PN3EJp0/jujWTwb/8NwGsfIfzSe/wEDn3UUirFnMwAAAABJRU5ErkJggg==">ddg</A>
+ </DL><p>
+ </DL><p>
+diff -aur Pale-Moon/palemoon/components/nsBrowserGlue.js Pale-Moon.new/palemoon/components/nsBrowserGlue.js
+--- Pale-Moon/palemoon/components/nsBrowserGlue.js 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/components/nsBrowserGlue.js 2020-08-23 07:49:00.679875713 -0400
+@@ -1694,8 +1694,8 @@
+ uri: NetUtil.newURI("place:sort=" +
+ Ci.nsINavHistoryQueryOptions.SORT_BY_VISITCOUNT_DESCENDING +
+ "&maxResults=" + MAX_RESULTS),
+- parent: PlacesUtils.toolbarFolderId,
+- position: toolbarIndex++,
++ parent: PlacesUtils.bookmarksMenuFolderId,
++ position: menuIndex++,
+ newInVersion: 1
+ },
+ RecentlyBookmarked: {
+#########################################
+
+Message: hide some links to old site
+diff -aur Pale-Moon/palemoon/branding/shared/locales/browserconfig.properties Pale-Moon.new/palemoon/branding/shared/locales/browserconfig.properties
+--- Pale-Moon/palemoon/branding/shared/locales/browserconfig.properties 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/shared/locales/browserconfig.properties 2020-08-23 16:19:42.056687930 -0400
+@@ -3,5 +3,5 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ # Do NOT localize or otherwise change these values
+-browser.startup.homepage=http://start.palemoon.org/
+-browser.startup.homepage_reset=http://start.palemoon.org/
++browser.startup.homepage=https://start.duckduckgo.com/
++browser.startup.homepage_reset=https://start.duckduckgo.com/
+diff -aur Pale-Moon/palemoon/branding/unofficial/pref/palemoon-branding.js Pale-Moon.new/palemoon/branding/unofficial/pref/palemoon-branding.js
+--- Pale-Moon/palemoon/branding/unofficial/pref/palemoon-branding.js 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/unofficial/pref/palemoon-branding.js 2020-08-23 16:19:14.816356073 -0400
+@@ -3,8 +3,8 @@
+ #include ../../shared/pref/preferences.inc
+ #include ../../shared/pref/uaoverrides.inc
+
+-pref("startup.homepage_override_url","http://www.palemoon.org/unofficial.shtml");
+-pref("app.releaseNotesURL", "http://www.palemoon.org/releasenotes.shtml");
++pref("startup.homepage_override_url","");
++pref("app.releaseNotesURL", "");
+
+ // Updates disabled
+ pref("app.update.enabled", false);
+diff -aur Pale-Moon/palemoon/branding/shared/pref/preferences.inc Pale-Moon.new/palemoon/branding/shared/pref/preferences.inc
+--- Pale-Moon/palemoon/branding/shared/pref/preferences.inc 2020-07-30 06:09:43.000000000 -0400
++++ Pale-Moon.new/palemoon/branding/shared/pref/preferences.inc 2020-08-23 22:40:26.943771880 -0400
+@@ -1,8 +1,8 @@
+ // ===| General |==============================================================
+
+-pref("startup.homepage_welcome_url","http://www.palemoon.org/firstrun.shtml");
++pref("startup.homepage_welcome_url","");
+
+-pref("app.vendorURL", "http://www.palemoon.org/");
++pref("app.vendorURL", "");
+
+
+ // User Interface
+@@ -24,7 +24,7 @@
+ // ===| Add-ons Manager |======================================================
+
+ // Add-on window fixes
+-pref("extensions.getMoreThemesURL", "https://addons.palemoon.org/themes/");
++pref("extensions.getMoreThemesURL", "");
+
+ pref("extensions.update.autoUpdateDefault", true); // Automatically update extensions by default
+ pref("extensions.getAddons.maxResults", 10);
+@@ -64,12 +64,12 @@
+ // ===| Sync |=================================================================
+
+ // Pale Moon Sync server URLs
+-pref("services.sync.serverURL","https://pmsync.palemoon.org/sync/index.php/");
+-pref("services.sync.jpake.serverURL","https://keyserver.palemoon.org/");
+-pref("services.sync.termsURL", "http://www.palemoon.org/sync/terms.shtml");
+-pref("services.sync.privacyURL", "http://www.palemoon.org/sync/privacy.shtml");
+-pref("services.sync.statusURL", "https://pmsync.palemoon.org/status/");
+-pref("services.sync.syncKeyHelpURL", "http://www.palemoon.org/sync/help/recoverykey.shtml");
++pref("services.sync.serverURL","https://localhost:9999/sync/index.php/");
++pref("services.sync.jpake.serverURL","https://localhost:9999/");
++pref("services.sync.termsURL", "http://localhost:9999/sync/terms.shtml");
++pref("services.sync.privacyURL", "http://localhost:9999/sync/privacy.shtml");
++pref("services.sync.statusURL", "https://localhost:9999/status/");
++pref("services.sync.syncKeyHelpURL", "http://localhost:9999/sync/help/recoverykey.shtml");
+
+ pref("services.sync.APILevel", 1); // FSyncMS doesn't support 'info/configuration' requests
+
diff --git a/newmoon/debian/patches/series b/newmoon/debian/patches/series
new file mode 100644
index 0000000..660c64a
--- /dev/null
+++ b/newmoon/debian/patches/series
@@ -0,0 +1,6 @@
+small-icons.patch
+pm-devuan.patch
+pm-to-nm.patch
+UXP-eliminate-need-for-GTK-2.patch
+UXP-GTK-3-interface-Ensure-horizontal-scrollbars-are-not-too-tall.patch
+UXP-strip-object-files-before-shared-library-linking.patch
diff --git a/newmoon/debian/patches/small-icons.patch b/newmoon/debian/patches/small-icons.patch
new file mode 100644
index 0000000..03d364a
--- /dev/null
+++ b/newmoon/debian/patches/small-icons.patch
@@ -0,0 +1,22 @@
+--- UXP-PM28.3.0_Release.orig/palemoon/base/content/browser.xul 2019-01-08 11:42:01.000000000 -0500
++++ UXP-PM28.3.0_Release/palemoon/base/content/browser.xul 2019-02-04 06:57:38.943983285 -0500
+@@ -355,7 +355,7 @@
+
+ <toolbox id="navigator-toolbox"
+ defaultmode="icons" mode="icons"
+- iconsize="large">
++ iconsize="small">
+ <!-- Menu -->
+ <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
+ defaultset="menubar-items"
+@@ -381,8 +381,8 @@
+ <toolbar id="nav-bar" class="toolbar-primary chromeclass-toolbar"
+ toolbarname="&navbarCmd.label;" accesskey="&navbarCmd.accesskey;"
+ fullscreentoolbar="true" mode="icons" customizable="true"
+- iconsize="large"
+- defaultset="unified-back-forward-button,reload-button,stop-button,home-button,urlbar-container,search-container,bookmarks-menu-button,history-menu-button,downloads-button,window-controls"
++ iconsize="small"
++ defaultset="unified-back-forward-button,reload-button,stop-button,home-button,urlbar-container,bookmarks-menu-button,history-menu-button,downloads-button,window-controls"
+ context="toolbar-context-menu">
+
+ <toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional"
bgstack15