From a1e910c70cb6d5f33c23eb274b63c2ea12d56dea Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Tue, 22 Jul 2025 20:36:23 -0400 Subject: unofficial-homestuck-collection: refactor package --- .../0001-disable-git-rev-check.patch | 47 ++++++++ .../0001-fix-source.patch | 40 ------- .../0002-disable-update-check.patch | 63 +++++++++++ ...0003-make-compatible-with-native-electron.patch | 103 +++++++++++++++++ pkgs/unofficial-homestuck-collection/default.nix | 125 +++++---------------- .../phantomjs.patch | 36 ------ 6 files changed, 243 insertions(+), 171 deletions(-) create mode 100644 pkgs/unofficial-homestuck-collection/0001-disable-git-rev-check.patch delete mode 100644 pkgs/unofficial-homestuck-collection/0001-fix-source.patch create mode 100644 pkgs/unofficial-homestuck-collection/0002-disable-update-check.patch create mode 100644 pkgs/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch delete mode 100644 pkgs/unofficial-homestuck-collection/phantomjs.patch (limited to 'pkgs') diff --git a/pkgs/unofficial-homestuck-collection/0001-disable-git-rev-check.patch b/pkgs/unofficial-homestuck-collection/0001-disable-git-rev-check.patch new file mode 100644 index 0000000..d08db5f --- /dev/null +++ b/pkgs/unofficial-homestuck-collection/0001-disable-git-rev-check.patch @@ -0,0 +1,47 @@ +From 6b75316ea085a654c53c59816caaac5b0b880f48 Mon Sep 17 00:00:00 2001 +From: Freya Murphy +Date: Sun, 20 Jul 2025 11:53:51 -0400 +Subject: [PATCH 1/3] disable git rev check + +--- + vue.config.js | 21 +++------------------ + 1 file changed, 3 insertions(+), 18 deletions(-) + +diff --git a/vue.config.js b/vue.config.js +index 04b61d3..559b119 100644 +--- a/vue.config.js ++++ b/vue.config.js +@@ -1,27 +1,12 @@ + const webpack = require('webpack') + const { execSync } = require('child_process') + +-const git_branch = execSync('git rev-parse --abbrev-ref HEAD').toString() +- + var build_info = { +- 'process.env.BUILD_BRANCH': JSON.stringify( +- git_branch.trim() +- ), ++ 'process.env.BUILD_BRANCH': "@git_branch@", + 'process.env.BUILD_DATE': JSON.stringify(new Date().toISOString()), + 'process.env.BUILD_PLATFORM': JSON.stringify(process.platform), +- 'process.env.BUILD_GIT_REVISION': JSON.stringify( +- execSync('git rev-parse HEAD').toString().trim() +- ) +-} +- +-try { +- const git_remote = execSync(`git config --get branch.${git_branch.trim()}.remote`).toString() +- const git_remote_url = execSync(`git config --get remote.${git_remote.trim()}.url`).toString() +- +- build_info['process.env.BUILD_GIT_REMOTE'] = JSON.stringify(git_remote_url.trim()) +-} catch (e) { +- build_info['process.env.BUILD_GIT_REMOTE'] = JSON.stringify("(no remote)") +- console.warn("No git remote") ++ 'process.env.BUILD_GIT_REVISION': "@git_revision@", ++ 'process.env.BUILD_GIT_REMOTE': "@git_remote@", + } + + module.exports = { +-- +2.50.0 + diff --git a/pkgs/unofficial-homestuck-collection/0001-fix-source.patch b/pkgs/unofficial-homestuck-collection/0001-fix-source.patch deleted file mode 100644 index df1144a..0000000 --- a/pkgs/unofficial-homestuck-collection/0001-fix-source.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0d63f04b5224bda4b5e9a37767da912c7ba1ef1c Mon Sep 17 00:00:00 2001 -From: Freya Murphy -Date: Thu, 17 Jul 2025 12:58:56 -0400 -Subject: [PATCH] fix source - ---- - src/background.js | 3 ++- - src/store/localData.js | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/background.js b/src/background.js -index 426a84a..3b587ab 100644 ---- a/src/background.js -+++ b/src/background.js -@@ -747,7 +747,8 @@ async function createWindow () { - titleBarStyle: 'hidden', - autoHideMenuBar: true, - webPreferences: { -- nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION, -+ nodeIntegration: true, -+ contextIsolation: false, - enableRemoteModule: true, - plugins: true, - webviewTag: true -diff --git a/src/store/localData.js b/src/store/localData.js -index 2be2235..69833ff 100644 ---- a/src/store/localData.js -+++ b/src/store/localData.js -@@ -33,7 +33,7 @@ const migrations = { - '2.6.9': store => { - const settings_prev = store.get('settings', {}) - if (settings_prev && !isWebApp && settings_prev.ruffleFallback) { -- store.set('settings.ruffleFallback', false) -+ store.set('settings.ruffleFallback', true) - } - } - } --- -2.50.0 - diff --git a/pkgs/unofficial-homestuck-collection/0002-disable-update-check.patch b/pkgs/unofficial-homestuck-collection/0002-disable-update-check.patch new file mode 100644 index 0000000..c1b9dde --- /dev/null +++ b/pkgs/unofficial-homestuck-collection/0002-disable-update-check.patch @@ -0,0 +1,63 @@ +From 2962679d4a3d8320681fcd6804712a71a9ea661b Mon Sep 17 00:00:00 2001 +From: Freya Murphy +Date: Sun, 20 Jul 2025 12:06:21 -0400 +Subject: [PATCH 2/3] disable update check + +--- + src/components/SystemPages/Settings.vue | 15 +++++++++------ + src/components/UIElements/Updater.vue | 13 +------------ + 2 files changed, 10 insertions(+), 18 deletions(-) + +diff --git a/src/components/SystemPages/Settings.vue b/src/components/SystemPages/Settings.vue +index 3371358..47c5ea6 100644 +--- a/src/components/SystemPages/Settings.vue ++++ b/src/components/SystemPages/Settings.vue +@@ -598,12 +598,15 @@ export default { + label: "Use system window decorations", + desc: "Use OS-native window decorations instead of the electron title bar. Will restart the application.", + platform_whitelist: ['electron'] +- }, { +- model: "allowSysUpdateNotifs", +- label: "Update notifications", +- desc: "Unless this setting is disabled, the collection will check to see if there's a new version of the app available when it starts up and alert you if there is.", +- platform_whitelist: ['electron'] +- }, { ++ }, ++ // MOD: patch out update notifs ++ // { ++ // model: "allowSysUpdateNotifs", ++ // label: "Update notifications", ++ // desc: "Unless this setting is disabled, the collection will check to see if there's a new version of the app available when it starts up and alert you if there is.", ++ // platform_whitelist: ['electron'] ++ // }, ++ { + model: "useTabbedBrowsing", + label: "Tabbed Browsing", + desc: "By default, the web app only shows one page at a time, like a standard website. This setting re-enables the in-app tab bar, and the app will store your tabs in settings.", +diff --git a/src/components/UIElements/Updater.vue b/src/components/UIElements/Updater.vue +index 6b3f677..d9bae45 100644 +--- a/src/components/UIElements/Updater.vue ++++ b/src/components/UIElements/Updater.vue +@@ -73,18 +73,7 @@ export default { + watch: { + }, + mounted(){ +- const is_flatpak = !!(process.env.container) +- if (this.$localData.settings.allowSysUpdateNotifs && !is_flatpak) { +- const now = new Date() +- const last_checked = new Date(this.$localData.settings.lastCheckedUpdate) +- const one_day = (12 * 60 * 60 * 1000) +- if (last_checked == "Invalid Date" || now - last_checked > one_day) { +- this.doUpdateCheck() +- this.$localData.settings.lastCheckedUpdate = now.toISOString() +- } else { +- this.$logger.info("Skipping update check, already checked", last_checked) +- } +- } ++ // MOD: patch out update check + } + } + +-- +2.50.0 + diff --git a/pkgs/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch b/pkgs/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch new file mode 100644 index 0000000..49de8df --- /dev/null +++ b/pkgs/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch @@ -0,0 +1,103 @@ +From 0f84aa973f9e2f7fae8980429b59acccfcc09458 Mon Sep 17 00:00:00 2001 +From: Freya Murphy +Date: Sun, 20 Jul 2025 12:01:12 -0400 +Subject: [PATCH 3/3] make compatible with native electron + +--- + src/background.js | 17 ++++++----------- + src/components/SystemPages/Settings.vue | 12 +++++++----- + src/components/UIElements/MediaEmbed.vue | 20 ++------------------ + 3 files changed, 15 insertions(+), 34 deletions(-) + +diff --git a/src/background.js b/src/background.js +index 426a84a..997971a 100644 +--- a/src/background.js ++++ b/src/background.js +@@ -314,16 +314,8 @@ if (assetDir === undefined) { + is_first_run = true + } else { + try { +- if (store.has('settings.ruffleFallback') && store.get('settings.ruffleFallback') === true) { +- logger.info("Ruffle fallback enabled, disabling ppapi-level flash player") +- } else { +- // Pick the appropriate flash plugin for the user's platform +- const flashPath = getFlashPath() +- +- if (fs.existsSync(flashPath)) { +- app.commandLine.appendSwitch('ppapi-flash-path', flashPath) +- } else throw Error(`Flash plugin not located at ${flashPath}`) +- } ++ // MOD: always use ruffle ++ logger.info("Ruffle fallback enabled, disabling ppapi-level flash player") + + if (store.has('settings.smoothScrolling') && store.get('settings.smoothScrolling') === false) + app.commandLine.appendSwitch('disable-smooth-scrolling') +@@ -747,7 +739,10 @@ async function createWindow () { + titleBarStyle: 'hidden', + autoHideMenuBar: true, + webPreferences: { +- nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION, ++ // MOD: disable isolation to get ++ // collection to work with electron 35 ++ nodeIntegration: true, ++ contextIsolation: false, + enableRemoteModule: true, + plugins: true, + webviewTag: true +diff --git a/src/components/SystemPages/Settings.vue b/src/components/SystemPages/Settings.vue +index 47c5ea6..5630625 100644 +--- a/src/components/SystemPages/Settings.vue ++++ b/src/components/SystemPages/Settings.vue +@@ -619,11 +619,13 @@ export default { + label: "Reduce Motion", + desc: "Attempts to reduce the amount of automatic motion in the comic by replacing animated gifs with a manual scrubber, and requiring an explicit click before playing Flash animations.", + platform_whitelist: ['electron'] +- }, { +- model: "ruffleFallback", +- label: "Ruffle flash emulation fallback", +- desc: "If the built-in flash player is non-functional, use the Ruffle Flash emulator in place of Flash." +- } ++ }, ++ // MOD: always use ruffle ++ // { ++ // model: "ruffleFallback", ++ // label: "Ruffle flash emulation fallback", ++ // desc: "If the built-in flash player is non-functional, use the Ruffle Flash emulator in place of Flash." ++ // } + ], + retconList: [ + { +diff --git a/src/components/UIElements/MediaEmbed.vue b/src/components/UIElements/MediaEmbed.vue +index 760fec4..53f34ff 100644 +--- a/src/components/UIElements/MediaEmbed.vue ++++ b/src/components/UIElements/MediaEmbed.vue +@@ -156,24 +156,8 @@ export default { + return ret + }, + ruffleEmbed() { +- // At some point between 2025.3.14 and 2025.4.13 ruffle stopped supporting our old runtime. Damn. --> +- if (this.$localData.settings.ruffleFallback) { +- if (this.$isWebApp) { +- return '