123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- Installation instructions
- =========================
- Packaging
- =========
- If packaging bsd-games or bsd-games-non-free for a Linux distribution,
- please read the PACKAGING file for further information after this one.
- Others who wish to install it under a packaging system, or rebuild it
- automatically and without interactive configuration, may also find
- this file useful.
- Non-free games
- ==============
- These installation instructions apply to both bsd-games and
- bsd-games-non-free. bsd-games-non-free contains rogue, which it seems
- cannot be sold for profit, and hack, for which porting but not
- gameplay changes may be made: the rest of the games are under the
- standard BSD distribution conditions, or very similar ones (phantasia
- is public domain, i.e. not copyrighted). As of version 2.2 and later,
- the bsd-games-non-free package unpacks conventionally into a directory
- of its own. It can be built separately from bsd-games, or in the same
- source directory: to do the latter, move those files and directories
- that are in bsd-games-non-free but not bsd-games into the
- bsd-games-VERSION directory before building.
- Prerequisites
- =============
- You need the following to build this distribution:
- * GCC (the C and C++ compilers only - other languages not needed; C++
- only needed for dab).
- * glibc 2.3 or later. Older versions will not work (at least for
- hunt) since they lack the <ifaddrs.h> header.
- * ncurses; other curses / termcap implementations might work, but are
- unsupported.
- * lex and yacc; by default this package will use flex and bison, but
- byacc will probably work as well.
- * GNU make.
- * A POSIX shell, such as bash, in /bin/sh.
- libcrypto from OpenSSL can optionally be used by factor.
- You now need a word list for boggle and hangman; bsd-games no longer
- provides one itself. The GNU miscfiles package contains one, for
- example. The path can be specified at configure time (default:
- /usr/share/dict/words). The file used by hangman can also be
- specified at run time with the "-d" option.
- Security
- ========
- See the SECURITY file for a discussion of security issues about the
- BSD games.
- Alternative implementations
- ===========================
- Some of the programs in this package have alternative implementations
- for Linux available, which you may wish to use some of instead of the
- BSD versions:
- * banner is in util-linux.
- * factor is in GNU sh-utils as of version 1.12q.
- * An extensively modified version of fortune is available as
- "fortune-mod". There are also many additional fortune data files
- (including translations of the ones included here) available.
- * Perl implementations of some of the games are included in the "Perl
- Power Tools" project (http://language.perl.com/ppt/).
- * My enhanced version of ppt with support for PostScript output is
- available as "nppt" from metalab and its mirrors.
- Building and installation
- =========================
- 1. cd to the top level directory in the source distribution, i.e. the
- directory that contains this file. There is not yet any support
- for building in a directory other than the source directory.
- 2. Run "./configure" and configure the installation to your liking.
- There may be some games you don't want to build because you have
- them from elsewhere (see above). You can specify particular games
- you do not want built before specifying the list of games to build
- (which will default to all those available, except those you have
- excluded).
- The filesystem structure used defaults to that the the Filesystem
- Hierarchy Standard (FHS), version 2.0. If you are using the older
- FSSTND 1.2, or a newer FHS, or wish to install into /usr/local,
- check the paths given and make changes as appropriate.
- 3. Type "make". You can probably ignore compiler warnings, although
- most should be fixed in this release. If you are building on a 64
- bit architecture, you might want to look over the warnings and let
- me know about any that are normally significant in such cases.
- Recent versions of gcc give many "missing initializer" warnings;
- these are harmless, as are the warnings in system headers
- mentioned above. Likewise, "null format string" warnings are
- harmless; future versions of GCC will probably eliminate them, by
- allowing headers to specify whether it is OK for a format argument
- to a particular function to be null.
- At the start of the build, there will be many "No such file or
- directory" warnings from make. Ignore these as long as make does
- not stop because of them: these refer to dependency files that
- make can regenerate for itself. See "Automatic Dependencies" in
- the GNU Make manual for details.
- In the unlikely event of an internal compiler error, the build
- system supports generating the files of preprocessor output
- required for a bug report: if the error occurs while compiling
- "foo/bar.c", then "make foo/bar.i" will put the preprocessor
- output in "foo/bar.i", suitable for sending in a bug report along
- with details of compiler version and options used. You may,
- however, wish to minimise the testcase before sending a bug
- report, if you have the time to do so.
- 4. Run the testsuite (non-interactive) with "make check". All tests
- should pass.
- 5. Save copies of any old versions of games you like and their
- datafiles, until you know that the new versions work.
- 6. Become root. (If, as an ordinary user, you are installing under
- your home directory, and have chosen not to set owners and groups
- on the installed files, there is of course no need to do this.)
- 7. Type "make install". If you want the installed binaries to be
- stripped, use "make install-strip" instead. This saves disk
- space, but means that you cannot debug the installed binaries.
- 8. If you had an old installation of bsd-games, check for file
- locations that have changed. You will probably want to remove old
- executables and static data (formerly defaulting to installation
- in /usr/games/lib), and replace any empty score files that have
- been installed with your old ones (checking the permissions).
- The default locations changed again in 2.2, to those mandated by
- the new FHS 2.0 - manpages in /usr/share/man, variable data in
- /var/games. In addition, huntd's default location has changed
- from /usr/sbin back to /usr/games and the location for dm to keep
- hidden games has changed from /usr/libexec/dm to
- /usr/lib/games/dm.
- In version 2.4, the recommended permissions on the directory for
- sail, if you installed it setgid, changed from 0775 to 2770; you
- may need to adjust the permissions manually if you had a previous
- installation of version 2.3.
- 9. The robots scorefile format changed in version 2.8, so any old
- score file should be removed or renamed when first upgrading to
- this or a later version, and a new one created with the correct
- permissions.
- 10. "make distclean" will restore the source directory to the original
- unpacked state. The automatically generated dependency files
- include paths to system headers, including those in gcc's internal
- header directory: if you have changed your compiler or library
- headers between building bsd-games and cleaning up, you can use
- "make distclean nodep=true" to avoid this causing problems.
- "make clean" will restore the sources to the state just after
- configuration.
- Further information
- ===================
- See TODO for information on what needs to be improved in this package;
- you may want to volunteer for some of the things in there.
- The file BUGS lists known bugs. The README file discusses how to
- produce useful bug reports.
- Joseph S. Myers
- jsm@polyomino.org.uk
- Local Variables:
- mode: text
- End:
|