Docker Image for Sheepshaver

About SheepShaver, a PPC Mac emulator for Windows, MacOS X, and Linux that can run System 7.5.3 to MacOS 9.0.4.

Moderators: Cat_7, Ronald P. Regensburg, ClockWise

Post Reply
cmiles74
Space Cadet
Posts: 2
Joined: Fri Aug 04, 2017 2:08 pm

Docker Image for Sheepshaver

Post 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. :-)
User avatar
rickyzhang
Apple Corer
Posts: 205
Joined: Mon Sep 15, 2014 7:59 pm

Re: Docker Image for Sheepshaver

Post 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.
There is an App for that!
https://github.com/rickyzhang82
User avatar
adespoton
Forum All-Star
Posts: 4226
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: Docker Image for Sheepshaver

Post 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.
User avatar
rickyzhang
Apple Corer
Posts: 205
Joined: Mon Sep 15, 2014 7:59 pm

Re: Docker Image for Sheepshaver

Post 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.
There is an App for that!
https://github.com/rickyzhang82
cmiles74
Space Cadet
Posts: 2
Joined: Fri Aug 04, 2017 2:08 pm

Re: Docker Image for Sheepshaver

Post 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!
User avatar
rickyzhang
Apple Corer
Posts: 205
Joined: Mon Sep 15, 2014 7:59 pm

Re: Docker Image for Sheepshaver

Post 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.
There is an App for that!
https://github.com/rickyzhang82
Post Reply