Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

REFAC(installer-msi) Simplify WiX component install #4574

Merged
merged 1 commit into from Dec 15, 2020

Conversation

ZeroAbility
Copy link
Contributor

@ZeroAbility ZeroAbility commented Nov 10, 2020

  • Remove CPack and previous WiX installer projects and sources
  • Add toolset for WixSharp to facilitate client and server builds
    individually or collectively.
  • Add multilanguage build with packaging=ON and translations=ON, and
    standard build with packaging=ON. Builds are also aware of client and
    server option settings.
  • Add correct LICENSE to installer

Fixes: #4488
WixSharp: https://github.com/oleg-shilo/wixsharp

@Krzmbrzl
Copy link
Member

CI will require tasks for client=ON/OFF and server=OFF/ON individually.

Atm it builds client and server at the same time (it seems). I assume that this means that the installer that ic currently built on the CI still contains both components as well? 🤔

@ZeroAbility
Copy link
Contributor Author

CI will require tasks for client=ON/OFF and server=OFF/ON individually.

Atm it builds client and server at the same time (it seems). I assume that this means that the installer that ic currently built on the CI still contains both components as well?

That is probably a good question for @davidebeatrici as I have not worked with the CI directly. When client and server are both on, then the resulting msi will include both components. Regardless, we would need to make separate build tasks to build separate installers.

@davidebeatrici
Copy link
Member

I confirm that right now there's a single build task for both client and server.

@Krzmbrzl
Copy link
Member

Why do we need new tasks on the CI then? To ensure that the installer can still be built if either of the 2 components is not built?

@davidebeatrici
Copy link
Member

We can use the same task and build client and server separately, of course.

However, I believe it makes sense to have two separate tasks since CMake has to be called again anyway.

@ZeroAbility
Copy link
Contributor Author

It might technically be 4 tasks because of 32 bit.

@davidebeatrici
Copy link
Member

They are two different builds.

@ZeroAbility ZeroAbility force-pushed the refac-cpack-install branch 3 times, most recently from a402a81 to ffd7d9a Compare December 6, 2020 05:16
@ZeroAbility ZeroAbility force-pushed the refac-cpack-install branch 11 times, most recently from 00b3dc3 to 6f18dfb Compare December 8, 2020 00:24
CMakeLists.txt Show resolved Hide resolved
@Krzmbrzl
Copy link
Member

The installers built on the CI do not seem to offer the functionality to choose an installation language.

Furthermore the client-installer did not create a desktop shortcut. I think we talked about this on IRC before. How much effort would it be to let the user choose whether they want a desktop shortcut or not? 🤔

@ZeroAbility
Copy link
Contributor Author

ZeroAbility commented Dec 11, 2020

The installers built on the CI do not seem to offer the functionality to choose an installation language.

The installer is multi language and will install based on the default locale defined on the system.

Furthermore the client-installer did not create a desktop shortcut. I think we talked about this on IRC before. How much effort would it be to let the user choose whether they want a desktop shortcut or not?

I will see what I can do with this in the coming days. I'm more concerned that it's building the installer properly and that everything is installed correctly.

@davidebeatrici
Copy link
Member

Not creating a shortcut is better than creating one in case we cannot provide an option, in my opinion.

Remove CPack and previous WiX installer projects and sources
Add toolset and for WixSharp to facilitate client and server builds
individually or collectively.
Add multilanguage build with packaging=ON and translations=ON, and
standard build with packaging=ON. Builds are also aware of client and
server option settings.
Add correct LICENSE to installer
@ZeroAbility
Copy link
Contributor Author

Furthermore the client-installer did not create a desktop shortcut. I think we talked about this on IRC before. How much effort would it be to let the user choose whether they want a desktop shortcut or not?

I pushed a change that should create a desktop shortcut for the client. To more correctly answer the question, this has been a feature that was prominent in exe based installers. In the previous WiX project, a component needed to be created to allow this to occur. Manually deleting or creating a shortcut isn't really that much more work than choosing the option during an install. The best compromise I can come up with is to create one automatically and the user can delete the shortcut if not needed. Same with Windows (Start) menu entries. It seems that even WixSharp is getting away from the paradigm of using a dialog to ask if the user wants to create shortcuts. Their samples make use of an object that they specifically state in the source code for the object that it should not be used with shortcut elements:

FileShortcut.cs
Shortcuts-2

@Krzmbrzl
Copy link
Member

The installer is multi language and will install based on the default locale defined on the system.

Ideally the user should be able to choose that manually though. Using the system's locale as the default is very good but also allowing to change this if needed is probably better.
For a first version of this new installer, I'd be fine with the default though 👍

It seems that even WixSharp is getting away from the paradigm of using a dialog to ask if the user wants to create shortcuts.

Interesting. That definitely goes against what I would expect from an installer. But I guess we can adapt the default (automatically creating vs not creating a shortcut) based on user feedback 🤷

@ZeroAbility
Copy link
Contributor Author

Ideally the user should be able to choose that manually though. Using the system's locale as the default is very good but also allowing to change this if needed is probably better.
For a first version of this new installer, I'd be fine with the default though

We would have to write a bootstrapper with a custom UI according to WiX's own documentation. I'm not sure if they are still using an exe package with the msi compressed inside or how that process would work. I agree that more options are certainly good. There is also the possibility that the installed application would use the system locale, anyway.

Interesting. That definitely goes against what I would expect from an installer. But I guess we can adapt the default (automatically creating vs not creating a shortcut) based on user feedback

Most of the installers I have seen with these options are exe based. Usually there is a dialog or checkbox to allow the installer to create shortcuts. msi installers typically don't because you can pass values on the command line to add them or not. I think we should just wait for feedback on this and I can open an issue with WixSharp to get guidance on it. This way we can distribute functioning snapshots without holding up the installer further.

@Krzmbrzl
Copy link
Member

We would have to write a bootstrapper with a custom UI according to WiX's own documentation.

Okay then let's not do that xD

think we should just wait for feedback on this and I can open an issue with WixSharp to get guidance on it.

Sounds good 👍

@Krzmbrzl
Copy link
Member

Does anyone have any concerns left why this should not be merged yet?

@Krzmbrzl Krzmbrzl merged commit c3c34e5 into mumble-voip:master Dec 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1.4.x Windows installer doesn't upgrade properly
3 participants