From 5ff73b650bb0507565c6a4e289ef227b5879c88f Mon Sep 17 00:00:00 2001 From: Hiroki Tagato Date: Sun, 9 Nov 2025 23:12:53 +0900 Subject: devel/electron39: Add port: Build cross-platform desktop apps with JavaScript, HTML, and CSS Build cross platform desktop apps with JavaScript, HTML, and CSS. It's easier than you think. If you can build a website, you can build a desktop app. Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application. WWW: https://electronjs.org/ --- .../files/patch-electron_spec_api-app-spec.ts | 133 +++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 devel/electron39/files/patch-electron_spec_api-app-spec.ts (limited to 'devel/electron39/files/patch-electron_spec_api-app-spec.ts') diff --git a/devel/electron39/files/patch-electron_spec_api-app-spec.ts b/devel/electron39/files/patch-electron_spec_api-app-spec.ts new file mode 100644 index 000000000000..2d68e21081b7 --- /dev/null +++ b/devel/electron39/files/patch-electron_spec_api-app-spec.ts @@ -0,0 +1,133 @@ +--- electron/spec/api-app-spec.ts.orig 2025-10-28 14:56:59 UTC ++++ electron/spec/api-app-spec.ts +@@ -129,11 +129,11 @@ describe('app module', () => { + }); + + describe('app.getPreferredSystemLanguages()', () => { +- ifit(process.platform !== 'linux')('should not be empty', () => { ++ ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be empty', () => { + expect(app.getPreferredSystemLanguages().length).to.not.equal(0); + }); + +- ifit(process.platform === 'linux')('should be empty or contain C entry', () => { ++ ifit(process.platform === 'linux' || process.platform === 'freebsd')('should be empty or contain C entry', () => { + const languages = app.getPreferredSystemLanguages(); + if (languages.length) { + expect(languages).to.not.include('C'); +@@ -196,7 +196,7 @@ describe('app module', () => { + expect(code).to.equal(123, 'exit code should be 123, if you see this please tag @MarshallOfSound'); + }); + +- ifit(['darwin', 'linux'].includes(process.platform))('exits gracefully', async function () { ++ ifit(['darwin', 'linux', 'freebsd'].includes(process.platform))('exits gracefully', async function () { + const electronPath = process.execPath; + const appPath = path.join(fixturesPath, 'api', 'singleton'); + appProcess = cp.spawn(electronPath, [appPath]); +@@ -360,7 +360,7 @@ describe('app module', () => { + }); + + // GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test. +- ifdescribe(process.platform !== 'linux' && !isMacOSx64)('app.{add|get|clear}RecentDocument(s)', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !isMacOSx64)('app.{add|get|clear}RecentDocument(s)', () => { + const tempFiles = [ + path.join(fixturesPath, 'foo.txt'), + path.join(fixturesPath, 'bar.txt'), +@@ -488,7 +488,7 @@ describe('app module', () => { + // let w = null + + // before(function () { +- // if (process.platform !== 'linux') { ++ // if (process.platform !== 'linux' && process.platform !== 'freebsd') { + // this.skip() + // } + // }) +@@ -595,7 +595,7 @@ describe('app module', () => { + describe('app.badgeCount', () => { + const platformIsNotSupported = + (process.platform === 'win32') || +- (process.platform === 'linux' && !app.isUnityRunning()); ++ (process.platform === 'linux' && !app.isUnityRunning()) || (process.platform === 'freebsd'); + + const expectedBadgeCount = 42; + +@@ -639,7 +639,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64'))('app.get/setLoginItemSettings API', function () { + const isMac = process.platform === 'darwin'; + const isWin = process.platform === 'win32'; + +@@ -1019,7 +1019,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('accessibility support functionality', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('accessibility support functionality', () => { + it('is mutable', () => { + const values = [false, true, false]; + const setters: Array<(arg: boolean) => void> = [ +@@ -1288,7 +1288,7 @@ describe('app module', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('select-client-certificate event', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('select-client-certificate event', () => { + let w: BrowserWindow; + + before(function () { +@@ -1423,7 +1423,7 @@ describe('app module', () => { + + describe('getApplicationNameForProtocol()', () => { + // TODO: Linux CI doesn't have registered http & https handlers +- ifit(!(process.env.CI && process.platform === 'linux'))('returns application names for common protocols', function () { ++ ifit(!(process.env.CI && (process.platform === 'linux' || process.platform === 'freebsd')))('returns application names for common protocols', function () { + // 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', () => { + }); + }); + +- ifdescribe(process.platform !== 'linux')('getApplicationInfoForProtocol()', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getApplicationInfoForProtocol()', () => { + it('returns promise rejection for a bogus protocol', async function () { + await expect( + app.getApplicationInfoForProtocol('bogus-protocol://') +@@ -1491,7 +1491,7 @@ describe('app module', () => { + }); + + // FIXME Get these specs running on Linux CI +- ifdescribe(process.platform !== 'linux')('getFileIcon() API', () => { ++ ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('getFileIcon() API', () => { + const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico'); + const sizes = { + small: 16, +@@ -1573,7 +1573,7 @@ describe('app module', () => { + expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0); + } + +- if (process.platform !== 'linux') { ++ if (process.platform !== 'linux' && process.platform !== 'freebsd') { + expect(entry.sandboxed).to.be.a('boolean'); + } + +@@ -1647,7 +1647,7 @@ describe('app module', () => { + + it('succeeds with complete GPUInfo', async () => { + const completeInfo = await getGPUInfo('complete'); +- if (process.platform === 'linux') { ++ if (process.platform === 'linux' || process.platform === 'freebsd') { + // 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', () => { + }); + }); + +- ifdescribe(!(process.platform === 'linux' && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { ++ ifdescribe(!((process.platform === 'linux' || process.platform === 'freebsd') && (process.arch === 'arm64' || process.arch === 'arm')))('sandbox options', () => { + let appProcess: cp.ChildProcess = null as any; + let server: net.Server = null as any; + const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-mixed-sandbox' : '/tmp/electron-mixed-sandbox'; -- cgit v1.2.3 From 923902ae003c3d88d73b72628ea391fbaaf347cf Mon Sep 17 00:00:00 2001 From: Hiroki Tagato Date: Sat, 15 Nov 2025 17:16:02 +0900 Subject: devel/electron39: Update to 39.2.0 Changelog: - https://github.com/electron/electron/releases/tag/v39.1.2 - https://github.com/electron/electron/releases/tag/v39.2.0 Reported by: GitHub (watch releases) --- .../files/patch-electron_spec_api-app-spec.ts | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'devel/electron39/files/patch-electron_spec_api-app-spec.ts') 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', () => { }); }); -- cgit v1.2.3