Page 1 of 1

Docker Image for Sheepshaver

Posted: Fri Aug 04, 2017 2:19 pm
by cmiles74
I was interested in building SheepShaver from the Git repository, but discovered that it required an older version of GCC in order to build successfully. Not to be deterred, I've built a Docker image the runs Debian Wheezy and builds SheepShaver from the master branch of the repository on GitHub. It's working pretty well so far, if you're interested you can check it out here:

https://github.com/cmiles74/docker-sheepshaver

I have found that the kernel module for network access builds just fine with the current version of GCC, I recommend building and installing that module from source and then running the Docker image. I've been using the "slirp" interface and can see the network without issue.

Lastly, I am seeing a problem with the GUI... If the GUI is turned on, when I press the "Start" button I'll just get a black screen. If I turn the GUI off and rely on the command line parameters, then SheepShaver launches without issue. If anyone has a hint on this one, let me know and I'll update the image. :-)

Re: Docker Image for Sheepshaver

Posted: Wed Aug 09, 2017 11:38 pm
by rickyzhang
Thanks for sharing your docker file.

I build and compile successfully with the following option:

Code: Select all

make clean
NO_CONFIGURE=1 ./autogen.sh
./configure --enable-sdl-video --enable-sdl-audio --disable-vosf --enable-jit-compiler --with-x --with-gtk
make -j 32
I used Power Mac G3 ROM with bootable 8.5 Mac OS ISO file (set read permissiononly). The ISO file has been tested on my 1400 PowerBook. It works.

However, sheepshaver always has segfault. My Linux is running under Fedora 26 with GCC 7.1.1

Do you think it relates to GCC compiler? In any case, i should give a try yours docker.

Re: Docker Image for Sheepshaver

Posted: Tue Aug 15, 2017 7:28 pm
by adespoton
Dockerizing all the build environments is a great idea! Thanks for doing this!

This way we can all be assured we're using the same build environment to find/fix errors.

Now I just need to set up a VirtualBox VM that can run docker images ;) I guess I'd need to disable VTx for that, limiting me to a single processor.

Re: Docker Image for Sheepshaver

Posted: Wed Aug 16, 2017 1:28 am
by rickyzhang
Last year, I did an experiment to build and run BII under vagrant. See my git repo https://github.com/rickyzhang82/macemu/ ... grant-dist

But I found that it is too slow to play Lemmings even under i7 3770k CPU. So I decided not to make it public.

I don't see the point to run docker image under Linux VM. You should either run docker under native Linux host or build a vagrant VM directly.

Re: Docker Image for Sheepshaver

Posted: Fri Aug 18, 2017 9:09 pm
by cmiles74
A Docker container is going to be much faster than a Vagrant image. Typically, Vagrant will spin up a VirtualBox image, that image will include a complete Linux environment. VirtualBox will leverage the virtualization capabilities of your machine to host the image.

Docker, on the other hand, will use features of the Linux kernel of a Linux host to share that kernel and the resources of your Linux environment with the container. This is usually a lot faster then VirtualBox (if your machine is running Linux), it's much less load on the host machine in terms of resources, in my experience.

If you aren't running Linux, then you won't see as much of a performance improvement. Still, it's far less resources running multiple Docker containers under Docker Machine on MacOS X then running multiple VirtualBox Linux instances.

I think the biggest use case for this image is if you are running a new-ish Linux distribution and you want to build and run Sheepshaver from the code on GitHub, this image will do exactly that. Also, as someone else mentioned, it could be handy for use when cross-compiling and testing on other operating systems (it's easier to share a Docker file then a Vagrant Box, in my opinion).

Thank you for your interest!

Re: Docker Image for Sheepshaver

Posted: Sat Aug 19, 2017 2:18 am
by rickyzhang
I'm not against using docker but I'm against using Linux docker image under Linux virtual machine in Windows/Mac OS host.

No offense. The docker script you wrote is good for Linux host only. But if it runs under Windows/Mac OS host, the performance sucks. I did a I/O test at work. It was far from acceptable.

Microsoft recently introduce Hyper-V and Windows server containers in server 2016. Windows containers only run Windows docker image for isolation purpose. Hyper-v container is VM. Only Hyper-v can run Linux docker image. I can't answer you the performance. But I can image unless you have Windows docker image under Windows server container, you can't match the performance of your current Linux docker image under Linux host.