summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devel/bam/Makefile4
-rw-r--r--devel/electron37/Makefile1
-rw-r--r--devel/electron37/Makefile.version2
-rw-r--r--devel/electron37/distinfo10
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc8
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc4
-rw-r--r--devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc4
-rw-r--r--devel/electron37/files/patch-electron_spec_api-app-spec.ts28
-rw-r--r--devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts4
-rw-r--r--devel/electron38/Makefile1
-rw-r--r--devel/electron38/Makefile.version2
-rw-r--r--devel/electron38/distinfo10
-rw-r--r--devel/electron38/files/patch-electron_shell_browser_api_electron__api__app.cc8
-rw-r--r--devel/electron38/files/patch-electron_shell_browser_api_electron__api__base__window.cc10
-rw-r--r--devel/electron38/files/patch-electron_shell_browser_native__window.cc4
-rw-r--r--devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc4
-rw-r--r--devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc4
-rw-r--r--devel/electron38/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc12
-rw-r--r--devel/electron38/files/patch-electron_spec_api-app-spec.ts28
-rw-r--r--devel/electron38/files/patch-electron_spec_api-browser-window-spec.ts26
-rw-r--r--devel/electron38/files/patch-electron_spec_api-protocol-spec.ts4
-rw-r--r--devel/electron38/files/patch-electron_spec_api-web-contents-spec.ts4
-rw-r--r--devel/electron39/Makefile3
-rw-r--r--devel/electron39/Makefile.version2
-rw-r--r--devel/electron39/distinfo14
-rw-r--r--devel/electron39/files/patch-ash_display_mirror__window__controller.cc14
-rw-r--r--devel/electron39/files/patch-chrome_browser_about__flags.cc78
-rw-r--r--devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc4
-rw-r--r--devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc4
-rw-r--r--devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h6
-rw-r--r--devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc4
-rw-r--r--devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc6
-rw-r--r--devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc6
-rw-r--r--devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h6
-rw-r--r--devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc6
-rw-r--r--devel/electron39/files/patch-components_feature__engagement_public_feature__list.h10
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc8
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc10
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc20
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_native__window.cc4
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_native__window__views.cc20
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc4
-rw-r--r--devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc4
-rw-r--r--devel/electron39/files/patch-electron_shell_services_node_node__service.cc8
-rw-r--r--devel/electron39/files/patch-electron_spec_api-app-spec.ts28
-rw-r--r--devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts26
-rw-r--r--devel/electron39/files/patch-electron_spec_api-native-image-spec.ts4
-rw-r--r--devel/electron39/files/patch-electron_spec_api-protocol-spec.ts4
-rw-r--r--devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts4
-rw-r--r--devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc11
-rw-r--r--devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc4
-rw-r--r--devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json518
-rw-r--r--devel/libunit/Makefile3
-rw-r--r--devel/pcre2/Makefile75
-rw-r--r--devel/pcre2/distinfo6
-rw-r--r--devel/pcre2/files/patch-deps_sljit_sljit__src_sljitConfigInternal.h11
-rw-r--r--devel/pcre2/files/patch-git-01-f8e7d124500e869ffc5643228c34d3745d64a3d7221
-rw-r--r--devel/pcre2/files/patch-git-02-3b9197727e70bffded674d24100e7b4c80e7ef5887
-rw-r--r--devel/pcre2/pkg-plist24
-rw-r--r--devel/please/Makefile3
-rw-r--r--devel/please/distinfo10
-rw-r--r--devel/py-sirmordred/Makefile3
-rw-r--r--devel/rubygem-CFPropertyList-gitlab/Makefile9
-rw-r--r--devel/rubygem-CFPropertyList-gitlab/distinfo6
-rw-r--r--devel/rubygem-opentelemetry-helpers-sql-processor/Makefile2
-rw-r--r--devel/rubygem-opentelemetry-helpers-sql-processor/distinfo6
-rw-r--r--devel/unit-otel/Makefile3
67 files changed, 647 insertions, 344 deletions
diff --git a/devel/bam/Makefile b/devel/bam/Makefile
index 14edb4c61082..804f4c236d81 100644
--- a/devel/bam/Makefile
+++ b/devel/bam/Makefile
@@ -9,6 +9,10 @@ WWW= http://matricks.github.com/bam/
LICENSE= ZLIB
+BROKEN= Unfetchable
+DEPRECATED= Outdated, current release in tree is from 2013 while latest upstream is 2018
+EXPIRATION_DATE=2025-12-31
+
USES= compiler tar:bzip2
CONFLICTS_INSTALL= bamutil
diff --git a/devel/electron37/Makefile b/devel/electron37/Makefile
index 37709631639f..a81f9cf8532c 100644
--- a/devel/electron37/Makefile
+++ b/devel/electron37/Makefile
@@ -1,7 +1,6 @@
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER}
-PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= devel
diff --git a/devel/electron37/Makefile.version b/devel/electron37/Makefile.version
index a5d3f3282778..326caa4d44e7 100644
--- a/devel/electron37/Makefile.version
+++ b/devel/electron37/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 37.9.0
+ELECTRON_VER= 37.10.0
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron37/distinfo b/devel/electron37/distinfo
index 7fcd3f05dba7..8873208b6236 100644
--- a/devel/electron37/distinfo
+++ b/devel/electron37/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1762576840
+TIMESTAMP = 1763099445
SHA256 (electron/chromium-138.0.7204.251.tar.xz.0) = 23057c15fd77b6653b01a34e08782f05cc80ecddddaf6f0b87390beb32810151
SIZE (electron/chromium-138.0.7204.251.tar.xz.0) = 2000000000
SHA256 (electron/chromium-138.0.7204.251.tar.xz.1) = 784a8bcb5eff8c204557c5cb7c4a223efd3c472303dd79a8b7be97e3d5d0982a
@@ -7,10 +7,10 @@ SHA256 (electron/chromium-138.0.7204.251.tar.xz.2) = 3d7af9e06a90102b41de19d4635
SIZE (electron/chromium-138.0.7204.251.tar.xz.2) = 273864084
SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (electron/electron-yarn-cache-37.9.0.tar.xz) = 34a44bb3ceaa38384ab57905ac82eb29f3cb66db5f731479d67b306211916e3d
-SIZE (electron/electron-yarn-cache-37.9.0.tar.xz) = 30531168
-SHA256 (electron/electron-electron-v37.9.0_GH0.tar.gz) = 15024fcfbeb3aa09fbfb3cb219e84336ae36a11c91a37ac398c7cf7b6b12cbbe
-SIZE (electron/electron-electron-v37.9.0_GH0.tar.gz) = 15853774
+SHA256 (electron/electron-yarn-cache-37.10.0.tar.xz) = 34a44bb3ceaa38384ab57905ac82eb29f3cb66db5f731479d67b306211916e3d
+SIZE (electron/electron-yarn-cache-37.10.0.tar.xz) = 30531168
+SHA256 (electron/electron-electron-v37.10.0_GH0.tar.gz) = fe59c5d2965970b85590f4bcfb38c90928978708030321a8316ab4623a7e8261
+SIZE (electron/electron-electron-v37.10.0_GH0.tar.gz) = 15857851
SHA256 (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 4b5ad1795fb6adfb1862df9a626bdca85185866fcd7d0313e87a347eec293fd8
SIZE (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 129440814
SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb
diff --git a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc
index 00fd8098ed1c..a3d88bfb8611 100644
--- a/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_api_electron__api__app.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_app.cc.orig 2025-10-28 08:06:59 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig 2025-11-13 23:04:07 UTC
+++ electron/shell/browser/api/electron_api_app.cc
@@ -96,7 +96,7 @@
#include "shell/common/process_util.h"
@@ -45,7 +45,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running electron app instance if it exists.
-@@ -1434,7 +1434,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1445,7 +1445,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
pid_dict.Set("name", process_metric.second->name);
}
@@ -54,7 +54,7 @@
auto memory_info = process_metric.second->GetMemoryInfo();
auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate);
-@@ -1818,7 +1818,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1829,7 +1829,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod(
"removeAsDefaultProtocolClient",
base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser))
@@ -63,7 +63,7 @@
.SetMethod(
"getApplicationInfoForProtocol",
base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser))
-@@ -1876,7 +1876,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1887,7 +1887,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod("getJumpListSettings", &App::GetJumpListSettings)
.SetMethod("setJumpList", &App::SetJumpList)
#endif
diff --git a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
index abd8c6af7036..44cde47dddc3 100644
--- a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-07-02 15:59:39 UTC
+--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-11-13 23:04:07 UTC
+++ electron/shell/browser/ui/inspectable_web_contents.cc
-@@ -548,7 +548,7 @@ void InspectableWebContents::LoadCompleted() {
+@@ -554,7 +554,7 @@ void InspectableWebContents::LoadCompleted() {
prefs.FindString("currentDockState");
base::RemoveChars(*current_dock_state, "\"", &dock_state_);
}
diff --git a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
index baf9532d11ad..359c4558dee4 100644
--- a/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
+++ b/devel/electron37/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-07-02 10:12:01 UTC
+--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-11-13 23:04:07 UTC
+++ electron/shell/browser/ui/inspectable_web_contents_view.cc
-@@ -180,7 +180,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
+@@ -197,7 +197,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
params.delegate = devtools_window_delegate_;
params.bounds = inspectable_web_contents()->dev_tools_bounds();
diff --git a/devel/electron37/files/patch-electron_spec_api-app-spec.ts b/devel/electron37/files/patch-electron_spec_api-app-spec.ts
index e1ed07cb198d..a647e942305c 100644
--- a/devel/electron37/files/patch-electron_spec_api-app-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-app-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-app-spec.ts.orig 2025-10-28 08:06:59 UTC
+--- electron/spec/api-app-spec.ts.orig 2025-11-13 23:04:07 UTC
+++ electron/spec/api-app-spec.ts
@@ -129,11 +129,11 @@ describe('app module', () => {
});
@@ -14,7 +14,7 @@
const languages = app.getPreferredSystemLanguages();
if (languages.length) {
expect(languages).to.not.include('C');
-@@ -196,7 +196,7 @@ describe('app module', () => {
+@@ -202,7 +202,7 @@ describe('app module', () => {
expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound');
});
@@ -23,7 +23,7 @@
const electronPath = process.execPath;
const appPath = path.join(fixturesPath, 'api', 'singleton');
appProcess = cp.spawn(electronPath, [appPath]);
-@@ -360,7 +360,7 @@ describe('app module', () => {
+@@ -366,7 +366,7 @@ describe('app module', () => {
});
// GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -32,7 +32,7 @@
const tempFiles = [
path.join(fixturesPath, 'foo.txt'),
path.join(fixturesPath, 'bar.txt'),
-@@ -488,7 +488,7 @@ describe('app module', () => {
+@@ -494,7 +494,7 @@ describe('app module', () => {
// let w = null
// before(function () {
@@ -41,7 +41,7 @@
// this.skip()
// }
// })
-@@ -595,7 +595,7 @@ describe('app module', () => {
+@@ -601,7 +601,7 @@ describe('app module', () => {
describe('app.badgeCount', () => {
const platformIsNotSupported =
(process.platform === 'win32') ||
@@ -50,7 +50,7 @@
const expectedBadgeCount = 42;
-@@ -639,7 +639,7 @@ describe('app module', () => {
+@@ -645,7 +645,7 @@ describe('app module', () => {
});
});
@@ -59,7 +59,7 @@
const isMac = process.platform === 'darwin';
const isWin = process.platform === 'win32';
-@@ -1019,7 +1019,7 @@ describe('app module', () => {
+@@ -1025,7 +1025,7 @@ describe('app module', () => {
});
});
@@ -68,7 +68,7 @@
it('is mutable', () => {
const values = [false, true, false];
const setters: Array<(arg: boolean) => void> = [
-@@ -1288,7 +1288,7 @@ describe('app module', () => {
+@@ -1294,7 +1294,7 @@ describe('app module', () => {
});
});
@@ -77,7 +77,7 @@
let w: BrowserWindow;
before(function () {
-@@ -1423,7 +1423,7 @@ describe('app module', () => {
+@@ -1429,7 +1429,7 @@ describe('app module', () => {
describe('getApplicationNameForProtocol()', () => {
// TODO: Linux CI doesn't have registered http & https handlers
@@ -86,7 +86,7 @@
// We can't expect particular app names here, but these protocols should
// at least have _something_ registered. Except on our Linux CI
// environment apparently.
-@@ -1441,7 +1441,7 @@ describe('app module', () => {
+@@ -1447,7 +1447,7 @@ describe('app module', () => {
});
});
@@ -95,7 +95,7 @@
it('returns promise rejection for a bogus protocol', async function () {
await expect(
app.getApplicationInfoForProtocol('bogus-protocol://')
-@@ -1491,7 +1491,7 @@ describe('app module', () => {
+@@ -1497,7 +1497,7 @@ describe('app module', () => {
});
// FIXME Get these specs running on Linux CI
@@ -104,7 +104,7 @@
const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico');
const sizes = {
small: 16,
-@@ -1573,7 +1573,7 @@ describe('app module', () => {
+@@ -1579,7 +1579,7 @@ describe('app module', () => {
expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
}
@@ -113,7 +113,7 @@
expect(entry.sandboxed).to.be.a('boolean');
}
-@@ -1647,7 +1647,7 @@ describe('app module', () => {
+@@ -1653,7 +1653,7 @@ describe('app module', () => {
it('succeeds with complete GPUInfo', async () => {
const completeInfo = await getGPUInfo('complete');
@@ -122,7 +122,7 @@
// For linux and macOS complete info is same as basic info
await verifyBasicGPUInfo(completeInfo);
const basicInfo = await getGPUInfo('basic');
-@@ -1671,7 +1671,7 @@ describe('app module', () => {
+@@ -1677,7 +1677,7 @@ describe('app module', () => {
});
});
diff --git a/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts
index 001598b72527..fc85171296ae 100644
--- a/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts
+++ b/devel/electron37/files/patch-electron_spec_api-web-contents-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-web-contents-spec.ts.orig 2025-08-13 14:21:20 UTC
+--- electron/spec/api-web-contents-spec.ts.orig 2025-11-13 23:04:07 UTC
+++ electron/spec/api-web-contents-spec.ts
-@@ -2797,7 +2797,7 @@ describe('webContents module', () => {
+@@ -2832,7 +2832,7 @@ describe('webContents module', () => {
});
// TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/devel/electron38/Makefile b/devel/electron38/Makefile
index 6f8eace6a112..bb31e1ea2998 100644
--- a/devel/electron38/Makefile
+++ b/devel/electron38/Makefile
@@ -1,7 +1,6 @@
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER}
-PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= devel
diff --git a/devel/electron38/Makefile.version b/devel/electron38/Makefile.version
index 4752993fe343..bfffa322cf7e 100644
--- a/devel/electron38/Makefile.version
+++ b/devel/electron38/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 38.6.0
+ELECTRON_VER= 38.7.0
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron38/distinfo b/devel/electron38/distinfo
index 1dabe699c5cc..2616864b7e35 100644
--- a/devel/electron38/distinfo
+++ b/devel/electron38/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1762582453
+TIMESTAMP = 1763104920
SHA256 (electron/chromium-140.0.7339.249.tar.xz.0) = 138fc3e5eb2b5db406a7764a8e287a0d16640f83cbfb452d6e0f54de8eaf65c2
SIZE (electron/chromium-140.0.7339.249.tar.xz.0) = 2000000000
SHA256 (electron/chromium-140.0.7339.249.tar.xz.1) = 0b7ea85268dd4f6aacd0641a48d266eaa2eb9c79f2c528926bfcdc5aee36f1da
@@ -7,10 +7,10 @@ SHA256 (electron/chromium-140.0.7339.249.tar.xz.2) = 0a2a9977f5f34ac878b63e845ef
SIZE (electron/chromium-140.0.7339.249.tar.xz.2) = 331916124
SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (electron/electron-yarn-cache-38.6.0.tar.xz) = 7ed6fedc372c5bd23b38ed252c12ace0f0fbce096b5442add4501a965282eb04
-SIZE (electron/electron-yarn-cache-38.6.0.tar.xz) = 30044356
-SHA256 (electron/electron-electron-v38.6.0_GH0.tar.gz) = 49a77f3bb00c498ee2c456e126955cf17af5bd95d990de3b36d66b200f9b2b55
-SIZE (electron/electron-electron-v38.6.0_GH0.tar.gz) = 15867868
+SHA256 (electron/electron-yarn-cache-38.7.0.tar.xz) = 7ed6fedc372c5bd23b38ed252c12ace0f0fbce096b5442add4501a965282eb04
+SIZE (electron/electron-yarn-cache-38.7.0.tar.xz) = 30044356
+SHA256 (electron/electron-electron-v38.7.0_GH0.tar.gz) = cbfad53983c89458299fab543308c6866bf2502df43dce1904267f724085c749
+SIZE (electron/electron-electron-v38.7.0_GH0.tar.gz) = 15882611
SHA256 (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 4b5ad1795fb6adfb1862df9a626bdca85185866fcd7d0313e87a347eec293fd8
SIZE (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 129440814
SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb
diff --git a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__app.cc
index 7779829716a3..d529620a1e00 100644
--- a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__app.cc
+++ b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__app.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_app.cc.orig 2025-10-28 14:56:59 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig 2025-11-13 22:57:06 UTC
+++ electron/shell/browser/api/electron_api_app.cc
@@ -97,7 +97,7 @@
#include "shell/common/process_util.h"
@@ -45,7 +45,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running electron app instance if it exists.
-@@ -1435,7 +1435,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1446,7 +1446,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
pid_dict.Set("name", process_metric.second->name);
}
@@ -54,7 +54,7 @@
auto memory_info = process_metric.second->GetMemoryInfo();
auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate);
-@@ -1819,7 +1819,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1830,7 +1830,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod(
"removeAsDefaultProtocolClient",
base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser))
@@ -63,7 +63,7 @@
.SetMethod(
"getApplicationInfoForProtocol",
base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser))
-@@ -1877,7 +1877,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1888,7 +1888,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod("getJumpListSettings", &App::GetJumpListSettings)
.SetMethod("setJumpList", &App::SetJumpList)
#endif
diff --git a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__base__window.cc b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__base__window.cc
index 573b62a17559..6b34087432bc 100644
--- a/devel/electron38/files/patch-electron_shell_browser_api_electron__api__base__window.cc
+++ b/devel/electron38/files/patch-electron_shell_browser_api_electron__api__base__window.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-09-02 20:56:04 UTC
+--- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-11-13 22:57:06 UTC
+++ electron/shell/browser/api/electron_api_base_window.cc
-@@ -42,7 +42,7 @@
+@@ -43,7 +43,7 @@
#include "shell/browser/ui/views/win_frame_view.h"
#include "shell/browser/ui/win/taskbar_host.h"
#include "ui/base/win/shell.h"
@@ -9,7 +9,7 @@
#include "shell/browser/ui/views/opaque_frame_view.h"
#endif
-@@ -1030,7 +1030,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate,
+@@ -1031,7 +1031,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate,
static_cast<NativeWindowViews*>(window_.get())
->SetIcon(native_image->GetHICON(GetSystemMetrics(SM_CXSMICON)),
native_image->GetHICON(GetSystemMetrics(SM_CXICON)));
@@ -18,7 +18,7 @@
static_cast<NativeWindowViews*>(window_.get())
->SetIcon(native_image->image().AsImageSkia());
#endif
-@@ -1118,7 +1118,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
+@@ -1123,7 +1123,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
}
#endif
@@ -27,7 +27,7 @@
void BaseWindow::SetTitleBarOverlay(const gin_helper::Dictionary& options,
gin_helper::Arguments* args) {
static_cast<NativeWindowViews*>(window_.get())
-@@ -1315,7 +1315,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
+@@ -1320,7 +1320,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
.SetMethod("setThumbnailToolTip", &BaseWindow::SetThumbnailToolTip)
.SetMethod("setAppDetails", &BaseWindow::SetAppDetails)
#endif
diff --git a/devel/electron38/files/patch-electron_shell_browser_native__window.cc b/devel/electron38/files/patch-electron_shell_browser_native__window.cc
index c831d05393b9..bcc768f02930 100644
--- a/devel/electron38/files/patch-electron_shell_browser_native__window.cc
+++ b/devel/electron38/files/patch-electron_shell_browser_native__window.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/native_window.cc.orig 2025-09-02 20:56:04 UTC
+--- electron/shell/browser/native_window.cc.orig 2025-11-13 22:57:06 UTC
+++ electron/shell/browser/native_window.cc
-@@ -184,7 +184,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D
+@@ -185,7 +185,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D
} else {
SetSizeConstraints(size_constraints);
}
diff --git a/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
index abd8c6af7036..21396edfbf9b 100644
--- a/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
+++ b/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-07-02 15:59:39 UTC
+--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-11-13 22:57:06 UTC
+++ electron/shell/browser/ui/inspectable_web_contents.cc
-@@ -548,7 +548,7 @@ void InspectableWebContents::LoadCompleted() {
+@@ -554,7 +554,7 @@ void InspectableWebContents::LoadCompleted() {
prefs.FindString("currentDockState");
base::RemoveChars(*current_dock_state, "\"", &dock_state_);
}
diff --git a/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
index 080d256f9b7a..2c9b2e4fd663 100644
--- a/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
+++ b/devel/electron38/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-09-02 20:56:04 UTC
+--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-11-13 22:57:06 UTC
+++ electron/shell/browser/ui/inspectable_web_contents_view.cc
-@@ -181,7 +181,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
+@@ -198,7 +198,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
params.delegate = devtools_window_delegate_;
params.bounds = inspectable_web_contents()->dev_tools_bounds();
diff --git a/devel/electron38/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc b/devel/electron38/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
index 4f577ac81310..2adda32d82ef 100644
--- a/devel/electron38/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
+++ b/devel/electron38/files/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
@@ -1,15 +1,15 @@
---- electron/shell/browser/ui/views/electron_views_delegate.cc.orig 2025-01-29 20:10:57 UTC
+--- electron/shell/browser/ui/views/electron_views_delegate.cc.orig 2025-11-13 22:57:06 UTC
+++ electron/shell/browser/ui/views/electron_views_delegate.cc
-@@ -9,7 +9,7 @@
- #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
+@@ -10,7 +10,7 @@
#include "ui/views/widget/native_widget_aura.h"
+ #include "ui/views/window/default_frame_view.h"
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
#include "base/environment.h"
#include "base/nix/xdg_util.h"
#include "ui/linux/linux_ui.h"
-@@ -17,7 +17,7 @@ namespace {
+@@ -18,7 +18,7 @@ namespace {
namespace {
@@ -18,7 +18,7 @@
bool IsDesktopEnvironmentUnity() {
auto env = base::Environment::Create();
base::nix::DesktopEnvironment desktop_env =
-@@ -54,7 +54,7 @@ void ViewsDelegate::NotifyMenuItemFocused(const std::u
+@@ -55,7 +55,7 @@ void ViewsDelegate::NotifyMenuItemFocused(const std::u
int item_count,
bool has_submenu) {}
@@ -27,7 +27,7 @@
gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const {
return nullptr;
}
-@@ -82,7 +82,7 @@ bool ViewsDelegate::WindowManagerProvidesTitleBar(bool
+@@ -83,7 +83,7 @@ bool ViewsDelegate::WindowManagerProvidesTitleBar(bool
}
bool ViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) {
diff --git a/devel/electron38/files/patch-electron_spec_api-app-spec.ts b/devel/electron38/files/patch-electron_spec_api-app-spec.ts
index 2d68e21081b7..b929d969aa83 100644
--- a/devel/electron38/files/patch-electron_spec_api-app-spec.ts
+++ b/devel/electron38/files/patch-electron_spec_api-app-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-app-spec.ts.orig 2025-10-28 14:56:59 UTC
+--- electron/spec/api-app-spec.ts.orig 2025-11-13 22:57:06 UTC
+++ electron/spec/api-app-spec.ts
@@ -129,11 +129,11 @@ describe('app module', () => {
});
@@ -14,7 +14,7 @@
const languages = app.getPreferredSystemLanguages();
if (languages.length) {
expect(languages).to.not.include('C');
-@@ -196,7 +196,7 @@ describe('app module', () => {
+@@ -202,7 +202,7 @@ describe('app module', () => {
expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound');
});
@@ -23,7 +23,7 @@
const electronPath = process.execPath;
const appPath = path.join(fixturesPath, 'api', 'singleton');
appProcess = cp.spawn(electronPath, [appPath]);
-@@ -360,7 +360,7 @@ describe('app module', () => {
+@@ -366,7 +366,7 @@ describe('app module', () => {
});
// GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -32,7 +32,7 @@
const tempFiles = [
path.join(fixturesPath, 'foo.txt'),
path.join(fixturesPath, 'bar.txt'),
-@@ -488,7 +488,7 @@ describe('app module', () => {
+@@ -494,7 +494,7 @@ describe('app module', () => {
// let w = null
// before(function () {
@@ -41,7 +41,7 @@
// this.skip()
// }
// })
-@@ -595,7 +595,7 @@ describe('app module', () => {
+@@ -601,7 +601,7 @@ describe('app module', () => {
describe('app.badgeCount', () => {
const platformIsNotSupported =
(process.platform === 'win32') ||
@@ -50,7 +50,7 @@
const expectedBadgeCount = 42;
-@@ -639,7 +639,7 @@ describe('app module', () => {
+@@ -645,7 +645,7 @@ describe('app module', () => {
});
});
@@ -59,7 +59,7 @@
const isMac = process.platform === 'darwin';
const isWin = process.platform === 'win32';
-@@ -1019,7 +1019,7 @@ describe('app module', () => {
+@@ -1025,7 +1025,7 @@ describe('app module', () => {
});
});
@@ -68,7 +68,7 @@
it('is mutable', () => {
const values = [false, true, false];
const setters: Array<(arg: boolean) => void> = [
-@@ -1288,7 +1288,7 @@ describe('app module', () => {
+@@ -1294,7 +1294,7 @@ describe('app module', () => {
});
});
@@ -77,7 +77,7 @@
let w: BrowserWindow;
before(function () {
-@@ -1423,7 +1423,7 @@ describe('app module', () => {
+@@ -1429,7 +1429,7 @@ describe('app module', () => {
describe('getApplicationNameForProtocol()', () => {
// TODO: Linux CI doesn't have registered http & https handlers
@@ -86,7 +86,7 @@
// We can't expect particular app names here, but these protocols should
// at least have _something_ registered. Except on our Linux CI
// environment apparently.
-@@ -1441,7 +1441,7 @@ describe('app module', () => {
+@@ -1447,7 +1447,7 @@ describe('app module', () => {
});
});
@@ -95,7 +95,7 @@
it('returns promise rejection for a bogus protocol', async function () {
await expect(
app.getApplicationInfoForProtocol('bogus-protocol://')
-@@ -1491,7 +1491,7 @@ describe('app module', () => {
+@@ -1497,7 +1497,7 @@ describe('app module', () => {
});
// FIXME Get these specs running on Linux CI
@@ -104,7 +104,7 @@
const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico');
const sizes = {
small: 16,
-@@ -1573,7 +1573,7 @@ describe('app module', () => {
+@@ -1579,7 +1579,7 @@ describe('app module', () => {
expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
}
@@ -113,7 +113,7 @@
expect(entry.sandboxed).to.be.a('boolean');
}
-@@ -1647,7 +1647,7 @@ describe('app module', () => {
+@@ -1653,7 +1653,7 @@ describe('app module', () => {
it('succeeds with complete GPUInfo', async () => {
const completeInfo = await getGPUInfo('complete');
@@ -122,7 +122,7 @@
// For linux and macOS complete info is same as basic info
await verifyBasicGPUInfo(completeInfo);
const basicInfo = await getGPUInfo('basic');
-@@ -1671,7 +1671,7 @@ describe('app module', () => {
+@@ -1677,7 +1677,7 @@ describe('app module', () => {
});
});
diff --git a/devel/electron38/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron38/files/patch-electron_spec_api-browser-window-spec.ts
index 1a400abf8c69..cbe6e31063e8 100644
--- a/devel/electron38/files/patch-electron_spec_api-browser-window-spec.ts
+++ b/devel/electron38/files/patch-electron_spec_api-browser-window-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-browser-window-spec.ts.orig 2025-09-02 20:56:04 UTC
+--- electron/spec/api-browser-window-spec.ts.orig 2025-11-13 22:57:06 UTC
+++ electron/spec/api-browser-window-spec.ts
@@ -69,7 +69,7 @@ describe('BrowserWindow module', () => {
}).not.to.throw();
@@ -72,7 +72,7 @@
it('checks normal bounds when minimized', async () => {
const bounds = w.getBounds();
const minimize = once(w, 'minimize');
-@@ -3100,7 +3100,7 @@ describe('BrowserWindow module', () => {
+@@ -3116,7 +3116,7 @@ describe('BrowserWindow module', () => {
describe('BrowserWindow.setOpacity(opacity)', () => {
afterEach(closeAllWindows);
@@ -81,7 +81,7 @@
it('make window with initial opacity', () => {
const w = new BrowserWindow({ show: false, opacity: 0.5 });
expect(w.getOpacity()).to.equal(0.5);
-@@ -3126,7 +3126,7 @@ describe('BrowserWindow module', () => {
+@@ -3142,7 +3142,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -90,7 +90,7 @@
it('sets 1 regardless of parameter', () => {
const w = new BrowserWindow({ show: false });
w.setOpacity(0);
-@@ -3337,7 +3337,7 @@ describe('BrowserWindow module', () => {
+@@ -3353,7 +3353,7 @@ describe('BrowserWindow module', () => {
expect(overlayRectPreMax.height).to.equal(size);
// 'maximize' event is not emitted on Linux in CI.
@@ -99,7 +99,7 @@
const maximize = once(w, 'maximize');
w.show();
w.maximize();
-@@ -3403,7 +3403,7 @@ describe('BrowserWindow module', () => {
+@@ -3419,7 +3419,7 @@ describe('BrowserWindow module', () => {
expect(preMaxHeight).to.equal(size);
// 'maximize' event is not emitted on Linux in CI.
@@ -108,7 +108,7 @@
const maximize = once(w, 'maximize');
w.show();
w.maximize();
-@@ -4074,7 +4074,7 @@ describe('BrowserWindow module', () => {
+@@ -4090,7 +4090,7 @@ describe('BrowserWindow module', () => {
expect(test.nodeTimers).to.equal(true);
expect(test.nodeUrl).to.equal(true);
@@ -117,7 +117,7 @@
expect(test.creationTime).to.be.null('creation time');
expect(test.systemMemoryInfo).to.be.null('system memory info');
} else {
-@@ -4579,7 +4579,7 @@ describe('BrowserWindow module', () => {
+@@ -4595,7 +4595,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -126,7 +126,7 @@
afterEach(closeAllWindows);
it('emits an event when window is maximized', async () => {
const w = new BrowserWindow({ show: false });
-@@ -4850,7 +4850,7 @@ describe('BrowserWindow module', () => {
+@@ -4866,7 +4866,7 @@ describe('BrowserWindow module', () => {
// TODO(zcbenz):
// This test does not run on Linux CI. See:
// https://github.com/electron/electron/issues/28699
@@ -135,7 +135,7 @@
const w = new BrowserWindow({});
const maximize = once(w, 'maximize');
w.maximize();
-@@ -4867,7 +4867,7 @@ describe('BrowserWindow module', () => {
+@@ -4883,7 +4883,7 @@ describe('BrowserWindow module', () => {
});
// TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -144,7 +144,7 @@
afterEach(closeAllWindows);
it('should show the window if it is not currently shown', async () => {
const w = new BrowserWindow({ show: false });
-@@ -4904,7 +4904,7 @@ describe('BrowserWindow module', () => {
+@@ -4920,7 +4920,7 @@ describe('BrowserWindow module', () => {
// TODO(dsanders11): Enable once minimize event works on Linux again.
// See https://github.com/electron/electron/issues/28699
@@ -153,7 +153,7 @@
const w = new BrowserWindow();
const minimize = once(w, 'minimize');
w.minimize();
-@@ -5390,7 +5390,7 @@ describe('BrowserWindow module', () => {
+@@ -5406,7 +5406,7 @@ describe('BrowserWindow module', () => {
});
// On Linux there is no "resizable" property of a window.
@@ -162,7 +162,7 @@
const w = new BrowserWindow({ show: false });
expect(w.resizable).to.be.true('resizable');
-@@ -5630,7 +5630,7 @@ describe('BrowserWindow module', () => {
+@@ -5646,7 +5646,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -171,7 +171,7 @@
// Not implemented on Linux.
afterEach(closeAllWindows);
-@@ -6801,7 +6801,7 @@ describe('BrowserWindow module', () => {
+@@ -6817,7 +6817,7 @@ describe('BrowserWindow module', () => {
describe('"transparent" option', () => {
afterEach(closeAllWindows);
diff --git a/devel/electron38/files/patch-electron_spec_api-protocol-spec.ts b/devel/electron38/files/patch-electron_spec_api-protocol-spec.ts
index 3195a7eabb74..75feeec7d07d 100644
--- a/devel/electron38/files/patch-electron_spec_api-protocol-spec.ts
+++ b/devel/electron38/files/patch-electron_spec_api-protocol-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-protocol-spec.ts.orig 2024-11-07 16:14:43 UTC
+--- electron/spec/api-protocol-spec.ts.orig 2025-11-13 22:57:06 UTC
+++ electron/spec/api-protocol-spec.ts
-@@ -1738,7 +1738,7 @@ describe('protocol module', () => {
+@@ -1755,7 +1755,7 @@ describe('protocol module', () => {
// TODO(nornagon): this test doesn't pass on Linux currently, investigate.
// test is also flaky on CI on macOS so it is currently disabled there as well.
diff --git a/devel/electron38/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron38/files/patch-electron_spec_api-web-contents-spec.ts
index 001598b72527..e03f712f255b 100644
--- a/devel/electron38/files/patch-electron_spec_api-web-contents-spec.ts
+++ b/devel/electron38/files/patch-electron_spec_api-web-contents-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-web-contents-spec.ts.orig 2025-08-13 14:21:20 UTC
+--- electron/spec/api-web-contents-spec.ts.orig 2025-11-13 22:57:06 UTC
+++ electron/spec/api-web-contents-spec.ts
-@@ -2797,7 +2797,7 @@ describe('webContents module', () => {
+@@ -2832,7 +2832,7 @@ describe('webContents module', () => {
});
// TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/devel/electron39/Makefile b/devel/electron39/Makefile
index 0adb82d2a3fe..2ac294794dfb 100644
--- a/devel/electron39/Makefile
+++ b/devel/electron39/Makefile
@@ -1,7 +1,6 @@
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER}
-PORTREVISION= 1
PULSEMV= 16
PULSEV= ${PULSEMV}.1
CATEGORIES= devel
@@ -221,7 +220,7 @@ SNDIO_VARS= GN_ARGS+=use_sndio=true
SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false
# See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
-CHROMIUM_VER= 142.0.7444.59
+CHROMIUM_VER= 142.0.7444.162
# See ${WRKSRC}/electron/DEPS for NODE_VER
NODE_VER= 22.21.1
# See ${WRKSRC}/electron/DEPS for NAN_VER
diff --git a/devel/electron39/Makefile.version b/devel/electron39/Makefile.version
index 1d7d29652627..2f7d52362590 100644
--- a/devel/electron39/Makefile.version
+++ b/devel/electron39/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER= 39.1.1
+ELECTRON_VER= 39.2.0
ELECTRON_VER_MAJOR= ${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron39/distinfo b/devel/electron39/distinfo
index 5d7bb0a6be4e..d96cbd8cb16b 100644
--- a/devel/electron39/distinfo
+++ b/devel/electron39/distinfo
@@ -1,12 +1,12 @@
-TIMESTAMP = 1762590610
-SHA256 (electron/chromium-142.0.7444.59.tar.xz) = eaf6a4941d117b0ce0baaae0ad0111b2ad456be4e3abcdd05ec31d7046cdc192
-SIZE (electron/chromium-142.0.7444.59.tar.xz) = 7577315276
+TIMESTAMP = 1763110708
+SHA256 (electron/chromium-142.0.7444.162.tar.xz) = dbe84fedf3496ea1d47f0b19c60cbb442418f0f2191a78f54039cfd04b087b42
+SIZE (electron/chromium-142.0.7444.162.tar.xz) = 7577065240
SHA256 (electron/pulseaudio-16.1.tar.gz) = 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
SIZE (electron/pulseaudio-16.1.tar.gz) = 2763111
-SHA256 (electron/electron-yarn-cache-39.1.1.tar.xz) = bad00f2015309b6da8b15a50d32d4c9f9e585ca280956ad79006ae71a3a32611
-SIZE (electron/electron-yarn-cache-39.1.1.tar.xz) = 30418060
-SHA256 (electron/electron-electron-v39.1.1_GH0.tar.gz) = 79c5978e6cea9457414f2f0d4ea55b792d7408b7fccc3212d78c2cab3bfd2bf4
-SIZE (electron/electron-electron-v39.1.1_GH0.tar.gz) = 15901561
+SHA256 (electron/electron-yarn-cache-39.2.0.tar.xz) = bad00f2015309b6da8b15a50d32d4c9f9e585ca280956ad79006ae71a3a32611
+SIZE (electron/electron-yarn-cache-39.2.0.tar.xz) = 30418060
+SHA256 (electron/electron-electron-v39.2.0_GH0.tar.gz) = 9cf05344373dc6c6b4f53c5d313edb03d1c2af21310836eb4bfd46c4130f27ff
+SIZE (electron/electron-electron-v39.2.0_GH0.tar.gz) = 15917542
SHA256 (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 4b5ad1795fb6adfb1862df9a626bdca85185866fcd7d0313e87a347eec293fd8
SIZE (electron/nodejs-node-v22.21.1_GH0.tar.gz) = 129440814
SHA256 (electron/nodejs-nan-e14bdcd1f72d62bca1d541b66da43130384ec213_GH0.tar.gz) = 02edf8d5b3fef9af94d8a1355da60564a57e7f2c99cb422bce042400607ed2eb
diff --git a/devel/electron39/files/patch-ash_display_mirror__window__controller.cc b/devel/electron39/files/patch-ash_display_mirror__window__controller.cc
deleted file mode 100644
index 2f730fc7eeda..000000000000
--- a/devel/electron39/files/patch-ash_display_mirror__window__controller.cc
+++ /dev/null
@@ -1,14 +0,0 @@
---- ash/display/mirror_window_controller.cc.orig 2025-07-14 18:11:59 UTC
-+++ ash/display/mirror_window_controller.cc
-@@ -283,7 +283,11 @@ void MirrorWindowController::UpdateWindow(
- if (!base::Contains(display_info_list, iter->first,
- &display::ManagedDisplayInfo::id)) {
- CloseAndDeleteHost(iter->second, true);
-+#if defined(__llvm__)
-+ mirroring_host_info_map_.erase(iter++);
-+#else
- iter = mirroring_host_info_map_.erase(iter);
-+#endif
- } else {
- ++iter;
- }
diff --git a/devel/electron39/files/patch-chrome_browser_about__flags.cc b/devel/electron39/files/patch-chrome_browser_about__flags.cc
index 37f2b32539a9..685f5b715226 100644
--- a/devel/electron39/files/patch-chrome_browser_about__flags.cc
+++ b/devel/electron39/files/patch-chrome_browser_about__flags.cc
@@ -1,4 +1,4 @@
---- chrome/browser/about_flags.cc.orig 2025-10-21 20:19:54 UTC
+--- chrome/browser/about_flags.cc.orig 2025-11-10 21:36:56 UTC
+++ chrome/browser/about_flags.cc
@@ -334,12 +334,12 @@
#include "components/stylus_handwriting/win/features.h"
@@ -51,7 +51,7 @@
// A limited number of combinations of the rich autocompletion params.
const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive1[] = {
-@@ -3859,7 +3879,7 @@ const FeatureEntry::FeatureVariation
+@@ -3870,7 +3890,7 @@ const FeatureEntry::FeatureVariation
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
@@ -60,7 +60,7 @@
const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOn[] =
{{"link_capturing_state", "on_by_default"}};
const flags_ui::FeatureEntry::FeatureParam kPwaNavigationCapturingDefaultOff[] =
-@@ -4119,7 +4139,7 @@ const FeatureEntry::FeatureVariation kSkiaGraphiteVari
+@@ -4130,7 +4150,7 @@ const FeatureEntry::FeatureVariation kSkiaGraphiteVari
std::size(kSkiaGraphite_DebugLabelsEnabled), nullptr},
};
@@ -69,7 +69,7 @@
const FeatureEntry::FeatureParam kTranslationAPI_SkipLanguagePackLimit[] = {
{"TranslationAPIAcceptLanguagesCheck", "false"},
{"TranslationAPILimitLanguagePackCount", "false"}};
-@@ -4139,7 +4159,7 @@ const FeatureEntry::FeatureVariation kSensitiveContent
+@@ -4150,7 +4170,7 @@ const FeatureEntry::FeatureVariation kSensitiveContent
};
#endif // BUILDFLAG(IS_ANDROID)
@@ -78,7 +78,7 @@
const FeatureEntry::FeatureParam kContextualCueingEnabledNoEngagementCap[] = {
{"BackoffTime", "0h"},
{"BackoffMultiplierBase", "0.0"},
-@@ -4888,7 +4908,7 @@ const FeatureEntry::FeatureVariation kMobilePromoOnDes
+@@ -4899,7 +4919,7 @@ const FeatureEntry::FeatureVariation kMobilePromoOnDes
};
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
@@ -87,7 +87,7 @@
const FeatureEntry::FeatureParam kNtpEnterpriseShortcutsWithFakeData[] = {
{"use_fake_data", "true"}};
const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = {
-@@ -5534,7 +5554,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5545,7 +5565,7 @@ const FeatureEntry kFeatureEntries[] = {
},
#endif // BUILDFLAG(IS_WIN)
@@ -96,7 +96,7 @@
{
"fluent-overlay-scrollbars",
flag_descriptions::kFluentOverlayScrollbarsName,
-@@ -5829,7 +5849,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5840,7 +5860,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kEnableIsolatedWebAppDevModeName,
flag_descriptions::kEnableIsolatedWebAppDevModeDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kIsolatedWebAppDevMode)},
@@ -105,7 +105,7 @@
{"enable-iwa-key-distribution-component",
flag_descriptions::kEnableIwaKeyDistributionComponentName,
flag_descriptions::kEnableIwaKeyDistributionComponentDescription,
-@@ -6021,7 +6041,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6032,7 +6052,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(media::kUseSCContentSharingPicker)},
#endif // BUILDFLAG(IS_MAC)
@@ -114,7 +114,7 @@
{"pulseaudio-loopback-for-cast",
flag_descriptions::kPulseaudioLoopbackForCastName,
flag_descriptions::kPulseaudioLoopbackForCastDescription, kOsLinux,
-@@ -6050,6 +6070,16 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6061,6 +6081,16 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWaylandSessionManagementName,
flag_descriptions::kWaylandSessionManagementDescription, kOsLinux,
FEATURE_VALUE_TYPE(features::kWaylandSessionManagement)},
@@ -131,7 +131,7 @@
#endif // BUILDFLAG(IS_LINUX)
#if BUILDFLAG(ENABLE_VR)
-@@ -6916,7 +6946,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6927,7 +6957,7 @@ const FeatureEntry kFeatureEntries[] = {
"MlUrlScoring")},
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
@@ -140,7 +140,7 @@
{"contextual-search-box-uses-contextual-search-provider",
flag_descriptions::kContextualSearchBoxUsesContextualSearchProviderName,
flag_descriptions::
-@@ -7326,7 +7356,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -7337,7 +7367,7 @@ const FeatureEntry kFeatureEntries[] = {
kNumSrpZpsRelatedSearches,
"PowerTools")},
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
@@ -149,7 +149,7 @@
{"history-embeddings", flag_descriptions::kHistoryEmbeddingsName,
flag_descriptions::kHistoryEmbeddingsDescription, kOsDesktop,
FEATURE_VALUE_TYPE(history_embeddings::kHistoryEmbeddings)},
-@@ -7804,7 +7834,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -7815,7 +7845,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(printing::features::kAddPrinterViaPrintscanmgr)},
#endif // BUILDFLAG(IS_CHROMEOS)
@@ -158,7 +158,7 @@
{"cups-ipp-printing-backend",
flag_descriptions::kCupsIppPrintingBackendName,
flag_descriptions::kCupsIppPrintingBackendDescription, kOsDesktop,
-@@ -8766,7 +8796,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -8777,7 +8807,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(media::kGlobalMediaControlsUpdatedUI)},
#endif // !BUILDFLAG(IS_CHROMEOS)
@@ -167,7 +167,7 @@
{"enable-network-service-sandbox",
flag_descriptions::kEnableNetworkServiceSandboxName,
flag_descriptions::kEnableNetworkServiceSandboxDescription,
-@@ -9344,7 +9374,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -9355,7 +9385,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(ash::features::kWallpaperGooglePhotosSharedAlbums)},
#endif // BUILDFLAG(IS_CHROMEOS)
@@ -176,7 +176,7 @@
{"enable-get-all-screens-media", flag_descriptions::kGetAllScreensMediaName,
flag_descriptions::kGetAllScreensMediaDescription, kOsCrOS | kOsLinux,
FEATURE_VALUE_TYPE(blink::features::kGetAllScreensMedia)},
-@@ -9369,7 +9399,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -9380,7 +9410,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kGlobalVaapiLockDescription, kOsCrOS | kOsLinux,
FEATURE_VALUE_TYPE(media::kGlobalVaapiLock)},
@@ -185,7 +185,7 @@
{
"ui-debug-tools",
flag_descriptions::kUIDebugToolsName,
-@@ -9822,7 +9852,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -9833,7 +9863,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
@@ -194,7 +194,7 @@
{"media-session-enter-picture-in-picture",
flag_descriptions::kMediaSessionEnterPictureInPictureName,
flag_descriptions::kMediaSessionEnterPictureInPictureDescription,
-@@ -10012,7 +10042,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -10023,7 +10053,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kReduceTransferSizeUpdatedIPCDescription, kOsAll,
FEATURE_VALUE_TYPE(network::features::kReduceTransferSizeUpdatedIPC)},
@@ -203,7 +203,7 @@
{"reduce-user-agent-data-linux-platform-version",
flag_descriptions::kReduceUserAgentDataLinuxPlatformVersionName,
flag_descriptions::kReduceUserAgentDataLinuxPlatformVersionDescription,
-@@ -10484,7 +10514,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -10495,7 +10525,7 @@ const FeatureEntry kFeatureEntries[] = {
kOsDesktop | kOsAndroid,
FEATURE_VALUE_TYPE(features::kProcessPerSiteUpToMainFrameThreshold)},
@@ -212,7 +212,7 @@
{"camera-mic-effects", flag_descriptions::kCameraMicEffectsName,
flag_descriptions::kCameraMicEffectsDescription,
static_cast<unsigned short>(kOsMac | kOsWin | kOsLinux),
-@@ -10595,7 +10625,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -10606,7 +10636,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kRcapsDynamicProfileCountryDescription, kOsAll,
FEATURE_VALUE_TYPE(switches::kDynamicProfileCountry)},
@@ -221,7 +221,7 @@
{"enable-generic-oidc-auth-profile-management",
flag_descriptions::kEnableGenericOidcAuthProfileManagementName,
flag_descriptions::kEnableGenericOidcAuthProfileManagementDescription,
-@@ -10616,7 +10646,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -10627,7 +10657,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
@@ -230,7 +230,7 @@
{"enable-user-navigation-capturing-pwa",
flag_descriptions::kPwaNavigationCapturingName,
flag_descriptions::kPwaNavigationCapturingDescription,
-@@ -11154,7 +11184,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11165,7 +11195,7 @@ const FeatureEntry kFeatureEntries[] = {
kStandardBoundSessionCredentialsFederatedSessionsVariations,
"standard-device-bound-sessions-federated-sessions")},
@@ -239,7 +239,7 @@
{"replace-sync-promos-with-sign-in-promos-desktop",
flag_descriptions::kReplaceSyncPromosWithSignInPromosName,
flag_descriptions::kReplaceSyncPromosWithSignInPromosDescription,
-@@ -11314,7 +11344,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11325,7 +11355,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kCanvasHibernationDescription, kOsAll,
FEATURE_VALUE_TYPE(blink::features::kCanvas2DHibernation)},
@@ -248,7 +248,7 @@
{"sync-enable-bookmarks-in-transport-mode",
flag_descriptions::kSyncEnableBookmarksInTransportModeName,
flag_descriptions::kSyncEnableBookmarksInTransportModeDescription,
-@@ -11400,7 +11430,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11411,7 +11441,7 @@ const FeatureEntry kFeatureEntries[] = {
"HistoryOptInEducationalTipVariations")},
#endif // BUILDFLAG(IS_ANDROID)
@@ -257,7 +257,7 @@
{"supervised-user-local-web-approvals",
flag_descriptions::kSupervisedUserLocalWebApprovalsName,
flag_descriptions::kSupervisedUserLocalWebApprovalsDescription,
-@@ -11605,7 +11635,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11616,7 +11646,7 @@ const FeatureEntry kFeatureEntries[] = {
segmentation_platform::features::kSegmentationSurveyPage)},
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -266,7 +266,7 @@
{"autofill-enable-buy-now-pay-later",
flag_descriptions::kAutofillEnableBuyNowPayLaterName,
flag_descriptions::kAutofillEnableBuyNowPayLaterDescription,
-@@ -11693,7 +11723,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11704,7 +11734,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(
autofill::features::kAutofillEnableCardInfoRuntimeRetrieval)},
@@ -275,7 +275,7 @@
{"translation-api", flag_descriptions::kTranslationAPIName,
flag_descriptions::kTranslationAPIDescription, kOsMac | kOsWin | kOsLinux,
FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kTranslationAPI,
-@@ -11727,7 +11757,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11738,7 +11768,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(
password_manager::features::kPasswordFormClientsideClassifier)},
@@ -284,7 +284,7 @@
{"contextual-cueing", flag_descriptions::kContextualCueingName,
flag_descriptions::kContextualCueingDescription,
kOsLinux | kOsMac | kOsWin,
-@@ -12091,7 +12121,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12102,7 +12132,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(ui::kUseNewEtc1Encoder)},
#endif // !BUILDFLAG(IS_ANDROID)
@@ -293,7 +293,7 @@
{"automatic-usb-detach", flag_descriptions::kAutomaticUsbDetachName,
flag_descriptions::kAutomaticUsbDetachDescription, kOsAndroid | kOsLinux,
FEATURE_VALUE_TYPE(features::kAutomaticUsbDetach)},
-@@ -12127,7 +12157,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12138,7 +12168,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -302,7 +302,7 @@
{"autofill-enable-amount-extraction",
flag_descriptions::kAutofillEnableAmountExtractionName,
flag_descriptions::kAutofillEnableAmountExtractionDescription,
-@@ -12279,7 +12309,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12290,7 +12320,7 @@ const FeatureEntry kFeatureEntries[] = {
apps::chrome_app_deprecation::kAllowUserInstalledChromeApps)},
#endif // BUILDFLAG(IS_CHROMEOS)
@@ -311,7 +311,7 @@
{"chrome-web-store-navigation-throttle",
flag_descriptions::kChromeWebStoreNavigationThrottleName,
flag_descriptions::kChromeWebStoreNavigationThrottleDescription,
-@@ -12308,7 +12338,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12319,7 +12349,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(supervised_user::kSupervisedUserBlockInterstitialV3)},
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -320,7 +320,7 @@
{"autofill-enable-amount-extraction-testing",
flag_descriptions::kAutofillEnableAmountExtractionTestingName,
flag_descriptions::kAutofillEnableAmountExtractionTestingDescription,
-@@ -12323,7 +12353,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12334,7 +12364,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kEnableWebAppPredictableAppUpdatingDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kWebAppPredictableAppUpdating)},
@@ -329,7 +329,7 @@
{"root-scrollbar-follows-browser-theme",
flag_descriptions::kRootScrollbarFollowsTheme,
flag_descriptions::kRootScrollbarFollowsThemeDescription,
-@@ -12596,7 +12626,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12607,7 +12637,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
@@ -338,7 +338,7 @@
{"tab-group-home", tabs::flag_descriptions::kTabGroupHomeName,
tabs::flag_descriptions::kTabGroupHomeDescription, kOsDesktop,
FEATURE_VALUE_TYPE(tabs::kTabGroupHome)},
-@@ -12689,7 +12719,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12700,7 +12730,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
@@ -347,7 +347,7 @@
{"enable-site-search-allow-user-override-policy",
flag_descriptions::kEnableSiteSearchAllowUserOverridePolicyName,
flag_descriptions::kEnableSiteSearchAllowUserOverridePolicyDescription,
-@@ -12813,7 +12843,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12824,7 +12854,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -356,7 +356,7 @@
{"autofill-enable-buy-now-pay-later-for-klarna",
flag_descriptions::kAutofillEnableBuyNowPayLaterForKlarnaName,
flag_descriptions::kAutofillEnableBuyNowPayLaterForKlarnaDescription,
-@@ -12886,7 +12916,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12897,7 +12927,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(ENABLE_DICE_SUPPORT)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -365,7 +365,7 @@
{"autofill-enable-buy-now-pay-later-for-externally-linked",
flag_descriptions::kAutofillEnableBuyNowPayLaterForExternallyLinkedName,
flag_descriptions::
-@@ -13163,7 +13193,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -13174,7 +13204,7 @@ const FeatureEntry kFeatureEntries[] = {
#endif // !BUILDFLAG(IS_ANDROID),
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
@@ -374,7 +374,7 @@
{"enable-ntp-enterprise-shortcuts",
flag_descriptions::kEnableNtpEnterpriseShortcutsName,
flag_descriptions::kEnableNtpEnterpriseShortcutsDescription,
-@@ -13270,7 +13300,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -13281,7 +13311,7 @@ const FeatureEntry kFeatureEntries[] = {
autofill::features::kAutofillAndPasswordsInSameSurface)},
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
@@ -383,7 +383,7 @@
{"contextual-suggestion-ui-improvements",
flag_descriptions::kContextualSuggestionsUiImprovementsName,
flag_descriptions::kContextualSuggestionsUiImprovementsDescription,
-@@ -13298,7 +13328,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -13309,7 +13339,7 @@ const FeatureEntry kFeatureEntries[] = {
"EnableBlockCanvasReadback")},
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -392,7 +392,7 @@
{"autofill-enable-ai-based-amount-extraction",
flag_descriptions::kAutofillEnableAiBasedAmountExtractionName,
flag_descriptions::kAutofillEnableAiBasedAmountExtractionDescription,
-@@ -13343,7 +13373,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -13354,7 +13384,7 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kCryptographyComplianceCnsa)},
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc b/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
index 4ec7d3546dde..a2ba427c6486 100644
--- a/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
+++ b/devel/electron39/files/patch-chrome_browser_renderer__context__menu_render__view__context__menu.cc
@@ -1,4 +1,4 @@
---- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2025-10-21 20:19:54 UTC
+--- chrome/browser/renderer_context_menu/render_view_context_menu.cc.orig 2025-11-10 21:36:56 UTC
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -243,7 +243,7 @@
#include "url/origin.h"
@@ -9,7 +9,7 @@
#include "components/webapps/isolated_web_apps/scheme.h"
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_CHROMEOS)
-@@ -4987,7 +4987,7 @@ void RenderViewContextMenu::OpenLinkInSplitView() {
+@@ -4985,7 +4985,7 @@ void RenderViewContextMenu::OpenLinkInSplitView() {
#endif // !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc b/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc
index 2bbdb5ff0eba..b0c43bf35e6a 100644
--- a/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc
+++ b/devel/electron39/files/patch-chrome_browser_ui_browser__window_internal_browser__window__features.cc
@@ -1,4 +1,4 @@
---- chrome/browser/ui/browser_window/internal/browser_window_features.cc.orig 2025-10-21 20:19:54 UTC
+--- chrome/browser/ui/browser_window/internal/browser_window_features.cc.orig 2025-11-10 21:36:56 UTC
+++ chrome/browser/ui/browser_window/internal/browser_window_features.cc
@@ -133,7 +133,7 @@
#include "chrome/browser/ui/startup/default_browser_prompt/pin_infobar/pin_infobar_controller.h"
@@ -9,7 +9,7 @@
#include "chrome/browser/ui/views/session_restore_infobar/session_restore_infobar_controller.h"
#endif
-@@ -373,7 +373,7 @@ void BrowserWindowFeatures::Init(BrowserWindowInterfac
+@@ -374,7 +374,7 @@ void BrowserWindowFeatures::Init(BrowserWindowInterfac
browser_select_file_dialog_controller_ =
std::make_unique<BrowserSelectFileDialogController>(profile);
diff --git a/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h b/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h
index 2e19696d56b8..4696e04eec50 100644
--- a/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h
+++ b/devel/electron39/files/patch-chrome_browser_ui_browser__window_public_browser__window__features.h
@@ -1,4 +1,4 @@
---- chrome/browser/ui/browser_window/public/browser_window_features.h.orig 2025-10-21 20:19:54 UTC
+--- chrome/browser/ui/browser_window/public/browser_window_features.h.orig 2025-11-10 21:36:56 UTC
+++ chrome/browser/ui/browser_window/public/browser_window_features.h
@@ -94,7 +94,7 @@ class PinInfoBarController;
} // namespace default_browser
@@ -9,7 +9,7 @@
class ProfileCustomizationBubbleSyncController;
namespace session_restore_infobar {
class SessionRestoreInfobarController;
-@@ -424,7 +424,7 @@ class BrowserWindowFeatures {
+@@ -428,7 +428,7 @@ class BrowserWindowFeatures {
return browser_select_file_dialog_controller_.get();
}
@@ -18,7 +18,7 @@
ProfileCustomizationBubbleSyncController*
profile_customization_bubble_sync_controller() {
return profile_customization_bubble_sync_controller_.get();
-@@ -593,7 +593,7 @@ class BrowserWindowFeatures {
+@@ -597,7 +597,7 @@ class BrowserWindowFeatures {
std::unique_ptr<BrowserSelectFileDialogController>
browser_select_file_dialog_controller_;
diff --git a/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc b/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc
index 9de1640ecfc5..eadd1bcd5683 100644
--- a/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc
+++ b/devel/electron39/files/patch-chrome_browser_ui_views_location__bar_location__bar__view.cc
@@ -1,6 +1,6 @@
---- chrome/browser/ui/views/location_bar/location_bar_view.cc.orig 2025-10-21 20:19:54 UTC
+--- chrome/browser/ui/views/location_bar/location_bar_view.cc.orig 2025-11-10 21:36:56 UTC
+++ chrome/browser/ui/views/location_bar/location_bar_view.cc
-@@ -527,7 +527,7 @@ void LocationBarView::OnPopupOpened() {
+@@ -539,7 +539,7 @@ void LocationBarView::OnPopupOpened() {
}
void LocationBarView::OnPopupOpened() {
diff --git a/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc b/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
index 5749205a40a9..4b8fa5d9b938 100644
--- a/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
+++ b/devel/electron39/files/patch-chrome_browser_ui_views_user__education_browser__user__education__service.cc
@@ -1,6 +1,6 @@
---- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig 2025-10-21 20:19:54 UTC
+--- chrome/browser/ui/views/user_education/browser_user_education_service.cc.orig 2025-11-10 21:36:56 UTC
+++ chrome/browser/ui/views/user_education/browser_user_education_service.cc
-@@ -1131,7 +1131,7 @@ void MaybeRegisterChromeFeaturePromos(
+@@ -1165,7 +1165,7 @@ void MaybeRegisterChromeFeaturePromos(
"Triggered when a shared tab becomes the active tab.")));
}
@@ -9,7 +9,7 @@
// kIPHSupervisedUserProfileSigninFeature:
registry.RegisterFeature(std::move(
FeaturePromoSpecification::CreateForCustomAction(
-@@ -1399,7 +1399,7 @@ void MaybeRegisterChromeFeaturePromos(
+@@ -1433,7 +1433,7 @@ void MaybeRegisterChromeFeaturePromos(
"Triggered to inform users of the availability of the "
"new translate screen feature on the Lens Overlay.")));
diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc
index 7f9b5ea15d2a..809373ea7da2 100644
--- a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc
+++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.cc
@@ -1,4 +1,4 @@
---- components/feature_engagement/public/feature_constants.cc.orig 2025-10-21 20:19:54 UTC
+--- components/feature_engagement/public/feature_constants.cc.orig 2025-11-10 21:36:56 UTC
+++ components/feature_engagement/public/feature_constants.cc
@@ -32,7 +32,7 @@ bool IsOnDeviceStorageEnabled() {
}
@@ -9,7 +9,7 @@
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
BASE_FEATURE(kEsbDownloadRowPromoFeature,
"EsbDownloadRowPromo",
-@@ -843,7 +843,7 @@ BASE_FEATURE(kIPHiOSAIHubNewBadge,
+@@ -846,7 +846,7 @@ BASE_FEATURE(kIPHiOSAIHubNewBadge,
#endif // BUILDFLAG(IS_IOS)
@@ -18,7 +18,7 @@
BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
BASE_FEATURE(kIPHAutofillBnplAffirmOrZipSuggestionFeature,
"IPH_AutofillBnplAffirmOrZipSuggestion",
-@@ -999,7 +999,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeature,
+@@ -1002,7 +1002,7 @@ BASE_FEATURE(kIPHScalableIphGamingFeature,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h
index 3df0cac29f05..91407b11c54a 100644
--- a/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h
+++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__constants.h
@@ -1,4 +1,4 @@
---- components/feature_engagement/public/feature_constants.h.orig 2025-10-21 20:19:54 UTC
+--- components/feature_engagement/public/feature_constants.h.orig 2025-11-10 21:36:56 UTC
+++ components/feature_engagement/public/feature_constants.h
@@ -31,7 +31,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDummyFeature);
FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHDummyFeature);
@@ -9,7 +9,7 @@
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
FEATURE_CONSTANTS_DECLARE_FEATURE(kEsbDownloadRowPromoFeature);
#endif
-@@ -379,7 +379,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHiOSAIHubNewBadge
+@@ -380,7 +380,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHiOSAIHubNewBadge
#endif // BUILDFLAG(IS_IOS)
@@ -18,7 +18,7 @@
BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHAutofillBnplAffirmOrZipSuggestionFeature);
FEATURE_CONSTANTS_DECLARE_FEATURE(
-@@ -443,7 +443,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamin
+@@ -444,7 +444,7 @@ FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamin
FEATURE_CONSTANTS_DECLARE_FEATURE(kIPHScalableIphGamingFeature);
#endif
diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc
index e476ead7b246..6165908ccaa7 100644
--- a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc
+++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.cc
@@ -1,4 +1,4 @@
---- components/feature_engagement/public/feature_list.cc.orig 2025-10-21 20:19:54 UTC
+--- components/feature_engagement/public/feature_list.cc.orig 2025-11-10 21:36:56 UTC
+++ components/feature_engagement/public/feature_list.cc
@@ -203,7 +203,7 @@ const base::Feature* const kAllFeatures[] = {
&kIPHiOSReaderModeOptionsFeature,
@@ -9,7 +9,7 @@
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
&kEsbDownloadRowPromoFeature,
#endif
-@@ -277,7 +277,7 @@ const base::Feature* const kAllFeatures[] = {
+@@ -278,7 +278,7 @@ const base::Feature* const kAllFeatures[] = {
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
@@ -18,7 +18,7 @@
BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
&kIPHAutofillAiOptInFeature,
&kIPHAutofillBnplAffirmOrZipSuggestionFeature,
-@@ -335,7 +335,7 @@ const base::Feature* const kAllFeatures[] = {
+@@ -336,7 +336,7 @@ const base::Feature* const kAllFeatures[] = {
&kIPHScalableIphGamingFeature,
#endif // BUILDFLAG(IS_CHROMEOS)
diff --git a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h
index b9d944ae83e8..a52ec61f1e84 100644
--- a/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h
+++ b/devel/electron39/files/patch-components_feature__engagement_public_feature__list.h
@@ -1,6 +1,6 @@
---- components/feature_engagement/public/feature_list.h.orig 2025-10-21 20:19:54 UTC
+--- components/feature_engagement/public/feature_list.h.orig 2025-11-10 21:36:56 UTC
+++ components/feature_engagement/public/feature_list.h
-@@ -359,7 +359,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSAIHubNewBadge, "IPH_iOSA
+@@ -357,7 +357,7 @@ DEFINE_VARIATION_PARAM(kIPHiOSAIHubNewBadge, "IPH_iOSA
#endif // BUILDFLAG(IS_IOS)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
@@ -9,7 +9,7 @@
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
DEFINE_VARIATION_PARAM(kEsbDownloadRowPromoFeature, "EsbDownloadRowPromo");
#endif
-@@ -479,7 +479,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSharedTabFeedbackF
+@@ -478,7 +478,8 @@ DEFINE_VARIATION_PARAM(kIPHTabGroupsSharedTabFeedbackF
// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
@@ -19,7 +19,7 @@
DEFINE_VARIATION_PARAM(kIPHAutofillAiOptInFeature, "IPH_AutofillAiOptIn");
DEFINE_VARIATION_PARAM(kIPHAutofillBnplAffirmOrZipSuggestionFeature,
"IPH_AutofillBnplAffirmOrZipSuggestion");
-@@ -581,7 +582,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "
+@@ -580,7 +581,7 @@ DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "
DEFINE_VARIATION_PARAM(kIPHScalableIphGamingFeature, "IPH_ScalableIphGaming");
#endif // BUILDFLAG(IS_CHROMEOS)
@@ -28,7 +28,7 @@
DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunch,
"IPH_DesktopPWAsLinkCapturingLaunch");
DEFINE_VARIATION_PARAM(kIPHDesktopPWAsLinkCapturingLaunchAppInTab,
-@@ -783,7 +784,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat
+@@ -782,7 +783,7 @@ inline constexpr flags_ui::FeatureEntry::FeatureVariat
VARIATION_ENTRY(kIPHIOSPageActionMenu),
VARIATION_ENTRY(kIPHiOSAIHubNewBadge),
#elif BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
diff --git a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc
index 662298f7550c..a8893e5d33de 100644
--- a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__app.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/api/electron_api_app.cc.orig 2025-10-27 17:58:27 UTC
+--- electron/shell/browser/api/electron_api_app.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/api/electron_api_app.cc
@@ -98,7 +98,7 @@
#include "shell/common/process_util.h"
@@ -45,7 +45,7 @@
// Read the xdg-activation token and set it in the command line for the
// duration of the notification in order to ensure this is propagated to an
// already running electron app instance if it exists.
-@@ -1436,7 +1436,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
+@@ -1447,7 +1447,7 @@ std::vector<gin_helper::Dictionary> App::GetAppMetrics
pid_dict.Set("name", process_metric.second->name);
}
@@ -54,7 +54,7 @@
auto memory_info = process_metric.second->GetMemoryInfo();
auto memory_dict = gin_helper::Dictionary::CreateEmpty(isolate);
-@@ -1833,7 +1833,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1844,7 +1844,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod(
"removeAsDefaultProtocolClient",
base::BindRepeating(&Browser::RemoveAsDefaultProtocolClient, browser))
@@ -63,7 +63,7 @@
.SetMethod(
"getApplicationInfoForProtocol",
base::BindRepeating(&Browser::GetApplicationInfoForProtocol, browser))
-@@ -1891,7 +1891,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
+@@ -1902,7 +1902,7 @@ gin::ObjectTemplateBuilder App::GetObjectTemplateBuild
.SetMethod("getJumpListSettings", &App::GetJumpListSettings)
.SetMethod("setJumpList", &App::SetJumpList)
#endif
diff --git a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc
index 5fd808005b17..e8d391922821 100644
--- a/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_api_electron__api__base__window.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-10-27 17:58:27 UTC
+--- electron/shell/browser/api/electron_api_base_window.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/api/electron_api_base_window.cc
-@@ -43,7 +43,7 @@
+@@ -44,7 +44,7 @@
#include "shell/browser/ui/views/win_frame_view.h"
#include "shell/browser/ui/win/taskbar_host.h"
#include "ui/base/win/shell.h"
@@ -9,7 +9,7 @@
#include "shell/browser/ui/views/opaque_frame_view.h"
#endif
-@@ -1033,7 +1033,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate,
+@@ -1034,7 +1034,7 @@ void BaseWindow::SetIconImpl(v8::Isolate* isolate,
static_cast<NativeWindowViews*>(window_.get())
->SetIcon(native_image->GetHICON(GetSystemMetrics(SM_CXSMICON)),
native_image->GetHICON(GetSystemMetrics(SM_CXICON)));
@@ -18,7 +18,7 @@
static_cast<NativeWindowViews*>(window_.get())
->SetIcon(native_image->image().AsImageSkia());
#endif
-@@ -1121,7 +1121,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
+@@ -1126,7 +1126,7 @@ v8::Local<v8::Value> BaseWindow::GetAccentColor() cons
}
#endif
@@ -27,7 +27,7 @@
void BaseWindow::SetTitleBarOverlay(const gin_helper::Dictionary& options,
gin_helper::Arguments* args) {
static_cast<NativeWindowViews*>(window_.get())
-@@ -1318,7 +1318,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
+@@ -1323,7 +1323,7 @@ void BaseWindow::BuildPrototype(v8::Isolate* isolate,
.SetMethod("setThumbnailToolTip", &BaseWindow::SetThumbnailToolTip)
.SetMethod("setAppDetails", &BaseWindow::SetAppDetails)
#endif
diff --git a/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc b/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc
index c3ef522381d5..92d61f60bf77 100644
--- a/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_electron__browser__main__parts.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/electron_browser_main_parts.cc.orig 2025-10-27 17:58:27 UTC
+--- electron/shell/browser/electron_browser_main_parts.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/electron_browser_main_parts.cc
-@@ -76,7 +76,7 @@
+@@ -77,7 +77,7 @@
#include "ui/wm/core/wm_state.h"
#endif
@@ -9,7 +9,7 @@
#include "base/environment.h"
#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
#include "device/bluetooth/bluetooth_adapter_factory.h"
-@@ -129,7 +129,7 @@ namespace {
+@@ -130,7 +130,7 @@ namespace {
namespace {
@@ -18,7 +18,7 @@
class LinuxUiGetterImpl : public ui::LinuxUiGetter {
public:
LinuxUiGetterImpl() = default;
-@@ -211,7 +211,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization()
+@@ -212,7 +212,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization()
#if BUILDFLAG(IS_OZONE)
// Initialize Ozone platform and add required feature flags as per platform's
// properties.
@@ -27,7 +27,7 @@
ui::SetOzonePlatformForLinuxIfNeeded(*base::CommandLine::ForCurrentProcess());
#endif
ui::OzonePlatform::PreEarlyInitialization();
-@@ -304,7 +304,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -309,7 +309,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
// happen before the ResourceBundle is loaded
if (locale.empty())
l10n_util::OverrideLocaleWithCocoaLocale();
@@ -36,7 +36,7 @@
// l10n_util::GetApplicationLocaleInternal uses g_get_language_names(),
// which keys off of getenv("LC_ALL").
// We must set this env first to make ui::ResourceBundle accept the custom
-@@ -333,7 +333,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -338,7 +338,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
ElectronBrowserClient::SetApplicationLocale(app_locale);
fake_browser_process_->SetApplicationLocale(app_locale);
@@ -45,7 +45,7 @@
// Reset to the original LC_ALL since we should not be changing it.
if (!locale.empty()) {
if (lc_all)
-@@ -390,7 +390,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
+@@ -395,7 +395,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
}
void ElectronBrowserMainParts::ToolkitInitialized() {
@@ -54,7 +54,7 @@
auto* linux_ui = ui::GetDefaultLinuxUi();
CHECK(linux_ui);
linux_ui_getter_ = std::make_unique<LinuxUiGetterImpl>();
-@@ -497,7 +497,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+@@ -502,7 +502,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
}
void ElectronBrowserMainParts::PostCreateMainMessageLoop() {
@@ -63,7 +63,7 @@
std::string app_name = electron::Browser::Get()->GetName();
#endif
#if BUILDFLAG(IS_LINUX)
-@@ -509,7 +509,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+@@ -514,7 +514,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
if (!bluez::BluezDBusManager::IsInitialized())
bluez::DBusBluezManagerWrapperLinux::Initialize();
@@ -73,7 +73,7 @@
// Set up crypt config. This needs to be done before anything starts the
// network service, as the raw encryption key needs to be shared with the
// network service for encrypted cookie storage.
-@@ -604,7 +606,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
+@@ -609,7 +611,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
fake_browser_process_->PostMainMessageLoopRun();
content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler();
diff --git a/devel/electron39/files/patch-electron_shell_browser_native__window.cc b/devel/electron39/files/patch-electron_shell_browser_native__window.cc
index c831d05393b9..1328f75e7c32 100644
--- a/devel/electron39/files/patch-electron_shell_browser_native__window.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_native__window.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/native_window.cc.orig 2025-09-02 20:56:04 UTC
+--- electron/shell/browser/native_window.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/native_window.cc
-@@ -184,7 +184,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D
+@@ -185,7 +185,7 @@ void NativeWindow::InitFromOptions(const gin_helper::D
} else {
SetSizeConstraints(size_constraints);
}
diff --git a/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc
index a2c99b2b5972..01f86420cf54 100644
--- a/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_native__window__views.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/native_window_views.cc.orig 2025-10-27 17:58:27 UTC
+--- electron/shell/browser/native_window_views.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/native_window_views.cc
@@ -53,7 +53,7 @@
#include "ui/wm/core/shadow_types.h"
@@ -108,7 +108,7 @@
auto display =
display::Screen::Get()->GetDisplayNearestWindow(GetNativeWindow());
gfx::Rect window_bounds_in_screen = display.work_area();
-@@ -1380,7 +1380,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men
+@@ -1381,7 +1381,7 @@ void NativeWindowViews::SetMenu(ElectronMenuModel* men
}
void NativeWindowViews::SetMenu(ElectronMenuModel* menu_model) {
@@ -117,7 +117,7 @@
// Remove global menu bar.
if (global_menu_bar_ && menu_model == nullptr) {
global_menu_bar_.reset();
-@@ -1436,7 +1436,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow*
+@@ -1437,7 +1437,7 @@ void NativeWindowViews::SetParentWindow(NativeWindow*
void NativeWindowViews::SetParentWindow(NativeWindow* parent) {
NativeWindow::SetParentWindow(parent);
@@ -126,7 +126,7 @@
if (x11_util::IsX11()) {
auto* connection = x11::Connection::Get();
connection->SetProperty(
-@@ -1482,7 +1482,7 @@ void NativeWindowViews::SetProgressBar(double progress
+@@ -1483,7 +1483,7 @@ void NativeWindowViews::SetProgressBar(double progress
NativeWindow::ProgressState state) {
#if BUILDFLAG(IS_WIN)
taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state);
@@ -135,7 +135,7 @@
if (unity::IsRunning()) {
unity::SetProgressFraction(progress);
}
-@@ -1608,7 +1608,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
+@@ -1609,7 +1609,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
#if BUILDFLAG(IS_WIN)
window_handle =
reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget);
@@ -144,7 +144,7 @@
window_handle = static_cast<uint32_t>(accelerated_widget);
#endif
aura::WindowTreeHost* const host =
-@@ -1706,7 +1706,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
+@@ -1707,7 +1707,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
SendMessage(hwnd, WM_SETICON, ICON_BIG,
reinterpret_cast<LPARAM>(app_icon_.get()));
}
@@ -153,7 +153,7 @@
void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) {
auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget(
GetAcceleratedWidget());
-@@ -1827,7 +1827,7 @@ bool NativeWindowViews::CanMinimize() const {
+@@ -1828,7 +1828,7 @@ bool NativeWindowViews::CanMinimize() const {
bool NativeWindowViews::CanMinimize() const {
#if BUILDFLAG(IS_WIN)
return minimizable_;
@@ -162,7 +162,7 @@
return true;
#endif
}
-@@ -1869,7 +1869,7 @@ std::unique_ptr<views::FrameView> NativeWindowViews::C
+@@ -1870,7 +1870,7 @@ std::unique_ptr<views::FrameView> NativeWindowViews::C
#endif
}
@@ -171,7 +171,7 @@
electron::ClientFrameViewLinux* NativeWindowViews::GetClientFrameViewLinux() {
// Check to make sure this window's non-client frame view is a
// ClientFrameViewLinux. If either has_frame() or has_client_frame()
-@@ -1892,7 +1892,7 @@ void NativeWindowViews::HandleKeyboardEvent(
+@@ -1893,7 +1893,7 @@ void NativeWindowViews::HandleKeyboardEvent(
if (widget_destroyed_)
return;
@@ -180,7 +180,7 @@
if (event.windows_key_code == ui::VKEY_BROWSER_BACK)
NotifyWindowExecuteAppCommand(kBrowserBackward);
else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD)
-@@ -1911,7 +1911,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
+@@ -1912,7 +1912,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
// Alt+Click should not toggle menu bar.
root_view_.ResetAltState();
diff --git a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
index 0f8ee420a301..407fbfe7b4c6 100644
--- a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-10-27 17:58:27 UTC
+--- electron/shell/browser/ui/inspectable_web_contents.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/ui/inspectable_web_contents.cc
-@@ -549,7 +549,7 @@ void InspectableWebContents::LoadCompleted() {
+@@ -555,7 +555,7 @@ void InspectableWebContents::LoadCompleted() {
prefs.FindString("currentDockState");
base::RemoveChars(*current_dock_state, "\"", &dock_state_);
}
diff --git a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
index 080d256f9b7a..fc0e7b844b29 100644
--- a/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
+++ b/devel/electron39/files/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-09-02 20:56:04 UTC
+--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/browser/ui/inspectable_web_contents_view.cc
-@@ -181,7 +181,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
+@@ -198,7 +198,7 @@ void InspectableWebContentsView::SetIsDocked(bool dock
params.delegate = devtools_window_delegate_;
params.bounds = inspectable_web_contents()->dev_tools_bounds();
diff --git a/devel/electron39/files/patch-electron_shell_services_node_node__service.cc b/devel/electron39/files/patch-electron_shell_services_node_node__service.cc
index ffdc4a1ce79b..a0639d57c40c 100644
--- a/devel/electron39/files/patch-electron_shell_services_node_node__service.cc
+++ b/devel/electron39/files/patch-electron_shell_services_node_node__service.cc
@@ -1,7 +1,7 @@
---- electron/shell/services/node/node_service.cc.orig 2025-10-27 17:58:27 UTC
+--- electron/shell/services/node/node_service.cc.orig 2025-11-13 22:50:46 UTC
+++ electron/shell/services/node/node_service.cc
-@@ -24,7 +24,7 @@
- #include "shell/common/node_includes.h"
+@@ -26,7 +26,7 @@
+ #include "shell/common/v8_util.h"
#include "shell/services/node/parent_port.h"
-#if !IS_MAS_BUILD()
@@ -9,7 +9,7 @@
#include "shell/common/crash_keys.h"
#endif
-@@ -45,7 +45,7 @@ void V8FatalErrorCallback(const char* location, const
+@@ -47,7 +47,7 @@ void V8FatalErrorCallback(const char* location, const
GetRemote()->OnV8FatalError(location, outstream.str());
}
diff --git a/devel/electron39/files/patch-electron_spec_api-app-spec.ts b/devel/electron39/files/patch-electron_spec_api-app-spec.ts
index 2d68e21081b7..5125e2072163 100644
--- a/devel/electron39/files/patch-electron_spec_api-app-spec.ts
+++ b/devel/electron39/files/patch-electron_spec_api-app-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-app-spec.ts.orig 2025-10-28 14:56:59 UTC
+--- electron/spec/api-app-spec.ts.orig 2025-11-13 22:50:46 UTC
+++ electron/spec/api-app-spec.ts
@@ -129,11 +129,11 @@ describe('app module', () => {
});
@@ -14,7 +14,7 @@
const languages = app.getPreferredSystemLanguages();
if (languages.length) {
expect(languages).to.not.include('C');
-@@ -196,7 +196,7 @@ describe('app module', () => {
+@@ -202,7 +202,7 @@ describe('app module', () => {
expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound');
});
@@ -23,7 +23,7 @@
const electronPath = process.execPath;
const appPath = path.join(fixturesPath, 'api', 'singleton');
appProcess = cp.spawn(electronPath, [appPath]);
-@@ -360,7 +360,7 @@ describe('app module', () => {
+@@ -366,7 +366,7 @@ describe('app module', () => {
});
// GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -32,7 +32,7 @@
const tempFiles = [
path.join(fixturesPath, 'foo.txt'),
path.join(fixturesPath, 'bar.txt'),
-@@ -488,7 +488,7 @@ describe('app module', () => {
+@@ -494,7 +494,7 @@ describe('app module', () => {
// let w = null
// before(function () {
@@ -41,7 +41,7 @@
// this.skip()
// }
// })
-@@ -595,7 +595,7 @@ describe('app module', () => {
+@@ -601,7 +601,7 @@ describe('app module', () => {
describe('app.badgeCount', () => {
const platformIsNotSupported =
(process.platform === 'win32') ||
@@ -50,7 +50,7 @@
const expectedBadgeCount = 42;
-@@ -639,7 +639,7 @@ describe('app module', () => {
+@@ -645,7 +645,7 @@ describe('app module', () => {
});
});
@@ -59,7 +59,7 @@
const isMac = process.platform === 'darwin';
const isWin = process.platform === 'win32';
-@@ -1019,7 +1019,7 @@ describe('app module', () => {
+@@ -1025,7 +1025,7 @@ describe('app module', () => {
});
});
@@ -68,7 +68,7 @@
it('is mutable', () => {
const values = [false, true, false];
const setters: Array<(arg: boolean) => void> = [
-@@ -1288,7 +1288,7 @@ describe('app module', () => {
+@@ -1294,7 +1294,7 @@ describe('app module', () => {
});
});
@@ -77,7 +77,7 @@
let w: BrowserWindow;
before(function () {
-@@ -1423,7 +1423,7 @@ describe('app module', () => {
+@@ -1429,7 +1429,7 @@ describe('app module', () => {
describe('getApplicationNameForProtocol()', () => {
// TODO: Linux CI doesn't have registered http & https handlers
@@ -86,7 +86,7 @@
// We can't expect particular app names here, but these protocols should
// at least have _something_ registered. Except on our Linux CI
// environment apparently.
-@@ -1441,7 +1441,7 @@ describe('app module', () => {
+@@ -1447,7 +1447,7 @@ describe('app module', () => {
});
});
@@ -95,7 +95,7 @@
it('returns promise rejection for a bogus protocol', async function () {
await expect(
app.getApplicationInfoForProtocol('bogus-protocol://')
-@@ -1491,7 +1491,7 @@ describe('app module', () => {
+@@ -1497,7 +1497,7 @@ describe('app module', () => {
});
// FIXME Get these specs running on Linux CI
@@ -104,7 +104,7 @@
const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico');
const sizes = {
small: 16,
-@@ -1573,7 +1573,7 @@ describe('app module', () => {
+@@ -1579,7 +1579,7 @@ describe('app module', () => {
expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
}
@@ -113,7 +113,7 @@
expect(entry.sandboxed).to.be.a('boolean');
}
-@@ -1647,7 +1647,7 @@ describe('app module', () => {
+@@ -1653,7 +1653,7 @@ describe('app module', () => {
it('succeeds with complete GPUInfo', async () => {
const completeInfo = await getGPUInfo('complete');
@@ -122,7 +122,7 @@
// For linux and macOS complete info is same as basic info
await verifyBasicGPUInfo(completeInfo);
const basicInfo = await getGPUInfo('basic');
-@@ -1671,7 +1671,7 @@ describe('app module', () => {
+@@ -1677,7 +1677,7 @@ describe('app module', () => {
});
});
diff --git a/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts
index 1ffc60bcc24c..c74b14c0c005 100644
--- a/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts
+++ b/devel/electron39/files/patch-electron_spec_api-browser-window-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-browser-window-spec.ts.orig 2025-10-27 17:58:27 UTC
+--- electron/spec/api-browser-window-spec.ts.orig 2025-11-13 22:50:46 UTC
+++ electron/spec/api-browser-window-spec.ts
@@ -69,7 +69,7 @@ describe('BrowserWindow module', () => {
}).not.to.throw();
@@ -72,7 +72,7 @@
it('checks normal bounds when minimized', async () => {
const bounds = w.getBounds();
const minimize = once(w, 'minimize');
-@@ -3108,7 +3108,7 @@ describe('BrowserWindow module', () => {
+@@ -3124,7 +3124,7 @@ describe('BrowserWindow module', () => {
describe('BrowserWindow.setOpacity(opacity)', () => {
afterEach(closeAllWindows);
@@ -81,7 +81,7 @@
it('make window with initial opacity', () => {
const w = new BrowserWindow({ show: false, opacity: 0.5 });
expect(w.getOpacity()).to.equal(0.5);
-@@ -3134,7 +3134,7 @@ describe('BrowserWindow module', () => {
+@@ -3150,7 +3150,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -90,7 +90,7 @@
it('sets 1 regardless of parameter', () => {
const w = new BrowserWindow({ show: false });
w.setOpacity(0);
-@@ -3345,7 +3345,7 @@ describe('BrowserWindow module', () => {
+@@ -3361,7 +3361,7 @@ describe('BrowserWindow module', () => {
expect(overlayRectPreMax.height).to.equal(size);
// 'maximize' event is not emitted on Linux in CI.
@@ -99,7 +99,7 @@
const maximize = once(w, 'maximize');
w.show();
w.maximize();
-@@ -3411,7 +3411,7 @@ describe('BrowserWindow module', () => {
+@@ -3427,7 +3427,7 @@ describe('BrowserWindow module', () => {
expect(preMaxHeight).to.equal(size);
// 'maximize' event is not emitted on Linux in CI.
@@ -108,7 +108,7 @@
const maximize = once(w, 'maximize');
w.show();
w.maximize();
-@@ -4082,7 +4082,7 @@ describe('BrowserWindow module', () => {
+@@ -4098,7 +4098,7 @@ describe('BrowserWindow module', () => {
expect(test.nodeTimers).to.equal(true);
expect(test.nodeUrl).to.equal(true);
@@ -117,7 +117,7 @@
expect(test.creationTime).to.be.null('creation time');
expect(test.systemMemoryInfo).to.be.null('system memory info');
} else {
-@@ -4587,7 +4587,7 @@ describe('BrowserWindow module', () => {
+@@ -4603,7 +4603,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -126,7 +126,7 @@
afterEach(closeAllWindows);
it('emits an event when window is maximized', async () => {
const w = new BrowserWindow({ show: false });
-@@ -4858,7 +4858,7 @@ describe('BrowserWindow module', () => {
+@@ -4874,7 +4874,7 @@ describe('BrowserWindow module', () => {
// TODO(zcbenz):
// This test does not run on Linux CI. See:
// https://github.com/electron/electron/issues/28699
@@ -135,7 +135,7 @@
const w = new BrowserWindow({});
const maximize = once(w, 'maximize');
w.maximize();
-@@ -4875,7 +4875,7 @@ describe('BrowserWindow module', () => {
+@@ -4891,7 +4891,7 @@ describe('BrowserWindow module', () => {
});
// TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -144,7 +144,7 @@
afterEach(closeAllWindows);
it('should show the window if it is not currently shown', async () => {
const w = new BrowserWindow({ show: false });
-@@ -4912,7 +4912,7 @@ describe('BrowserWindow module', () => {
+@@ -4928,7 +4928,7 @@ describe('BrowserWindow module', () => {
// TODO(dsanders11): Enable once minimize event works on Linux again.
// See https://github.com/electron/electron/issues/28699
@@ -153,7 +153,7 @@
const w = new BrowserWindow();
const minimize = once(w, 'minimize');
w.minimize();
-@@ -5398,7 +5398,7 @@ describe('BrowserWindow module', () => {
+@@ -5414,7 +5414,7 @@ describe('BrowserWindow module', () => {
});
// On Linux there is no "resizable" property of a window.
@@ -162,7 +162,7 @@
const w = new BrowserWindow({ show: false });
expect(w.resizable).to.be.true('resizable');
-@@ -5638,7 +5638,7 @@ describe('BrowserWindow module', () => {
+@@ -5654,7 +5654,7 @@ describe('BrowserWindow module', () => {
});
});
@@ -171,7 +171,7 @@
// Not implemented on Linux.
afterEach(closeAllWindows);
-@@ -6809,7 +6809,7 @@ describe('BrowserWindow module', () => {
+@@ -6825,7 +6825,7 @@ describe('BrowserWindow module', () => {
describe('"transparent" option', () => {
afterEach(closeAllWindows);
diff --git a/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts b/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts
index 006f42eaa4b9..a6b4b300e391 100644
--- a/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts
+++ b/devel/electron39/files/patch-electron_spec_api-native-image-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-native-image-spec.ts.orig 2025-05-07 07:36:13 UTC
+--- electron/spec/api-native-image-spec.ts.orig 2025-11-13 22:50:46 UTC
+++ electron/spec/api-native-image-spec.ts
-@@ -434,7 +434,7 @@ describe('nativeImage module', () => {
+@@ -439,7 +439,7 @@ describe('nativeImage module', () => {
});
});
diff --git a/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts b/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts
index 3195a7eabb74..b2edf10a7bc0 100644
--- a/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts
+++ b/devel/electron39/files/patch-electron_spec_api-protocol-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-protocol-spec.ts.orig 2024-11-07 16:14:43 UTC
+--- electron/spec/api-protocol-spec.ts.orig 2025-11-13 22:50:46 UTC
+++ electron/spec/api-protocol-spec.ts
-@@ -1738,7 +1738,7 @@ describe('protocol module', () => {
+@@ -1755,7 +1755,7 @@ describe('protocol module', () => {
// TODO(nornagon): this test doesn't pass on Linux currently, investigate.
// test is also flaky on CI on macOS so it is currently disabled there as well.
diff --git a/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts b/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts
index 8ebe51e25534..58e1a0d9e6e9 100644
--- a/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts
+++ b/devel/electron39/files/patch-electron_spec_api-web-contents-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec/api-web-contents-spec.ts.orig 2025-10-27 17:58:27 UTC
+--- electron/spec/api-web-contents-spec.ts.orig 2025-11-13 22:50:46 UTC
+++ electron/spec/api-web-contents-spec.ts
-@@ -2815,7 +2815,7 @@ describe('webContents module', () => {
+@@ -2850,7 +2850,7 @@ describe('webContents module', () => {
});
// TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc b/devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc
new file mode 100644
index 000000000000..1b9104804fdc
--- /dev/null
+++ b/devel/electron39/files/patch-services_on__device__model_ml_gpu__blocklist.cc
@@ -0,0 +1,11 @@
+--- services/on_device_model/ml/gpu_blocklist.cc.orig 2025-11-10 21:36:56 UTC
++++ services/on_device_model/ml/gpu_blocklist.cc
+@@ -24,7 +24,7 @@ const base::FeatureParam<std::string> kGpuBlockList{
+ &optimization_guide::features::kOnDeviceModelPerformanceParams,
+ "on_device_model_gpu_block_list",
+ // These devices are nearly always crashing or have very low performance.
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ "8086:64a0|" // TODO(b/456603738): Remove when fixed.
+ #endif // BUILDFLAG(IS_LINUX)
+ "8086:412|8086:a16|8086:41e|8086:416|8086:402|8086:166|8086:1616|8086:22b1|"
diff --git a/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc b/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
index 46b36850fe79..cd8224b9077c 100644
--- a/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
+++ b/devel/electron39/files/patch-third__party_blink_renderer_platform_fonts_skia_font__cache__skia.cc
@@ -1,4 +1,4 @@
---- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2025-10-21 20:19:54 UTC
+--- third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc.orig 2025-11-10 21:36:56 UTC
+++ third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
@@ -66,7 +66,7 @@ AtomicString ToAtomicString(const SkString& str) {
return AtomicString::FromUTF8(std::string_view(str.begin(), str.end()));
@@ -9,7 +9,7 @@
// This function is called on android or when we are emulating android fonts on
// linux and the embedder has overriden the default fontManager with
// WebFontRendering::setSkiaFontMgr.
-@@ -259,7 +259,7 @@ const FontPlatformData* FontCache::CreateFontPlatformD
+@@ -278,7 +278,7 @@ const FontPlatformData* FontCache::CreateFontPlatformD
std::string name;
sk_sp<SkTypeface> typeface;
diff --git a/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
index f234f3006d7d..5dd9ba97353a 100644
--- a/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
+++ b/devel/electron39/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -1,4 +1,4 @@
---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-11-02 19:17:58 UTC
+--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-11-14 09:16:34 UTC
+++ third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -344,7 +344,7 @@
"default": "",
@@ -45,7 +45,7 @@
base_feature: "WebAppEnableAppTitle",
},
{
-@@ -1779,7 +1779,7 @@
+@@ -1785,7 +1785,7 @@
{
name: "DeviceBoundSessionCredentials",
origin_trial_feature_name: "DeviceBoundSessionCredentials",
@@ -54,7 +54,7 @@
status: "experimental",
// Killswitch is net::features::kDeviceBoundSessions
base_feature: "none",
-@@ -1787,7 +1787,7 @@
+@@ -1793,7 +1793,7 @@
{
name: "DeviceBoundSessionCredentials2",
origin_trial_feature_name: "DeviceBoundSessionCredentials2",
@@ -63,7 +63,7 @@
status: "experimental",
// Killswitch is net::features::kDeviceBoundSessions
base_feature: "none",
-@@ -1930,7 +1930,7 @@
+@@ -1936,7 +1936,7 @@
name: "DocumentIsolationPolicy",
status: "experimental",
origin_trial_feature_name: "DocumentIsolationPolicy",
@@ -72,7 +72,7 @@
base_feature: "none",
},
{
-@@ -2173,7 +2173,7 @@
+@@ -2179,7 +2179,7 @@
base_feature: "none",
public: true,
origin_trial_feature_name: "FedCmMultipleIdentityProviders",
@@ -81,7 +81,7 @@
origin_trial_allows_third_party: true,
},
{
-@@ -3718,7 +3718,7 @@
+@@ -3725,7 +3725,7 @@
// Tracking bug for the implementation: https://crbug.com/1462930
name: "PermissionElement",
origin_trial_feature_name: "PermissionElement",
@@ -90,7 +90,7 @@
status: "experimental",
public: true,
base_feature_status: "enabled",
-@@ -5310,7 +5310,7 @@
+@@ -5316,7 +5316,7 @@
name: "UnrestrictedSharedArrayBuffer",
base_feature: "none",
origin_trial_feature_name: "UnrestrictedSharedArrayBuffer",
@@ -99,7 +99,7 @@
},
// Enables using policy-controlled feature "usb-unrestricted" to allow
// isolated context to access protected USB interface classes and to
-@@ -5504,7 +5504,7 @@
+@@ -5510,7 +5510,7 @@
{
name: "WebAppScopeExtensions",
origin_trial_feature_name: "WebAppScopeExtensions",
@@ -108,7 +108,7 @@
status: "experimental",
base_feature: "none",
},
-@@ -5612,7 +5612,7 @@
+@@ -5618,7 +5618,7 @@
{
name: "WebAuthenticationImmediateGet",
origin_trial_feature_name: "WebAuthenticationImmediateGet",
diff --git a/devel/libunit/Makefile b/devel/libunit/Makefile
index 49b1d5cb6444..5919112b76b5 100644
--- a/devel/libunit/Makefile
+++ b/devel/libunit/Makefile
@@ -11,6 +11,9 @@ WWW= https://unit.nginx.org
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
+DEPRECATED= Upstream repo archived on Oct 8 2025
+EXPIRATION_DATE=2025-12-31
+
CATEGORIES= devel www
USES+= compiler:c11 cpe
diff --git a/devel/pcre2/Makefile b/devel/pcre2/Makefile
index 7b09ea0fd806..71fe8ad95e67 100644
--- a/devel/pcre2/Makefile
+++ b/devel/pcre2/Makefile
@@ -1,5 +1,5 @@
PORTNAME= pcre2
-DISTVERSION= 10.46
+DISTVERSION= 10.47
CATEGORIES= devel
MASTER_SITES= https://github.com/PCRE2Project/${PORTNAME}/releases/download/${PORTNAME}-${DISTVERSION}/
@@ -10,41 +10,46 @@ WWW= https://www.pcre.org/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENCE.md
-USES= autoreconf cpe libtool pkgconfig tar:bz2
+USES= cmake:testing cpe pathfix pkgconfig tar:bz2
CPE_VENDOR= pcre
-
USE_LDCONFIG= yes
-GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
-CONFIGURE_ARGS= --enable-pcre2-16 \
- --enable-pcre2-32
-INSTALL_TARGET= install-strip
+PORTDOCS= *
+
+CMAKE_TESTING_ON= PCRE2_BUILD_TESTS
+
+CMAKE_ON= BUILD_SHARED_LIBS \
+ PCRE2_BUILD_PCRE2_16 \
+ PCRE2_BUILD_PCRE2_32
+CMAKE_OFF= PCRE2_BUILD_TESTS
-OPTIONS_DEFINE= DOCS LIBBZ2 LIBZ
+OPTIONS_DEFINE= DOCS LIBBZ2 LIBZ STATIC
OPTIONS_RADIO= CLI
OPTIONS_RADIO_CLI= LIBEDIT READLINE
+OPTIONS_SUB= yes
LIBBZ2_DESC= Using pcre2grep with .bz2 files
LIBZ_DESC= Using pcre2grep with .gz files
-LIBBZ2_CONFIGURE_ON= --enable-pcre2grep-libbz2
-LIBEDIT_USES= libedit
-LIBEDIT_CONFIGURE_ENABLE= pcre2test-libedit
-LIBZ_CONFIGURE_ON= --enable-pcre2grep-libz
-READLINE_USES= readline
-READLINE_CONFIGURE_ENABLE= pcre2test-libreadline
+LIBBZ2_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_BZip2:BOOL=True
+
+LIBEDIT_USES= libedit
+LIBEDIT_CMAKE_BOOL= PCRE2_SUPPORT_LIBEDIT
+LIBEDIT_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_Editline:BOOL=True
+
+LIBZ_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB:BOOL=True
+
+READLINE_USES= readline
+READLINE_CMAKE_OFF= -DCMAKE_DISABLE_FIND_PACKAGE_Readline:BOOL=True
+
+STATIC_CMAKE_BOOL= BUILD_STATIC_LIBS
.include <bsd.port.options.mk>
.if ${ARCH:Mmips64*} == "" && ${ARCH:Mriscv64*} == ""
-CONFIGURE_ARGS+= --enable-jit
+CMAKE_ON+= PCRE2_SUPPORT_JIT
.else
-CONFIGURE_ARGS+= --disable-jit
-.endif
-
-.if ${PORT_OPTIONS:MDOCS}
-PORTDOCS= *
+CMAKE_OFF+= PCRE2_SUPPORT_JIT
.endif
# Optional knobs that accept positive integer parameters (see pcrebuild(3)):
@@ -53,33 +58,27 @@ PORTDOCS= *
# libraries, at the expense of longer load times (possible values:
# 2 (default), 3, and 4):
.if defined(WITH_LINK_SIZE)
-CONFIGURE_ARGS+= --with-link-size=${WITH_LINK_SIZE}
+CMAKE_ARGS+= -DPCRE2_LINK_SIZE:STRING=${WITH_LINK_SIZE}
.endif
# Control PCRE resource use by limiting the default number of times pcre_exec()
# can call match() during a single operation (default: 10 million):
.if defined(WITH_MATCH_LIMIT)
-CONFIGURE_ARGS+= --with-match-limit=${WITH_MATCH_LIMIT}
+CMAKE_ARGS+= -DPCRE2_MATCH_LIMIT:STRING=${WITH_MATCH_LIMIT}
+.endif
+
+# This limit applies to all backtracks, whether or not they are nested. In
+# some environments it is desirable to limit the nesting of backtracking (that
+# is, the depth of tree that is searched) more strictly, in order to restrict
+# the maximum amount of heap memory that is used (default: 10 million):
+.if defined(WITH_MATCH_LIMIT_DEPTH)
+CMAKE_ARGS+= -DPCRE2_MATCH_LIMIT_DEPTH:STRING=${WITH_MATCH_LIMIT_DEPTH}
.endif
# Control PCRE resource use by limiting the nesting depth of parentheses in
# patterns compiled with pcre_compile() (default: 250):
.if defined(WITH_PARENS_NEST_LIMIT)
-CONFIGURE_ARGS+= --with-parens-nest-limit=${WITH_PARENS_NEST_LIMIT}
-.endif
-
-#prevent regression test coredumps from causing failures on the
-#package-building cluster:
-.ifndef (MAINTAINER_MODE)
-CORELIMIT?= /usr/bin/limits -Sc 0
+CMAKE_ARGS+= -DPCRE2_PARENS_NEST_LIMIT:STRING=${WITH_PARENS_NEST_LIMIT}
.endif
-TESTLOGS?= RunGrepTest RunTest pcre_jit_test pcre_scanner_unittest \
- pcre_stringpiece_unittest pcrecpp_unittest
-
-do-test:
- @cd ${WRKSRC} ; \
- ${SETENV} ${MAKE_ENV} ${CORELIMIT} ${MAKE_CMD} ${MAKE_ARGS} check ; \
- for _l in ${TESTLOGS} ; do if ${TEST} -f $${_l}.log ; then \
- ${PRINTF} "\n\n$${_l}.log\n\n\n" ; ${CAT} $${_l}.log ; fi ; done
.include <bsd.port.mk>
diff --git a/devel/pcre2/distinfo b/devel/pcre2/distinfo
index 558f8cfcb451..5b829d77fd25 100644
--- a/devel/pcre2/distinfo
+++ b/devel/pcre2/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759339956
-SHA256 (pcre2-10.46.tar.bz2) = 15fbc5aba6beee0b17aecb04602ae39432393aba1ebd8e39b7cabf7db883299f
-SIZE (pcre2-10.46.tar.bz2) = 2035354
+TIMESTAMP = 1761177391
+SHA256 (pcre2-10.47.tar.bz2) = 47fe8c99461250d42f89e6e8fdaeba9da057855d06eb7fc08d9ca03fd08d7bc7
+SIZE (pcre2-10.47.tar.bz2) = 2145789
diff --git a/devel/pcre2/files/patch-deps_sljit_sljit__src_sljitConfigInternal.h b/devel/pcre2/files/patch-deps_sljit_sljit__src_sljitConfigInternal.h
deleted file mode 100644
index 67ebc2b80ddc..000000000000
--- a/devel/pcre2/files/patch-deps_sljit_sljit__src_sljitConfigInternal.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- deps/sljit/sljit_src/sljitConfigInternal.h.orig 2025-02-06 07:15:34 UTC
-+++ deps/sljit/sljit_src/sljitConfigInternal.h
-@@ -255,7 +255,7 @@ extern "C" {
- * system provided method that should be defined below is used
- * instead.
- */
--#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin)
-+#if (!defined SLJIT_CACHE_FLUSH && defined __has_builtin && !defined SLJIT_CONFIG_PPC_32)
- #if __has_builtin(__builtin___clear_cache) && !defined(__clang__)
-
- /*
diff --git a/devel/pcre2/files/patch-git-01-f8e7d124500e869ffc5643228c34d3745d64a3d7 b/devel/pcre2/files/patch-git-01-f8e7d124500e869ffc5643228c34d3745d64a3d7
new file mode 100644
index 000000000000..a0f49df6ffc5
--- /dev/null
+++ b/devel/pcre2/files/patch-git-01-f8e7d124500e869ffc5643228c34d3745d64a3d7
@@ -0,0 +1,221 @@
+From f8e7d124500e869ffc5643228c34d3745d64a3d7 Mon Sep 17 00:00:00 2001
+From: Nicholas Wilson <nicholas@nicholaswilson.me.uk>
+Date: Sat, 25 Oct 2025 12:28:05 +0100
+Subject: [PATCH] Use correctly-cased CMake variables for better compatibility
+ (#825)
+
+* Use the correct casing for <PackageName>_FOUND
+* Add a CI test with CMake very latest (currently 4.1.2). This job also sets DCMAKE_POLICY_VERSION_MINIMUM to verify that we don't break any future policies, greater than our minimum version 3.15.
+* Tidy the ncurses support for libreadline to use READLINE_LIBRARIES
+---
+ .github/workflows/dev.yml | 140 +++++++++++++++++++++++++++++++++-----
+ CMakeLists.txt | 50 ++++++--------
+ cmake/FindEditline.cmake | 5 ++
+ cmake/FindReadline.cmake | 17 ++++-
+ 4 files changed, 164 insertions(+), 48 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c97099601..ac3f8d001 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -146,7 +146,7 @@ endif()
+ # setting CMAKE_MODULE_PATH on the command line.
+ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
+-# external packages
++# External packages
+ find_package(BZip2)
+ find_package(ZLIB)
+ find_package(Readline)
+@@ -446,7 +446,7 @@ if(HAVE_VSCRIPT)
+ endif()
+
+ # bzip2 lib
+-if(BZIP2_FOUND)
++if(BZip2_FOUND)
+ option(PCRE2_SUPPORT_LIBBZ2 "Enable support for linking pcre2grep with libbz2." ON)
+ endif()
+
+@@ -456,12 +456,12 @@ if(ZLIB_FOUND)
+ endif()
+
+ # editline lib
+-if(EDITLINE_FOUND)
++if(Editline_FOUND)
+ option(PCRE2_SUPPORT_LIBEDIT "Enable support for linking pcre2test with libedit." OFF)
+ endif()
+
+ # readline lib
+-if(READLINE_FOUND)
++if(Readline_FOUND)
+ option(PCRE2_SUPPORT_LIBREADLINE "Enable support for linking pcre2test with libreadline." ON)
+ endif()
+
+@@ -498,12 +498,12 @@ if(PCRE2_BUILD_PCRE2GREP AND NOT PCRE2_BUILD_PCRE2_8)
+ endif()
+
+ if(PCRE2_SUPPORT_LIBBZ2)
+- if(BZIP2_FOUND)
+- include_directories(${BZIP2_INCLUDE_DIR})
++ if(BZip2_FOUND)
++ include_directories(${BZIP2_INCLUDE_DIRS})
+ else()
+ message(
+ FATAL_ERROR
+- " libbz2 not found. Set BZIP2_INCLUDE_DIR to a compatible header\n"
++ " libbz2 not found. Set BZIP2_INCLUDE_DIRS to a compatible header\n"
+ " or set BZip2_ROOT to a full bzip2 installed tree, as needed."
+ )
+ endif()
+@@ -511,42 +511,42 @@ endif()
+
+ if(PCRE2_SUPPORT_LIBZ)
+ if(ZLIB_FOUND)
+- include_directories(${ZLIB_INCLUDE_DIR})
++ include_directories(${ZLIB_INCLUDE_DIRS})
+ else()
+ message(
+ FATAL_ERROR
+- " zlib not found. Set ZLIB_INCLUDE_DIR to a compatible header\n"
++ " zlib not found. Set ZLIB_INCLUDE_DIRS to a compatible header\n"
+ " or set ZLIB_ROOT to a full zlib installed tree, as needed."
+ )
+ endif()
+ endif()
+
+ if(PCRE2_SUPPORT_LIBEDIT)
+- if(EDITLINE_FOUND)
+- include_directories(${EDITLINE_INCLUDE_DIR})
++ if(Editline_FOUND)
++ include_directories(${EDITLINE_INCLUDE_DIRS})
+ else()
+ message(
+ FATAL_ERROR
+- " libedit not found. Set EDITLINE_INCLUDE_DIR to a compatible header\n"
++ " libedit not found. Set EDITLINE_INCLUDE_DIRS to a compatible header\n"
+ " or set Editline_ROOT to a full libedit installed tree, as needed."
+ )
+ endif()
+ endif()
+
+ if(PCRE2_SUPPORT_LIBREADLINE)
+- if(READLINE_FOUND)
+- include_directories(${READLINE_INCLUDE_DIR})
++ if(Readline_FOUND)
++ include_directories(${READLINE_INCLUDE_DIRS})
+ else()
+ message(
+ FATAL_ERROR
+- " libreadline not found. Set READLINE_INCLUDE_DIR to a compatible header\n"
++ " libreadline not found. Set READLINE_INCLUDE_DIRS to a compatible header\n"
+ " or set Readline_ROOT to a full libreadline installed tree, as needed."
+ )
+ endif()
+ endif()
+
+ if(PCRE2_SUPPORT_LIBREADLINE AND PCRE2_SUPPORT_LIBEDIT)
+- if(READLINE_FOUND)
++ if(Readline_FOUND)
+ message(
+ FATAL_ERROR
+ " Only one of the readline compatible libraries can be enabled.\n"
+@@ -603,24 +603,16 @@ endif()
+ set(PCRE2TEST_LIBS)
+ set(PCRE2GREP_LIBS)
+
+-# This next one used to reference ${READLINE_LIBRARY})
+-# but I was advised to add the NCURSES test as well, along with
+-# some modifications to cmake/FindReadline.cmake which should
+-# make it possible to override the default if necessary. PH
+-
+ if(PCRE2_SUPPORT_LIBREADLINE)
+ set(SUPPORT_LIBREADLINE 1)
+- list(APPEND PCRE2TEST_LIBS ${READLINE_LIBRARY})
+- if(DEFINED NCURSES_LIBRARY)
+- list(APPEND PCRE2TEST_LIBS ${NCURSES_LIBRARY})
+- endif()
++ list(APPEND PCRE2TEST_LIBS ${READLINE_LIBRARIES})
+ endif()
+
+ # libedit is a plug-compatible alternative to libreadline
+
+ if(PCRE2_SUPPORT_LIBEDIT)
+ set(SUPPORT_LIBEDIT 1)
+- list(APPEND PCRE2TEST_LIBS ${EDITLINE_LIBRARY})
++ list(APPEND PCRE2TEST_LIBS ${EDITLINE_LIBRARIES})
+ endif()
+
+ if(PCRE2_SUPPORT_LIBZ)
+@@ -1589,17 +1581,17 @@ if(PCRE2_SHOW_REPORT)
+ else()
+ message(STATUS " Link pcre2grep with libz .......... : Library not found")
+ endif()
+- if(BZIP2_FOUND)
++ if(BZip2_FOUND)
+ message(STATUS " Link pcre2grep with libbz2 ........ : ${PCRE2_SUPPORT_LIBBZ2}")
+ else()
+ message(STATUS " Link pcre2grep with libbz2 ........ : Library not found")
+ endif()
+- if(EDITLINE_FOUND)
++ if(Editline_FOUND)
+ message(STATUS " Link pcre2test with libeditline ... : ${PCRE2_SUPPORT_LIBEDIT}")
+ else()
+ message(STATUS " Link pcre2test with libeditline ... : Library not found")
+ endif()
+- if(READLINE_FOUND)
++ if(Readline_FOUND)
+ message(STATUS " Link pcre2test with libreadline ... : ${PCRE2_SUPPORT_LIBREADLINE}")
+ else()
+ message(STATUS " Link pcre2test with libreadline ... : Library not found")
+diff --git a/cmake/FindEditline.cmake b/cmake/FindEditline.cmake
+index c973c7b64..4784e052c 100644
+--- cmake/FindEditline.cmake
++++ cmake/FindEditline.cmake
+@@ -8,3 +8,8 @@ mark_as_advanced(EDITLINE_LIBRARY)
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(Editline DEFAULT_MSG EDITLINE_LIBRARY EDITLINE_INCLUDE_DIR)
++
++if(Editline_FOUND)
++ set(EDITLINE_LIBRARIES "${EDITLINE_LIBRARY}")
++ set(EDITLINE_INCLUDE_DIRS "${EDITLINE_INCLUDE_DIR}")
++endif()
+diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake
+index 399096c37..e55fbcf22 100644
+--- cmake/FindReadline.cmake
++++ cmake/FindReadline.cmake
+@@ -16,6 +16,11 @@ if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
+ include(CheckSymbolExists)
+ include(CMakePushCheckState)
+
++ set(first_run FALSE)
++ if(NOT DEFINED HAVE_READLINE_FUNC)
++ set(first_run TRUE)
++ endif()
++
+ cmake_push_check_state(RESET)
+ set(CMAKE_REQUIRED_LIBRARIES "${READLINE_LIBRARY}")
+ set(CMAKE_REQUIRED_INCLUDES "${READLINE_INCLUDE_DIR}")
+@@ -36,7 +41,9 @@ if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
+ check_symbol_exists("readline" "stdio.h;readline/readline.h" HAVE_READLINE_FUNC_${lib})
+
+ if(HAVE_READLINE_FUNC_${lib})
+- message(STATUS "Looking for readline - readline needs ${lib}")
++ if(first_run)
++ message(STATUS "Looking for readline - readline needs ${lib}")
++ endif()
+ set(NCURSES_LIBRARY "${NCURSES_LIBRARY_${lib}}" CACHE FILEPATH "Path to the ncurses library")
+ mark_as_advanced(NCURSES_LIBRARY)
+ break()
+@@ -50,3 +57,11 @@ endif()
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(Readline DEFAULT_MSG READLINE_LIBRARY READLINE_INCLUDE_DIR)
++
++if(Readline_FOUND)
++ set(READLINE_LIBRARIES "${READLINE_LIBRARY}")
++ if(DEFINED NCURSES_LIBRARY)
++ list(APPEND READLINE_LIBRARIES "${NCURSES_LIBRARY}")
++ endif()
++ set(READLINE_INCLUDE_DIRS "${READLINE_INCLUDE_DIR}")
++endif()
diff --git a/devel/pcre2/files/patch-git-02-3b9197727e70bffded674d24100e7b4c80e7ef58 b/devel/pcre2/files/patch-git-02-3b9197727e70bffded674d24100e7b4c80e7ef58
new file mode 100644
index 000000000000..b057c5f0cf2e
--- /dev/null
+++ b/devel/pcre2/files/patch-git-02-3b9197727e70bffded674d24100e7b4c80e7ef58
@@ -0,0 +1,87 @@
+From 3b9197727e70bffded674d24100e7b4c80e7ef58 Mon Sep 17 00:00:00 2001
+From: Lucas Trzesniewski <lucas.trzesniewski@gmail.com>
+Date: Sat, 25 Oct 2025 21:43:32 +0200
+Subject: [PATCH] Fix incorrect version in docs (#829)
+
+---
+ doc/html/pcre2api.html | 2 +-
+ doc/html/pcre2pattern.html | 2 +-
+ doc/pcre2.txt | 4 ++--
+ doc/pcre2api.3 | 2 +-
+ doc/pcre2pattern.3 | 2 +-
+ 5 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/doc/html/pcre2api.html b/doc/html/pcre2api.html
+index 52f013e5e..dc45d7b0e 100644
+--- doc/html/pcre2api.html
++++ doc/html/pcre2api.html
+@@ -3526,7 +3526,7 @@ <h2><a name="SEC34" href="#TOC1">ITERATING OVER ALL MATCHES</a></h2>
+ for example, replacing all matches in the subject; splitting the subject on all
+ matches; or simply counting the number of matches. The <b>pcre2_next_match()</b>
+ function helps with this task by providing the appropriate parameters for the
+-next match attempt (available since PCRE2 10.46).
++next match attempt (available since PCRE2 10.47).
+ </p>
+ <p>
+ First, a match attempt should be made using one of the matching functions
+diff --git a/doc/html/pcre2pattern.html b/doc/html/pcre2pattern.html
+index a18a29771..6374d93ed 100644
+--- doc/html/pcre2pattern.html
++++ doc/html/pcre2pattern.html
+@@ -3451,7 +3451,7 @@ <h3>
+ Recursion and subroutines with returned capture groups
+ </h3>
+ <p>
+-Since PCRE2 10.46, recursion and subroutine calls may also specify a list of
++Since PCRE2 10.47, recursion and subroutine calls may also specify a list of
+ capture groups to return. This is a PCRE2 syntax extension not supported by
+ Perl. The pattern matching recurses into the referenced expression as described
+ above, however, when the recursion returns to the calling expression the
+diff --git a/doc/pcre2.txt b/doc/pcre2.txt
+index 4c43489fe..6ecf94e6e 100644
+--- doc/pcre2.txt
++++ doc/pcre2.txt
+@@ -3414,7 +3414,7 @@ ITERATING OVER ALL MATCHES
+ subject on all matches; or simply counting the number of matches. The
+ pcre2_next_match() function helps with this task by providing the ap-
+ propriate parameters for the next match attempt (available since PCRE2
+- 10.46).
++ 10.47).
+
+ First, a match attempt should be made using one of the matching func-
+ tions (pcre2_match(), pcre2_dfa_match(), or pcre2_jit_match()). Then,
+@@ -10105,7 +10105,7 @@ RECURSIVE PATTERNS
+
+ Recursion and subroutines with returned capture groups
+
+- Since PCRE2 10.46, recursion and subroutine calls may also specify a
++ Since PCRE2 10.47, recursion and subroutine calls may also specify a
+ list of capture groups to return. This is a PCRE2 syntax extension not
+ supported by Perl. The pattern matching recurses into the referenced
+ expression as described above, however, when the recursion returns to
+diff --git a/doc/pcre2api.3 b/doc/pcre2api.3
+index c43f57bee..1100e59af 100644
+--- doc/pcre2api.3
++++ doc/pcre2api.3
+@@ -3543,7 +3543,7 @@ A common task for applications is to implement "global" matching behaviour,
+ for example, replacing all matches in the subject; splitting the subject on all
+ matches; or simply counting the number of matches. The \fBpcre2_next_match()\fP
+ function helps with this task by providing the appropriate parameters for the
+-next match attempt (available since PCRE2 10.46).
++next match attempt (available since PCRE2 10.47).
+ .P
+ First, a match attempt should be made using one of the matching functions
+ (\fBpcre2_match()\fP, \fBpcre2_dfa_match()\fP, or \fBpcre2_jit_match()\fP).
+diff --git a/doc/pcre2pattern.3 b/doc/pcre2pattern.3
+index 6f73e1b84..db7856449 100644
+--- doc/pcre2pattern.3
++++ doc/pcre2pattern.3
+@@ -3499,7 +3499,7 @@ below.
+ .SS "Recursion and subroutines with returned capture groups"
+ .rs
+ .sp
+-Since PCRE2 10.46, recursion and subroutine calls may also specify a list of
++Since PCRE2 10.47, recursion and subroutine calls may also specify a list of
+ capture groups to return. This is a PCRE2 syntax extension not supported by
+ Perl. The pattern matching recurses into the referenced expression as described
+ above, however, when the recursion returns to the calling expression the
diff --git a/devel/pcre2/pkg-plist b/devel/pcre2/pkg-plist
index f783f2072d73..2dc1952fa178 100644
--- a/devel/pcre2/pkg-plist
+++ b/devel/pcre2/pkg-plist
@@ -1,24 +1,27 @@
bin/pcre2-config
bin/pcre2grep
-bin/pcre2test
include/pcre2.h
include/pcre2posix.h
-lib/libpcre2-16.a
+lib/cmake/pcre2/pcre2-config-version.cmake
+lib/cmake/pcre2/pcre2-config.cmake
+lib/cmake/pcre2/pcre2-targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/pcre2/pcre2-targets.cmake
+%%STATIC%%lib/libpcre2-16.a
lib/libpcre2-16.so
lib/libpcre2-16.so.0
-lib/libpcre2-16.so.0.14.0
-lib/libpcre2-32.a
+lib/libpcre2-16.so.0.15.0
+%%STATIC%%lib/libpcre2-32.a
lib/libpcre2-32.so
lib/libpcre2-32.so.0
-lib/libpcre2-32.so.0.14.0
-lib/libpcre2-8.a
+lib/libpcre2-32.so.0.15.0
+%%STATIC%%lib/libpcre2-8.a
lib/libpcre2-8.so
lib/libpcre2-8.so.0
-lib/libpcre2-8.so.0.14.0
-lib/libpcre2-posix.a
+lib/libpcre2-8.so.0.15.0
+%%STATIC%%lib/libpcre2-posix.a
lib/libpcre2-posix.so
lib/libpcre2-posix.so.3
-lib/libpcre2-posix.so.3.0.6
+lib/libpcre2-posix.so.3.0.7
libdata/pkgconfig/libpcre2-16.pc
libdata/pkgconfig/libpcre2-32.pc
libdata/pkgconfig/libpcre2-8.pc
@@ -46,6 +49,7 @@ share/man/man3/pcre2_general_context_create.3.gz
share/man/man3/pcre2_general_context_free.3.gz
share/man/man3/pcre2_get_error_message.3.gz
share/man/man3/pcre2_get_mark.3.gz
+share/man/man3/pcre2_get_match_data_heapframes_size.3.gz
share/man/man3/pcre2_get_match_data_size.3.gz
share/man/man3/pcre2_get_ovector_count.3.gz
share/man/man3/pcre2_get_ovector_pointer.3.gz
@@ -65,7 +69,7 @@ share/man/man3/pcre2_match_context_free.3.gz
share/man/man3/pcre2_match_data_create.3.gz
share/man/man3/pcre2_match_data_create_from_pattern.3.gz
share/man/man3/pcre2_match_data_free.3.gz
-share/man/man3/pcre2_get_match_data_heapframes_size.3.gz
+share/man/man3/pcre2_next_match.3.gz
share/man/man3/pcre2_pattern_convert.3.gz
share/man/man3/pcre2_pattern_info.3.gz
share/man/man3/pcre2_serialize_decode.3.gz
diff --git a/devel/please/Makefile b/devel/please/Makefile
index 856412af8f2e..be89468fcae4 100644
--- a/devel/please/Makefile
+++ b/devel/please/Makefile
@@ -1,7 +1,6 @@
PORTNAME= please
DISTVERSIONPREFIX= v
-DISTVERSION= 17.23.0
-PORTREVISION= 1
+DISTVERSION= 17.24.0
CATEGORIES= devel
MASTER_SITES= https://raw.githubusercontent.com/thought-machine/please/${DISTVERSIONFULL}/
DISTFILES= go.mod
diff --git a/devel/please/distinfo b/devel/please/distinfo
index 84fe4fda5ba8..d7e4061984b1 100644
--- a/devel/please/distinfo
+++ b/devel/please/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1761992524
-SHA256 (go/devel_please/thought-machine-please-v17.23.0_GH0/go.mod) = f0f612115a5d26718a91d6f4cf2a153360db691cfc5a24f5049f043f0b45dbda
-SIZE (go/devel_please/thought-machine-please-v17.23.0_GH0/go.mod) = 5379
-SHA256 (go/devel_please/thought-machine-please-v17.23.0_GH0/thought-machine-please-v17.23.0_GH0.tar.gz) = 807a659183487eb93353aaade8b9e26d20846c37ca2d3396412cb4972a4c0e60
-SIZE (go/devel_please/thought-machine-please-v17.23.0_GH0/thought-machine-please-v17.23.0_GH0.tar.gz) = 2075021
+TIMESTAMP = 1763138935
+SHA256 (go/devel_please/thought-machine-please-v17.24.0_GH0/go.mod) = f0f612115a5d26718a91d6f4cf2a153360db691cfc5a24f5049f043f0b45dbda
+SIZE (go/devel_please/thought-machine-please-v17.24.0_GH0/go.mod) = 5379
+SHA256 (go/devel_please/thought-machine-please-v17.24.0_GH0/thought-machine-please-v17.24.0_GH0.tar.gz) = e3ad23e0c272fcfdc0d78984719a56103e30ac73f35ec6c21dd1c9d4810a4ef9
+SIZE (go/devel_please/thought-machine-please-v17.24.0_GH0/thought-machine-please-v17.24.0_GH0.tar.gz) = 2078805
diff --git a/devel/py-sirmordred/Makefile b/devel/py-sirmordred/Makefile
index bc3dc7088741..4112e740f75e 100644
--- a/devel/py-sirmordred/Makefile
+++ b/devel/py-sirmordred/Makefile
@@ -5,7 +5,8 @@ CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-MAINTAINER= bofh@FreeBSD.org
+# Ask clusteradm@ before removal
+MAINTAINER= ports@FreeBSD.org
COMMENT= Drive GrimoireLab tools to produce a dashboard
WWW= https://github.com/chaoss/grimoirelab-sirmordred
diff --git a/devel/rubygem-CFPropertyList-gitlab/Makefile b/devel/rubygem-CFPropertyList-gitlab/Makefile
index db076235b6ca..14510653150f 100644
--- a/devel/rubygem-CFPropertyList-gitlab/Makefile
+++ b/devel/rubygem-CFPropertyList-gitlab/Makefile
@@ -1,6 +1,5 @@
PORTNAME= CFPropertyList
-PORTVERSION= 3.0.7
-PORTREVISION= 1
+PORTVERSION= 3.0.8
CATEGORIES= devel rubygems
MASTER_SITES= RG
PKGNAMESUFFIX= -gitlab
@@ -12,9 +11,9 @@ WWW= https://github.com/ckruse/CFPropertyList
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-RUN_DEPENDS= rubygem-base64>=0:converters/rubygem-base64 \
- rubygem-nkf>=0:net/rubygem-nkf \
- rubygem-rexml>=0:textproc/rubygem-rexml
+#RUN_DEPENDS= rubygem-base64>=0:converters/rubygem-base64 \
+# rubygem-nkf>=0:net/rubygem-nkf \
+# rubygem-rexml>=0:textproc/rubygem-rexml
USES= gem
diff --git a/devel/rubygem-CFPropertyList-gitlab/distinfo b/devel/rubygem-CFPropertyList-gitlab/distinfo
index 0fac69849593..e8658169998e 100644
--- a/devel/rubygem-CFPropertyList-gitlab/distinfo
+++ b/devel/rubygem-CFPropertyList-gitlab/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1708449578
-SHA256 (rubygem/CFPropertyList-3.0.7.gem) = c45721614aca8d5eb6fa216f2ec28ec38de1a94505e9766a20e98745492c3c4c
-SIZE (rubygem/CFPropertyList-3.0.7.gem) = 18432
+TIMESTAMP = 1763181507
+SHA256 (rubygem/CFPropertyList-3.0.8.gem) = 2c99d0d980536d3d7ab252f7bd59ac8be50fbdd1ff487c98c949bb66bb114261
+SIZE (rubygem/CFPropertyList-3.0.8.gem) = 18432
diff --git a/devel/rubygem-opentelemetry-helpers-sql-processor/Makefile b/devel/rubygem-opentelemetry-helpers-sql-processor/Makefile
index 49b4d4167fdb..78ade054695c 100644
--- a/devel/rubygem-opentelemetry-helpers-sql-processor/Makefile
+++ b/devel/rubygem-opentelemetry-helpers-sql-processor/Makefile
@@ -1,5 +1,5 @@
PORTNAME= opentelemetry-helpers-sql-processor
-PORTVERSION= 0.1.0
+PORTVERSION= 0.3.1
CATEGORIES= devel rubygems
MASTER_SITES= RG
diff --git a/devel/rubygem-opentelemetry-helpers-sql-processor/distinfo b/devel/rubygem-opentelemetry-helpers-sql-processor/distinfo
index 379229a2ef01..c3354af02147 100644
--- a/devel/rubygem-opentelemetry-helpers-sql-processor/distinfo
+++ b/devel/rubygem-opentelemetry-helpers-sql-processor/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1760436896
-SHA256 (rubygem/opentelemetry-helpers-sql-processor-0.1.0.gem) = 940aaf18ea184ec3efaae9ac30768be1990374a089fac41788ba0ec54f7f021c
-SIZE (rubygem/opentelemetry-helpers-sql-processor-0.1.0.gem) = 11776
+TIMESTAMP = 1763182255
+SHA256 (rubygem/opentelemetry-helpers-sql-processor-0.3.1.gem) = 6041e934bee76c593e971a8bca0979a6ee411723affdd3c11ca1312903bcd9bc
+SIZE (rubygem/opentelemetry-helpers-sql-processor-0.3.1.gem) = 12288
diff --git a/devel/unit-otel/Makefile b/devel/unit-otel/Makefile
index 5ca55e7b9779..962454981e31 100644
--- a/devel/unit-otel/Makefile
+++ b/devel/unit-otel/Makefile
@@ -12,6 +12,9 @@ WWW= https://unit.nginx.org
LICENSE= APACHE20
LICENSE_FILE= ${WRKDIR}/unit-${PORTVERSION}/LICENSE
+DEPRECATED= Upstream repo archived on Oct 8 2025
+EXPIRATION_DATE=2025-12-31
+
USES= cargo cpe ssl
CPE_VENDOR= nginx