[archived] Previous, now Deprecated Whonix Windows Installer

Good day,

how about WiX? Is GPL, seemingly quite customizable and based in XML. See here: http://wixtoolset.org

Have a nice day,

Ego

WiX is awful.

Would be interesting how big .msi (Windows Installer) files can actually grow…

It seems, the same 2GB size restriction applies for .msi files (i.e. the ones created with WiX Toolset):

Good day,

great, that limits our options even further. There really seem to be no more options: List of installation software - Wikipedia

Both NSIS and wpkg are, at least from my point of view, really complex to work with, though maybe you’ve got another idea/solution I didn’t consider.

Have a nice day,

Ego

maybe packaging the installer & external cab files in a self-extracting archive, which in term is capable to start the installer automatically after extracting all needed files.

Good day,

maybe I understood you wrong, but packaging the installer and cab files wouldn’t change much, as they’d have to be extracted before installation and thus would be over 4GB in size again.

Would “Inno Setup” be capable of running external .exe files? If so, we could bundle a SFX for both the Gateway and Workstation which would be extracted last and independetly from “Inno Setup”, thus we wouldn’t have to face a memory limit.

Have a nice day,

Ego

I was under the impression that the .ova files and the VirtualBox installation file are easily below 4GB. Therefore my suggestion to use a self-extractor capable of starting the setup and possibly remove the files after installation. There must be a self-extractor around using unsigned int to package 4GB of data…!

  • Whonix-Gateway 1.5 GB
  • Whonix-Workstation 1.6 GB

I don’t think image sized have changed?

And VirtualBox itself is far below 1 GB.

So how do we bust the 4 GB limit anyhow?

Good day,

good question, also just tried creating an “Inno Setup” based Installer, by only using the Gateway and Workstation in its downloadable form and got the same message. Maybe “Inno Setup” has a limit which is around 2GB?

Have a nice day,

Ego

But I wrote this two days ago. Maybe you could check 7zip or other software wheather they can create 4GB files?

Good day,

oh, thought you meant the 2GB would only apply to .msi and that “Inno Setup” would just need to be below 4GB (was assuming something along the lines of “Inno Setup” beeing in 32bit, thus creating the famous 2³² limit), was a missunderstanding on my behalf.

Yeah, the 7Zip based solution could handle files far bigger, only problem is, it is not capable of executing anything else. That would lead to a problem as currently I’m unable to create an installer which isn’t dependend on some “regfiles”, to get VBox to work.

So, my idea would be the following: Let’s have to seperate installers, which only appear as one. So, the user doesn’t see that we first use “Inno Setup” to install VBox, then load the SFX to extract the Gateway and Workstation (this way, “Inno Setup” wouldn’t have to deal with larger files but only have to point to a certain path and run the .exe) and then let “Inno Setup” take over again, integrating the just extracted Gateway and Workstation VHDDs. This would of course in conclusion force us away from just having a .exe to necessitating a folder which contains all the needed files/installers.

So, here is what would happen technically wise:

1.) The user clicks on “setup.exe” to start the installer.

2.) The installer starts and looks for an already installed version of VBox.

2a.) If one is found, continue to step 3.

2b.) If not, proceed to install VBox in its entirety including the files needed for NAT.

3.) Without showing the user, start the SFX, point it to the folder where the installation of VBox was found (from now on this will be folder / to make it simpler), and let the Gateway and Workstation VHDDs (just to explain, these are NOT .ova’s but already configured virtual HDDs) be extracted in /Whonix.

4.) After the SFX has finished extracting the VHDDs, run a script whose only job it is to create two virtual machines in VBox and link them to the VHDDs.

5.) Success.

Just to explain, the reason I choose using VHDDs rather then .ovas which could be imported is speed. Adding a VHDD takes a few seconds, importing an appliance takes a lot longer. Furthermore, when adding an appliance, we’d have to remove these files again, something not necessary, when using VHDDs.

Have a nice day,

Ego

Don’t make it this complicated. People usually have a minute time to import the .ova after they have downloaded the images, which usually takes much longer. No need for open head surgery! B)

With the 7zip self-extractor, you usually have the option to start an included program. This goes into the RunProgram entry. See here:

So, all problems solved… haven’t we?

PS: I really dislike the “new users can only post two links” message when I acutally put only one link in a post. Can’t you just turn it off? It now works, when I remove the http from the url…

Increased newuser max links to 5.

Good day,

But if we’d let them do that manually, wouldn’t it defeat the whole purpose of this installer? I mean, all it then does, is install VBox and extract the images, which wouldn’t offer much of an advantage.

Will have to look into this. Personally thought the main point of having an installer of our own would be that the user should have to do as little as possible. All such a system would do is bundle everything necessary, but not more.

I’ll try to create my own implementation, independent from any “setup creator”, based on C#, when I find the time. The thing is, I’d like to create something which is a bit complex to create at first, though then offers a real benefit for the user.

Have a nice day,

Ego

I don’t think @thomiel meant to have them manually do this, right?

Yes. Just having one file is the goal. If it’s from the user’s perspective split into multiple that is a deal breaker. How the magic internally solves this is not super important.

Good day,

ok, I see, that can easily be done, will put it together tomorrow.

Have a nice day,

Ego

Ok, here it is: the 7zip self extractur encapsulating the InnoSetup installscript, VirtualBox installer, and the two .ova files:

Use ftp. I have this as a picture, because the forum keeps bugging me when posting ftp urls:

user: whonix – leave password empty – and download Whonix-Installer.sfx.exe

I also updated the repo:

1 Like

Good day,

Great, just downloading it.

I think that should be discussed seperatley from the “installer discussion”.

Have a nice day,

Ego

1 Like

Good day,

so I just tried your version. Already looks very well made and professional, however, I’d have a few things to critique.

First of all, did you use something a long the lines of “SFX Maker”, instead of using the GPL licensed original implementation included with 7-Zip? I’m asking because that’s what a lot of things hint upon. If so, that’s of course perfectly fine, however the file currently also shows version and ownership information which doesn’t fit (V14, Made by Scherbakov, etc.). Would be great, if there was a way to change that, it is possible with the original implementation, maybe with yours to. Furthermore, there seems to be a problem with using the “temp folder” of an user when said user has a “blank” in the username (e.g. “Ego Super Ego Id”). As having a blank in the user name is quite common (First name Second name) using a folder which requires a user name will thus be out of the question.

What you did with “Inno Setup” looks very nice and definetly is something Windows users will be able to understand. Maybe you could, after “finishing” the setup, automatically open a local HTML-page bundled with the rest of the files which again shows people how to import the necessary images. If that is possible, that would be great.

Have a nice day,

Ego