From a0a518afbd841919fd25386d564356c06713d2f4 Mon Sep 17 00:00:00 2001 From: wrench-exile-legacy Date: Thu, 17 Sep 2026 12:20:24 +0100 Subject: [PATCH 1/2] mailspring: 1.23.0 -> 1.25.0 --- pkgs/by-name/ma/mailspring/mailsync.nix | 12 +- pkgs/by-name/ma/mailspring/package.nix | 13 +- .../update-electron-from-41.7.2-43.4.1.patch | 194 ------------------ 3 files changed, 11 insertions(+), 208 deletions(-) delete mode 100644 pkgs/by-name/ma/mailspring/update-electron-from-41.7.2-43.4.1.patch diff --git a/pkgs/by-name/ma/mailspring/mailsync.nix b/pkgs/by-name/ma/mailspring/mailsync.nix index 49197fc78ed2..6ea038ce6109 100644 --- a/pkgs/by-name/ma/mailspring/mailsync.nix +++ b/pkgs/by-name/ma/mailspring/mailsync.nix @@ -84,6 +84,10 @@ stdenv.mkDerivation { CXXFLAGS = FLAGS; }; + cmakeFlags = [ + (lib.cmakeFeature "ETPAN_LIB" "${mailspring-libetpan}/lib/libetpan${stdenv.hostPlatform.extensions.sharedLibrary}") + ]; + postPatch = '' substituteInPlace CMakeLists.txt \ --replace-fail 'IF(''${CMAKE_SYSTEM_NAME} MATCHES "Linux")' 'if(TRUE)' @@ -91,18 +95,12 @@ stdenv.mkDerivation { # Replace hardcoded host paths and vendored dependencies substituteInPlace CMakeLists.txt \ --replace-fail "/usr/include/libxml2" "${lib.getDev libxml2}/include/libxml2" \ - --replace-fail "find_library(RESOLV_LIB NAMES libresolv.a libresolv)" "set(RESOLV_LIB \"resolv\")" \ - --replace-fail "target_link_libraries(mailsync libetpan.a)" "target_link_libraries(mailsync ${mailspring-libetpan}/lib/libetpan${stdenv.hostPlatform.extensions.sharedLibrary})" \ --replace-fail "target_link_libraries(mailsync libMailCore.a)" "target_link_libraries(mailsync ${mailspring-mailcore2}/lib/libMailCore.a)" - - # Replace hardcoded references to archives with library references - # Transforms 'NAMES libfoo.a libfoo' into 'NAMES foo' - sed -i -E 's/NAMES lib([a-zA-Z0-9]+)\.a lib\1/NAMES \1/g' CMakeLists.txt '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # UUID_LIB is provided by system frameworks substituteInPlace CMakeLists.txt \ - --replace-fail "find_library(UUID_LIB NAMES uuid)" "set(UUID_LIB \"\")" + --replace-fail "find_library(UUID_LIB NAMES libuuid.a uuid REQUIRED)" "set(UUID_LIB \"\")" # Remove GCC related linker flags substituteInPlace CMakeLists.txt \ diff --git a/pkgs/by-name/ma/mailspring/package.nix b/pkgs/by-name/ma/mailspring/package.nix index 11dda48a9809..aaf801737c7d 100644 --- a/pkgs/by-name/ma/mailspring/package.nix +++ b/pkgs/by-name/ma/mailspring/package.nix @@ -11,29 +11,28 @@ wrapGAppsHook3, zip, - electron_43, + electron_44, html-tidy, # Command line arguments which are always set e.g "--password-store=kwallet6" commandLineArgs ? "", }: let - version = "1.23.0"; + version = "1.25.0"; src = fetchFromGitHub { owner = "Foundry376"; repo = "Mailspring"; tag = version; - hash = "sha256-GbY3lov3MT8c8LehEifzOH28VAYpBWDbwXrqEfFfwJg="; + hash = "sha256-gY8ySpGKTNtQzgtZZTQJ3t6Bq8eWRjNoztUqxDLTI5c="; fetchSubmodules = true; }; patches = [ ./remove-rpm-deb-and-macos-package-generation.patch - ./update-electron-from-41.7.2-43.4.1.patch ]; - electron = electron_43; + electron = electron_44; mailspring-sync = callPackage ./mailsync.nix { inherit src version; }; @@ -41,7 +40,7 @@ let pname = "mailspring-app"; inherit version src patches; postPatch = "cd app"; # we don't use sourceRoot so that we don't have to make the patch relative to it - npmDepsHash = "sha256-FnbSnkMcOEoWTIy42JccdP+GqHWkoQKEZqVxzsw2cwc="; + npmDepsHash = "sha256-COYGpnxMK+ID7+5I5bkhD/6SvxJxHc3uCKAH74PiFKw="; dontNpmBuild = true; env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; @@ -67,7 +66,7 @@ buildNpmPackage (finalAttrs: { pname = "mailspring"; inherit version src patches; - npmDepsHash = "sha256-jDuCLreiQvOUhSWw+E2zJXy39/6ITB7FEmrXBUiWYDU="; + npmDepsHash = "sha256-a4ElX/MIuLcyypgiDDb9pyPjeVJdFMagKN/+ucTkQJs="; nativeBuildInputs = [ makeBinaryWrapper diff --git a/pkgs/by-name/ma/mailspring/update-electron-from-41.7.2-43.4.1.patch b/pkgs/by-name/ma/mailspring/update-electron-from-41.7.2-43.4.1.patch deleted file mode 100644 index eb162d1d071f..000000000000 --- a/pkgs/by-name/ma/mailspring/update-electron-from-41.7.2-43.4.1.patch +++ /dev/null @@ -1,194 +0,0 @@ -From fba74f7d69198202057f08b2cb77aac7d8e17a06 Mon Sep 17 00:00:00 2001 -From: wrench-exile-legacy -Date: Sun, 23 Aug 2026 11:57:14 +0100 -Subject: [PATCH] Update electron from 41.7.2 -> 43.4.1 - -- Updates node-abi to allow node-gyp to recognise the electron version. -- Updates better-sqlite3 to match the newer javascript engine in electron 43. ---- - app/package-lock.json | 15 ++++++++------- - app/package.json | 2 +- - package-lock.json | 44 +++++++++++++++++++++---------------------- - package.json | 2 +- - 4 files changed, 32 insertions(+), 31 deletions(-) - -diff --git a/app/package-lock.json b/app/package-lock.json -index 52e9a74f4..951491cd4 100644 ---- a/app/package-lock.json -+++ b/app/package-lock.json -@@ -568,9 +568,9 @@ - ] - }, - "node_modules/better-sqlite3": { -- "version": "12.8.0", -- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.8.0.tgz", -- "integrity": "sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==", -+ "version": "12.11.1", -+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", -+ "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { -@@ -578,7 +578,7 @@ - "prebuild-install": "^7.1.1" - }, - "engines": { -- "node": "20.x || 22.x || 23.x || 24.x || 25.x" -+ "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" - } - }, - "node_modules/bindings": { -@@ -3492,9 +3492,10 @@ - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/node-abi": { -- "version": "3.87.0", -- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.87.0.tgz", -- "integrity": "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==", -+ "version": "3.94.0", -+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", -+ "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", -+ "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, -diff --git a/app/package.json b/app/package.json -index c53086e15..56e40feb9 100644 ---- a/app/package.json -+++ b/app/package.json -@@ -74,7 +74,7 @@ - "xml2js": "^0.6.2" - }, - "resolutions": { -- "electron": "41.7.2", -+ "electron": "43.4.1", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0" - }, -diff --git a/package-lock.json b/package-lock.json -index 4622a1e15..004cf4f8f 100644 ---- a/package-lock.json -+++ b/package-lock.json -@@ -42,7 +42,7 @@ - "better-sqlite3": "^12.8.0", - "chalk": "1.x.x", - "devtron": "^1.4.0", -- "electron": "41.7.2", -+ "electron": "43.4.1", - "electron-playwright-helpers": "^2.1.0", - "electron-winstaller": "5.4.0", - "eslint": "^8.0.0", -@@ -1615,9 +1615,9 @@ - ] - }, - "node_modules/better-sqlite3": { -- "version": "12.9.0", -- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz", -- "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==", -+ "version": "12.11.1", -+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", -+ "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { -@@ -1625,7 +1625,7 @@ - "prebuild-install": "^7.1.1" - }, - "engines": { -- "node": "20.x || 22.x || 23.x || 24.x || 25.x" -+ "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" - } - }, - "node_modules/bindings": { -@@ -2120,10 +2120,9 @@ - } - }, - "node_modules/electron": { -- "version": "41.7.2", -- "resolved": "https://registry.npmjs.org/electron/-/electron-41.7.2.tgz", -- "integrity": "sha512-oYbZNimoMlAy6Fp/o5x2vTggptuPsIbnPKCb6jGf1PJStXH7Gkw0MUQrBliHmDqKLW7yeE+SPsvFNILVN0ORMQ==", -- "hasInstallScript": true, -+ "version": "43.4.1", -+ "resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz", -+ "integrity": "sha512-5b+EuiwkgG5iRcsEL34rimgRpkYp15SsfZOa0pC5kXs0Tb82TH4n95rpQzTZa7yRCbA7tm0WoEbuBL6NaAhAcA==", - "license": "MIT", - "dependencies": { - "@electron-internal/extract-zip": "^1.0.1", -@@ -2131,7 +2130,8 @@ - "@types/node": "^24.9.0" - }, - "bin": { -- "electron": "cli.js" -+ "electron": "cli.js", -+ "install-electron": "install.js" - }, - "engines": { - "node": ">= 22.12.0" -@@ -4637,9 +4637,9 @@ - } - }, - "node_modules/node-abi": { -- "version": "3.91.0", -- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.91.0.tgz", -- "integrity": "sha512-B+S7X/GS3Un6wMICtnsNjQD7oSpVBQrZftHE6GZ1Fe9/k3XOOoqbM5DZZ0GO4x3YiSCQfrM28yj1ppplwgIsfg==", -+ "version": "3.94.0", -+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", -+ "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" -@@ -7636,9 +7636,9 @@ - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "better-sqlite3": { -- "version": "12.9.0", -- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz", -- "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==", -+ "version": "12.11.1", -+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", -+ "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", - "requires": { - "bindings": "^1.5.0", - "prebuild-install": "^7.1.1" -@@ -7974,9 +7974,9 @@ - } - }, - "electron": { -- "version": "41.7.2", -- "resolved": "https://registry.npmjs.org/electron/-/electron-41.7.2.tgz", -- "integrity": "sha512-oYbZNimoMlAy6Fp/o5x2vTggptuPsIbnPKCb6jGf1PJStXH7Gkw0MUQrBliHmDqKLW7yeE+SPsvFNILVN0ORMQ==", -+ "version": "43.4.1", -+ "resolved": "https://registry.npmjs.org/electron/-/electron-43.4.1.tgz", -+ "integrity": "sha512-5b+EuiwkgG5iRcsEL34rimgRpkYp15SsfZOa0pC5kXs0Tb82TH4n95rpQzTZa7yRCbA7tm0WoEbuBL6NaAhAcA==", - "requires": { - "@electron-internal/extract-zip": "^1.0.1", - "@electron/get": "^5.0.0", -@@ -9653,9 +9653,9 @@ - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==" - }, - "node-abi": { -- "version": "3.91.0", -- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.91.0.tgz", -- "integrity": "sha512-B+S7X/GS3Un6wMICtnsNjQD7oSpVBQrZftHE6GZ1Fe9/k3XOOoqbM5DZZ0GO4x3YiSCQfrM28yj1ppplwgIsfg==", -+ "version": "3.94.0", -+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", -+ "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", - "requires": { - "semver": "^7.3.5" - } -diff --git a/package.json b/package.json -index abf9b55dc..77cdd0414 100644 ---- a/package.json -+++ b/package.json -@@ -49,7 +49,7 @@ - "better-sqlite3": "^12.8.0", - "chalk": "1.x.x", - "devtron": "^1.4.0", -- "electron": "41.7.2", -+ "electron": "43.4.1", - "electron-playwright-helpers": "^2.1.0", - "electron-winstaller": "5.4.0", - "eslint": "^8.0.0", --- -2.55.0 - From 13c22b40ddcce72c5d0b78677af3713a2e25b3d6 Mon Sep 17 00:00:00 2001 From: wrench-exile-legacy Date: Thu, 17 Sep 2026 12:43:42 +0100 Subject: [PATCH 2/2] mailspring: add updateScript --- pkgs/by-name/ma/mailspring/package.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/by-name/ma/mailspring/package.nix b/pkgs/by-name/ma/mailspring/package.nix index aaf801737c7d..0ac6ee16af2c 100644 --- a/pkgs/by-name/ma/mailspring/package.nix +++ b/pkgs/by-name/ma/mailspring/package.nix @@ -4,6 +4,7 @@ buildNpmPackage, callPackage, fetchFromGitHub, + nix-update-script, actool, makeBinaryWrapper, @@ -162,6 +163,13 @@ buildNpmPackage (finalAttrs: { runHook postInstall ''; + passthru = { + inherit mailspring-app; + updateScript = nix-update-script { + extraArgs = [ "--subpackage=mailspring-app" ]; + }; + }; + meta = { description = "Beautiful, fast and maintained fork of Nylas Mail by one of the original authors"; downloadPage = "https://github.com/Foundry376/Mailspring/releases";