Containerized Windows Apps using singularity - give it a try!

1,015 views
Skip to first unread message

Stefan Kombrink

unread,
May 20, 2017, 12:40:32 PM5/20/17
to singularity
Hi everyone,

 as I posted earlier I investigated recently in sandboxing windows apps which I occasionally made work in some version of wine under linux.
It however always ended in me being very frustrated since they went broken quite easily and I mostly even couldn't figure out the reason why.

So I created a singularity container with the proper wine version / dependencies and config to make my GOG games install and run.
That was really fun :)

After Martin Cuma dug deeper I reworked the container building into a docker file which will basically allow anyone with the upcoming singularity 2.3 to install and run containerized windows apps under linux entirely in user space.

Have a look at my write-up here: http://secret4u.spdns.org/index.php?/archives/3-Dolmades-Containerized-Windows-Apps-under-Linux.html

Feel free to give it a shot and send me feedback in case you have questions :)

Stefan

Stefan Kombrink

unread,
May 20, 2017, 4:51:13 PM5/20/17
to singularity
Oh misery! I messed up with my serenity CMS. So I lost the post... now I'm fed up with it and will come back in a few days when I have it running again...

Stefan

Gregory M. Kurtzer

unread,
May 22, 2017, 2:07:56 PM5/22/17
to singu...@lbl.gov
Haha, can't wait to see it! Once you get it posted, feel free to submit a PR to singularityware.github.io to link against it, or just write it there. We are happy to host it for ya! :)

On Sat, May 20, 2017 at 1:51 PM, 'Stefan Kombrink' via singularity <singu...@lbl.gov> wrote:
Oh misery! I messed up with my serenity CMS. So I lost the post... now I'm fed up with it and will come back in a few days when I have it running again...

Stefan

--
You received this message because you are subscribed to the Google Groups "singularity" group.
To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.

Stefan Kombrink

unread,
May 23, 2017, 9:39:46 AM5/23/17
to singularity
Okay everyone,

 I reworked it completely:
http://dolmades.my-firewall.org/
http://secret4u.spdns.net.org/

I am curious on your responses
Stefan

John Hearns

unread,
May 23, 2017, 9:55:06 AM5/23/17
to singu...@lbl.gov
Stefan, I do like dolmades (the food). Mmmmm.

The topic of using a windows raytracing program came up today where I work.
I am led to believe this program uses MPI.
Do you have any feeling for dolmades and wine being able to run MPI?

(Dolmades and wine - now you have made me hungry).






--

Stefan Kombrink

unread,
May 23, 2017, 9:55:07 AM5/23/17
to singularity
oookay fix of second link: http://secret4u.spdns.org/

Stefan Kombrink

unread,
May 23, 2017, 2:21:02 PM5/23/17
to singularity
Hi John,

 that's a good question. Does anyone know of a free&simple app to test (prebuild, downloadable exe)?
seems like openmpi support is fairly limited on windows I was able to find this tutorial
http://www.eternalthought.co.za/?p=137

Stefan
To unsubscribe from this group and stop receiving emails from it, send an email to singularity...@lbl.gov.

Gregory M. Kurtzer

unread,
May 23, 2017, 6:56:53 PM5/23/17
to singu...@lbl.gov
This is seriously awesome! Makes me wish I had a Linux desktop box! ;)

To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.

Stefan Kombrink

unread,
May 24, 2017, 12:44:04 AM5/24/17
to singularity
Lol you don't?
Do you use mac then?
To unsubscribe from this group and stop receiving emails from it, send an email to singularity...@lbl.gov.

tin h

unread,
May 24, 2017, 1:17:11 AM5/24/17
to singu...@lbl.gov
Greg, is this what you had in mind when you created the stub for windows support on the singularity web site? ;-)
This is simply mind blowing!
Tin

vanessa s

unread,
May 24, 2017, 1:37:12 AM5/24/17
to singu...@lbl.gov
ahh I can't get this working! I do the install and then run wine...

wine /APPS/bs25/bsengine.exe 
Broken Sword 2.5 Engine - Build: Aug 30 2008 - 00:43:30 - VersionID: cd8a3ce31688fb99f90eea857689185
-----------------------------------------------------------------------------------------------------
KERNEL: created.
KERNEL: CPU detected (vendor name: "GenuineIntel", CPU name: "Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz").
KERNEL: CPU features: MMX SSE SSE2.
KERNEL: Window created.
KERNEL: Service 'lua' created from superclass 'script'.
LUA: Lua initialized.
KERNEL: Script bindings registered.
PACKAGEMANAGER: Script bindings registered.
KERNEL: Service 'physfs' created from superclass 'package'.
MAIN: ERROR - Unable to execute package definition file.

please help and solve my computer game hunger!!

To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.



--
Vanessa Villamia Sochat
Stanford University '16

vanessa s

