element-hq / element-desktop

A glossy Matrix collaboration client for desktop.
https://element.io
GNU Affero General Public License v3.0
1.17k stars 267 forks source link

Option to install Riot electron under Windows in Program Files rather than Local #678

Open ara4n opened 7 years ago

t3chguy commented 7 years ago

would simply be a question of enabling msi output on squirrel.windows, build would have to be done twice for Windows (one for silent installing exe and one for msi)

turt2live commented 5 years ago

This would also help with RDS support I believe

BloodyIron commented 5 years ago

So uh yeah can we revisit this topic please? it's well over 2 years later now, and the installer is only installing in the user profile right now. Some people are even getting confused with how streamlined it is.

So, I think we should:

  1. Add options as to how it's installed (user profile/all users)
  2. Make the installer clearly say something like "Installation complete!", as right now it just closes without any indication of success/failure.

Also, installing for all users means the credentials will need to be securely stored inside the user profile, including E2E keys.

t3chguy commented 5 years ago

@BloodyIron the update mechanism (Squirrel) simply does not support it: https://github.com/electron-userland/electron-builder/issues/605 NSIS is not being used due to issues caused by it doing a full uninstall followed by a full install and calling it an "Update" iirc

BloodyIron commented 5 years ago

NSIS? Nullsoft Scriptable Install System?

So each user needs to install it themselves on a multi-user system?

t3chguy commented 5 years ago

the NSIS mode in electron-builder anyway

LoneFenris commented 5 years ago

Has any thought been put to a UWP/PWA version of Riot in the Windows Store? Could even help discoverability there. Potentially opens up running on Xbox as well that way (unsure if there would be demand for that).

t3chguy commented 5 years ago

Seems like appx is only supported under nsisWeb mode on electron-builder which as outlined above is undesired for other reasons

LoneFenris commented 5 years ago

I think I was actually suggesting forgoing electron for Windows and making use of either the WebView in UWP or the ability to package a PWA as an appx. However, since the update process appeared to be reason to avoid NSIS, it's worth asking does that problem still apply when the MS Store would be handling the updates?

stroetgen commented 2 years ago

I have used Rocket.Chat so far. Again, Electron is the base, but I have a /allusers switch here and even get an MSI installer that allows me to deploy the application comfortably in the organization. So the problem seems to be solvable. It would be great if there was such an installer for element-desktop as well.

https://github.com/RocketChat/Rocket.Chat.Electron/

ArtexJay commented 2 years ago

Would be good to be able to install element on a secondary drive or a different drive of my choosing.

ArtexJay commented 2 years ago

Seems like appx is only supported under nsisWeb mode on electron-builder which as outlined above is undesired for other reasons

MS store now allows win32 apps, Discord which i think is installed in a similar way to Element is available at the moment on the MS store. https://developer.microsoft.com/en-us/microsoft-store/desktop-apps/

RokeJulianLockhart commented 1 year ago

https://winget.run/pkg/Element/Element

AnassDriate commented 1 year ago

@t3chguy Any guide how to enable MSI build ? Can I pass the homeserver as silent parameter ? Thank you in advance

t3chguy commented 1 year ago

@AnassDriate https://github.com/vector-im/element-desktop/pull/387 - you can pas homeserver during build via a custom config.json - https://github.com/vector-im/element-desktop#config

AnassDriate commented 1 year ago

@t3chguy Thank you for your replay.

Regarding the msi, i managed to build it but it intsall the app in LOCAL path. My goal is to install the app in system/program files.

Am I missing something?

By the way i tried to install the exe with --profile-dir (program files) does not work.

t3chguy commented 1 year ago

--profile-dir is a runtime flag, not an installation flag

The MSI requires admin privileges and installs into Program Files, if you have an exe then it isn't an msi

AnassDriate commented 1 year ago

@t3chguy

Thank you for the clarification about --profile-dir .

I have admin privileges and I have Both .exe and .msi ( sorry if it was not clear).

I will give it retry, i keep you updated.

Thank you

t3chguy commented 1 year ago

As you can see in the screenshots in https://github.com/vector-im/element-desktop/pull/387 the installation is directly into C:\Program Files\Element so it must be something going on with your build. Are you definitely specifying perMachine=true as per the diff in that PR?

t3chguy commented 1 year ago

I just add it but it triggers an issue in my CICD

Please provide more detail than "an issue"

t3chguy commented 1 year ago

Actually, your JSON looks wrong. You have "msi" in the "win" block where it should be its own sibling block.

image

AnassDriate commented 1 year ago

@t3chguy

You are right the json was wrong.

I manged to build and install the msi correctly. everything works as expected.

Thank you very much.

Regards,

RokeJulianLockhart commented 1 year ago

What about MSIX rather than APPX? Is it in any way less stringent?

t3chguy commented 1 year ago

What about MSIX rather than APPX? Is it in any way less stringent?

It doesn't look like electron-builder has MSIX support - https://github.com/electron-userland/electron-builder/issues/5021

RokeJulianLockhart commented 1 year ago

@t3chguy, https://github.com/tom-james-watson/breaktimer-app/issues/223#issuecomment-1509643236. Microsoft provides some ridiculously easy-to-use GUI applications to do so, and it can be automated.

t3chguy commented 1 year ago

Similar response as to that thread, you're more than welcome to maintain an MSIX package yourself. Community packages drive open source forward. We can't feasibly maintain all the various packages users want to any level or standard. The line has to be drawn somewhere and right now it's the intersection of what electron builder has native support for and we have experience in maintaining within the team. We're more than happy to help as much as we can. We moved all our packaging into github actions to make it more transparent and reproducible.