From 24c97293249d44fab4ade7d63643d13f858c37ff Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 14:16:36 +0100 Subject: [PATCH 01/23] Implementing remember property pattern for these properties, this should fix #5287 Previously, on an upgrade, this will default back to the default values set in the wxs; now it will store those away in the registry and lookup their value before continuing. This won't fix the upgrade for existing installs that have changed the values, only new ones. The "best" option for existing installs imo is probably to backup the navidrome database and config file. Uninstall the old version, install the new version (with this fix) with the paths you wanted, stop navidrome, restore the database and config file over the top and start navidrome. --- release/wix/navidrome.wxs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 6d94bab9d..e9d3fcd45 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -23,9 +23,15 @@ - - - + + + + + + + + + @@ -46,6 +52,10 @@ + + + + From 9f72fa41683d74bc0e040bcb4eea55704d0ca383 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 14:24:19 +0100 Subject: [PATCH 02/23] This should be SOFTWARE\Company\Application format --- release/wix/navidrome.wxs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index e9d3fcd45..97d5d9985 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -24,13 +24,13 @@ - + - + - + @@ -53,9 +53,9 @@ - - - + + + From 5e076b1ae2847a27ad0bdb999156357e07a30b7e Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 16:07:16 +0100 Subject: [PATCH 03/23] Also need to do it on INSTALLDIR --- release/wix/navidrome.wxs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 97d5d9985..4ac8f4c4e 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -23,6 +23,9 @@ + + + @@ -53,6 +56,7 @@ + From 269248bb9dde46d041cb70e36726880f045c0f68 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 16:27:48 +0100 Subject: [PATCH 04/23] This needs to be a property as well --- release/wix/navidrome.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 4ac8f4c4e..df0401629 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -23,7 +23,7 @@ - + From 7f6a589421a60c0279dca39678dbc6464f78f1b7 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 16:59:00 +0100 Subject: [PATCH 05/23] This needs to be expanded --- release/wix/navidrome.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index df0401629..917deb7a7 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -23,7 +23,7 @@ - + From 195423b6a9a6fb470875056f3ae9eadc8c41feff Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 18:03:46 +0100 Subject: [PATCH 06/23] Might be able to workaround the double-expansion by using the WIX 4 builtin ProgramFiles3264Folder --- release/wix/navidrome.wxs | 102 +++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 917deb7a7..3e1d9d3a0 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -23,7 +23,7 @@ - + @@ -39,62 +39,60 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Not Installed AND NOT WIX_UPGRADE_DETECTED From 0734e285151b5582a338d223c9bfcb8ff8d06734 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 18:07:19 +0100 Subject: [PATCH 07/23] We need TARGETDIR setting --- release/wix/navidrome.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 3e1d9d3a0..c28731c44 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -39,7 +39,7 @@ - + From fc8b68173fbaf83b851b4752e13170779542209e Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Thu, 9 Apr 2026 18:20:43 +0100 Subject: [PATCH 08/23] Tidying up and simplifying hopefully --- release/wix/navidrome.wxs | 78 +++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 41 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index c28731c44..01f2bc22a 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -2,12 +2,10 @@ - - @@ -23,7 +21,7 @@ - + @@ -39,52 +37,50 @@ - - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + - From 0a68c84f772aa8889b3929308f71f50d5b17cf3b Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 09:18:06 +0100 Subject: [PATCH 09/23] From memory, INSTALLDIR is special in some way, if I use a different property this should work --- release/wix/SettingsDlg.wxs | 2 +- release/wix/navidrome.wxs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/release/wix/SettingsDlg.wxs b/release/wix/SettingsDlg.wxs index 4a83f91da..e47d6d0fe 100644 --- a/release/wix/SettingsDlg.wxs +++ b/release/wix/SettingsDlg.wxs @@ -16,7 +16,7 @@ - + diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 01f2bc22a..e21eaa718 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -21,8 +21,8 @@ - - + + @@ -47,12 +47,12 @@ - - - - + + + + - + @@ -68,7 +68,7 @@ Start='auto' Type='ownProcess' Vital='yes' - Arguments='service execute --configfile "[INSTALLDIR]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"' + Arguments='service execute --configfile "[INSTALLATIONDIRECTORY]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"' /> From 6a1c7557b8f69fde74656952602be905a3445f8f Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 09:47:41 +0100 Subject: [PATCH 10/23] Wixl compilation is complaining about the INSTALLDIR for some reason so I'm going to restore the original pattern, even if it isn't used --- release/wix/navidrome.wxs | 76 ++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index e21eaa718..f8608b24c 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -37,49 +37,53 @@ + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + + + + From dcd545ec33fa7b32f566366ba2a6afc6671539b6 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 09:52:27 +0100 Subject: [PATCH 11/23] Need to restore this variable in order for this to compile --- release/wix/navidrome.wxs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index f8608b24c..8e7b79a0c 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -2,10 +2,12 @@ + + From b863b7be720876c6e4009ce527934cf7a430562c Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 10:03:36 +0100 Subject: [PATCH 12/23] Doh, the DATADIR needs to be in the installdir, that's what it was erroring about. --- release/wix/navidrome.wxs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 8e7b79a0c..b0e919d45 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -23,9 +23,6 @@ - - - @@ -36,6 +33,10 @@ + + + + @@ -87,12 +88,11 @@ - - - - - - + + + + + From 2868be4fb91878e86d09464dedd3b0ed4ba385ed Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 10:22:28 +0100 Subject: [PATCH 13/23] ProgramFiles6432Folder --- release/wix/navidrome.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index b0e919d45..08806dd5f 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -33,7 +33,7 @@ - + From 98ab8f57c8f205ee0fa9d76d5917d788be39403d Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 10:47:02 +0100 Subject: [PATCH 14/23] OK there doesn't seem to be anyway to get this to expand out that I can see, but we should be able to hijack the value from INSTALLDIR through the UI basically? --- release/wix/SettingsDlg.wxs | 2 +- release/wix/navidrome.wxs | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/release/wix/SettingsDlg.wxs b/release/wix/SettingsDlg.wxs index e47d6d0fe..289e759c2 100644 --- a/release/wix/SettingsDlg.wxs +++ b/release/wix/SettingsDlg.wxs @@ -16,7 +16,7 @@ - + diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 08806dd5f..923a21cd2 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -32,8 +32,7 @@ - - + From bd60a6344f91067f954a42eefec2fb3e1e890abe Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 10:52:30 +0100 Subject: [PATCH 15/23] OK that blows up with unable to access network location UNSET I didn't think it would check for existance on the first pass but presumably it does. Trying leaving it blank --- release/wix/navidrome.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 923a21cd2..6d15f7582 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -32,7 +32,7 @@ - + From 9ac890069eb3fbee341894c893c38cc3ed18eaf0 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 11:01:09 +0100 Subject: [PATCH 16/23] Just realised I'm chasing a poisson-rouge, I think I canjust use INSTALLDIR and it'll be fine? --- release/wix/SettingsDlg.wxs | 2 +- release/wix/navidrome.wxs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/release/wix/SettingsDlg.wxs b/release/wix/SettingsDlg.wxs index 289e759c2..4a83f91da 100644 --- a/release/wix/SettingsDlg.wxs +++ b/release/wix/SettingsDlg.wxs @@ -16,7 +16,7 @@ - + diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 6d15f7582..9ea1ef65a 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -32,8 +32,8 @@ - - + + From 8bc5a8762ebd61373d6209b4df1e53ce17e0d0f1 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 11:02:09 +0100 Subject: [PATCH 17/23] INSTALLATIONDIRECTORY -> INSTALLDIR --- release/wix/navidrome.wxs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 9ea1ef65a..6793889c1 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -51,12 +51,12 @@ - - - - + + + + - + @@ -72,7 +72,7 @@ Start='auto' Type='ownProcess' Vital='yes' - Arguments='service execute --configfile "[INSTALLATIONDIRECTORY]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"' + Arguments='service execute --configfile "[INSTALLDIR]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"' /> From 4c7a0657f95803cdc5a3aa6a695ca193a26d3f59 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sat, 11 Apr 2026 19:20:19 +0100 Subject: [PATCH 18/23] OK this was half working, but on upgrade; the INSTALLDIR is set from the Directory tags and the dynamic pathing, so we need to use a different thing on upgrade. I think our only option is to be able to copy the values between the two when we need with custom actions. --- release/wix/navidrome.wxs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 6793889c1..ca013d5ad 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -32,8 +32,8 @@ - - + + @@ -51,12 +51,12 @@ - - - - + + + + - + @@ -72,7 +72,7 @@ Start='auto' Type='ownProcess' Vital='yes' - Arguments='service execute --configfile "[INSTALLDIR]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"' + Arguments='service execute --configfile "[INSTALLATIONDIRECTORY]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"' /> @@ -98,6 +98,11 @@ Not Installed AND NOT WIX_UPGRADE_DETECTED + + + Not Installed AND NOT WIX_UPGRADE_DETECTED + + From 36380715cdde80d5347ba1a178f2027a46b8884e Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Mon, 13 Apr 2026 17:05:56 +0100 Subject: [PATCH 19/23] Can we get away with default sequencing here? --- release/wix/navidrome.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index ca013d5ad..2227ed9b4 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -98,7 +98,7 @@ Not Installed AND NOT WIX_UPGRADE_DETECTED - + Not Installed AND NOT WIX_UPGRADE_DETECTED From 9c72f8acefb3975417842de7d8970c63e976fc3b Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Mon, 13 Apr 2026 18:02:49 +0100 Subject: [PATCH 20/23] OK this blows up on upgrade, but the install works fine. Presumably this is because INSTALLDIR isn't being set on upgrade at any point so can we switch this directory so we only use INSTALLDIR in the UI? --- release/wix/navidrome.wxs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index 2227ed9b4..e5d92a3cd 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -40,7 +40,7 @@ - + @@ -100,7 +100,7 @@ - Not Installed AND NOT WIX_UPGRADE_DETECTED + Not Installed AND NOT WIX_UPGRADE_DETECTED From d90fa8158cbc11814ee6a536a3490481ee7a3c34 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Mon, 13 Apr 2026 18:22:20 +0100 Subject: [PATCH 21/23] So on fresh install, the UI was empty because INSTALLDIR wasn't pre populated by the Directory tags, also on upgrade it default back... --- release/wix/navidrome.wxs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index e5d92a3cd..faf0216a6 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -40,8 +40,9 @@ - - + + + @@ -100,7 +101,7 @@ - Not Installed AND NOT WIX_UPGRADE_DETECTED + Not Installed AND NOT WIX_UPGRADE_DETECTED From 8d5e909c132f3ccb839f662a31292e648aeac150 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Mon, 13 Apr 2026 18:37:18 +0100 Subject: [PATCH 22/23] Missed extra --- release/wix/build_msi.sh | 2 +- release/wix/navidrome.wxs | 76 +++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/release/wix/build_msi.sh b/release/wix/build_msi.sh index a8781a965..af934fb85 100755 --- a/release/wix/build_msi.sh +++ b/release/wix/build_msi.sh @@ -40,7 +40,7 @@ fi # Download static compiled ffmpeg for Windows FFMPEG_FILE="ffmpeg-n${FFMPEG_VERSION}-latest-${WIN_ARCH}-gpl-${FFMPEG_VERSION}" -wget --quiet --output-document="${DOWNLOAD_FOLDER}/ffmpeg.zip" \ +[[ ! -e "${DOWNLOAD_FOLDER}/ffmpeg.zip" ]] && wget --quiet --output-document="${DOWNLOAD_FOLDER}/ffmpeg.zip" \ "https://github.com/${FFMPEG_REPOSITORY}/releases/download/latest/${FFMPEG_FILE}.zip" rm -rf "${DOWNLOAD_FOLDER}/extracted_ffmpeg" unzip -d "${DOWNLOAD_FOLDER}/extracted_ffmpeg" "${DOWNLOAD_FOLDER}/ffmpeg.zip" "*/ffmpeg.exe" "*/ffprobe.exe" diff --git a/release/wix/navidrome.wxs b/release/wix/navidrome.wxs index faf0216a6..a5120a446 100644 --- a/release/wix/navidrome.wxs +++ b/release/wix/navidrome.wxs @@ -40,52 +40,52 @@ - + + - - - + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - - + + + From 1f309efb1808ba1898dc58800be92e44ed151fa7 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Mon, 13 Apr 2026 18:38:31 +0100 Subject: [PATCH 23/23] Need to work with sh not bash --- release/wix/build_msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/wix/build_msi.sh b/release/wix/build_msi.sh index af934fb85..119abc8c5 100755 --- a/release/wix/build_msi.sh +++ b/release/wix/build_msi.sh @@ -40,7 +40,7 @@ fi # Download static compiled ffmpeg for Windows FFMPEG_FILE="ffmpeg-n${FFMPEG_VERSION}-latest-${WIN_ARCH}-gpl-${FFMPEG_VERSION}" -[[ ! -e "${DOWNLOAD_FOLDER}/ffmpeg.zip" ]] && wget --quiet --output-document="${DOWNLOAD_FOLDER}/ffmpeg.zip" \ +[ ! -e "${DOWNLOAD_FOLDER}/ffmpeg.zip" ] && wget --quiet --output-document="${DOWNLOAD_FOLDER}/ffmpeg.zip" \ "https://github.com/${FFMPEG_REPOSITORY}/releases/download/latest/${FFMPEG_FILE}.zip" rm -rf "${DOWNLOAD_FOLDER}/extracted_ffmpeg" unzip -d "${DOWNLOAD_FOLDER}/extracted_ffmpeg" "${DOWNLOAD_FOLDER}/ffmpeg.zip" "*/ffmpeg.exe" "*/ffprobe.exe"