unread,
May 24, 2017, 1:44:49 AM5/24/17
to singu...@lbl.gov
If you want to do a grass root effort to totally make Windows not necessary (because we put that @#(U in a container!) I am so down, lol. They seem to be putting linux OS in windows apps, so it's only proper on our part to pay back the favor :)

To unsubscribe from this group and stop receiving emails from it, send an email to singularity...@lbl.gov.



--
Vanessa Villamia Sochat
Stanford University '16

Stefan Kombrink

unread,
May 24, 2017, 7:58:49 AM5/24/17
to singu...@lbl.gov
vanessa,

 cd to the exes directory and run it then. I have to post this hint on the site, too!
Tell if it worked for you then ...

Stefan

To unsubscribe from this group and stop receiving emails from it, send an email to singularity...@lbl.gov.



--
Vanessa Villamia Sochat
Stanford University '16

vanessa s

unread,
May 24, 2017, 8:17:22 AM5/24/17
to singu...@lbl.gov
!!! :D

The telegram says... Nico is dead!?

To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.
Screenshot from 2017-05-24 05:09:02.png

Stefan Kombrink

unread,
May 24, 2017, 8:42:12 AM5/24/17
to singu...@lbl.gov
yy it's outrageous :) You play it in German language? I thought you can change language to English?
BTW there is a language extension pack available: http://www.g4g.it/2011/04/05/broken-sword-2-5-multilanguage-and-english-voices/

To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.

Stefan Kombrink

unread,
May 24, 2017, 9:01:02 AM5/24/17
to singularity
Hi Vanessa

 there's one issue which causes me troubles of using shub with dolmades. For some reason my /singularity script file has always a newline prepended.
Like so:

#!/bin/bash
# ...

And then it is not executed as bash script and fails.
It this a known issue?

Stefan

vanessa s

unread,
May 24, 2017, 12:30:44 PM5/24/17
to singu...@lbl.gov
hey Stefan,

shub is still building with an older version on singularity, and I believe that was an old issue! When we update for 2.3 that should be resolved ::)

Best,

Vanessa

Gregory M. Kurtzer

unread,
May 24, 2017, 5:25:38 PM5/24/17
to singu...@lbl.gov
Yep, been using a Mac since early Caos/Centos development.

Wow, to reiterate Tin's comment... Wow, this is simply mind blowing, and freakin' awesome! Very well done.

Greg

To unsubscribe from this group and stop receiving emails from it, send an email to singularity+unsubscribe@lbl.gov.

Martin Cuma

unread,
May 25, 2017, 1:30:12 PM5/25/17
to singularity
Thanks Stefan, the recipe was very useful for what I needed to do and probably saved me days of trying to learn Wine and experimenting with Singularity container recipe.

Wine seems to have gone a long way since the years I messed with it last, the few Windows programs I tried worked flawlessly.

I created a container to run an IDL application using IDL runtime under Windows. Our original hope was to use the Linux version of IDL runtime, but, there is a bug in IDL that caused it to segfault when running this application. IDL support was helpful but essentially said to reprogram the application to use different widget style (a particular widget type was causing the crash), which was something I was not keen on spending time on (no real interest to learn IDL).

So, few weeks later, your Wine recipe came, and after some massaging I got this to run under Ubuntu/Wine on our CentOS cluster. The recipe is here in case someone's interested:
https://github.com/CHPC-UofU/Singularity-ubuntu-wine-peakselector
It is still localized because of the particular application, but, may be a good demonstration of a research code using your approach.

I am hopeful we'll use this instead of doing specialized Windows VM in the future.

Thanks to everyone for all your work on all of this.

MC

Stefan Kombrink

unread,
May 26, 2017, 1:55:15 AM5/26/17
to singularity
Hi Martin,

 that's really nice to hear!


Am Donnerstag, 25. Mai 2017 19:30:12 UTC+2 schrieb Martin Cuma:
Thanks Stefan, the recipe was very useful for what I needed to do and probably saved me days of trying to learn Wine and experimenting with Singularity container recipe.

Wine seems to have gone a long way since the years I messed with it last, the few Windows programs I tried worked flawlessly.

 I was surprised as well when I retested latest wine stable. Stability is much improved over what I experienced in 1.x versions. I can acknowledge a lot of (old) software works now much better.
The one thing to consider seems to be to install some crucial native DLLs using winetricks which are still not bug-free and will render most software unstable. Sometime it can be annoying to figure out which DLLs these are.
 

I created a container to run an IDL application using IDL runtime under Windows. Our original hope was to use the Linux version of IDL runtime, but, there is a bug in IDL that caused it to segfault when running this application. IDL support was helpful but essentially said to reprogram the application to use different widget style (a particular widget type was causing the crash), which was something I was not keen on spending time on (no real interest to learn IDL).

So, few weeks later, your Wine recipe came, and after some massaging I got this to run under Ubuntu/Wine on our CentOS cluster. The recipe is here in case someone's interested:
https://github.com/CHPC-UofU/Singularity-ubuntu-wine-peakselector

I will check it.

I found that there are still some problems with this approach that reads/writes into container directories. I guess that some wine processes running in the background are not terminated reliably, and this can lead to broken containers which needs to be fsck-ed. And I'd like to find an approach to integrate well the licensed parts of the software I am creating within a container on singularity hub, ideally in a non-interactively scripted way. But this seems to be hard.
I guess this will be especially important in case of win software since I guess these may be mostly non-open source.

Right now I hope to stabilize the current method further and fix the problems which may arise.
 

It is still localized because of the particular application, but, may be a good demonstration of a research code using your approach.

I am hopeful we'll use this instead of doing specialized Windows VM in the future.

That'd be great if people could really use this approach instead of VMs. Let me know of the pros and cons you're experiencing there for your use case.
 

Thanks to everyone for all your work on all of this.

MC

Stefan
Reply all
Reply to author
Forward
0 new messages