Feature #788

Windows setup engine (installer) candidate

Added by Rob Baer almost 4 years ago. Updated almost 2 years ago.

Status:NewStart date:05/25/2015
Priority:LowDue date:
Assignee:Joel Palmius% Done:

0%

Category:Jenkins
Target version:MakeHuman 1.1.2

Description

I have seen this disussed on IRC but can't find an issue. I know Manesh created an installer which worked but this never went anywhere for reasons that I don't know. Even earlier (alpha days) I created a Windows installer, but Manuel had concerns that it was not an open source installer engine, so I moved on to other things.

This morning I fooled around with Inno setup installer (open source) http://www.jrsoftware.org/isdl.php and created a Windows setup executable for the latest r1773 nightly build. I made no attempt to do anything fancy with blender tools, but such things could possibly be investigated. I did create a desktop shortcut (install option). This setup engine seems powerful, flexible, and suited to MakeHuman needs. It displays the MH and dependency licensing nicely and leaves the setup-user with the necessary flexibility.

Because of file size (310 kb-self unpacking) I don't upload the prototype setup executable for nightly r1773, but I will leave it in my dropbox for a little while in case someone wants to test it: https://www.dropbox.com/s/jktdtfgy561rugc/MakeHuman-Setup.exe?dl=0

I am uploading the inno setup script file so others can view it's simplicity (MHSetup.iss).

So, ...
  • Is there any interest in incorporating something like this into the Jenkins builds?
  • Is there any interest in seeing whether it could be used for Blender tools?
  • Might it at least be useful for the release/stable versions?
  • What other features would we want to investigate to determine interest/utility?

Thoughts?

MHSetup.iss (2.09 KB) Rob Baer, 04/18/2015 06:44 PM


Subtasks

Feature #867: Register MHM files to be opened by MH on windowsNew

History

#1 Updated by Joel Palmius almost 4 years ago

Without being familiar with inno (particularly concerning its scriptability under jenkins), spontaneously I don't see any reason why we shouldn't use it.

For people who often download the nightly, it probably makes things more cumbersome to have to uninstall/reinstall every time rather than simply unzipping a file. But for people who are less used to the procedure, it'd be a benefit.

For formal releases, we should definitely have an installer rather than a zip.

The final question before taking it in use would be how to efficiently integrate it into the build process, preferably as a part of the scripts under "buildscripts"

https://bitbucket.org/MakeHuman/makehuman/src/0160b63e0d045c62ae52f80be5e1b540052b2a4f/buildscripts/?at=default

#2 Updated by Anonymous over 3 years ago

The final question before taking it in use would be how to efficiently integrate it into the build process, preferably as a part of the scripts under "buildscripts"

https://bitbucket.org/MakeHuman/makehuman/src/0160b63e0d045c62ae52f80be5e1b540052b2a4f/buildscripts/?at=default

Is this a thing for Jonas?

#3 Updated by Joel Palmius over 3 years ago

It shouldn't be too difficult to determine. It's just a question about reading up on the scriptability of inno (which I know nothing about) and them implement it.

#4 Updated by Jonas Hauquier over 3 years ago

Alternatively NSIS might be a good option too.

#5 Updated by Anonymous over 3 years ago

Jonas Hauquier wrote:

Alternatively NSIS might be a good option too.

Since Rob is studying Inno and I suppose he can also maintain it in future, better to continue with it.

@Rob
Rob are you available to maintain it, in case?

@Jonas
Who will modify the build script, you or Joel?

#6 Updated by Rob Baer over 3 years ago

I would be glad to take on the maintenance duties given appropriate backup from Joel and Jonas.

#7 Updated by Joel Palmius over 3 years ago

If you make a basic implementation which takes heed of build.conf and build_prepare.py (a good start can be copy/paste buildDeb.py and remove almost everything from it and then add appropriate calls for running inno), I can take over from there.

#8 Updated by Rob Baer over 3 years ago

Jonas Hauquier wrote:

Alternatively NSIS might be a good option too.

I'm not wed to a particular solution (Inno just seemed like a good path, and I found it quite easy to prototype using it), but it was important that I find out whether there was any general need and interest in an installer before looking further. If there is interest, I'm willing to take on maintenance tasks and learn what I need to to get a workable implementation.

As I look at Joel's comment #7, I begin to mull the details of implementation on the server end. Inno can easily package an executable setup from an existing directory and add typical setup features. Is it the best way? Don't know.

In trying to determine the current build workflow for the Windows executable, though, I looked at C:\MakeHuman-HG\buildscripts\win32 which contains makehuman.spec and setup.nsi. Does this suggest that we are already invested in nsis for the first part of the build task? Certainly we could chain inno onto the end of this, but maybe there is a more direct pathway using nsis scripting that would make more sense.

One other question to throw onto the table at this point. Inno can compile from the command line (http://www.jrsoftware.org/ishelp/), but I'm realizing that this is probably a "Windows command line" and the server is probably Linux. Is there access to a Windows virtual machine or is this a dead end to considering Inno. My understanding is that nsis is also a Windows app so that too may require access to a Windows virtual machine. If I'm right that the first part of the task is already handled by nsis, a virtual machine may indeed be available.

I'll stop here before revealing too much more ignorance :) I yield to my experienced and esteemed colleagues, and remain open to all paths (the best path) forward. [And this is of interest to me so I'm willing to take on any work within my capabilities] :)

#9 Updated by Joel Palmius over 3 years ago

No, no... The build server for the windows build is a windows 7 machine, since pyinstaller doesn't support cross platform builds.

We used NSIS for the compiled version of MH way back when, but I don't really think we ever had a functional version for the current branch really.

From my perspective, whatever gets the work done is ok.

#10 Updated by Jonas Hauquier over 3 years ago

Joel Palmius wrote:

From my perspective, whatever gets the work done is ok.

Indeed

#11 Updated by Jonas Hauquier over 3 years ago

  • Subject changed from Windows setup engine candidate to Windows setup engine (installer) candidate

#12 Updated by Aranuvir # almost 2 years ago

  • Target version set to MakeHuman 1.1.1

Still a feature? Can we replace it by PortableApp?

#13 Updated by Joel Palmius almost 2 years ago

  • Target version changed from MakeHuman 1.1.1 to MakeHuman 1.1.2

I think they're different, but atm I don't think there's much bang for the buck in implementing a separate NSIS installer.

And it's definitely not going to happen before the release of 1.1.1.

Keeping it as a feature for if we ever feel we have too little to do.

Also available in: Atom