Building PennMUSH on cygwin

Submitted by javelin on Mon, 2006-02-13 20:52

I was recently asked about building PennMUSH under Cygwin, a port of the GNU software to Windows. We used to recommend Cygwin as a platform for Windows users, and then stopped doing so when cygwin quirks and the arrival of Mingw32+Msys offered a better alternative. But Cygwin has regular upgrades and I thought it would be interesting to try again with the most recent version (1.5.19-4) under Windows XP Pro.

I installed Cygwin and added the following extra packages to the base install: binutils, gcc, gcc-core, make, openssl, openssl-devel, perl, bash, gnupg, and patch (and anything that these depended on). Then I tried to build PennMUSH 1.8.1p5.

Lo and behold, the build went exactly like a Unix build. ./Configure -d worked perfectly, without even needing the old cygwin hints. I copied options.h.dist to options.h, edited it to undefine INFO_SLAVE, and ran make install. No problems at all.

I copied game/mushcnf.dst to game/mush.cnf and edited it to enable SSL. I edited game/restart to specify the GAMEDIR (/home/javelin/pennmush/game, in my case). I ran ./restart

The server started, and I could log in as #1. SSL logins worked fine. In fact, everything worked as expected (I did not test @shutdown/reboot, though. Perhaps someone will and post a comment here?) I was using gzip-compressed databases.

I also tested make update, which is reported to have problems under Msys, and that worked just great, too.

In conclusion, Cygwin is a very reasonable platform for building and running PennmUSH. The next 1.8.1 release will include a win32/README.cygwin file explaining the build steps (much as I've just done).

Update: @shutdown/reboot does work fine. However, closing the cygwin bash window that you run restart in does kill the process, so don't do that unless cygwin has some way of running processes as a service that I haven't looked into.