diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0508d2639de1..a1426bb2a014 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -661,6 +661,12 @@ If you have any problems with formatting, please ping the [formatting team](http As an exception, an explicit conditional expression with null can be used when fixing a important bug without triggering a mass rebuild. If this is done a follow up pull request _should_ be created to change the code to `lib.optional(s)`. +- Any style choices not covered here but that can be expressed as general rules should be left at the discretion of the authors of changes and _not_ commented in reviews. + The purpose of this is: + - to avoid churn as contributors with different style preferences undo each other's changes, + - to ensure that style rules are written down and consistent (and can thus be followed when authoring changes, reducing review cycles), + - and to encourage reviews to focus on more impactful considerations. + # Practical contributing advice To contribute effectively and efficiently, you need to be aware of how the process generally works. diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 5d0a01ce9272..6cd8bcf8d305 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10125,10 +10125,11 @@ name = "Heisfer"; }; HeitorAugustoLN = { - email = "IAm.HeitorALN@proton.me"; + email = "nixpkgs.woven713@passmail.net"; github = "HeitorAugustoLN"; githubId = 44377258; name = "Heitor Augusto"; + matrix = "@heitoraugusto:matrix.org"; }; heitorPB = { email = "heitorpbittencourt@gmail.com"; @@ -13331,6 +13332,14 @@ matrix = "@kenran_:matrix.org"; name = "Johannes Maier"; }; + kenshineto = { + name = "Freya Murphy"; + email = "contact@freyacat.org"; + matrix = "@freya:freya.cat"; + github = "kenshineto"; + githubId = 28487599; + keys = [ { fingerprint = "D9AF 0A42 09B7 C2DE 11A8 84BF ACBC 5536 60D9 993D"; } ]; + }; kentjames = { email = "jameschristopherkent@gmail.com"; github = "KentJames"; diff --git a/nixos/modules/services/home-automation/wyoming/piper.nix b/nixos/modules/services/home-automation/wyoming/piper.nix index 22f50f784f1b..39add1192c05 100644 --- a/nixos/modules/services/home-automation/wyoming/piper.nix +++ b/nixos/modules/services/home-automation/wyoming/piper.nix @@ -42,8 +42,6 @@ in options = { enable = mkEnableOption "Wyoming Piper server"; - piper = mkPackageOption pkgs "piper-tts" { }; - voice = mkOption { type = str; example = "en-us-ryan-medium"; @@ -159,8 +157,6 @@ in "/var/lib/wyoming/piper" "--uri" options.uri - "--piper" - (lib.getExe options.piper) "--voice" options.voice "--speaker" diff --git a/pkgs/applications/audio/espeak-ng/default.nix b/pkgs/applications/audio/espeak-ng/default.nix index ae5fb257cbbc..71aa235bd663 100644 --- a/pkgs/applications/audio/espeak-ng/default.nix +++ b/pkgs/applications/audio/espeak-ng/default.nix @@ -28,16 +28,17 @@ sonicSupport ? true, speechPlayerSupport ? true, ucdSupport ? false, + buildPackages, }: let - version = "1.52.0"; + version = "1.52.0.1-unstable-2025-09-09"; src = fetchFromGitHub { owner = "espeak-ng"; repo = "espeak-ng"; - tag = version; - hash = "sha256-mmh5QPSVD5YQ0j16R+bEL5vcyWLtTNOJ/irBNzWY3ro="; + rev = "0d451f8c1c6ae837418b823bd9c4cbc574ea9ff5"; + hash = "sha256-wpPi+YjSLhsEWfE3KEbL4A7o48qtz9fLRZ/u4xGOM2g="; }; ucd-tools = stdenv.mkDerivation { @@ -59,22 +60,14 @@ in stdenv.mkDerivation rec { pname = "espeak-ng"; - version = "1.52.0"; - - src = fetchFromGitHub { - owner = "espeak-ng"; - repo = "espeak-ng"; - tag = version; - hash = "sha256-mmh5QPSVD5YQ0j16R+bEL5vcyWLtTNOJ/irBNzWY3ro="; - }; + inherit version src; patches = [ # https://github.com/espeak-ng/espeak-ng/pull/2274 - ./libsonic.patch (fetchpatch { - name = "espeak-ng-text-to-phonemes-with-terminator.patch"; - url = "https://github.com/espeak-ng/espeak-ng/commit/2108b1e8ae02f49cc909894a1024efdfde6682fd.patch"; - hash = "sha256-XjEc1r7F88xZOfeUey0R6Xv6vu4Wy8GtWxXFG2NTf9g="; + name = "libsonic.patch"; + url = "https://github.com/espeak-ng/espeak-ng/commit/83e646e711af608fafa8c01dd812cd29e073f644.patch"; + hash = "sha256-UHuURyqRy/JVYYJH5EI5J2cpBfCNeTE24sMmheb+D2Q="; }) ] ++ lib.optionals mbrolaSupport [ @@ -98,6 +91,10 @@ stdenv.mkDerivation rec { ronn makeWrapper which + ] + # Provide a native espeak-ng when cross compiling so intonations can be built + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + buildPackages.espeak-ng ]; buildInputs = @@ -113,6 +110,10 @@ stdenv.mkDerivation rec { (lib.cmakeBool "USE_LIBSONIC" sonicSupport) (lib.cmakeBool "USE_MBROLA" mbrolaSupport) (lib.cmakeBool "USE_SPEECHPLAYER" speechPlayerSupport) + ] + # Point CMake to the native build’s binary dir when cross compiling + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DNativeBuild_DIR=${buildPackages.espeak-ng}/bin/" ]; postInstall = lib.optionalString stdenv.hostPlatform.isLinux '' @@ -127,7 +128,7 @@ stdenv.mkDerivation rec { meta = { description = "Speech synthesizer that supports more than hundred languages and accents"; homepage = "https://github.com/espeak-ng/espeak-ng"; - changelog = "https://github.com/espeak-ng/espeak-ng/blob/${src.tag}/ChangeLog.md"; + changelog = "https://github.com/espeak-ng/espeak-ng/blob/${src.rev}/ChangeLog.md"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ aske ]; platforms = lib.platforms.all; diff --git a/pkgs/applications/audio/espeak-ng/libsonic.patch b/pkgs/applications/audio/espeak-ng/libsonic.patch deleted file mode 100644 index 32346e91101a..000000000000 --- a/pkgs/applications/audio/espeak-ng/libsonic.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/cmake/deps.cmake b/cmake/deps.cmake -index b63ced21..2cd1727b 100644 ---- a/cmake/deps.cmake -+++ b/cmake/deps.cmake -@@ -13,20 +13,22 @@ endif(PTHREAD_LIB) - if (MBROLA_BIN) - set(HAVE_MBROLA ON) - endif(MBROLA_BIN) --if (SONIC_LIB AND SONIC_INC) -- set(HAVE_LIBSONIC ON) --else() -- FetchContent_Declare(sonic-git -- GIT_REPOSITORY https://github.com/waywardgeek/sonic.git -- GIT_TAG fbf75c3d6d846bad3bb3d456cbc5d07d9fd8c104 -- ) -- FetchContent_MakeAvailable(sonic-git) -- FetchContent_GetProperties(sonic-git) -- add_library(sonic OBJECT ${sonic-git_SOURCE_DIR}/sonic.c) -- target_include_directories(sonic PUBLIC ${sonic-git_SOURCE_DIR}) -- set(HAVE_LIBSONIC ON) -- set(SONIC_LIB sonic) -- set(SONIC_INC ${sonic-git_SOURCE_DIR}) -+if (USE_LIBSONIC) -+ if (SONIC_LIB AND SONIC_INC) -+ set(HAVE_LIBSONIC ON) -+ else() -+ FetchContent_Declare(sonic-git -+ GIT_REPOSITORY https://github.com/waywardgeek/sonic.git -+ GIT_TAG fbf75c3d6d846bad3bb3d456cbc5d07d9fd8c104 -+ ) -+ FetchContent_MakeAvailable(sonic-git) -+ FetchContent_GetProperties(sonic-git) -+ add_library(sonic OBJECT ${sonic-git_SOURCE_DIR}/sonic.c) -+ target_include_directories(sonic PUBLIC ${sonic-git_SOURCE_DIR}) -+ set(HAVE_LIBSONIC ON) -+ set(SONIC_LIB sonic) -+ set(SONIC_INC ${sonic-git_SOURCE_DIR}) -+ endif() - endif() - if (PCAUDIO_LIB AND PCAUDIO_INC) - set(HAVE_LIBPCAUDIO ON) diff --git a/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix index 4a88016c4643..a7ba9dfc6e1a 100644 --- a/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix +++ b/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix @@ -6,13 +6,13 @@ }: vimUtils.buildVimPlugin { pname = "sonarlint.nvim"; - version = "0-unstable-2025-08-02"; + version = "0-unstable-2025-09-18"; src = fetchFromGitLab { owner = "schrieveslaach"; repo = "sonarlint.nvim"; - rev = "5c3e0bb647be90cec844022991f33d50b6838964"; - hash = "sha256-lER6vBhiLK8/S2iJOc4jaDUMqkc9d2VLcj3GqbiZANs="; + rev = "dc5702556f90eedce587233f3c1a0ae671ea3648"; + hash = "sha256-IBXQ9ijAG8TdnwkSTNbBtzziQC5bbCbkAmC8gM7G5E4="; }; passthru.updateScript = nix-update-script { diff --git a/pkgs/applications/emulators/libretro/cores/bsnes.nix b/pkgs/applications/emulators/libretro/cores/bsnes.nix index ed603642064f..da11c307f260 100644 --- a/pkgs/applications/emulators/libretro/cores/bsnes.nix +++ b/pkgs/applications/emulators/libretro/cores/bsnes.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "bsnes"; - version = "0-unstable-2025-07-18"; + version = "0-unstable-2025-09-19"; src = fetchFromGitHub { owner = "libretro"; repo = "bsnes-libretro"; - rev = "28c358173a39d6311841c756ac0e82975d798048"; - hash = "sha256-hRWc8jcpEHl15rESCLdoKXuQn8Jr5YJdOiJ7gOww6oM="; + rev = "aeb76d7dc33c1f136db43d65ba9622c14e81b0fa"; + hash = "sha256-DpCG+DyeSCMdAF+TGB6zSRp/fttoyw9eCXy8PLvRjaY="; }; makefile = "Makefile"; diff --git a/pkgs/applications/emulators/libretro/cores/flycast.nix b/pkgs/applications/emulators/libretro/cores/flycast.nix index 78283a3ab104..bccad05c701d 100644 --- a/pkgs/applications/emulators/libretro/cores/flycast.nix +++ b/pkgs/applications/emulators/libretro/cores/flycast.nix @@ -8,13 +8,13 @@ }: mkLibretroCore { core = "flycast"; - version = "0-unstable-2025-09-12"; + version = "0-unstable-2025-09-19"; src = fetchFromGitHub { owner = "flyinghead"; repo = "flycast"; - rev = "ac32a8035243951803d8a8e9f45ad2317a2da91f"; - hash = "sha256-JyC804cArKvrBYvChD1zUmzUAxQZyBvYswpuA9COvF8="; + rev = "851dd226648c3e2706cef99a02a5cddad3e2f4b1"; + hash = "sha256-bBIHmKViwC5+8bM3Tdb4DKxsWw988nGVdAwSHsFciNE="; fetchSubmodules = true; }; diff --git a/pkgs/applications/misc/stog/default.nix b/pkgs/applications/misc/stog/default.nix index e00289353842..2b750ff6cae1 100644 --- a/pkgs/applications/misc/stog/default.nix +++ b/pkgs/applications/misc/stog/default.nix @@ -22,19 +22,18 @@ buildDunePackage rec { pname = "stog"; - version = "1.0.0"; + version = "1.1.0"; minimalOCamlVersion = "4.13"; src = fetchFromGitLab { domain = "framagit.org"; owner = "zoggy"; repo = "stog"; - rev = version; - hash = "sha256-hMb6D6VSq2o2NjycwxZt3mZKy1FR+3afEwbOmTc991g="; + tag = version; + hash = "sha256-seaVco5AoOxjEuw8zYsrA25vcyo1Un3eUJUU9FT57WU="; }; nativeBuildInputs = [ menhir ]; buildInputs = [ - fmt lwt_ppx ocf_ppx ppx_blob @@ -43,11 +42,11 @@ buildDunePackage rec { propagatedBuildInputs = [ dune-build-info dune-site + fmt higlo logs lwt ocf - ppx_blob ptime uri uutf diff --git a/pkgs/by-name/cd/cdncheck/package.nix b/pkgs/by-name/cd/cdncheck/package.nix index c3e46fb0e8b6..588efb2944af 100644 --- a/pkgs/by-name/cd/cdncheck/package.nix +++ b/pkgs/by-name/cd/cdncheck/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "cdncheck"; - version = "1.2.0"; + version = "1.2.2"; src = fetchFromGitHub { owner = "projectdiscovery"; repo = "cdncheck"; tag = "v${version}"; - hash = "sha256-2+o2CIR8zcoOxdg8Cp+E1U3mjrxQhLUGuMTep0bXnMo="; + hash = "sha256-Nu0u/lTl6qpzvHq8gEOxBqzL6kyFt+ZaQitLEbgpAfk="; }; vendorHash = "sha256-21giZLgfNgDouU+T/8N28BEbJP2u44A3glZOwDBaiHY="; diff --git a/pkgs/by-name/ch/chirp/package.nix b/pkgs/by-name/ch/chirp/package.nix index e796218c860e..6d6276aa2fed 100644 --- a/pkgs/by-name/ch/chirp/package.nix +++ b/pkgs/by-name/ch/chirp/package.nix @@ -11,14 +11,14 @@ python3Packages.buildPythonApplication { pname = "chirp"; - version = "0.4.0-unstable-2025-09-11"; + version = "0.4.0-unstable-2025-09-22"; pyproject = true; src = fetchFromGitHub { owner = "kk7ds"; repo = "chirp"; - rev = "8d7cf0b140ee75ca1fa758df4b2ae23fe0dbfa3f"; - hash = "sha256-62RYdnipNwgXwvmEzoyvsENueE3plOKFXAtsZEeg7Ok="; + rev = "d958adbc6c332d6bbac4e2844025ca7331bb01b9"; + hash = "sha256-htpdcm705Pm5a+me8vo5aQVWRAKTVPYac/0KgIpRKuA="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/cn/cnspec/package.nix b/pkgs/by-name/cn/cnspec/package.nix index 4ece70dd5185..ee4015133d7f 100644 --- a/pkgs/by-name/cn/cnspec/package.nix +++ b/pkgs/by-name/cn/cnspec/package.nix @@ -6,18 +6,18 @@ buildGoModule rec { pname = "cnspec"; - version = "12.1.0"; + version = "12.2.1"; src = fetchFromGitHub { owner = "mondoohq"; repo = "cnspec"; tag = "v${version}"; - hash = "sha256-XGZJCjWVWf2XFtcN6M10I750gIvY7UBsePDTcfpnmRY="; + hash = "sha256-DmLA/JysdJT8/9Z6mmdAbZAkQZ1aAlzcvesdP5Qn1ik="; }; proxyVendor = true; - vendorHash = "sha256-L2zom8FpZb7koqIAewGXGQhNVZlJgBNZWjoDr4NJDmk="; + vendorHash = "sha256-nqLHa6m8IeTg6Ac3vkRxyIRyO59WaN+Teaqm/qac53A="; subPackages = [ "apps/cnspec" ]; diff --git a/pkgs/by-name/co/codex/package.nix b/pkgs/by-name/co/codex/package.nix index 139d9998b25a..9044f0c76703 100644 --- a/pkgs/by-name/co/codex/package.nix +++ b/pkgs/by-name/co/codex/package.nix @@ -4,29 +4,32 @@ rustPlatform, fetchFromGitHub, installShellFiles, + makeBinaryWrapper, nix-update-script, pkg-config, openssl, + ripgrep, versionCheckHook, installShellCompletions ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, }: rustPlatform.buildRustPackage (finalAttrs: { pname = "codex"; - version = "0.40.0"; + version = "0.41.0"; src = fetchFromGitHub { owner = "openai"; repo = "codex"; tag = "rust-v${finalAttrs.version}"; - hash = "sha256-IBYx362R2ueYNg7/vcjGa2kKAfGlPm6JcZ/A4XKtMT4="; + hash = "sha256-Dz+RE3Ejr7BcJBJq5+UMP2Pb6v8A2intn3LzozoWovE="; }; sourceRoot = "${finalAttrs.src.name}/codex-rs"; - cargoHash = "sha256-fWrZXXQfrm0L3epquDZUj0SuLRn3WiHX3nQA3d+xnUg="; + cargoHash = "sha256-0sCmo3/3kY+nCufATBySAif5Z/T89Le0UedVgCrZiW8="; nativeBuildInputs = [ installShellFiles + makeBinaryWrapper pkg-config ]; @@ -47,6 +50,10 @@ rustPlatform.buildRustPackage (finalAttrs: { --zsh <($out/bin/codex completion zsh) ''; + postFixup = '' + wrapProgram $out/bin/codex --prefix PATH : ${lib.makeBinPath [ ripgrep ]} + ''; + doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; diff --git a/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix b/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix index a33c27c3745f..a517d56f44eb 100644 --- a/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix +++ b/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix @@ -14,14 +14,14 @@ python3Packages.buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.138.0"; + version = "1.138.2"; format = "pyproject"; src = fetchFromGitHub { owner = "element-hq"; repo = "synapse"; rev = "v${version}"; - hash = "sha256-mzBX5cLXF52p3SIq4rSvERbjyD07wRKVxL4yGsYNUaw="; + hash = "sha256-hnF0RPVH+5OBUZnaYCleTNLJYl9a+nf2PzJnLaJ5kzI="; }; cargoDeps = rustPlatform.fetchCargoVendor { diff --git a/pkgs/by-name/pa/paretosecurity/package.nix b/pkgs/by-name/pa/paretosecurity/package.nix index f9660d0e7cae..0a8a9eae63d1 100644 --- a/pkgs/by-name/pa/paretosecurity/package.nix +++ b/pkgs/by-name/pa/paretosecurity/package.nix @@ -17,16 +17,16 @@ buildGoModule (finalAttrs: { webkitgtk_4_1 ]; pname = "paretosecurity"; - version = "0.3.6"; + version = "0.3.8"; src = fetchFromGitHub { owner = "ParetoSecurity"; repo = "agent"; rev = finalAttrs.version; - hash = "sha256-7orZ9+vLUooHOmgw/i1JP6wOFvGaChX+EujtuYipxm0="; + hash = "sha256-pqqcyWFyJX5IJkkLxAafbQu/8yygBsQL1/BAENFdk4g="; }; - vendorHash = "sha256-y9x5RplVOr4mIOPTg86VvFWXkvZ1FTc9Ulc/yXb9/WU="; + vendorHash = "sha256-6OQ9SPr9z+uoGeeJwo3jrr1nMECcHgULMvjn2G4uLx4="; proxyVendor = true; # Skip building the Windows installer diff --git a/pkgs/by-name/pm/pmix/package.nix b/pkgs/by-name/pm/pmix/package.nix index c5647b834b25..7c9f41c9874f 100644 --- a/pkgs/by-name/pm/pmix/package.nix +++ b/pkgs/by-name/pm/pmix/package.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "pmix"; - version = "5.0.8"; + version = "5.0.9"; src = fetchFromGitHub { repo = "openpmix"; owner = "openpmix"; tag = "v${finalAttrs.version}"; - hash = "sha256-oYqDFXycNCYv0YK4VbkW5SQWLq+FTJEyY9rvH50nbYI="; + hash = "sha256-3z3NZPssaKBujulASYEJXwX/dhyCQxmRmjy31kOMpAQ="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/po/postfix/package.nix b/pkgs/by-name/po/postfix/package.nix index c3b4bb53ecee..e615ebd3568e 100644 --- a/pkgs/by-name/po/postfix/package.nix +++ b/pkgs/by-name/po/postfix/package.nix @@ -38,6 +38,9 @@ let "-DUSE_CYRUS_SASL" "-I${cyrus_sasl.dev}/include/sasl" "-DHAS_DB_BYPASS_MAKEDEFS_CHECK" + # Fix build with gcc15, no upstream fix for stable releases: + # https://www.mail-archive.com/postfix-devel@postfix.org/msg01270.html + "-std=gnu17" ] ++ lib.optional withPgSQL "-DHAS_PGSQL" ++ lib.optionals withMySQL [ diff --git a/pkgs/by-name/ti/tigerbeetle/package.nix b/pkgs/by-name/ti/tigerbeetle/package.nix index 0fad0004bb63..43f4a6686b7d 100644 --- a/pkgs/by-name/ti/tigerbeetle/package.nix +++ b/pkgs/by-name/ti/tigerbeetle/package.nix @@ -10,14 +10,14 @@ let platform = if stdenvNoCC.hostPlatform.isDarwin then "universal-macos" else stdenvNoCC.hostPlatform.system; hash = builtins.getAttr platform { - "universal-macos" = "sha256-XVYnzs9BF35pdB9uKSoX/+DWa8drWls0rtrNO9IZJtE="; - "x86_64-linux" = "sha256-rNlAikb/DrFYnE/OEgTPz3G82bQCnySeOp6dZAWxFn4="; - "aarch64-linux" = "sha256-wNuy8hq9Zt2UP/4zI/lgkWHv3X/mIKhaKoN8b/WRS2U="; + "universal-macos" = "sha256-l9B4PHezptsADNNYw695Pv4vHQzPlv/JVgDDcCrJpdw="; + "x86_64-linux" = "sha256-ufO4AdWxReZBHKESrI3nlRkFnWMX7GXux1QkF04QhNU="; + "aarch64-linux" = "sha256-j+/WGP1oVyW0umClZL64JdEmu4BGWKxarWYSO9+KXlg="; }; in stdenvNoCC.mkDerivation (finalAttrs: { pname = "tigerbeetle"; - version = "0.16.57"; + version = "0.16.59"; src = fetchzip { url = "https://github.com/tigerbeetle/tigerbeetle/releases/download/${finalAttrs.version}/tigerbeetle-${platform}.zip"; diff --git a/pkgs/by-name/un/unofficial-homestuck-collection/0001-disable-git-rev-check.patch b/pkgs/by-name/un/unofficial-homestuck-collection/0001-disable-git-rev-check.patch new file mode 100644 index 000000000000..a02da277acd4 --- /dev/null +++ b/pkgs/by-name/un/unofficial-homestuck-collection/0001-disable-git-rev-check.patch @@ -0,0 +1,47 @@ +From 9f69077286540c75a245b44f6fd7b7cd03da2d44 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.1 + diff --git a/pkgs/by-name/un/unofficial-homestuck-collection/0002-disable-update-check.patch b/pkgs/by-name/un/unofficial-homestuck-collection/0002-disable-update-check.patch new file mode 100644 index 000000000000..b36ebdaec5ba --- /dev/null +++ b/pkgs/by-name/un/unofficial-homestuck-collection/0002-disable-update-check.patch @@ -0,0 +1,63 @@ +From 03ab3354eb9acb41c271238e7b9a5e77570809ae 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.1 + diff --git a/pkgs/by-name/un/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch b/pkgs/by-name/un/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch new file mode 100644 index 000000000000..522c201dde15 --- /dev/null +++ b/pkgs/by-name/un/unofficial-homestuck-collection/0003-make-compatible-with-native-electron.patch @@ -0,0 +1,101 @@ +From 6be6ba5922363b478eca447135cd2421f8c598ab 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 | 15 +++++---------- + src/components/SystemPages/Settings.vue | 12 +++++++----- + src/components/UIElements/MediaEmbed.vue | 20 ++------------------ + 3 files changed, 14 insertions(+), 33 deletions(-) + +diff --git a/src/background.js b/src/background.js +index d75c5fc..6fa2256 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') +@@ -755,6 +747,9 @@ async function createWindow () { + autoHideMenuBar: true, + webPreferences: { + nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION, ++ // MOD: disable isolation to get ++ // collection to work with electron 35 ++ 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 '