Skip to content

Conversation

@victoryforce
Copy link
Collaborator

We should suggest to users that they uninstall the previous installation before upgrading. This is the right way to go, as a simple in-place upgrading may preserve files from the previous version in the new installation if they are not present in the new one. This can bring surprises if the behavior of the program depends on the presence or absence of certain files (the most obvious example is translation files).

This code handles upgrades from a previous version installed by both the NSIS installer and the Inno Setup installer. We currently install development snapshots and releases into different directories by default, so they are treated as separate applications. Upgrading a development snapshot will not prompt you to uninstall a release, and vice versa.

@wpferguson
Copy link
Member

Let's not merge this right before release. There's no chance to test it and I'd rather not spring it on the users blindly, let alone find out there is a bug that we didn't have a chance to catch.

I'm planning on building with the deprecated installer, since I haven't been able to find build instructions for the new installer, even though I've asked (#19544).

The weekly builds (darktable windows insider program on pixls.us) serve 2 purposes. One is to get windows users to test. The seconds is to verify the build and installer work correctly.

@victoryforce
Copy link
Collaborator Author

The weekly builds (darktable windows insider program on pixls.us) serve 2 purposes. One is to get windows users to test. The seconds is to verify the build and installer work correctly.

@wpferguson: This is actually a great idea. Although nightly builds are published on the GitHub releases page, some forum users probably don't have the habit of checking there for fresh builds. So your weekly builds definitely attract additional users to test. The more users who test the builds, the more bugs will be found and fixed.

@TurboGit TurboGit added the scope: windows support windows related issues and PR label Nov 19, 2025
@victoryforce
Copy link
Collaborator Author

victoryforce commented Nov 19, 2025

since I haven't been able to find build instructions for the new installer, even though I've asked (#19544).

I will definitely write these instructions for the end user and I promise that it will happen before the release. At the time of your request and even now I still have hope for the innosetup package to be included in the MSYS2 package base (maybe Milos would find time for it, as I hope, maybe I would figure out how to do it...), and that would definitely change (and simplify) the instructions.

In the meantime, I'm always quietly lurking in darktable Matrix room and ready to answer any questions you may have about the installer.

BTW, the "Create Inno Setup installer" step in the nightly build task is pretty self-contained in terms of what is needed to build the Inno Setup installer. See:

- name: Create Inno Setup installer
shell: pwsh
run: |
choco upgrade innosetup --no-progress
cd ${{ env.INSTALL_PREFIX }}
cp ${{ env.BUILD_DIR }}/darktable.iss ./
# Create multi-resolution .ico file expected by the .iss script for use as setup file icon.
magick ${{ env.SRC_DIR }}/data/pixmaps/256x256/darktable.png -define icon:auto-resize="256,128,64,48,32,16" dt_logo_multiresolution.ico
iscc "darktable.iss"
mv Output/*.exe ${{ env.BUILD_DIR }}/

Since Inno Setup installer is not yet packaged in MSYS2, we need to install it on the Windows host system, copy darktable.iss installer script to the directory where CMake installed the files, create a multi-resolution icon for darktable installer executable, and run the darktable.iss script compilation.

EDIT: I recalled that choco adds iscc to the PATH. So when installing Inno Setup not through choco, such as using installer from the program's website, you will need to specify the full path to iscc.exe.

If we are talking about a non-automated, interactive build, then perhaps the easiest way is to click on the .iss file. This will launch the interactive compiler associated with this extension, in which you need to press Ctrl+F9 to start the compilation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: windows support windows related issues and PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants