Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/www/firefox firefox: limit disbling multiprocess firef...
details: https://anonhg.NetBSD.org/pkgsrc/rev/0d81ceef0a66
branches: trunk
changeset: 430746:0d81ceef0a66
user: maya <maya%pkgsrc.org@localhost>
date: Sun May 03 18:45:30 2020 +0000
description:
firefox: limit disbling multiprocess firefox to netbsd-8.
The patches might be safe to remove altogether (disabling multiprocess
should be enough), but it's not necessary for netbsd-9 in general, as
it has working pshared semaphores.
Fixes a lot of issues with Firefox, like WebGL not working.
PKGREVISION++
diffstat:
www/firefox/Makefile | 14 +++-
www/firefox/distinfo | 8 +-
www/firefox/patches/patch-browser_app_profile_firefox.js | 9 +--
www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore.h | 17 ++++-
www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore__posix.cpp | 35 +++++----
5 files changed, 50 insertions(+), 33 deletions(-)
diffs (257 lines):
diff -r 14bc57349226 -r 0d81ceef0a66 www/firefox/Makefile
--- a/www/firefox/Makefile Sun May 03 18:45:28 2020 +0000
+++ b/www/firefox/Makefile Sun May 03 18:45:30 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.422 2020/05/02 22:24:24 maya Exp $
+# $NetBSD: Makefile,v 1.423 2020/05/03 18:45:30 maya Exp $
FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
MOZ_BRANCH= 75.0
@@ -6,7 +6,7 @@
DISTNAME= firefox-${FIREFOX_VER}.source
PKGNAME= ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES= www
MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
EXTRACT_SUFX= .tar.xz
@@ -100,6 +100,16 @@
cd ${WRKSRC}/${OBJDIR} && touch old-configure.vars
# Do not fetch Rust Cargo file via network during build
+.if !empty(MACHINE_PLATFORM:MNetBSD-8.*-*)
+.PHONY: disable-multiprocess
+disable-multiprocess:
+ ${STEP_MSG} "Broken process-shared mutexes, disabling multiprocess windows..."
+ cd ${WRKSRC} && ${ECHO} 'pref("browser.tabs.remote.autostart", false);' >> browser/app/profile/firefox.js
+ cd ${WRKSRC} && ${ECHO} 'pref("webgl.disabled", true);' >> browser/app/profile/firefox.js
+
+post-configure: disable-multiprocess
+.endif
+
post-build:
${SED} -e 's|@MOZILLA@|${MOZILLA}|g' \
-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|g' \
diff -r 14bc57349226 -r 0d81ceef0a66 www/firefox/distinfo
--- a/www/firefox/distinfo Sun May 03 18:45:28 2020 +0000
+++ b/www/firefox/distinfo Sun May 03 18:45:30 2020 +0000
@@ -1,11 +1,11 @@
-$NetBSD: distinfo,v 1.390 2020/05/02 22:24:24 maya Exp $
+$NetBSD: distinfo,v 1.391 2020/05/03 18:45:30 maya Exp $
SHA1 (firefox-75.0.source.tar.xz) = df7904c16d525eb791728d655258b7d1fe064db9
RMD160 (firefox-75.0.source.tar.xz) = e75ffcf93adab1198a93b42a6d2f8722be3745ce
SHA512 (firefox-75.0.source.tar.xz) = 29c9e3455251ab5f5a3e8f2d0ad6f8b43f710d15605bf169fd5cd7ade3555da6b2df66ec26af5624c0f4bb46d5e7e3527351f648fee79f5defcb926fa6ae382a
Size (firefox-75.0.source.tar.xz) = 324614064 bytes
SHA1 (patch-aa) = 11060461fdaca5661e89651b8ded4a59d2abc4d7
-SHA1 (patch-browser_app_profile_firefox.js) = 74ef7612c6164aaf06bff353b32793435b021bf4
+SHA1 (patch-browser_app_profile_firefox.js) = 89cea0a66457c96ad0b94aaa524aa5942ad781d0
SHA1 (patch-browser_components_BrowserGlue.jsm) = dcbf01db8b06db3376f0545ccfbba9dde5790c82
SHA1 (patch-build_moz.configure_rust.configure) = ee9e207e67709f3c9455b4d22f5f254890e99ca8
SHA1 (patch-config_gcc-stl-wrapper.template.h) = 781a063fa6ab345face53fd88404ead11ab335b2
@@ -19,8 +19,8 @@
SHA1 (patch-ipc_chromium_src_base_lock__impl__posix.cc) = d84d9b4d416e049423120dcbf9199644ce1c93ab
SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 4a6606da590cfb8d855bde58b9c6f90e98d0870c
SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = 35d20981d33ccdb1d8ffb8039e48798777f11658
-SHA1 (patch-ipc_glue_CrossProcessSemaphore.h) = 25e24743060acf10c776c6b3b3660f52a2e9fbe8
-SHA1 (patch-ipc_glue_CrossProcessSemaphore__posix.cpp) = f8d155ee66008b7cc4052b6a889327543b89e0bb
+SHA1 (patch-ipc_glue_CrossProcessSemaphore.h) = 295bfe10c8ba15cfbecf083e791a2d5bc53ea462
+SHA1 (patch-ipc_glue_CrossProcessSemaphore__posix.cpp) = bf26ef59cc0e200a5d4e7f1d7415666acbf0bbac
SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 260c29bacd8bf265951b7a412f850bf2b292c836
SHA1 (patch-js_src_jsfriendapi.h) = fce9627bb1c45addccec105a0f38f0a3aac3f9b3
SHA1 (patch-js_src_util_NativeStack.cpp) = a0a16d8d8d78d3cc3f4d2a508586f1a7821f7dba
diff -r 14bc57349226 -r 0d81ceef0a66 www/firefox/patches/patch-browser_app_profile_firefox.js
--- a/www/firefox/patches/patch-browser_app_profile_firefox.js Sun May 03 18:45:28 2020 +0000
+++ b/www/firefox/patches/patch-browser_app_profile_firefox.js Sun May 03 18:45:30 2020 +0000
@@ -1,8 +1,8 @@
-$NetBSD: patch-browser_app_profile_firefox.js,v 1.14 2020/05/02 22:24:24 maya Exp $
+$NetBSD: patch-browser_app_profile_firefox.js,v 1.15 2020/05/03 18:45:30 maya Exp $
--- browser/app/profile/firefox.js.orig 2019-07-06 01:48:29.000000000 +0000
+++ browser/app/profile/firefox.js
-@@ -1851,6 +1851,17 @@ pref("fission.frontend.simulate-messages
+@@ -1851,6 +1851,12 @@ pref("fission.frontend.simulate-messages
pref("toolkit.coverage.enabled", false);
pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org");
@@ -12,11 +12,6 @@
+// Enable system addons, for example langpacks from www/firefox-l10n
+pref("extensions.autoDisableScopes", 11);
+
-+// Disable multiprocess window support. Workaround for PR 53273.
-+pref("browser.tabs.remote.autostart", false);
-+// WebGL broken without multiprocess window: https://bugzilla.mozilla.org/show_bug.cgi?id=1610395
-+pref("webgl.disabled", true);
-+
// Discovery prefs
pref("browser.discovery.enabled", true);
pref("browser.discovery.containers.enabled", true);
diff -r 14bc57349226 -r 0d81ceef0a66 www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore.h
--- a/www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore.h Sun May 03 18:45:28 2020 +0000
+++ b/www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore.h Sun May 03 18:45:30 2020 +0000
@@ -1,12 +1,23 @@
-$NetBSD: patch-ipc_glue_CrossProcessSemaphore.h,v 1.2 2018/11/04 00:38:44 ryoon Exp $
+$NetBSD: patch-ipc_glue_CrossProcessSemaphore.h,v 1.3 2020/05/03 18:45:30 maya Exp $
--- ipc/glue/CrossProcessSemaphore.h.orig 2018-10-18 20:06:06.000000000 +0000
+++ ipc/glue/CrossProcessSemaphore.h
-@@ -93,7 +93,13 @@ private:
+@@ -18,6 +18,10 @@
+ # include "mozilla/Atomics.h"
+ #endif
+
++#ifdef __NetBSD__ // For version check only.
++#include <sys/param.h>
++#endif
++
+ namespace IPC {
+ template <typename T>
+ struct ParamTraits;
+@@ -105,7 +109,13 @@ class CrossProcessSemaphore {
HANDLE mSemaphore;
#elif !defined(OS_MACOSX)
RefPtr<mozilla::ipc::SharedMemoryBasic> mSharedBuffer;
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ pthread_mutex_t* mMutex;
+ pthread_cond_t* mNotZero;
+ uint32_t* mValue;
diff -r 14bc57349226 -r 0d81ceef0a66 www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore__posix.cpp
--- a/www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore__posix.cpp Sun May 03 18:45:28 2020 +0000
+++ b/www/firefox/patches/patch-ipc_glue_CrossProcessSemaphore__posix.cpp Sun May 03 18:45:30 2020 +0000
@@ -1,12 +1,13 @@
-$NetBSD: patch-ipc_glue_CrossProcessSemaphore__posix.cpp,v 1.5 2019/01/29 16:28:22 ryoon Exp $
+$NetBSD: patch-ipc_glue_CrossProcessSemaphore__posix.cpp,v 1.6 2020/05/03 18:45:30 maya Exp $
--- ipc/glue/CrossProcessSemaphore_posix.cpp.orig 2019-01-18 00:20:30.000000000 +0000
+++ ipc/glue/CrossProcessSemaphore_posix.cpp
-@@ -9,6 +9,11 @@
+@@ -9,6 +9,12 @@
#include "nsDebug.h"
#include "nsISupportsImpl.h"
#include <errno.h>
+#if defined(__NetBSD__)
++#include <sys/param.h>
+#include <iostream>
+#include <unistd.h>
+#include <limits>
@@ -14,11 +15,11 @@
static const uint64_t kNsPerMs = 1000000;
static const uint64_t kNsPerSec = 1000000000;
-@@ -16,7 +21,13 @@ static const uint64_t kNsPerSec = 100000
+@@ -16,7 +22,13 @@ static const uint64_t kNsPerSec = 100000
namespace {
struct SemaphoreData {
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ pthread_mutex_t mMutex;
+ pthread_cond_t mNotZero;
+ uint32_t mValue;
@@ -28,11 +29,11 @@
mozilla::Atomic<int32_t> mRefCount;
uint32_t mInitialValue;
};
-@@ -42,13 +53,27 @@ namespace mozilla {
+@@ -43,13 +55,27 @@ CrossProcessSemaphore* CrossProcessSemap
return nullptr;
}
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ data->mValue = aInitialValue;
+ if (pthread_mutex_init(&data->mMutex, NULL) ||
+ pthread_cond_init(&data->mNotZero, NULL) ) {
@@ -46,7 +47,7 @@
CrossProcessSemaphore* sem = new CrossProcessSemaphore;
sem->mSharedBuffer = sharedBuffer;
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ sem->mMutex = &data->mMutex;
+ sem->mNotZero = &data->mNotZero;
+ sem->mValue = &data->mValue;
@@ -56,11 +57,11 @@
sem->mRefCount = &data->mRefCount;
*sem->mRefCount = 1;
-@@ -83,23 +108,44 @@ namespace mozilla {
+@@ -85,23 +111,44 @@ CrossProcessSemaphore* CrossProcessSemap
int32_t oldCount = data->mRefCount++;
if (oldCount == 0) {
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ if (pthread_mutex_init(&data->mMutex, NULL) ||
+ pthread_cond_init(&data->mNotZero, NULL) ) {
+ data->mRefCount--;
@@ -78,7 +79,7 @@
CrossProcessSemaphore* sem = new CrossProcessSemaphore;
sem->mSharedBuffer = sharedBuffer;
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ sem->mMutex = &data->mMutex;
+ sem->mNotZero = &data->mNotZero;
+ sem->mValue = &data->mValue;
@@ -91,7 +92,7 @@
CrossProcessSemaphore::CrossProcessSemaphore()
- : mSemaphore(nullptr), mRefCount(nullptr) {
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ : mMutex (nullptr)
+ , mNotZero (nullptr)
+ , mValue (nullptr)
@@ -102,11 +103,11 @@
MOZ_COUNT_CTOR(CrossProcessSemaphore);
}
-@@ -108,16 +154,57 @@ CrossProcessSemaphore::~CrossProcessSema
+@@ -110,16 +157,57 @@ CrossProcessSemaphore::~CrossProcessSema
if (oldCount == 0) {
// Nothing can be done if the destroy fails so ignore return code.
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ (void)pthread_cond_destroy(mNotZero);
+ (void)pthread_mutex_destroy(mMutex);
+#else
@@ -117,7 +118,7 @@
MOZ_COUNT_DTOR(CrossProcessSemaphore);
}
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+static struct timespec
+makeAbsTime(const Maybe<TimeDuration>& aWaitTime) {
+ struct timespec ts;
@@ -139,7 +140,7 @@
MOZ_ASSERT(*mRefCount > 0,
"Attempting to wait on a semaphore with zero ref count");
int ret;
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ struct timespec ts = makeAbsTime(aWaitTime);
+
+ ret = pthread_mutex_lock(mMutex);
@@ -160,7 +161,7 @@
if (aWaitTime.isSome()) {
struct timespec ts;
if (clock_gettime(CLOCK_REALTIME, &ts) == -1) {
-@@ -134,13 +221,24 @@ bool CrossProcessSemaphore::Wait(const M
+@@ -136,13 +224,24 @@ bool CrossProcessSemaphore::Wait(const M
while ((ret = sem_wait(mSemaphore)) == -1 && errno == EINTR) {
}
}
@@ -171,7 +172,7 @@
void CrossProcessSemaphore::Signal() {
MOZ_ASSERT(*mRefCount > 0,
"Attempting to signal a semaphore with zero ref count");
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && (__NetBSD_Version__ < 900000000)
+ int ret;
+ ret = pthread_mutex_lock(mMutex);
+ if (ret == 0) {
Home |
Main Index |
Thread Index |
Old Index