Client: Windows MSI installer

Created on 12 Aug 2013  路  37Comments  路  Source: owncloud/client

Hi all,

It is possible to install OwnCloud remotely, via a combination of PSExec and Network Shares (as an example, for installing:
psexec machinename pathtoowncloud-1.2.5-setup.exe /S)

I, as I'm sure many other corporate and system admins, would appreciate a pre-built MSI installer for Windows.

While tools exist to create an MSI from an EXE, and there are some (very questionable) pre-made ownCloud MSI's available, having an 'OwnCloud Blessed' MSI would greatly help speed up deployment.

Thank you
-Tom Swartz


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Enhancement blue-ticket

All 37 comments

We are looking into providing an MSI based installer.

Hi danimo-
Thanks for the quick response.

I look forward to this feature with great anticipation.

@tomswartz07 check the milestone :-)

I would like to have that in 1.5 (we are currently at 1.4 beta1), but this is not a promise. And no, there is no fixed date yet.

MSI is a complex thing to get into, because if you do it, it has to be done correctly. We also need to make it possible to transition from the current NSIS somehow. I have read a bit about the WiX framework and we'll most likely go with that.

+1

@trockenasche it's scheduled already, no need to +1.

Would be nice to have signed msi files.
Should I open another issue for that?

@rakekniven No, we have a certificate already. Let's first build MSIs. We're probably going to build it with WiX. Help is very welcome.

Further, what possibilities are there for MSI transforms?

Would it be possible to build the MSI with the intent to configure the installation path/other settings upon install time?

@tomswartz07 Are you still interested in helping out? Even though we have improved the NSIS installer a lot, MSI would be cool for deployment through GPO. https://github.com/videolan/vlc/tree/master/extras/package/win32/msi could serve as a great starting point.

I can help with all the build system integration. Also, we'll first need to collect all files (NSIS does that automatically, WiX seems to expect the files to be neatly lined up). See https://github.com/owncloud/mirall/blob/master/cmake/modules/NSIS.template.in#L362 for which files are needed.

@danimo Sure. I'd be glad to help.

I had forked mirall a few weeks ago when it was first discussed, and played with trying to get it in line. I haven't done much with it since then.

How would you suggest we move forward with this? I imagine that, because the makefiles need to be orgainized for WiX, it might hinder addition of new features.
Perhaps making a new branch to develop concurrently?

@tomswartz07 I would suggest we simply create a (shell) script that copies the artifacts into one place, ignoring cmake (I am planning to also move away from cmake/cpack for OS X, it's just too buggy and requires too many work arounds). Another script could then call WiX (WiX binaries are .net and can also be executed on Windows if needed). Decoupling the scripts would mean we could run the WiX packaging on windows as well.

vlc has package.mak (which builds a package) and msi.mak (which uses the results to build an msi file). Same idea, but with make files

Thanks for the info regarding VLC- I'll be sure to reference this as I try to sort through this.

A few clarifications:

  1. Will mirall be built as MSI only (for Windows) after this is implemented, or will the packaging be 'doubled up', offering both MSI and EXE?
  2. In regards to the build system integration you've mentioned, to be perfectly clear: the files needed for Windows builds, referenced in your NSIS template are listed from Lines 362-465, correct? Your link was a bit ambiguous.
  3. Would you prefer to submit a pull request to initiate this change, from which we could both work, or shall I? I'm not exactly clear on what's expected to initiate this :smile:

@tomswartz07

  1. I would imagine it to go down like this: We'll first run side-by-side until we're confident MSI is working for everyone. Then we'll phase out NSIS eventually. We will produce an EXE stub for the MSI as a separate download (as avg users still seem to be confused about MSI files).
  2. Yes. Basically you can take what NSIS installs today, zip it up and take that as a foundation for WiX.
  3. The easiest would be a shared branch in owncloud/mirall. I can set this up and grant you acces as soon you return the signed CLA (http://owncloud.org/about/contributor-agreement/). If you can't sign it for whatever reason, we'll have to find another way and you can contribute your changes under BSD/MIT.

@danimo

Very good.

I've sent the CLA to Frank, so we should be good to go. I've begun a very basic WiX template already, and I anticipate the creation of the branch.

Thanks!

The msi_installer installer branch has been added. As soon as the CLA has been received, @karlitschek will add you to the list of committers and you can push to it.

Waiting for 1.5 than and hoping for the MSI support added, it will be very valuable for company GPO domain deployment, which is what I need right now. Wish you good luck and thank you for improving and developing ownCloud!

@crysman 1.5 is long released. @dschmidt expressed some interest in working on it during the next hackathon in Berlin. Generally this currently is pushed back in the backlog, unless someone puts effort into it, which many Windows admins probably would appreciate.

@crysman I have an 'experimental' branch that will create an MSI via the program WiX.

You can grab the code here for ownCloud client 1.8.1

I say 'experimental' because it's not officially part of the client codebase. In practice, It's fairly rock solid and we use it here to deploy the client to over 1k client machines via Active Directory Group Policy.

@tomswartz07 :+1: seems to be what I am looking for - is it going to be maintained for further versions? I mean if you are planning to maintain it. Thank you.

@crysman you betcha. I usually have that repo updated within a few hours of the official release.

According to this comment
https://github.com/owncloud/client/issues/3949#issuecomment-148157711

I am requesting here the option to install ownCloud clients without shortcuts being created on desktops.

PS: it all started here, actually https://github.com/pennmanor/wix-wrapper/issues/6

Like I said on #3011 (because I think you should all know this):

I see that this issue is almost a year old now. @danimo You tell us it depends on #860. Well, that issue is being pushed to the future ever since 2013, and only changes milestones. Exactly the same as with this issue.. If I would constantly postpone my deadlines at work, my boss wouldn't be very happy :smile:

@MTRichards @danimo What is the status here? /cc @MorrisJobke

00004916

Currently on the backlog, but not planned for 2.2. We can look at it for 2.3.

This is a long standing request, and we will get to it.

@cmonteroluque FYI.

@MTRichards yeah

:+1:

Guys, if you just want to be subscribed for notifications, there's a button at the right >.<

I have experience making MSI's so I can probably work on this. There's a also discussion at my work about using owncloud and if there is an MSI, it'll be very easy for admins to install the client on all the workstations. So, IT admins, what features do you want to see in the MSI?

Hey there @DraconPern:

I currently have a workaround using WiX Toolkit. The code 'wraps' the current .exe in an .msi and can be deployed using any number of admin tools.
We have used this method to deploy the program to over 2k machines in the past few years.
The code is here to use that.

As far as an 'official' MSI installer, I would love to see:

  • Fully configurable install options using .mst transform files
  • Silent install options
  • Options to specify alternate 'exclude.lst' entries during install (ideally as part of the transform)

Cheers

@DraconPern The only real requirement is to use WiX to build the installer. Also, we need to somehow make sure that we can use Transifex to translate it (probably needs conversion from the translations that WiX accepts). I can help with the scripts, but I would first like to have a minimal framework before deciding where to go in terms of installer features.

@DraconPern, only configuration coming to mind is configurable default sync directory.
And probably configurable list of default ignored files.

@AnrDaemon We're using NSIS, not InnoSetup. NSIS also suffered from the same issue, but has been fixed since.

Was this page helpful?
0 / 5 - 0 ratings