aboutsummaryrefslogtreecommitdiff
bsd-games-extra - more games ported from *BSD.

This package is meant to have all the games from BSD that are missing
from Slackware's bsd-games. These are:

boggle
bs
cgram
ching
colorbars
dab
dm
grdc
hack
hals_end
larn
paranoia
rogue
tetris

boggle, dm, and tetris are included in the Linux bsd-games-2.13 source
but are not built by Slackware's bsd-games.SlackBuild.

hack, larn, paranoia, and rogue were removed from the Linux port of
bsd-games for license reasons.

The others were never included in the Linux bsd-games source.

Sources:

bs, grdc, hack from DragonFlyBSD git:
http://gitweb.dragonflybsd.org/dragonfly.git/tree/v4.0.3:/games

boggle cgram ching colorbars dab dm hals_end larn rogue tetris are
from NetBSD:
http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/src/games.tar.gz

paranoia isn't actually a BSD game (it came from a magazine), but
it used to be distributed with bsd-games-1.3. I grabbed a copy here:
http://web.mit.edu/games/src/bsd-games/paranoia/

Building:

You need GNU make and the Slackware pmake package (which is an old and
unmaintained port of Berkeley make). Run "make" in the top-level dir,
which will run pmake for each subdir. "make install" will install
everything, "make install DESTDIR=/somewhere" is useful for packagers.

If you're not on Slackware, you probably will need MANDIR=/usr/share/man
on the make command line. Also, if your Berkeley make is called bmake,
say PMAKE=bmake (good luck).

License:

This README and the top-level Makefile are released under the WTFPL,
so do WTF you want with them. include/bsdcompat.h is mostly copied from
either libbsd's headers, or NetBSD source. The games are mostly licensed
with BSD licenses (big surprise there), but see the games themselves
for license details (comments in the source, mostly).

Notes:

I made no gameplay changes, and only two cosmetic changes:

- larn was missing the player's @ symbol. In the ancient versions
  of larn (posted to usenet, ported to DOS, Atari ST, etc), the @
  was there, like most roguelike games use. The code that printed the @
  started causing a segfault on UNIX at some point, so someone removed it,
  and just let the terminal's cursor indicate the player's position. I
  put the @ back and fixed the segfaulting bug because this is how
  the game's original author intended it to be.

- tetris was using black as a color, for the borders and for one of
  the pieces. This is no good in the Linux console, or default
  settings for Konsole or xfce4-terminal, since those all have black
  backgrounds. xterm and rxvt still default to white, but I'm assuming
  anyone old-school enough to use xterm or rxvt for playing Tetris is
  going to already know how to change the bg color.

I took a different approach than the bsd-games package uses. Instead of
rewriting the Makefiles from scratch for GNU make, or using autotools,
I used the BSD Makefiles, with as few modifications as I could get
away with. You can grep for my initials (bkw) to find my changes to the
Makefiles and sources.

Functions like strlcpy() are from libbsd, but trying to #include anything
from /usr/include/bsd just led to breakage, so the neccessary BSD-flavored
macros and prototypes are in include/bsdcompat.h.

For the most part, I stuck with NetBSD sources, where available. The games
ported from DragonFlyBSD mostly don't exist in NetBSD (the exception being
hack; the NetBSD version was giving me fits so I used the DragonFlyBSD
one instead).

A few of these are installed setgid games. YMMV on whether that's an
acceptable security risk, but they were designed to work that way.

If you're not familiar with BSD-style nroff documentation, it might
help to know how to read the rogue manual:

nroff -me /usr/doc/bsd-games-extra-20150209/rogue.me | less -R