d1x-rebirth and d2x-rebirth SlackBuild
As an old Descent player and a keen user of Slackware Linux I am very pleased to have had my build scripts for d1x-rebirth and d2x-rebirth hosted on Slackbuilds.org:


Hopefully some Slackware users will find this useful Smile.
Updated the scripts for Slackware 14.0:


Hope it is not just me playing d*x-rebirth on Slackware Smile
Yep - and nope.  Wink

I managed to "monkey-wrench" the GOG.com D1/D2 game onto Salix MATE 13.37 - when I try to run the games DOXbox takes a dump on me, but I managed to circumvent that and play D1 through my own DOSbox install. Try to play D2, and get the "CD must be inserted" error.  >Sad Trying to find an answer to that led me to the Rebirth project.

D1x-rebirth runs just fine, except I have no music ( from gamelog.txt: 14:30:12 Music descent.hmp could not be loaded: Module format not recognized ). Haven't loaded D2x-rebirth yet, trying to work out how to get the music playing.
The scripts are still available on SBo, no longer maintained by me but I have a new script that packages dxx-rebirth from git:


This uses a git snapshot which I will be periodically updating. It is more for personal use but may interest any Slackware users who like the cutting edge Smile.
55    # This variable is the short hash for the git commit from which the tarball
    56    # was drawn:
    57    COMMIT=2f4524d3c
Why not use the full hash?
71    TMP=${TMP:-/tmp/ads}
Predictable paths in /tmp are often a latent security problem. Does Slackware use per-user private /tmp to mitigate this? If not, you should consider using mktemp -d to secure a private work area.
75    if [ "$ARCH" = "i586" ]; then
    76      SLKCFLAGS="-O2 -march=i586 -mtune=i686"
    77      LIBDIRSUFFIX=""
LIBDIRSUFFIX is never used. User CXXFLAGS are overridden, so users must modify your script if they wish to set their own flags.[1]
98    chown -R root:root .
This only works if the script is run as root. You should never build programs as root.
105    # There are a few different ways to build this but I have chosen to build twice
   106    # thus allowing different options for each binary if I eventually decide to mix
   107    # things up a little. The screenshot option has the choices none|legacy|png.
You should read the build script more closely. Wink You can set per-game options while still building both games at once, by using the game-specific prefixes.
scons -j8 CXXFLAGS="$SLKCFLAGS" prefix=/usr d1x_sharepath=/usr/share/games/d1x-rebirth d2x_sharepath=/usr/share/games/d2x-rebirth
117    # Store the resulting d1x-rebirth binary away in our package:
   118    mkdir -p $PKG/usr/bin
   119    mv d1x-rebirth/d1x-rebirth $PKG/usr/bin
You can tell SCons to install the file for you.
122    scons -c
There is no need to clean between building. In fact, it is counterproductive, since some built files can be reused between the games. Any that cannot be reused would be rebuilt automatically.
152    find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
   153      | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
That is quite a lot of work to find the exactly two files that you built and installed to predictable names above. Wink

[1] They could use site-local.py instead, but most people don't seem to know about it.
Thanks KP for this review of my build script and my apologies for not seeing your post for almost a year! I will spend the weekend incorporating many of your suggestions...
If you want this script stored in the main repository, you could submit a pull request for it. I already carry a Gentoo ebuild there, and would welcome packaging files for other distributions.
Sounds interesting. I admit that I originally started work on this for a fellow Slackware user who was having a little trouble with the 'official'  script for Descent 2 on Slackbuilds.org (SBo).

I have mostly been pottering around with the script since then to keep myself up to date with dxx-rebirth while still keeping some of the conventions used on SBo: 2 liner for stripping, building as root etc. I will spend a bit more time tidying the script up I think before making it any more public!

And a big 'thanks' for all of your work keeping dxx-rebirth alive and moving forward!!

Forum Jump:

Users browsing this thread: 1 Guest(s)