fix file association exception on windows
What changed, and why it matters
This commit fixes a Windows installer build problem by moving certain file-type associations (for Bitcoin, auth47, and lightning files) out of the shared installer options and into the Linux and macOS sections only. The change appears to be a build/packaging fix, not a security patch. There is no indication it addresses a vulnerability or that an attacker could exploit it.
No security action required. Treat as a normal build-fix commit. If reviewing the release, verify the Windows installer now builds and that intended file associations remain present on Linux and macOS.
Security signals we found
No security-relevant code change
Build/packaging configuration change only
No input validation, cryptography, or privilege changes
No vendor security disclosure or CVE references present
Evidence from the diff
The build.gradle change removes three –file-associations flags (bitcoin.properties, auth47.properties, lightning.properties) from the common installerOptions list and adds them only to the Linux and macOS branches. The commit title says this fixes a ‘file association exception on windows.’ This is consistent with a jpackage/jlink build-time failure on Windows when those file associations are supplied, not a runtime security issue. No code handling of file contents or parsing is modified.
Changed components
build.gradle jlink/jpackage installer configurationInspect captured patch +3 / −3
diff --git a/build.gradle b/build.gradle
index e818d64..2d5c3b7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -247,7 +247,7 @@ jlink {
appVersion = "${version}"
skipInstaller = os.macOsX || properties.skipInstallers
imageOptions = []
- installerOptions = ['--file-associations', 'src/main/deploy/psbt.properties', '--file-associations', 'src/main/deploy/txn.properties', '--file-associations', 'src/main/deploy/asc.properties', '--file-associations', 'src/main/deploy/bitcoin.properties', '--file-associations', 'src/main/deploy/auth47.properties', '--file-associations', 'src/main/deploy/lightning.properties', '--license-file', 'LICENSE']
+ installerOptions = ['--file-associations', 'src/main/deploy/psbt.properties', '--file-associations', 'src/main/deploy/txn.properties', '--file-associations', 'src/main/deploy/asc.properties', '--license-file', 'LICENSE']
if(os.windows) {
installerOptions += ['--win-per-user-install', '--win-dir-chooser', '--win-menu', '--win-menu-group', 'Sparrow', '--win-shortcut', '--resource-dir', 'src/main/deploy/package/windows/']
imageOptions += ['--icon', 'src/main/deploy/package/windows/sparrow.ico']
@@ -259,13 +259,13 @@ jlink {
installerOptions = ['--license-file', 'LICENSE']
} else {
installerName = "sparrowwallet"
- installerOptions += ['--linux-shortcut', '--linux-menu-group', 'Sparrow']
+ installerOptions += ['--file-associations', 'src/main/deploy/bitcoin.properties', '--file-associations', 'src/main/deploy/auth47.properties', '--file-associations', 'src/main/deploy/lightning.properties', '--linux-shortcut', '--linux-menu-group', 'Sparrow']
}
installerOptions += ['--resource-dir', layout.buildDirectory.dir('deploy/package').get().asFile.toString(), '--linux-app-category', 'utils', '--linux-app-release', '1', '--linux-rpm-license-type', 'ASL 2.0', '--linux-deb-maintainer', 'mail@sparrowwallet.com']
imageOptions += ['--icon', 'src/main/deploy/package/linux/Sparrow.png', '--resource-dir', 'src/main/deploy/package/linux/']
}
if(os.macOsX) {
- installerOptions += ['--mac-sign', '--mac-signing-key-user-name', 'Craig Raw (UPLVMSK9D7)']
+ installerOptions += ['--file-associations', 'src/main/deploy/bitcoin.properties', '--file-associations', 'src/main/deploy/auth47.properties', '--file-associations', 'src/main/deploy/lightning.properties', '--mac-sign', '--mac-signing-key-user-name', 'Craig Raw (UPLVMSK9D7)']
imageOptions += ['--icon', 'src/main/deploy/package/macos/sparrow.icns', '--resource-dir', 'src/main/deploy/package/macos/']
installerType = "dmg"
}
Why this scored 19/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.