Minimal WINE for 16-bit
I would like to do a minimal WINE build for just 16-bit games. Do you have any notes or scripts about doing this?
Also, which Linux distribution did you compile WINE for?
I used Debian for the Linux distribution and Wine also came from the Debian deb packages, precompiled. I just downloaded the deb files and manually extracted them. It was a pretty painful process. In the future it would be better to compile Wine myself so that I could remove unnecessary dependencies.
http://www.boxedwine.org/boxedwine/fs/boxedwine.zip (Wine 1.7 18MB)
http://www.boxedwine.org/boxedwine/fs/minWine31.zip (Wine 3.1 19MB)
It is probably pretty close to what you want. To use it from the command line you would need to change it so that all the files in /root/ are at the top level in /. Unfortunately the Emscripten build and the Win32 build don't have the exact same file system structure for their zip files. For these minimum builds I just removed as many files as possible and occasionally added some back for specific games. All the games on boxedwine.org that run in the browser use these. I didn't try these filesystems with the last 18R1 release, but they should work with what is in svn right now.
It is a pain to create a file system from scratch, even just updating to a newer version of wine can cause different syscalls to be used which I haven't emulated yet. I have been working on file system which is a bare minimum, only enough to run dpkg. I'm trying to get it to the point where it can be used to install apt. But I noticed pretty quickly this resulted in larger filesystems because it pulls in more dependencies that I need.
Thanks! They both work and are a good starting point for me.
I noticed that the same libraries between the minimal and full Wine 1.7 zip files are not the same - were they both built for the same version of Debian? What is the version of Debian I should be using?
I've experimented with many different builds, probably all of the last 5 major Debian releases and Tiny Core Linux. Unfortunately I didn't document what made it into the file systems I am using right now. But libc is the most important library because it is the one that communicates to the kernel via syscalls that I emulate. Any library can make a direct syscalls, but libc is the most complex and is the one most likely to take advantage of newer kernel syscalls which may not be emulated yet, so upgrading to a newer libc often require more work in boxedwine.
Base on the existence of ld-2.19.so in my filesystems, I would guess it came from
I'm still experimenting with bringing up a file system with scripts. It manually unpacks the deb files necessary to get dpkg going, then calls dpkg on pre downloaded packages to bring up apt-get. After than you can install anything. But that file system will be quite a bit bigger than the ones I built by hand, I will need to figure out a file system minify script. My goal with this package project is to get XOrg working again. Before my custom winex11.drv I had to run XOrg. But XOrg is pretty hard to bring up just using deb packages and unpacking manually.
Dpkg calls a lot of stuff when installing different packages (configuration scripts, using perl, sed, etc) and my emulation is close to running all of it, but not completely there yet. This package project is why I support Boxedwine command line arguments like setting the uid, gid, egid and euid. Dpkg checks that it is running as root.
I believe the actual Wine files came from Play on Linux. Debian's version doesn't include OSS which is the interface I use for sound.
I set up a debian 8 (jessie) 32-bit VM in order to compile WINE 3.1 with the boxedwine winex11.drv. Thanks for the tip on OSS. Let's see how this goes...
I have been using Mint 18.3 to compile winex11.drv and sometimes other wine dlls like ntdll, just to add additional logging on a temporary basis when looking for bugs. So far I haven't run into any problems compiling wine on different hosts. The biggest thing is if I need to add a new library that wine depends on, making sure that matches up with the Debian build I'm using.