Compiling Maelstrom from source for Ubuntu Linux

I really enjoy Maelstrom the game.  Somehow when I installed 8.04 on PC on my  P4V8X-MX motherboard I could never get the sound to on the game to work quite right. The sound would play int the background, but there was this irritating buzzing noise in the forground.  Most of my other application appear to work properly.  I posted a couple of times on Ubuntu and tried emailing the guy who created the package for linux with no response.   Soo….. I thought I would try to see if compiling it from source would take care of the problem… Or perhaps, I could try could isolate the code section and figure out what to do.
Either way it should be a learning experience.
I could swear there’s a way of downloading source from synaptic.   I poked around for a while and couldn’t find it.  I prefer getting my source from the repository, so I wanted to use apt-get.

I found some pretty good information here: http://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html
I had tried to do the download and build the first time around and ran into some errors (plus it was really late and I was tired, so I wasn’t paying too close attention).  Instead of trying everything in one fell swoop, I thought I tried doing this a step at a time.

jonas@Ubuntu4:~$ apt-get source maelstrom
Reading package lists… Done
Building dependency tree
Reading state information… Done
Need to get 1094kB of source archives.
Get:1 http://us.archive.ubuntu.com hardy/multiverse maelstrom 1.4.3-L3.0.6-7ubuntu1 (dsc) [742B]
Get:2 http://us.archive.ubuntu.com hardy/multiverse maelstrom 1.4.3-L3.0.6-7ubuntu1 (tar) [976kB]
Get:3 http://us.archive.ubuntu.com hardy/multiverse maelstrom 1.4.3-L3.0.6-7ubuntu1 (diff) [116kB]
Fetched 1094kB in 16s (65.4kB/s)
gpg: Signature made Thu 05 Jul 2007 03:03:36 AM CDT using DSA key ID 7C8478FC
gpg: Can’t check signature: public key not found
dpkg-source: extracting maelstrom in maelstrom-1.4.3-L3.0.6
dpkg-source: unpacking maelstrom_1.4.3-L3.0.6.orig.tar.gz
dpkg-source: applying ./maelstrom_1.4.3-L3.0.6-7ubuntu1.diff.gz
jonas@Ubuntu4:~$ ls maelstrom*
maelstrom_1.4.3-L3.0.6-7ubuntu1.diff.gz  maelstrom_1.4.3-L3.0.6-7ubuntu1.dsc  maelstrom_1.4.3-L3.0.6.orig.tar.gz

maelstrom-1.4.3-L3.0.6:
acinclude.m4  configure     Docs          load.cpp             Maelstrom.spec     myerror.h        rect.h
aclocal.m4    configure.in  fastrand.cpp  load.h               Maelstrom.spec.in  netlogic         scores.cpp
autogen.sh    controls.cpp  fastrand.h    logic.h              Maelstrom_Sprites  netscore.cpp     scores.h
buttonlist.h  controls.h    icon.bmp      maclib               main.cpp           netscore.h       screenlib
Changelog     COPYING       icon.xpm      Maelstrom_Fonts      Makefile.am        public_key.h     sprintf.list
checksum.cpp  COPYING.GPL   ico_o         Maelstrom_Globals.h  Makefile.in        README
checksum.h    CREDITS       Images        Maelstrom.h          missing            README.joystick
colortable.h  debian        init.cpp      Maelstrom-netd.c     mkinstalldirs      README.network
config.guess  dialog.cpp    INSTALL       Maelstrom-Scores     MPWmake.sea.bin    README.options
config.sub    dialog.h      install-sh    Maelstrom_Sounds     myerror.cpp        rect.cpp
jonas@Ubuntu4:~$

Ok… so I have the source….
before the next step make sure you have fakeroot installed via synaptic
If I understand the instructions from the link above I need to do the following to build a deb package.

jonas@Ubuntu4:~$ cd maelstrom-1.4.3-L3.0.6
jonas@Ubuntu4:~/maelstrom-1.4.3-L3.0.6$ dpkg-buildpackage -rfakeroot -uc -b
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set LDFLAGS to default value: -Wl,-Bsymbolic-functions
dpkg-buildpackage: source package maelstrom
dpkg-buildpackage: source version 1.4.3-L3.0.6-7ubuntu1
dpkg-buildpackage: source changed by Andrea Veri <bluekuja@ubuntu.com>
dpkg-buildpackage: host architecture i386
dpkg-checkbuilddeps: Unmet build dependencies: libsdl1.2-dev (>= 1.0.0) libsdl-net1.2-dev autotools-dev
dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: warning: (Use -d flag to override.)
jonas@Ubuntu4:~/maelstrom-1.4.3-L3.0.6$

Ok… So I got some complaints about unmet dependancies.  So I went to synaptic and searched and downloaded the following:
libsdl1.2-dev
libsdl-net1.2-dev
autotools-dev

Lets try it again….  Apparently dpkg-buildpackage -rfakeroot -uc -b worked this time and created a deb package.  You can double click this from the file browser or from the the terminal:

jonas@Ubuntu4:~$ ls *.deb
maelstrom_1.4.3-L3.0.6-7ubuntu1_i386.deb
jonas@Ubuntu4:~$ sudo dpkg -i maelstrom_1.4.3-L3.0.6-7ubuntu1_i386.deb
Selecting previously deselected package maelstrom.
(Reading database … 162949 files and directories currently installed.)
Unpacking maelstrom (from maelstrom_1.4.3-L3.0.6-7ubuntu1_i386.deb) …
Setting up maelstrom (1.4.3-L3.0.6-7ubuntu1) …
installing debian default score file…

jonas@Ubuntu4:~$

I was hoping recompiling the program from source would automatically take care of the problem…. It didn’t…. I’m going to need to dig further.  My suspicion is that the code is fine, but there’s something messed up with my sound drivers…   Maybe time to dig into the source to figure out what’s going on.

This entry was posted in C++. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *