From a6aa39b74391371f9a5a921cd5500ab1203b89db Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Tue, 19 Sep 2023 21:52:23 +0200 Subject: [PATCH 1/3] Temporarily revert rebase to 115 to update to the last 102.* This is a combination of 6 commits. Revert "Added glxtest and vaapitest to the %files section" This reverts commit a3ab6bbdcb41033e3a1f67a48be4199454763e38. Revert "Use python3.11" This reverts commit 402483886d673aae3177d9c6681da075333a42e6. Revert "Use python3.11" This reverts commit 3bbad3dba90d5c2e7ae706344d5afb56458e6c7b. Revert "Set MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system" This reverts commit 3b2042664bd8e13a76a1a618441dd0e006bcf4c3. Revert "added missing patch" This reverts commit 57bdee481063dfb96f1f28fa527592cf50a3abd0. Revert "Rebase to 115" This reverts commit 0522d97f2cfe48ae22b6a59fd14a5a93e40399f6. --- .gitignore | 2 - D165150.diff | 163 ++++++++++++++++++++++++++++++++ D165152.diff | 117 +++++++++++++++++++++++ build-disable-elfhack.patch | 20 ++-- build-rnp.patch | 11 --- gcc13-header-dependencies.patch | 30 ++++++ mozilla-1170092.patch | 64 +++++++------ sources | 6 +- thunderbird.spec | 24 +++-- 9 files changed, 368 insertions(+), 69 deletions(-) create mode 100644 D165150.diff create mode 100644 D165152.diff delete mode 100644 build-rnp.patch create mode 100644 gcc13-header-dependencies.patch diff --git a/.gitignore b/.gitignore index bd477e7..473fdcf 100644 --- a/.gitignore +++ b/.gitignore @@ -406,5 +406,3 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2 /thunderbird-langpacks-102.12.0-20230605.tar.xz /thunderbird-102.13.0.source.tar.xz /thunderbird-langpacks-102.13.0-20230707.tar.xz -/thunderbird-langpacks-115.0.1-20230720.tar.xz -/thunderbird-115.0.1.source.tar.xz diff --git a/D165150.diff b/D165150.diff new file mode 100644 index 0000000..fc9a9f7 --- /dev/null +++ b/D165150.diff @@ -0,0 +1,163 @@ +diff -up thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp.D165150 thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp +--- thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp.D165150 2022-12-12 22:37:39.000000000 +0100 ++++ thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp 2022-12-20 14:43:29.742482848 +0100 +@@ -9,11 +9,20 @@ + #include "mozilla/UniquePtr.h" + #include "nsReadableUtils.h" + #include "nsWindow.h" ++#include "nsGtkKeyUtils.h" + + #include + #include + #include + ++#ifdef MOZ_LOGGING ++# include "mozilla/Logging.h" ++extern mozilla::LazyLogModule gWidgetLog; ++# define LOGW(...) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, (__VA_ARGS__)) ++#else ++# define LOGW(...) ++#endif /* MOZ_LOGGING */ ++ + namespace mozilla::widget { + + int32_t WidgetUtilsGTK::IsTouchDeviceSupportPresent() { +@@ -165,4 +174,108 @@ nsTArray ParseTextURIList(con + return result; + } + ++#ifdef MOZ_WAYLAND ++static gboolean token_failed(gpointer aData); ++ ++class XDGTokenRequest { ++ public: ++ void SetTokenID(const char* aTokenID) { ++ mTransferPromise->Resolve(aTokenID, __func__); ++ } ++ void Cancel() { ++ mTransferPromise->Reject(false, __func__); ++ mActivationTimeoutID = 0; ++ } ++ ++ XDGTokenRequest(xdg_activation_token_v1* aXdgToken, ++ RefPtr aTransferPromise) ++ : mXdgToken(aXdgToken), mTransferPromise(aTransferPromise) { ++ mActivationTimeoutID = ++ g_timeout_add(sActivationTimeout, token_failed, this); ++ } ++ ~XDGTokenRequest() { ++ if (mXdgToken) { ++ xdg_activation_token_v1_destroy(mXdgToken); ++ } ++ if (mActivationTimeoutID) { ++ g_source_remove(mActivationTimeoutID); ++ } ++ } ++ ++ private: ++ xdg_activation_token_v1* mXdgToken; ++ RefPtr mTransferPromise; ++ guint mActivationTimeoutID; ++ // Reject FocusRequestPromise if we don't get XDG token in 0.5 sec. ++ const int sActivationTimeout = 500; ++}; ++ ++// Failed to get token in time ++static gboolean token_failed(gpointer data) { ++ UniquePtr request(static_cast(data)); ++ request->Cancel(); ++ return false; ++} ++ ++// We've got activation token from Wayland compositor so it's time to use it. ++static void token_done(gpointer data, struct xdg_activation_token_v1* provider, ++ const char* tokenID) { ++ UniquePtr request(static_cast(data)); ++ request->SetTokenID(tokenID); ++} ++ ++static const struct xdg_activation_token_v1_listener token_listener = { ++ token_done, ++}; ++ ++RefPtr RequestWaylandFocus() { ++ RefPtr sourceWindow = nsWindow::GetFocusedWindow(); ++ if (!sourceWindow) { ++ return nullptr; ++ } ++ ++ RefPtr display = WaylandDisplayGet(); ++ xdg_activation_v1* xdg_activation = display->GetXdgActivation(); ++ if (!xdg_activation) { ++ return nullptr; ++ } ++ ++ wl_surface* focusSurface; ++ uint32_t focusSerial; ++ KeymapWrapper::GetFocusInfo(&focusSurface, &focusSerial); ++ if (!focusSurface) { ++ return nullptr; ++ } ++ ++ GdkWindow* gdkWindow = gtk_widget_get_window(sourceWindow->GetGtkWidget()); ++ if (!gdkWindow) { ++ return nullptr; ++ } ++ wl_surface* surface = gdk_wayland_window_get_wl_surface(gdkWindow); ++ if (focusSurface != surface) { ++ return nullptr; ++ } ++ ++ RefPtr transferPromise = ++ new FocusRequestPromise::Private(__func__); ++ ++ xdg_activation_token_v1* aXdgToken = ++ xdg_activation_v1_get_activation_token(xdg_activation); ++ xdg_activation_token_v1_add_listener( ++ aXdgToken, &token_listener, ++ new XDGTokenRequest(aXdgToken, transferPromise)); ++ xdg_activation_token_v1_set_serial(aXdgToken, focusSerial, ++ KeymapWrapper::GetSeat()); ++ xdg_activation_token_v1_set_surface(aXdgToken, focusSurface); ++ xdg_activation_token_v1_commit(aXdgToken); ++ ++ return transferPromise.forget(); ++} ++ ++bool CanTransferWaylandFocus() { ++ return GdkIsWaylandDisplay() && nsWindow::GetFocusedWindow() && ++ !nsWindow::GetFocusedWindow()->IsDestroyed(); ++} ++#endif ++ + } // namespace mozilla::widget +diff -up thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h.D165150 thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h +--- thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h.D165150 2022-12-12 22:37:41.000000000 +0100 ++++ thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h 2022-12-20 13:44:15.343638003 +0100 +@@ -8,11 +8,13 @@ + + #include "nsString.h" + #include "nsTArray.h" ++#include "mozilla/MozPromise.h" + + #include + + typedef struct _GdkDisplay GdkDisplay; + typedef struct _GdkDevice GdkDevice; ++class nsWindow; + + namespace mozilla::widget { + +@@ -51,6 +53,12 @@ bool ShouldUsePortal(PortalKind); + // Parse text/uri-list + nsTArray ParseTextURIList(const nsACString& data); + ++#ifdef MOZ_WAYLAND ++using FocusRequestPromise = mozilla::MozPromise; ++bool CanTransferWaylandFocus(); ++RefPtr RequestWaylandFocus(); ++#endif ++ + } // namespace mozilla::widget + + #endif // WidgetUtilsGtk_h__ diff --git a/D165152.diff b/D165152.diff new file mode 100644 index 0000000..96350e9 --- /dev/null +++ b/D165152.diff @@ -0,0 +1,117 @@ +diff -up thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp.D165152 thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp +--- thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp.D165152 2022-12-12 22:37:40.000000000 +0100 ++++ thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp 2022-12-20 13:41:17.337477022 +0100 +@@ -19,6 +19,7 @@ + #include "mozilla/WidgetUtilsGtk.h" + #include "mozilla/StaticPrefs_widget.h" + #include "mozilla/net/DNS.h" ++#include "prenv.h" + + #include + #include +@@ -224,9 +225,7 @@ static RefPtr GetLaun + return context; + } + +-NS_IMETHODIMP +-nsGIOMimeApp::LaunchWithURI(nsIURI* aUri, +- mozilla::dom::BrowsingContext* aBrowsingContext) { ++static NS_IMETHODIMP LaunchWithURIImpl(RefPtr aInfo, nsIURI* aUri) { + GList uris = {0}; + nsCString spec; + aUri->GetSpec(spec); +@@ -235,7 +234,7 @@ nsGIOMimeApp::LaunchWithURI(nsIURI* aUri + + GUniquePtr error; + gboolean result = g_app_info_launch_uris( +- mApp, &uris, GetLaunchContext().get(), getter_Transfers(error)); ++ aInfo, &uris, GetLaunchContext().get(), getter_Transfers(error)); + if (!result) { + g_warning("Cannot launch application: %s", error->message); + return NS_ERROR_FAILURE; +@@ -244,6 +243,27 @@ nsGIOMimeApp::LaunchWithURI(nsIURI* aUri + return NS_OK; + } + ++NS_IMETHODIMP ++nsGIOMimeApp::LaunchWithURI(nsIURI* aUri, ++ mozilla::dom::BrowsingContext* aBrowsingContext) { ++ if (mozilla::widget::CanTransferWaylandFocus()) { ++ mozilla::widget::RequestWaylandFocus()->Then( ++ GetMainThreadSerialEventTarget(), __func__, ++ /* resolve */ ++ [app = RefPtr{mApp}, uri = RefPtr{aUri}](nsCString token) { ++ PR_SetEnv(ToNewCString("XDG_ACTIVATION_TOKEN="_ns + token)); ++ LaunchWithURIImpl(app, uri); ++ }, ++ /* reject */ ++ [app = RefPtr{mApp}, uri = RefPtr{aUri}](bool state) { ++ LaunchWithURIImpl(app, uri); ++ }); ++ return NS_OK; ++ } ++ ++ return LaunchWithURIImpl(mApp, aUri); ++} ++ + class GIOUTF8StringEnumerator final : public nsStringEnumeratorBase { + ~GIOUTF8StringEnumerator() = default; + +@@ -531,7 +551,7 @@ nsGIOService::GetDescriptionForMimeType( + return NS_OK; + } + +-nsresult nsGIOService::ShowURI(nsIURI* aURI) { ++static nsresult ShowURIImpl(nsIURI* aURI) { + nsAutoCString spec; + MOZ_TRY(aURI->GetSpec(spec)); + GUniquePtr error; +@@ -544,7 +564,24 @@ nsresult nsGIOService::ShowURI(nsIURI* a + return NS_OK; + } + +-static nsresult LaunchPath(const nsACString& aPath) { ++nsresult nsGIOService::ShowURI(nsIURI* aURI) { ++ if (mozilla::widget::CanTransferWaylandFocus()) { ++ mozilla::widget::RequestWaylandFocus()->Then( ++ GetMainThreadSerialEventTarget(), __func__, ++ /* resolve */ ++ [uri = RefPtr{aURI}](nsCString token) { ++ PR_SetEnv(ToNewCString("XDG_ACTIVATION_TOKEN="_ns + token)); ++ ShowURIImpl(uri); ++ }, ++ /* reject */ ++ [uri = RefPtr{aURI}](bool state) { ShowURIImpl(uri); }); ++ return NS_OK; ++ } ++ ++ return ShowURIImpl(aURI); ++} ++ ++static nsresult LaunchPathImpl(const nsACString& aPath) { + RefPtr file = dont_AddRef( + g_file_new_for_commandline_arg(PromiseFlatCString(aPath).get())); + GUniquePtr spec(g_file_get_uri(file)); +@@ -558,6 +595,22 @@ static nsresult LaunchPath(const nsACStr + return NS_OK; + } + ++static nsresult LaunchPath(const nsACString& aPath) { ++ if (mozilla::widget::CanTransferWaylandFocus()) { ++ mozilla::widget::RequestWaylandFocus()->Then( ++ GetMainThreadSerialEventTarget(), __func__, ++ /* resolve */ ++ [path = nsCString{aPath}](nsCString token) { ++ PR_SetEnv(ToNewCString("XDG_ACTIVATION_TOKEN="_ns + token)); ++ LaunchPathImpl(path); ++ }, ++ /* reject */ ++ [path = nsCString{aPath}](bool state) { LaunchPathImpl(path); }); ++ return NS_OK; ++ } ++ return LaunchPathImpl(aPath); ++} ++ + nsresult nsGIOService::LaunchFile(const nsACString& aPath) { + return LaunchPath(aPath); + } diff --git a/build-disable-elfhack.patch b/build-disable-elfhack.patch index 67bb731..04d49f2 100644 --- a/build-disable-elfhack.patch +++ b/build-disable-elfhack.patch @@ -1,12 +1,12 @@ -diff -up firefox-115.0.2/toolkit/moz.configure.disable-elfhack firefox-115.0.2/toolkit/moz.configure ---- firefox-115.0.2/toolkit/moz.configure.disable-elfhack 2023-07-18 12:21:22.507358334 +0200 -+++ firefox-115.0.2/toolkit/moz.configure 2023-07-18 12:52:55.972727498 +0200 -@@ -1520,7 +1520,7 @@ with only_when("--enable-compile-environ - "Cannot enable elfhack with lld." - " Use --enable-linker=bfd, --enable-linker=gold, or --disable-elf-hack" - ) -- return True -+ return False +diff -up firefox-97.0/toolkit/moz.configure.disable-elfhack firefox-97.0/toolkit/moz.configure +--- firefox-97.0/toolkit/moz.configure.disable-elfhack 2022-02-08 09:58:47.518047952 +0100 ++++ firefox-97.0/toolkit/moz.configure 2022-02-08 10:17:49.552945956 +0100 +@@ -1273,7 +1273,7 @@ with only_when("--enable-compile-environ + help="{Enable|Disable} elf hacks", + ) - set_config("USE_ELF_HACK", use_elf_hack) +- set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: True)) ++ set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: False)) + + @depends(build_environment) diff --git a/build-rnp.patch b/build-rnp.patch deleted file mode 100644 index edc9573..0000000 --- a/build-rnp.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h.build-rnp thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h ---- thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h.build-rnp 2023-07-24 11:38:24.732782411 +0200 -+++ thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h 2023-07-24 11:38:46.824773498 +0200 -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - namespace sexp { - diff --git a/gcc13-header-dependencies.patch b/gcc13-header-dependencies.patch new file mode 100644 index 0000000..d16b4bc --- /dev/null +++ b/gcc13-header-dependencies.patch @@ -0,0 +1,30 @@ +--- thunderbird-102.7.1/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp.gcc13-header-dependency 2023-01-24 04:23:43.000000000 +0100 ++++ thunderbird-102.7.1/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp 2023-01-25 19:23:11.048662899 +0100 +@@ -3,6 +3,7 @@ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ ++#include + #include + + #include "sdp/RsdparsaSdpInc.h" +--- thunderbird-102.7.1/gfx/2d/Rect.h.gcc13-header-dependency 2023-01-24 04:23:44.000000000 +0100 ++++ thunderbird-102.7.1/gfx/2d/Rect.h 2023-01-25 19:23:11.049662897 +0100 +@@ -15,6 +15,7 @@ + #include "mozilla/Maybe.h" + + #include ++#include + + namespace mozilla { + +--- thunderbird-102.7.1/toolkit/components/telemetry/pingsender/pingsender.cpp.gcc13-header-dependency 2023-01-24 04:23:55.000000000 +0100 ++++ thunderbird-102.7.1/toolkit/components/telemetry/pingsender/pingsender.cpp 2023-01-25 21:38:39.432188899 +0100 +@@ -3,6 +3,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/. */ + ++#include + #include + #include + #include diff --git a/mozilla-1170092.patch b/mozilla-1170092.patch index 36d2b00..49b7b49 100644 --- a/mozilla-1170092.patch +++ b/mozilla-1170092.patch @@ -1,7 +1,7 @@ -diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp ---- firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2023-07-10 21:08:53.000000000 +0200 -+++ firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp 2023-07-17 10:33:23.443355156 +0200 -@@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS +diff -up firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2020-04-03 21:34:41.000000000 +0200 ++++ firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2020-04-06 22:40:02.760674871 +0200 +@@ -244,8 +244,20 @@ nsresult nsReadConfig::openAndEvaluateJS if (NS_FAILED(rv)) return rv; rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); @@ -23,10 +23,10 @@ diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 } else { nsAutoCString location("resource://gre/defaults/autoconfig/"); location += aFileName; -diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp ---- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200 -+++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200 -@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects +diff -up firefox-75.0/modules/libpref/Preferences.cpp.1170092 firefox-75.0/modules/libpref/Preferences.cpp +--- firefox-75.0/modules/libpref/Preferences.cpp.1170092 2020-04-06 22:40:02.761674865 +0200 ++++ firefox-75.0/modules/libpref/Preferences.cpp 2020-04-06 22:40:57.675325227 +0200 +@@ -4468,6 +4468,9 @@ nsresult Preferences::InitInitialObjects // // Thus, in the omni.jar case, we always load app-specific default // preferences from omni.jar, whether or not `$app == $gre`. @@ -36,10 +36,10 @@ diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2 nsresult rv = NS_ERROR_FAILURE; UniquePtr find; -diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp ---- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200 -+++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200 -@@ -72,6 +72,7 @@ +diff -up firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-75.0/toolkit/xre/nsXREDirProvider.cpp +--- firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2020-04-03 21:35:39.000000000 +0200 ++++ firefox-75.0/toolkit/xre/nsXREDirProvider.cpp 2020-04-06 22:40:02.761674865 +0200 +@@ -60,6 +60,7 @@ #endif #ifdef XP_UNIX # include @@ -47,11 +47,13 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0. #endif #ifdef XP_IOS # include "UIKitDirProvider.h" -@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP - rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME)); - NS_ENSURE_SUCCESS(rv, rv); - rv = EnsureDirectoryExists(file); -+ } else if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { +@@ -533,6 +534,21 @@ nsXREDirProvider::GetFile(const char* aP + } + } + } ++ ++#if defined(XP_UNIX) ++ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { + nsCString sysConfigDir = nsLiteralCString("/etc/"); + nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); + if (!appInfo) @@ -60,14 +62,16 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0. + appInfo->GetName(appName); + ToLowerCase(appName); + sysConfigDir.Append(appName); -+ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file)); -+ rv = EnsureDirectoryExists(file); - } else { - // We don't know anything about this property. Fail without warning, because - // otherwise we'll get too much warning spam due to -@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a - } - #endif ++ return NS_NewNativeLocalFile(sysConfigDir, false, aFile); ++ } ++#endif ++ + if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE; + + if (ensureFilePermissions) { +@@ -845,6 +861,16 @@ nsresult nsXREDirProvider::GetFilesInter + + LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); + // Add /etc//pref/ directory if it exists + nsCOMPtr systemPrefDir; @@ -77,15 +81,15 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0. + rv = systemPrefDir->AppendNative(nsLiteralCString("pref")); + if (NS_SUCCEEDED(rv)) + directories.AppendObject(systemPrefDir); -+ } ++ } + rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons -diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h ---- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200 -+++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200 -@@ -58,6 +58,7 @@ +diff -up firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2020-04-03 21:35:39.000000000 +0200 ++++ firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h 2020-04-06 22:40:02.761674865 +0200 +@@ -60,6 +60,7 @@ #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_OVERRIDE_DIR \ "PrefDOverride" // Directory for per-profile defaults diff --git a/sources b/sources index 320e7a4..a35662b 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (thunderbird-langpacks-115.0.1-20230720.tar.xz) = 33499972fe176c89772a22101e3d12f71a56471866e3aef6477d0be665e41b82d32e5a454d7ea979558de295902484eb3fb73f07dbd85ae92b44d00a80cc772d -SHA512 (thunderbird-115.0.1.source.tar.xz) = 9a53024790a537fb012d66e683248e82a9b2c2a4db6fc90d1e1d3c785c28e9d65f1d110c33dcbdad63f8f6ecb3e5c6a526c0028c3970125022ebe384506d4ba3 -SHA512 (cbindgen-vendor.tar.xz) = 161811f4adfc74e5d92871c78139704d32e1e1ad6b615c85353de300d9647a68f1ca8b1c953f7cc5539d861e9e8d8e42892cae757a3eafea78804e19bc323c16 +SHA512 (cbindgen-vendor.tar.xz) = 590e27b6c093a5c1bd839ca39c68537097d0849087a4a385ee6d7b180e9ceadbbb8974fa997f5f75af03e2c243a2f232d0d4c4c46e253ea464521b76c6886067 +SHA512 (thunderbird-102.13.0.source.tar.xz) = 1ed48220f91cc2c38f59067664c02f1f2098c843810b8f81cb8dee4fe98911d87aac352ab8639c68d0eed74297240cd9e0ce0e64a40360511be85315f2bfcfc6 +SHA512 (thunderbird-langpacks-102.13.0-20230707.tar.xz) = bf9007b066f7211bad70a68449297a5847a1e840a1e5e88d0db5f5cd367c752130c70e266177585b3386ae7796c2ea98dba657da75ae6a22f064a7b584352ca0 diff --git a/thunderbird.spec b/thunderbird.spec index 3366c1a..4539bf1 100644 --- a/thunderbird.spec +++ b/thunderbird.spec @@ -99,13 +99,13 @@ ExcludeArch: s390x Summary: Mozilla Thunderbird mail/newsgroup client Name: thunderbird -Version: 115.0.1 -Release: 1%{?dist} +Version: 102.13.0 +Release: 2%{?dist} URL: http://www.mozilla.org/projects/thunderbird/ License: MPL-2.0 OR GPL-2.0-or-later OR LGPL-2.0-or-later Source0: https://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/source/thunderbird-%{version}%{?pre_version}.source.tar.xz %if %{build_langpacks} -Source1: thunderbird-langpacks-%{version}-20230720.tar.xz +Source1: thunderbird-langpacks-%{version}-20230707.tar.xz %endif Source3: get-calendar-langpacks.sh Source4: cbindgen-vendor.tar.xz @@ -131,7 +131,7 @@ Patch103: rhbz-1219542-s390-build.patch # gcc 12 build fix patches Patch422: 0001-GLIBCXX-fix-for-GCC-12.patch Patch425: build-disable-elfhack.patch -Patch426: build-rnp.patch +Patch426: gcc13-header-dependencies.patch # PPC fix Patch304: mozilla-1245783.patch @@ -141,6 +141,8 @@ Patch304: mozilla-1245783.patch # Upstream patches Patch402: mozilla-526293.patch Patch406: mozilla-1170092.patch +Patch408: D165150.diff +Patch409: D165152.diff # Bundled expat backported patches Patch501: expat-CVE-2022-25235.patch @@ -215,7 +217,7 @@ Obsoletes: thunderbird-lightning-gdata <= 1:3.3.0.14 BuildRequires: rust BuildRequires: cargo BuildRequires: clang-devel -BuildRequires: python3.11-devel +BuildRequires: python3-devel %if !0%{?use_bundled_cbindgen} BuildRequires: cbindgen %endif @@ -306,14 +308,16 @@ debug %{name}, you want to install %{name}-debuginfo instead. %if 0%{?disable_elfhack} %patch -P 425 -p1 -b .build-disable-elfhack %endif -%patch -P 426 -p1 -b .build-rnp # most likely fixed #%patch -P 419 -p1 -b .bindgen %patch -P 402 -p1 -b .526293 %patch -P 406 -p1 -b .1170092-etc-conf +%patch -P 408 -p1 -b .D165150 +%patch -P 409 -p1 -b .D165152 %patch -P 422 -p1 -b .0001-GLIBCXX-fix-for-GCC-12 +%patch -P 426 -p1 -b .gcc13-header-dependencies %patch -P 501 -p1 -b .expat-CVE-2022-25235 %patch -P 502 -p1 -b .expat-CVE-2022-25236 @@ -560,8 +564,7 @@ MOZ_SMP_FLAGS=-j1 export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" export STRIP=/bin/true -export PYTHON=python3.11 -export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system +export MACH_USE_SYSTEM_PYTHON=1 ./mach build -v # create debuginfo for crash-stats.mozilla.com @@ -748,15 +751,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{mozappdir}/dependentlibs.list %{mozappdir}/fonts %{mozappdir}/pingsender -%{mozappdir}/glxtest -%{mozappdir}/vaapitest #=============================================================================== %changelog -* Mon Jul 24 2023 Jan Horak - 115.0.1-1 -- Update to 115.0.1 - * Sat Jul 22 2023 Fedora Release Engineering - 102.13.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From b79daf05c63bc83f9f303e7322c10f1f2275bdd0 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Tue, 19 Sep 2023 22:15:12 +0200 Subject: [PATCH 2/3] Update to 102.15.1 --- .gitignore | 2 ++ sources | 4 ++-- thunderbird.spec | 9 ++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 473fdcf..ee3cb81 100644 --- a/.gitignore +++ b/.gitignore @@ -406,3 +406,5 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2 /thunderbird-langpacks-102.12.0-20230605.tar.xz /thunderbird-102.13.0.source.tar.xz /thunderbird-langpacks-102.13.0-20230707.tar.xz +/thunderbird-102.15.1.source.tar.xz +/thunderbird-langpacks-102.15.1-20230913.tar.xz diff --git a/sources b/sources index a35662b..fc9eaf3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (cbindgen-vendor.tar.xz) = 590e27b6c093a5c1bd839ca39c68537097d0849087a4a385ee6d7b180e9ceadbbb8974fa997f5f75af03e2c243a2f232d0d4c4c46e253ea464521b76c6886067 -SHA512 (thunderbird-102.13.0.source.tar.xz) = 1ed48220f91cc2c38f59067664c02f1f2098c843810b8f81cb8dee4fe98911d87aac352ab8639c68d0eed74297240cd9e0ce0e64a40360511be85315f2bfcfc6 -SHA512 (thunderbird-langpacks-102.13.0-20230707.tar.xz) = bf9007b066f7211bad70a68449297a5847a1e840a1e5e88d0db5f5cd367c752130c70e266177585b3386ae7796c2ea98dba657da75ae6a22f064a7b584352ca0 +SHA512 (thunderbird-102.15.1.source.tar.xz) = 2c96b9cae7acbf354a6aaf7a7987f40ffddbcb8d05a579e6782afbf9c685392e29b274460e7a82426f41f604cec06cb96139be45f099121603ffe434ec8fac06 +SHA512 (thunderbird-langpacks-102.15.1-20230913.tar.xz) = aac5cf22f11b8c788b067ad71cb8ae61455b26b964956d7bf604c1b7ec5770454678b2544de05ef7e76cfcb440992dc1735221824955e10ad63655a290b47a96 diff --git a/thunderbird.spec b/thunderbird.spec index 4539bf1..a348ad7 100644 --- a/thunderbird.spec +++ b/thunderbird.spec @@ -99,13 +99,13 @@ ExcludeArch: s390x Summary: Mozilla Thunderbird mail/newsgroup client Name: thunderbird -Version: 102.13.0 -Release: 2%{?dist} +Version: 102.15.1 +Release: 1%{?dist} URL: http://www.mozilla.org/projects/thunderbird/ License: MPL-2.0 OR GPL-2.0-or-later OR LGPL-2.0-or-later Source0: https://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/source/thunderbird-%{version}%{?pre_version}.source.tar.xz %if %{build_langpacks} -Source1: thunderbird-langpacks-%{version}-20230707.tar.xz +Source1: thunderbird-langpacks-%{version}-20230913.tar.xz %endif Source3: get-calendar-langpacks.sh Source4: cbindgen-vendor.tar.xz @@ -755,6 +755,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #=============================================================================== %changelog +* Tue Sep 19 2023 Eike Rathke - 102.15.1-1 +- Update to 102.15.1 + * Sat Jul 22 2023 Fedora Release Engineering - 102.13.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From b3dbee4bf2dcdcae795e6748f93fc3a85d89d7da Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Tue, 19 Sep 2023 22:23:32 +0200 Subject: [PATCH 3/3] Revert "Temporarily revert rebase to 115 to update to the last 102.*" This reverts commit a6aa39b74391371f9a5a921cd5500ab1203b89db. --- .gitignore | 2 + D165150.diff | 163 -------------------------------- D165152.diff | 117 ----------------------- build-disable-elfhack.patch | 20 ++-- build-rnp.patch | 11 +++ gcc13-header-dependencies.patch | 30 ------ mozilla-1170092.patch | 64 ++++++------- sources | 6 +- thunderbird.spec | 22 +++-- 9 files changed, 68 insertions(+), 367 deletions(-) delete mode 100644 D165150.diff delete mode 100644 D165152.diff create mode 100644 build-rnp.patch delete mode 100644 gcc13-header-dependencies.patch diff --git a/.gitignore b/.gitignore index ee3cb81..178e8f8 100644 --- a/.gitignore +++ b/.gitignore @@ -408,3 +408,5 @@ thunderbird-langpacks-3.1.2-20100803.tar.bz2 /thunderbird-langpacks-102.13.0-20230707.tar.xz /thunderbird-102.15.1.source.tar.xz /thunderbird-langpacks-102.15.1-20230913.tar.xz +/thunderbird-langpacks-115.0.1-20230720.tar.xz +/thunderbird-115.0.1.source.tar.xz diff --git a/D165150.diff b/D165150.diff deleted file mode 100644 index fc9a9f7..0000000 --- a/D165150.diff +++ /dev/null @@ -1,163 +0,0 @@ -diff -up thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp.D165150 thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp ---- thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp.D165150 2022-12-12 22:37:39.000000000 +0100 -+++ thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.cpp 2022-12-20 14:43:29.742482848 +0100 -@@ -9,11 +9,20 @@ - #include "mozilla/UniquePtr.h" - #include "nsReadableUtils.h" - #include "nsWindow.h" -+#include "nsGtkKeyUtils.h" - - #include - #include - #include - -+#ifdef MOZ_LOGGING -+# include "mozilla/Logging.h" -+extern mozilla::LazyLogModule gWidgetLog; -+# define LOGW(...) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, (__VA_ARGS__)) -+#else -+# define LOGW(...) -+#endif /* MOZ_LOGGING */ -+ - namespace mozilla::widget { - - int32_t WidgetUtilsGTK::IsTouchDeviceSupportPresent() { -@@ -165,4 +174,108 @@ nsTArray ParseTextURIList(con - return result; - } - -+#ifdef MOZ_WAYLAND -+static gboolean token_failed(gpointer aData); -+ -+class XDGTokenRequest { -+ public: -+ void SetTokenID(const char* aTokenID) { -+ mTransferPromise->Resolve(aTokenID, __func__); -+ } -+ void Cancel() { -+ mTransferPromise->Reject(false, __func__); -+ mActivationTimeoutID = 0; -+ } -+ -+ XDGTokenRequest(xdg_activation_token_v1* aXdgToken, -+ RefPtr aTransferPromise) -+ : mXdgToken(aXdgToken), mTransferPromise(aTransferPromise) { -+ mActivationTimeoutID = -+ g_timeout_add(sActivationTimeout, token_failed, this); -+ } -+ ~XDGTokenRequest() { -+ if (mXdgToken) { -+ xdg_activation_token_v1_destroy(mXdgToken); -+ } -+ if (mActivationTimeoutID) { -+ g_source_remove(mActivationTimeoutID); -+ } -+ } -+ -+ private: -+ xdg_activation_token_v1* mXdgToken; -+ RefPtr mTransferPromise; -+ guint mActivationTimeoutID; -+ // Reject FocusRequestPromise if we don't get XDG token in 0.5 sec. -+ const int sActivationTimeout = 500; -+}; -+ -+// Failed to get token in time -+static gboolean token_failed(gpointer data) { -+ UniquePtr request(static_cast(data)); -+ request->Cancel(); -+ return false; -+} -+ -+// We've got activation token from Wayland compositor so it's time to use it. -+static void token_done(gpointer data, struct xdg_activation_token_v1* provider, -+ const char* tokenID) { -+ UniquePtr request(static_cast(data)); -+ request->SetTokenID(tokenID); -+} -+ -+static const struct xdg_activation_token_v1_listener token_listener = { -+ token_done, -+}; -+ -+RefPtr RequestWaylandFocus() { -+ RefPtr sourceWindow = nsWindow::GetFocusedWindow(); -+ if (!sourceWindow) { -+ return nullptr; -+ } -+ -+ RefPtr display = WaylandDisplayGet(); -+ xdg_activation_v1* xdg_activation = display->GetXdgActivation(); -+ if (!xdg_activation) { -+ return nullptr; -+ } -+ -+ wl_surface* focusSurface; -+ uint32_t focusSerial; -+ KeymapWrapper::GetFocusInfo(&focusSurface, &focusSerial); -+ if (!focusSurface) { -+ return nullptr; -+ } -+ -+ GdkWindow* gdkWindow = gtk_widget_get_window(sourceWindow->GetGtkWidget()); -+ if (!gdkWindow) { -+ return nullptr; -+ } -+ wl_surface* surface = gdk_wayland_window_get_wl_surface(gdkWindow); -+ if (focusSurface != surface) { -+ return nullptr; -+ } -+ -+ RefPtr transferPromise = -+ new FocusRequestPromise::Private(__func__); -+ -+ xdg_activation_token_v1* aXdgToken = -+ xdg_activation_v1_get_activation_token(xdg_activation); -+ xdg_activation_token_v1_add_listener( -+ aXdgToken, &token_listener, -+ new XDGTokenRequest(aXdgToken, transferPromise)); -+ xdg_activation_token_v1_set_serial(aXdgToken, focusSerial, -+ KeymapWrapper::GetSeat()); -+ xdg_activation_token_v1_set_surface(aXdgToken, focusSurface); -+ xdg_activation_token_v1_commit(aXdgToken); -+ -+ return transferPromise.forget(); -+} -+ -+bool CanTransferWaylandFocus() { -+ return GdkIsWaylandDisplay() && nsWindow::GetFocusedWindow() && -+ !nsWindow::GetFocusedWindow()->IsDestroyed(); -+} -+#endif -+ - } // namespace mozilla::widget -diff -up thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h.D165150 thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h ---- thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h.D165150 2022-12-12 22:37:41.000000000 +0100 -+++ thunderbird-102.6.0/widget/gtk/WidgetUtilsGtk.h 2022-12-20 13:44:15.343638003 +0100 -@@ -8,11 +8,13 @@ - - #include "nsString.h" - #include "nsTArray.h" -+#include "mozilla/MozPromise.h" - - #include - - typedef struct _GdkDisplay GdkDisplay; - typedef struct _GdkDevice GdkDevice; -+class nsWindow; - - namespace mozilla::widget { - -@@ -51,6 +53,12 @@ bool ShouldUsePortal(PortalKind); - // Parse text/uri-list - nsTArray ParseTextURIList(const nsACString& data); - -+#ifdef MOZ_WAYLAND -+using FocusRequestPromise = mozilla::MozPromise; -+bool CanTransferWaylandFocus(); -+RefPtr RequestWaylandFocus(); -+#endif -+ - } // namespace mozilla::widget - - #endif // WidgetUtilsGtk_h__ diff --git a/D165152.diff b/D165152.diff deleted file mode 100644 index 96350e9..0000000 --- a/D165152.diff +++ /dev/null @@ -1,117 +0,0 @@ -diff -up thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp.D165152 thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp ---- thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp.D165152 2022-12-12 22:37:40.000000000 +0100 -+++ thunderbird-102.6.0/toolkit/system/gnome/nsGIOService.cpp 2022-12-20 13:41:17.337477022 +0100 -@@ -19,6 +19,7 @@ - #include "mozilla/WidgetUtilsGtk.h" - #include "mozilla/StaticPrefs_widget.h" - #include "mozilla/net/DNS.h" -+#include "prenv.h" - - #include - #include -@@ -224,9 +225,7 @@ static RefPtr GetLaun - return context; - } - --NS_IMETHODIMP --nsGIOMimeApp::LaunchWithURI(nsIURI* aUri, -- mozilla::dom::BrowsingContext* aBrowsingContext) { -+static NS_IMETHODIMP LaunchWithURIImpl(RefPtr aInfo, nsIURI* aUri) { - GList uris = {0}; - nsCString spec; - aUri->GetSpec(spec); -@@ -235,7 +234,7 @@ nsGIOMimeApp::LaunchWithURI(nsIURI* aUri - - GUniquePtr error; - gboolean result = g_app_info_launch_uris( -- mApp, &uris, GetLaunchContext().get(), getter_Transfers(error)); -+ aInfo, &uris, GetLaunchContext().get(), getter_Transfers(error)); - if (!result) { - g_warning("Cannot launch application: %s", error->message); - return NS_ERROR_FAILURE; -@@ -244,6 +243,27 @@ nsGIOMimeApp::LaunchWithURI(nsIURI* aUri - return NS_OK; - } - -+NS_IMETHODIMP -+nsGIOMimeApp::LaunchWithURI(nsIURI* aUri, -+ mozilla::dom::BrowsingContext* aBrowsingContext) { -+ if (mozilla::widget::CanTransferWaylandFocus()) { -+ mozilla::widget::RequestWaylandFocus()->Then( -+ GetMainThreadSerialEventTarget(), __func__, -+ /* resolve */ -+ [app = RefPtr{mApp}, uri = RefPtr{aUri}](nsCString token) { -+ PR_SetEnv(ToNewCString("XDG_ACTIVATION_TOKEN="_ns + token)); -+ LaunchWithURIImpl(app, uri); -+ }, -+ /* reject */ -+ [app = RefPtr{mApp}, uri = RefPtr{aUri}](bool state) { -+ LaunchWithURIImpl(app, uri); -+ }); -+ return NS_OK; -+ } -+ -+ return LaunchWithURIImpl(mApp, aUri); -+} -+ - class GIOUTF8StringEnumerator final : public nsStringEnumeratorBase { - ~GIOUTF8StringEnumerator() = default; - -@@ -531,7 +551,7 @@ nsGIOService::GetDescriptionForMimeType( - return NS_OK; - } - --nsresult nsGIOService::ShowURI(nsIURI* aURI) { -+static nsresult ShowURIImpl(nsIURI* aURI) { - nsAutoCString spec; - MOZ_TRY(aURI->GetSpec(spec)); - GUniquePtr error; -@@ -544,7 +564,24 @@ nsresult nsGIOService::ShowURI(nsIURI* a - return NS_OK; - } - --static nsresult LaunchPath(const nsACString& aPath) { -+nsresult nsGIOService::ShowURI(nsIURI* aURI) { -+ if (mozilla::widget::CanTransferWaylandFocus()) { -+ mozilla::widget::RequestWaylandFocus()->Then( -+ GetMainThreadSerialEventTarget(), __func__, -+ /* resolve */ -+ [uri = RefPtr{aURI}](nsCString token) { -+ PR_SetEnv(ToNewCString("XDG_ACTIVATION_TOKEN="_ns + token)); -+ ShowURIImpl(uri); -+ }, -+ /* reject */ -+ [uri = RefPtr{aURI}](bool state) { ShowURIImpl(uri); }); -+ return NS_OK; -+ } -+ -+ return ShowURIImpl(aURI); -+} -+ -+static nsresult LaunchPathImpl(const nsACString& aPath) { - RefPtr file = dont_AddRef( - g_file_new_for_commandline_arg(PromiseFlatCString(aPath).get())); - GUniquePtr spec(g_file_get_uri(file)); -@@ -558,6 +595,22 @@ static nsresult LaunchPath(const nsACStr - return NS_OK; - } - -+static nsresult LaunchPath(const nsACString& aPath) { -+ if (mozilla::widget::CanTransferWaylandFocus()) { -+ mozilla::widget::RequestWaylandFocus()->Then( -+ GetMainThreadSerialEventTarget(), __func__, -+ /* resolve */ -+ [path = nsCString{aPath}](nsCString token) { -+ PR_SetEnv(ToNewCString("XDG_ACTIVATION_TOKEN="_ns + token)); -+ LaunchPathImpl(path); -+ }, -+ /* reject */ -+ [path = nsCString{aPath}](bool state) { LaunchPathImpl(path); }); -+ return NS_OK; -+ } -+ return LaunchPathImpl(aPath); -+} -+ - nsresult nsGIOService::LaunchFile(const nsACString& aPath) { - return LaunchPath(aPath); - } diff --git a/build-disable-elfhack.patch b/build-disable-elfhack.patch index 04d49f2..67bb731 100644 --- a/build-disable-elfhack.patch +++ b/build-disable-elfhack.patch @@ -1,12 +1,12 @@ -diff -up firefox-97.0/toolkit/moz.configure.disable-elfhack firefox-97.0/toolkit/moz.configure ---- firefox-97.0/toolkit/moz.configure.disable-elfhack 2022-02-08 09:58:47.518047952 +0100 -+++ firefox-97.0/toolkit/moz.configure 2022-02-08 10:17:49.552945956 +0100 -@@ -1273,7 +1273,7 @@ with only_when("--enable-compile-environ - help="{Enable|Disable} elf hacks", - ) +diff -up firefox-115.0.2/toolkit/moz.configure.disable-elfhack firefox-115.0.2/toolkit/moz.configure +--- firefox-115.0.2/toolkit/moz.configure.disable-elfhack 2023-07-18 12:21:22.507358334 +0200 ++++ firefox-115.0.2/toolkit/moz.configure 2023-07-18 12:52:55.972727498 +0200 +@@ -1520,7 +1520,7 @@ with only_when("--enable-compile-environ + "Cannot enable elfhack with lld." + " Use --enable-linker=bfd, --enable-linker=gold, or --disable-elf-hack" + ) +- return True ++ return False -- set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: True)) -+ set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: False)) + set_config("USE_ELF_HACK", use_elf_hack) - - @depends(build_environment) diff --git a/build-rnp.patch b/build-rnp.patch new file mode 100644 index 0000000..edc9573 --- /dev/null +++ b/build-rnp.patch @@ -0,0 +1,11 @@ +diff -up thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h.build-rnp thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h +--- thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h.build-rnp 2023-07-24 11:38:24.732782411 +0200 ++++ thunderbird-115.0.1/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h 2023-07-24 11:38:46.824773498 +0200 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + namespace sexp { + diff --git a/gcc13-header-dependencies.patch b/gcc13-header-dependencies.patch deleted file mode 100644 index d16b4bc..0000000 --- a/gcc13-header-dependencies.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- thunderbird-102.7.1/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp.gcc13-header-dependency 2023-01-24 04:23:43.000000000 +0100 -+++ thunderbird-102.7.1/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp 2023-01-25 19:23:11.048662899 +0100 -@@ -3,6 +3,7 @@ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ -+#include - #include - - #include "sdp/RsdparsaSdpInc.h" ---- thunderbird-102.7.1/gfx/2d/Rect.h.gcc13-header-dependency 2023-01-24 04:23:44.000000000 +0100 -+++ thunderbird-102.7.1/gfx/2d/Rect.h 2023-01-25 19:23:11.049662897 +0100 -@@ -15,6 +15,7 @@ - #include "mozilla/Maybe.h" - - #include -+#include - - namespace mozilla { - ---- thunderbird-102.7.1/toolkit/components/telemetry/pingsender/pingsender.cpp.gcc13-header-dependency 2023-01-24 04:23:55.000000000 +0100 -+++ thunderbird-102.7.1/toolkit/components/telemetry/pingsender/pingsender.cpp 2023-01-25 21:38:39.432188899 +0100 -@@ -3,6 +3,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/. */ - -+#include - #include - #include - #include diff --git a/mozilla-1170092.patch b/mozilla-1170092.patch index 49b7b49..36d2b00 100644 --- a/mozilla-1170092.patch +++ b/mozilla-1170092.patch @@ -1,7 +1,7 @@ -diff -up firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp ---- firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2020-04-03 21:34:41.000000000 +0200 -+++ firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2020-04-06 22:40:02.760674871 +0200 -@@ -244,8 +244,20 @@ nsresult nsReadConfig::openAndEvaluateJS +diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2023-07-10 21:08:53.000000000 +0200 ++++ firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp 2023-07-17 10:33:23.443355156 +0200 +@@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS if (NS_FAILED(rv)) return rv; rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); @@ -23,10 +23,10 @@ diff -up firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 fi } else { nsAutoCString location("resource://gre/defaults/autoconfig/"); location += aFileName; -diff -up firefox-75.0/modules/libpref/Preferences.cpp.1170092 firefox-75.0/modules/libpref/Preferences.cpp ---- firefox-75.0/modules/libpref/Preferences.cpp.1170092 2020-04-06 22:40:02.761674865 +0200 -+++ firefox-75.0/modules/libpref/Preferences.cpp 2020-04-06 22:40:57.675325227 +0200 -@@ -4468,6 +4468,9 @@ nsresult Preferences::InitInitialObjects +diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp +--- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200 ++++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200 +@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects // // Thus, in the omni.jar case, we always load app-specific default // preferences from omni.jar, whether or not `$app == $gre`. @@ -36,10 +36,10 @@ diff -up firefox-75.0/modules/libpref/Preferences.cpp.1170092 firefox-75.0/modul nsresult rv = NS_ERROR_FAILURE; UniquePtr find; -diff -up firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-75.0/toolkit/xre/nsXREDirProvider.cpp ---- firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2020-04-03 21:35:39.000000000 +0200 -+++ firefox-75.0/toolkit/xre/nsXREDirProvider.cpp 2020-04-06 22:40:02.761674865 +0200 -@@ -60,6 +60,7 @@ +diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp +--- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200 ++++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200 +@@ -72,6 +72,7 @@ #endif #ifdef XP_UNIX # include @@ -47,13 +47,11 @@ diff -up firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-75.0/tool #endif #ifdef XP_IOS # include "UIKitDirProvider.h" -@@ -533,6 +534,21 @@ nsXREDirProvider::GetFile(const char* aP - } - } - } -+ -+#if defined(XP_UNIX) -+ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { +@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP + rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME)); + NS_ENSURE_SUCCESS(rv, rv); + rv = EnsureDirectoryExists(file); ++ } else if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { + nsCString sysConfigDir = nsLiteralCString("/etc/"); + nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); + if (!appInfo) @@ -62,16 +60,14 @@ diff -up firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-75.0/tool + appInfo->GetName(appName); + ToLowerCase(appName); + sysConfigDir.Append(appName); -+ return NS_NewNativeLocalFile(sysConfigDir, false, aFile); -+ } -+#endif -+ - if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE; - - if (ensureFilePermissions) { -@@ -845,6 +861,16 @@ nsresult nsXREDirProvider::GetFilesInter - - LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); ++ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file)); ++ rv = EnsureDirectoryExists(file); + } else { + // We don't know anything about this property. Fail without warning, because + // otherwise we'll get too much warning spam due to +@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a + } + #endif + // Add /etc//pref/ directory if it exists + nsCOMPtr systemPrefDir; @@ -81,15 +77,15 @@ diff -up firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-75.0/tool + rv = systemPrefDir->AppendNative(nsLiteralCString("pref")); + if (NS_SUCCEEDED(rv)) + directories.AppendObject(systemPrefDir); -+ } ++ } + rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons -diff -up firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h ---- firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2020-04-03 21:35:39.000000000 +0200 -+++ firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h 2020-04-06 22:40:02.761674865 +0200 -@@ -60,6 +60,7 @@ +diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200 ++++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200 +@@ -58,6 +58,7 @@ #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_OVERRIDE_DIR \ "PrefDOverride" // Directory for per-profile defaults diff --git a/sources b/sources index fc9eaf3..320e7a4 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (cbindgen-vendor.tar.xz) = 590e27b6c093a5c1bd839ca39c68537097d0849087a4a385ee6d7b180e9ceadbbb8974fa997f5f75af03e2c243a2f232d0d4c4c46e253ea464521b76c6886067 -SHA512 (thunderbird-102.15.1.source.tar.xz) = 2c96b9cae7acbf354a6aaf7a7987f40ffddbcb8d05a579e6782afbf9c685392e29b274460e7a82426f41f604cec06cb96139be45f099121603ffe434ec8fac06 -SHA512 (thunderbird-langpacks-102.15.1-20230913.tar.xz) = aac5cf22f11b8c788b067ad71cb8ae61455b26b964956d7bf604c1b7ec5770454678b2544de05ef7e76cfcb440992dc1735221824955e10ad63655a290b47a96 +SHA512 (thunderbird-langpacks-115.0.1-20230720.tar.xz) = 33499972fe176c89772a22101e3d12f71a56471866e3aef6477d0be665e41b82d32e5a454d7ea979558de295902484eb3fb73f07dbd85ae92b44d00a80cc772d +SHA512 (thunderbird-115.0.1.source.tar.xz) = 9a53024790a537fb012d66e683248e82a9b2c2a4db6fc90d1e1d3c785c28e9d65f1d110c33dcbdad63f8f6ecb3e5c6a526c0028c3970125022ebe384506d4ba3 +SHA512 (cbindgen-vendor.tar.xz) = 161811f4adfc74e5d92871c78139704d32e1e1ad6b615c85353de300d9647a68f1ca8b1c953f7cc5539d861e9e8d8e42892cae757a3eafea78804e19bc323c16 diff --git a/thunderbird.spec b/thunderbird.spec index a348ad7..3897265 100644 --- a/thunderbird.spec +++ b/thunderbird.spec @@ -99,13 +99,13 @@ ExcludeArch: s390x Summary: Mozilla Thunderbird mail/newsgroup client Name: thunderbird -Version: 102.15.1 +Version: 115.0.1 Release: 1%{?dist} URL: http://www.mozilla.org/projects/thunderbird/ License: MPL-2.0 OR GPL-2.0-or-later OR LGPL-2.0-or-later Source0: https://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/source/thunderbird-%{version}%{?pre_version}.source.tar.xz %if %{build_langpacks} -Source1: thunderbird-langpacks-%{version}-20230913.tar.xz +Source1: thunderbird-langpacks-%{version}-20230720.tar.xz %endif Source3: get-calendar-langpacks.sh Source4: cbindgen-vendor.tar.xz @@ -131,7 +131,7 @@ Patch103: rhbz-1219542-s390-build.patch # gcc 12 build fix patches Patch422: 0001-GLIBCXX-fix-for-GCC-12.patch Patch425: build-disable-elfhack.patch -Patch426: gcc13-header-dependencies.patch +Patch426: build-rnp.patch # PPC fix Patch304: mozilla-1245783.patch @@ -141,8 +141,6 @@ Patch304: mozilla-1245783.patch # Upstream patches Patch402: mozilla-526293.patch Patch406: mozilla-1170092.patch -Patch408: D165150.diff -Patch409: D165152.diff # Bundled expat backported patches Patch501: expat-CVE-2022-25235.patch @@ -217,7 +215,7 @@ Obsoletes: thunderbird-lightning-gdata <= 1:3.3.0.14 BuildRequires: rust BuildRequires: cargo BuildRequires: clang-devel -BuildRequires: python3-devel +BuildRequires: python3.11-devel %if !0%{?use_bundled_cbindgen} BuildRequires: cbindgen %endif @@ -308,16 +306,14 @@ debug %{name}, you want to install %{name}-debuginfo instead. %if 0%{?disable_elfhack} %patch -P 425 -p1 -b .build-disable-elfhack %endif +%patch -P 426 -p1 -b .build-rnp # most likely fixed #%patch -P 419 -p1 -b .bindgen %patch -P 402 -p1 -b .526293 %patch -P 406 -p1 -b .1170092-etc-conf -%patch -P 408 -p1 -b .D165150 -%patch -P 409 -p1 -b .D165152 %patch -P 422 -p1 -b .0001-GLIBCXX-fix-for-GCC-12 -%patch -P 426 -p1 -b .gcc13-header-dependencies %patch -P 501 -p1 -b .expat-CVE-2022-25235 %patch -P 502 -p1 -b .expat-CVE-2022-25236 @@ -564,7 +560,8 @@ MOZ_SMP_FLAGS=-j1 export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" export STRIP=/bin/true -export MACH_USE_SYSTEM_PYTHON=1 +export PYTHON=python3.11 +export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system ./mach build -v # create debuginfo for crash-stats.mozilla.com @@ -751,10 +748,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{mozappdir}/dependentlibs.list %{mozappdir}/fonts %{mozappdir}/pingsender +%{mozappdir}/glxtest +%{mozappdir}/vaapitest #=============================================================================== %changelog +* Mon Jul 24 2023 Jan Horak - 115.0.1-1 +- Update to 115.0.1 + * Tue Sep 19 2023 Eike Rathke - 102.15.1-1 - Update to 102.15.1