mirror of
https://github.com/navidrome/navidrome.git
synced 2025-12-23 23:18:05 -05:00
* Adding environmental variable so that navidrome can detect if its running as an MSI install for insights * Renaming to be ND_PACKAGE_TYPE so we can reuse this for the .deb/.rpm stats as well * Packaged implies a bool, this is a description so it should be packaging or just package imo * wixl currently doesn't support <Environment> so I'm swapping out to a file next-door to the configuration file, we should be able to reuse this for deb/rpm as well * Using a file we should be able to add support for linux like this also * MSI should copy the package into place for us, it's not a KeyPath as older versions won't have it, so it's presence doesn't indicate the installed status of the package * OK this doesn't exist, need to find another way to do it * package to .package and moving to the datadir * fix(scanner): better log message when AutoImportPlaylists is disabled Fix #3861 Signed-off-by: Deluan <deluan@navidrome.org> * fix(scanner): support ID3v2 embedded images in WAV files Fix #3867 Signed-off-by: Deluan <deluan@navidrome.org> * feat(ui): show bitDepth in song info dialog Signed-off-by: Deluan <deluan@navidrome.org> * fix(server): don't break if the ND_CONFIGFILE does not exist Signed-off-by: Deluan <deluan@navidrome.org> * feat(docker): automatically loads a navidrome.toml file from /data, if available Signed-off-by: Deluan <deluan@navidrome.org> * feat(server): custom ArtistJoiner config (#3873) * feat(server): custom ArtistJoiner config Signed-off-by: Deluan <deluan@navidrome.org> * refactor(ui): organize ArtistLinkField, add tests Signed-off-by: Deluan <deluan@navidrome.org> * feat(ui): use display artist * feat(ui): use display artist Signed-off-by: Deluan <deluan@navidrome.org> --------- Signed-off-by: Deluan <deluan@navidrome.org> * chore: remove some BFR-related TODOs that are not valid anymore Signed-off-by: Deluan <deluan@navidrome.org> * chore: remove more outdated TODOs Signed-off-by: Deluan <deluan@navidrome.org> * fix(scanner): elapsed time for folder processing is wrong in the logs Signed-off-by: Deluan <deluan@navidrome.org> * Should be able to reuse this mechanism with deb and rpm, I think it would be nice to know which specific one it is without guessing based on /etc/debian_version or something; but it doesn't look like that is exposed by goreleaser into an env or anything :/ * Need to reference the installed file and I think Id's don't require [] * Need to add into the root directory for this to work * That was not deliberately removed * feat: add RPM and DEB package configuration files for Navidrome Signed-off-by: Deluan <deluan@navidrome.org> * Don't need this as goreleaser will sort it out --------- Signed-off-by: Deluan <deluan@navidrome.org> Co-authored-by: Deluan Quintão <deluan@navidrome.org>
94 lines
4.5 KiB
XML
94 lines
4.5 KiB
XML
<?xml version='1.0' encoding='windows-1252'?>
|
|
<?if $(var.Platform) = x64 ?>
|
|
<?define ProductName = "Navidrome" ?>
|
|
<?define UpgradeCode = "2f154974-1443-41b6-b808-b8be530291b3" ?>
|
|
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
|
|
<?define Win64 = 'yes' ?>
|
|
<?else ?>
|
|
<?define ProductName = "Navidrome (x86)" ?>
|
|
<?define UpgradeCode = "2f0572e4-7e8c-42e7-a186-77f70ec0911a" ?>
|
|
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
|
|
<?define Win64 = "no" ?>
|
|
<?endif ?>
|
|
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
|
|
<?include SettingsDlg.wxs?>
|
|
<?include Navidrome_UI_Flow.wxs?>
|
|
<Product Name="$(var.ProductName)" Id="*" UpgradeCode="$(var.UpgradeCode)" Language='1033' Codepage='1252' Version='$(var.Version)' Manufacturer='Deluan'>
|
|
|
|
<Package Id='*' Keywords='Installer' Description="$(var.ProductName)" Comments='' Manufacturer='Deluan' InstallerVersion='200' Languages='1033' Compressed='yes' SummaryCodepage='1252' InstallScope='perMachine' />
|
|
|
|
<MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="A newer version of $(var.ProductName) is already installed." />
|
|
|
|
<Media Id='1' Cabinet='main.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
|
|
<Property Id='DiskPrompt' Value="Navidrome Install [1]" />
|
|
<Property Id="REBOOT" Value="ReallySuppress" />
|
|
|
|
<Property Id="ND_PORT" Value="4533" />
|
|
<Property Id="ND_MUSICFOLDER" Value="C:\Music" />
|
|
<Property Id="ND_DATAFOLDER" Value="C:\ProgramData\Navidrome" />
|
|
|
|
<UIRef Id="Navidrome_UI_Flow"/>
|
|
|
|
<Directory Id='TARGETDIR' Name='SourceDir'>
|
|
<Directory Id="$(var.PlatformProgramFilesFolder)">
|
|
<Directory Id='INSTALLDIR' Name='Navidrome'>
|
|
|
|
<Component Id='LICENSEFile' Guid='eb5610a4-e3f3-4f36-ae2c-e96914e460c2' Win64="$(var.Win64)">
|
|
<File Id='LICENSE' Name='LICENSE' DiskId='1' Source='LICENSE' KeyPath='yes' />
|
|
</Component>
|
|
|
|
<Component Id='README.mdFile' Guid='d1ee412b-2ebc-4b0b-9fa7-0228ab707686' Win64="$(var.Win64)">
|
|
<File Id='README.md' Name='README.md' DiskId='1' Source='README.md' KeyPath='yes' />
|
|
</Component>
|
|
|
|
<Component Id="Configuration" Guid="9e17ed4b-ef13-44bf-a605-ed4132cff7f6" Win64="$(var.Win64)">
|
|
<IniFile Id="ConfigurationPort" Name="navidrome.ini" Action="createLine" Directory="INSTALLDIR" Key="Port" Section="default" Value="'[ND_PORT]'" />
|
|
<IniFile Id="ConfigurationMusicDir" Name="navidrome.ini" Action="createLine" Directory="INSTALLDIR" Key="MusicFolder" Section="default" Value="'[ND_MUSICFOLDER]'" />
|
|
<IniFile Id="ConfigurationDataDir" Name="navidrome.ini" Action="createLine" Directory="INSTALLDIR" Key="DataFolder" Section="default" Value="'[ND_DATAFOLDER]'" />
|
|
<IniFile Id="FFmpegPath" Name="navidrome.ini" Action="createLine" Directory="INSTALLDIR" Key="FFmpegPath" Section="default" Value="'[INSTALLDIR]ffmpeg.exe'" />
|
|
</Component>
|
|
|
|
<Component Id='MainExecutable' Guid='e645aa06-8bbc-40d6-8d3c-73b4f5b76fd7' Win64="$(var.Win64)">
|
|
<File Id='NavidromeExe' Name='Navidrome.exe' DiskId='1' Source='navidrome.exe' KeyPath='yes' />
|
|
<ServiceInstall
|
|
Description='Navidrome is a self-hosted music server and streamer'
|
|
ErrorControl='ignore'
|
|
Name = '$(var.ProductName)'
|
|
Id='NavidromeService'
|
|
Start='auto'
|
|
Type='ownProcess'
|
|
Vital='yes'
|
|
Arguments='service execute --configfile "[INSTALLDIR]navidrome.ini" --logfile "[ND_DATAFOLDER]\navidrome.log"'
|
|
/>
|
|
<ServiceControl Id='StartNavidromeService' Start='install' Stop='both' Remove='uninstall' Name='$(var.ProductName)' Wait='yes' />
|
|
</Component>
|
|
|
|
<Component Id='FFMpegExecutable' Guid='d17358f7-abdc-4080-acd3-6427903a7dd8' Win64="$(var.Win64)">
|
|
<File Id='ffmpeg.exe' Name='ffmpeg.exe' DiskId='1' Source='ffmpeg.exe' KeyPath='yes' />
|
|
</Component>
|
|
|
|
</Directory>
|
|
</Directory>
|
|
|
|
<Directory Id="ND_DATAFOLDER" name="[ND_DATAFOLDER]">
|
|
<Component Id='PackageFile' Guid='9eec0697-803c-4629-858f-20dc376c960b' Win64="$(var.Win64)">
|
|
<File Id='package' Name='.package' DiskId='1' Source='.package' KeyPath='no' />
|
|
</Component>
|
|
</Directory>
|
|
</Directory>
|
|
|
|
<InstallUISequence>
|
|
<Show Dialog="MyCustomPropertiesDlg" After="WelcomeDlg">Not Installed AND NOT WIX_UPGRADE_DETECTED</Show>
|
|
</InstallUISequence>
|
|
|
|
<Feature Id='Complete' Level='1'>
|
|
<ComponentRef Id='LICENSEFile' />
|
|
<ComponentRef Id='README.mdFile' />
|
|
<ComponentRef Id='Configuration'/>
|
|
<ComponentRef Id='MainExecutable' />
|
|
<ComponentRef Id='FFMpegExecutable' />
|
|
<ComponentRef Id='PackageFile' />
|
|
</Feature>
|
|
</Product>
|
|
</Wix>
|