Subject: RE: [bug #40818] "Add bsd-games"

From: Vitaliy Shatrov <[email-masked]>
Date: Wed, 05 Aug 2020 14:35:08 +0000

Actually sail need the writable directory too.
Do not compile it untill some solution found.

Regards, Vitaliy.

Sent with [ProtonMail](https://protonmail.com) Secure Email.

From 26109469d6e5211f395007b581b39ad374e96655 Mon Sep 17 00:00:00 2001
From: Vitaliy Shatrov <[email-masked]>
Date: Wed, 5 Aug 2020 21:30:26 +0700
Subject: [PATCH] [PATCH] gnu: Add bsd-games.

* gnu/packages/games.scm (bsd-games): a new variable.

New patches, taken from Arch and Debian:
* gnu/packages/patches/bsd-games-2.17-64bit.patch
* gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
* gnu/packages/patches/bsd-games-fix-number-test.patch
* gnu/packages/patches/bsd-games-gamescreen.h.patch
* gnu/packages/patches/bsd-games-getline.patch
* gnu/packages/patches/bsd-games-null-check.patch
* gnu/packages/patches/bsd-games-number.c.patch
* gnu/packages/patches/bsd-games-stdio.h.patch

New patches:
* gnu/packages/patches/bsd-games-add-configure-config.patch
* gnu/packages/patches/bsd-games-dont-install-empty-files.patch
* gnu/packages/patches/bsd-games-use-anthology-style-naming.patch
---
 gnu/packages/games.scm                        | 139 ++++
 .../patches/bsd-games-2.17-64bit.patch        |  43 ++
 .../bsd-games-add-configure-config.patch      |  25 +
 .../patches/bsd-games-bad-ntohl-cast.patch    |  22 +
 .../bsd-games-dont-install-empty-files.patch  |  87 +++
 .../patches/bsd-games-fix-number-test.patch   |  32 +
 .../patches/bsd-games-gamescreen.h.patch      |  15 +
 gnu/packages/patches/bsd-games-getline.patch  | 194 ++++++
 .../patches/bsd-games-null-check.patch        |  24 +
 gnu/packages/patches/bsd-games-number.c.patch | 156 +++++
 gnu/packages/patches/bsd-games-stdio.h.patch  |  14 +
 ...bsd-games-use-anthology-style-naming.patch | 633 ++++++++++++++++++
 12 files changed, 1384 insertions(+)
 create mode 100644 gnu/packages/patches/bsd-games-2.17-64bit.patch
 create mode 100644 gnu/packages/patches/bsd-games-add-configure-config.patch
 create mode 100644 gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
 create mode 100644 gnu/packages/patches/bsd-games-dont-install-empty-files.patch
 create mode 100644 gnu/packages/patches/bsd-games-fix-number-test.patch
 create mode 100644 gnu/packages/patches/bsd-games-gamescreen.h.patch
 create mode 100644 gnu/packages/patches/bsd-games-getline.patch
 create mode 100644 gnu/packages/patches/bsd-games-null-check.patch
 create mode 100644 gnu/packages/patches/bsd-games-number.c.patch
 create mode 100644 gnu/packages/patches/bsd-games-stdio.h.patch
 create mode 100644 gnu/packages/patches/bsd-games-use-anthology-style-naming.patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 0f79f5eeba..4af543401f 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -115,6 +115,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnu-doc)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gperf)
@@ -584,6 +585,144 @@ possible, while battling many vicious aliens.")
                    license:lgpl2.1+
                    license:bsd-2))))
 
+(define-public bsd-games
+  (package
+    (name "bsd-games")
+    (version "2.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://ibiblio.org/pub/linux/games/bsd-games-2.17.tar.gz")
+       (sha256
+        (base32
+         "0q7zdyyfvn15y0w4g54kq3gza89h61py727m8slmw73cxx594vq6"))
+       (patches
+        (search-patches
+         ;; thanks Arch, and Debian
+         "bsd-games-2.17-64bit.patch"
+         "bsd-games-bad-ntohl-cast.patch"
+         "bsd-games-gamescreen.h.patch"
+         "bsd-games-getline.patch"
+         "bsd-games-null-check.patch"
+         "bsd-games-number.c.patch"
+         "bsd-games-stdio.h.patch"
+         "bsd-games-fix-number-test.patch"
+         ;; Guix customizations
+         ;; TODO: make the games with score files and saved state to work.
+         "bsd-games-add-configure-config.patch"
+         "bsd-games-dont-install-empty-files.patch"
+         "bsd-games-use-anthology-style-naming.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("flex" ,flex)
+       ("bison" ,bison)))
+    (inputs
+     `(("curses" ,ncurses)
+       ("pager" ,less)
+       ("miscfiles" ,miscfiles)
+       ("openssl" ,openssl)))  ;used only by 'factor'
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (doc (string-append out "/share/doc/bsd-games-" ,version))
+                    (man (string-append out "/share/man"))
+                    (word-list (string-append (assoc-ref inputs "miscfiles")
+                                              "/share/web2"))
+                    (static-data (string-append out "/share/games/bsd-games"))
+                    ;; TODO.
+                    (save-files "DUMMY"))
+               (substitute* "configure"
+                 (("/usr/share/man") man)
+                 (("/usr/share/doc/bsd-games") doc)
+                 (("/usr/share/[^\n/]*") static-data)
+                 (("/var/games") save-files)
+                 (("/usr/bin/less") (which "less"))
+                 (("(/usr/bin|/usr/games)") bin))
+               (substitute* "config.params"
+                 (("WORD_LIST") word-list))
+               (invoke "./configure"))
+             #t))
+         (add-before 'install 'patch-install
+           ;;; Some games need a writable directory containing pre-maded files.
+           ;;; The files get installed to the Store.  TODO.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (static-data (string-append out "/share/games/bsd-games"))
+                    ;; TODO
+                    (save-files "DUMMY"))
+               ;; We can't install to /var (make install attempts too).
+               (substitute* "Makeconfig" ((save-files) static-data)))
+             #t))
+         (add-after 'install 'install-documents
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/bsd-games-" ,version)))
+               (rename-file "fortune/Notes" "fortune-Notes")
+               (rename-file "fortune/README" "fortune-README")
+               (rename-file "phantasia/COPYRIGHT" "phantasia-COPYRIGHT")
+               (for-each
+                (lambda(file) (install-file file doc))
+                '("AUTHORS" "BUGS" "README" "SECURITY" "THANKS"
+                  "fortune-Notes" "fortune-README" "phantasia-COPYRIGHT")))
+             #t))
+         )))
+    (home-page "https://github.com/vattam/BSDGames")
+    (synopsis "Collection of the old text-based games and amusements")
+    (description
+     "The BSD-games (some are not yet packaged, score files not working):
+
+Action: atc (keep the airplanes safe), hack (explore the dangerous Dungeon),
+hunt (kill the others for the Pair of Boots, multi-player only), robots (avoid
+the evil robots), sail (game of naval warfare with wooden ships), snake (steal
+the $$ from the cave, anger the snake, and get out alive), tetris (game of
+lining up the falling bricks of different shapes), and worm (eat, grow big,
+and neither bite your tail, nor ram the wall).
+
+Amusements: banner (prints a large banner), bcd & morse & ppt (print a punch
+card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers
+the input), factor (factorizes a number), fortune (prints some random
+message), number (translates numbers into text), pig (translates from English
+to Pig Latin), pom (should print the Moon's phase), primes (generates primes),
+rain & worms (plays an screen-saver in terminal), random (prints randomly
+choosen lines from files, or returns a random exit-code), and wtf (explains
+what do some acronyms mean).
+
+Board: backgammon (lead the men out of board faster than the friend do),
+boggle (find the words in the square of letters), dab (game of dots and
+boxes), gomoku (game of five in a row), hangman (guess a word before man is
+hanged), and monop (game of monopoly, hot-seat only).  Also the card-games:
+canfield, cribbage, fish (juniors game), and mille.
+
+Quests: adventure (search for treasures with the help of wizard),
+battlestar (explore the world around, starting from dying spaceship),
+phantasia (role-play as an rogue), trek (hunt the Klingons, and save the
+Federation), and wump (hunt the big smelly Wumpus in a dark cave).
+
+Quizes: arithmetic, and quiz.")
+    ;; "Auxiliary and data files, distributed with the games in NetBSD, but
+    ;; not bearing copyright notices, probably fall under the terms of the UCB
+    ;; or NetBSD copyrights and licences.  The file "fortune/Notes" contains a
+    ;; warning in regard to the fortune databases."
+    (license (list
+              ;; Most games.  Files: countmail/countmail.6, dab/dab.6,
+              ;; lib/strlcpy.c, wargames/wargames.6
+              license:bsd-3
+              ;; dab and hunt.  Files: adventure/extern.h,
+              ;; backgammon/backgammon/backlocal.h, caesar/rot13.in,
+              ;; countmail/countmail, dm/utmpentry.c, dm/utmpentry.h,
+              ;; hack/extern.h, robots/auto.c, sail/display.h,
+              ;; sail/restart.h, wargames/wargames
+              license:bsd-4
+              ;; wtf (the game)
+              license:public-domain
+              ;; phantasia (all but phantasia/pathnames.h.in, which is bsd-3)
+              (license:fsf-free "file:///phantasia/COPYRIGHT")))))
+
+
 (define-public bzflag
   (package
     (name "bzflag")
diff --git a/gnu/packages/patches/bsd-games-2.17-64bit.patch b/gnu/packages/patches/bsd-games-2.17-64bit.patch
new file mode 100644
index 0000000000..a56ea8454b
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-2.17-64bit.patch
@@ -0,0 +1,43 @@
+David Leverton writes about adventure/crc.c:
+
+The 'adventure' game from the games-misc/bsd-games-2.13 package crashes 
+when saving the game on AMD64 (and probably other 64-bit systems, but I 
+haven't checked).  Find attached to fix this.
+
+http://bugs.gentoo.org/show_bug.cgi?id=77032
+
+
+About utmpentry.c:
+
+the utmpx structure defines the ut_tv member a little differently on 
+64bit hosts so that a 32bit and 64bit structure can be shared.  So the 
+ut_tv is a custom 32bit structure rather than the native 64bit timeval 
+structure.  Work around is to assign the submembers instead.
+
+http://bugs.gentoo.org/show_bug.cgi?id=102667
+
+--- bsd-games/adventure/crc.c
++++ bsd-games/adventure/crc.c
+@@ -134,7 +134,8 @@
+ 				if (step >= sizeof(crctab) / sizeof(crctab[0]))
+ 					step = 0;
+ 			}
+-			crcval = (crcval << 8) ^ crctab[i];
++			/* Mask to 32 bits. */
++			crcval = ((crcval << 8) ^ crctab[i]) & 0xffffffff;
+ 		}
+-	return crcval & 0xffffffff;	/* Mask to 32 bits. */
++	return crcval;
+ }
+--- bsd-games/dm/utmpentry.c
++++ bsd-games/dm/utmpentry.c
+@@ -291,7 +291,8 @@
+ 	e->line[sizeof(e->line) - 1] = '\0';
+ 	(void)strncpy(e->host, up->ut_host, sizeof(up->ut_host));
+ 	e->name[sizeof(e->host) - 1] = '\0';
+-	e->tv = up->ut_tv;
++	e->tv.tv_sec = up->ut_tv.tv_sec;
++	e->tv.tv_usec = up->ut_tv.tv_usec;
+ 	adjust_size(e);
+ }
+ #endif
diff --git a/gnu/packages/patches/bsd-games-add-configure-config.patch b/gnu/packages/patches/bsd-games-add-configure-config.patch
new file mode 100644
index 0000000000..e19923417a
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-add-configure-config.patch
@@ -0,0 +1,25 @@
+Remove a few 'setenv's from the definition.
+
+diff -Naur bsd-games-2.17/config.params bsd-games-patch/config.params
+--- bsd-games-2.17/config.params	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/config.params	2020-04-22 20:49:40.809695248 +0700
+@@ -0,0 +1,19 @@
++bsd_games_cfg_do_chown=n
++bsd_games_cfg_non_interactive=y
++
++# The offensive fortunes shown only if requested by user.
++bsd_games_cfg_offensive_fortunes=y
++
++# Fix some man-pages: cfscores, morse, ppt, rot13, snscore, teachgammon.
++bsd_games_cfg_use_dot_so=syml
++
++# Don't build dm, countmail, hack, phantasia, and wargames.
++# Wargames isn't convenient as a game launcher.
++# dm is a toy to restrict access to bsd-games.
++# countmail require some BSD-package called `from`.
++# TODO: phantasia, sail, and hack need an writable directory.
++bsd_games_cfg_no_build_dirs="wargames dm countmail phantasia sail hack"
++
++# Those are substitute*'d with GNU miscfiles.
++bsd_games_cfg_hangman_wordsfile=WORD_LIST
++bsd_games_cfg_dictionary_src=WORD_LIST
diff --git a/gnu/packages/patches/bsd-games-bad-ntohl-cast.patch b/gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
new file mode 100644
index 0000000000..f783813e95
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
@@ -0,0 +1,22 @@
+diff --git a/hunt/hunt/playit.c b/hunt/hunt/playit.c
+index 9acf86e..881a4e7 100644
+--- a/hunt/hunt/playit.c
++++ b/hunt/hunt/playit.c
+@@ -114,7 +114,7 @@ playit()
+ 		bad_con();
+ 		/* NOTREACHED */
+ 	}
+-	if (ntohl(version) != (unsigned long)HUNT_VERSION) {
++	if (ntohl(version) != (uint32_t)HUNT_VERSION) {
+ 		bad_ver();
+ 		/* NOTREACHED */
+ 	}
+@@ -649,7 +649,7 @@ do_message()
+ 		bad_con();
+ 		/* NOTREACHED */
+ 	}
+-	if (ntohl(version) != (unsigned long)HUNT_VERSION) {
++	if (ntohl(version) != (uint32_t)HUNT_VERSION) {
+ 		bad_ver();
+ 		/* NOTREACHED */
+ 	}
diff --git a/gnu/packages/patches/bsd-games-dont-install-empty-files.patch b/gnu/packages/patches/bsd-games-dont-install-empty-files.patch
new file mode 100644
index 0000000000..0cb7deab5a
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-dont-install-empty-files.patch
@@ -0,0 +1,87 @@
+Those games rely on user to provide the files to write scores in.
+Those score-files are initially empty.  Anyway, the Store is read-only.
+So we do not install those empty files.
+
+diff -Naur bsd-games-2.17/install-score.in bsd-games-patch/install-score.in
+--- bsd-games-2.17/install-score.in	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/install-score.in	2020-04-22 21:41:47.810544804 +0700
+@@ -1,45 +0,0 @@
+-# install-score.in - install a score file
+-#
+-# Copyright (c) 1997, 1998, 1999 Joseph Samuel Myers.
+-# All rights reserved.
+-#
+-# Redistribution and use in source and binary forms, with or without
+-# modification, are permitted provided that the following conditions
+-# are met:
+-# 1. Redistributions of source code must retain the above copyright
+-#    notice, this list of conditions and the following disclaimer.
+-# 2. Redistributions in binary form must reproduce the above copyright
+-#    notice, this list of conditions and the following disclaimer in the
+-#    documentation and/or other materials provided with the distribution.
+-# 3. The name of the author may not be used to endorse or promote products
+-#    derived from this software without specific prior written permission.
+-#
+-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+-# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-# SUCH DAMAGE.
+-
+-set -e
+-
+-if [ "$1" = "-p" ]; then
+-    scorefile="@install_prefix@$2"
+-    perms=@vardata_perms_priv@
+-else
+-    scorefile="@install_prefix@$1"
+-    perms=@vardata_perms@
+-fi
+-
+-mkdir -p "$(dirname "$scorefile")"
+-
+-test -e "$scorefile" || touch "$scorefile"
+-if [ @do_chown@ = y ]; then
+-    chown @vardata_owner@:@vardata_group@ "$scorefile"
+-fi
+-chmod "$perms" "$scorefile"
+diff -Naur bsd-games-2.17/phantasia/Makefrag bsd-games-patch/phantasia/Makefrag
+--- bsd-games-2.17/phantasia/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/phantasia/Makefrag	2020-04-22 21:26:00.162409464 +0700
+@@ -27,9 +27,8 @@
+ # SUCH DAMAGE.
+ 
+ phantasia_DIRS := $(GAMESDIR) $(MAN6DIR) $(PHANTASIA_DIR)
+-phantasia_VFILES1 := gold lastdead mess monsters motd void
+-phantasia_VFILES2 := scoreboard characs
+-phantasia_CLEANFILES := $(phantasia_VFILES1) $(phantasia_VFILES2) scorefiles.stamp
++phantasia_VFILES1 := monsters
++phantasia_CLEANFILES := $(phantasia_VFILES1) scorefiles.stamp
+ 
+ phantasia_all:	phantasia/phantasia phantasia/phantasia.6 phantasia/scorefiles.stamp
+ 
+@@ -43,9 +42,4 @@
+ 	(set -e; for f in $(phantasia_VFILES1); do \
+ 	    cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; \
+ 	    $(INSTALL_SCORE_FILE) $(PHANTASIA_DIR)/$$f; done)
+-	(set -e; for f in $(phantasia_VFILES2); do \
+-	    if [ ! -e $(PHANTASIA_DIR)/$$f ]; then \
+-		cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; fi; done; \
+-	    $(INSTALL_SCORE_FILE) $(PHANTASIA_DIR)/scoreboard; \
+-	    $(INSTALL_SCORE_FILE) -p $(PHANTASIA_DIR)/characs)
+ 	$(INSTALL_MANUAL) phantasia/phantasia.6
+diff -Naur bsd-games-2.17/sail/Makefrag bsd-games-patch/sail/Makefrag
+--- bsd-games-2.17/sail/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/sail/Makefrag	2020-04-22 21:26:48.701801676 +0700
+@@ -34,5 +34,4 @@
+ 	$(INSTALL_SCORE_GAME) sail/sail $(INSTALL_PREFIX)$(GAMESDIR)/sail
+ 	$(HIDE_GAME) sail
+ 	$(INSTALL_SCORE_FILE) $(SAIL_SCOREFILE)
+-	$(INSTALL_SAIL_DIR) $(INSTALL_PREFIX)$(SAIL_DIR)
+ 	$(INSTALL_MANUAL) sail/sail.6
diff --git a/gnu/packages/patches/bsd-games-fix-number-test.patch b/gnu/packages/patches/bsd-games-fix-number-test.patch
new file mode 100644
index 0000000000..26ff84e51f
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-fix-number-test.patch
@@ -0,0 +1,32 @@
+number is a program that translates the decimal numbers like this:
+0.1 --> one tenth_.
+0.2 --> two tenth_S.
+This patch fix the test.
+
+diff -Naur bsd-games-2.17/tests/number.-0.1 bsd-games-patch/tests/number.-0.1
+--- bsd-games-2.17/tests/number.-0.1	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tests/number.-0.1	2020-04-17 15:14:27.831098084 +0700
+@@ -1,3 +1,3 @@
+ minus
+ one.
+-tenths.
++tenth.
+diff -Naur bsd-games-2.17/tests/number.-0.2 bsd-games-patch/tests/number.-0.2
+--- bsd-games-2.17/tests/number.-0.2	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tests/number.-0.2	2020-04-17 15:20:48.162336279 +0700
+@@ -0,0 +1,3 @@
++minus
++two.
++tenths.
+diff -Naur bsd-games-2.17/tests/number.test bsd-games-patch/tests/number.test
+--- bsd-games-2.17/tests/number.test	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/tests/number.test	2020-04-17 15:20:22.774654155 +0700
+@@ -36,6 +36,8 @@
+ testno 1
+ number/number -- -0.1 >test.out 2>&1 || failtest
+ compare test.out tests/number.-0.1
++number/number -- -0.2 >test.out 2>&1 || failtest
++compare test.out tests/number.-0.2
+ rm -f test.out
+ 
+ testno 2
diff --git a/gnu/packages/patches/bsd-games-gamescreen.h.patch b/gnu/packages/patches/bsd-games-gamescreen.h.patch
new file mode 100644
index 0000000000..f74ebcb4be
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-gamescreen.h.patch
@@ -0,0 +1,15 @@
+--- a/dab/gamescreen.h	2004-01-02 23:34:51.000000000 +0530
++++ b/dab/gamescreen.h	2008-07-31 23:45:19.000000000 +0530
+@@ -70,9 +70,9 @@
+     virtual void redraw(void) = 0;			// Refresh
+     virtual int getinput(void) = 0;			// Get user input
+     virtual void bell(void) = 0;			// Beep
+-    virtual void score(size_t p, const PLAYER& p) = 0;	// Post current score
+-    virtual void games(size_t p, const PLAYER& p) = 0;	// Post games won
+-    virtual void total(size_t p, const PLAYER& p) = 0;	// Post total score
++    virtual void score(size_t, const PLAYER&) = 0;	// Post current score
++    virtual void games(size_t, const PLAYER&) = 0;	// Post games won
++    virtual void total(size_t, const PLAYER&) = 0;	// Post total score
+     virtual void ties(const PLAYER& p) = 0;		// Post tie games
+ };
+ 
diff --git a/gnu/packages/patches/bsd-games-getline.patch b/gnu/packages/patches/bsd-games-getline.patch
new file mode 100644
index 0000000000..99a6638477
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-getline.patch
@@ -0,0 +1,194 @@
+diff -Naur bsd-games-2.17/boggle/boggle/bog.c bsd-games-2.17.1/boggle/boggle/bog.c
+--- bsd-games-2.17/boggle/boggle/bog.c	2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/bog.c	2010-05-22 10:51:23.000000000 -0500
+@@ -336,7 +336,7 @@
+ 	}
+ 
+ 	while (1) {
+-		if (getline(buf) == NULL) {
++		if (boggle_getline(buf) == NULL) {
+ 			if (feof(stdin))
+ 				clearerr(stdin);
+ 			break;
+diff -Naur bsd-games-2.17/boggle/boggle/extern.h bsd-games-2.17.1/boggle/boggle/extern.h
+--- bsd-games-2.17/boggle/boggle/extern.h	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/extern.h	2010-05-22 10:51:23.000000000 -0500
+@@ -43,7 +43,7 @@
+ long	 dictseek(FILE *, long, int);
+ void	 findword(void);
+ void	 flushin(FILE *);
+-char	*getline(char *);
++char	*boggle_getline(char *);
+ void	 getword(char *);
+ int	 help(void);
+ int	 inputch(void);
+diff -Naur bsd-games-2.17/boggle/boggle/mach.c bsd-games-2.17.1/boggle/boggle/mach.c
+--- bsd-games-2.17/boggle/boggle/mach.c	2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/mach.c	2010-05-22 10:51:23.000000000 -0500
+@@ -168,7 +168,7 @@
+  * - doesn't accept words longer than MAXWORDLEN or containing caps
+  */
+ char *
+-getline(q)
++boggle_getline(q)
+ 	char *q;
+ {
+ 	int ch, done;
+diff -Naur bsd-games-2.17/cribbage/cribbage.h bsd-games-2.17.1/cribbage/cribbage.h
+--- bsd-games-2.17/cribbage/cribbage.h	2004-02-08 16:29:14.000000000 -0600
++++ bsd-games-2.17.1/cribbage/cribbage.h	2010-05-22 10:51:23.000000000 -0500
+@@ -77,7 +77,7 @@
+ int	 fifteens(const CARD [], int);
+ void	 game(void);
+ void	 gamescore(void);
+-char	*getline(void);
++char	*cribbage_getline(void);
+ int	 getuchar(void);
+ int	 incard(CARD *);
+ int	 infrom(const CARD [], int, const char *);
+diff -Naur bsd-games-2.17/cribbage/crib.c bsd-games-2.17.1/cribbage/crib.c
+--- bsd-games-2.17/cribbage/crib.c	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/cribbage/crib.c	2010-05-22 10:51:23.000000000 -0500
+@@ -221,7 +221,7 @@
+ 			if (!rflag) {			/* player cuts deck */
+ 				msg(quiet ? "Cut for crib? " :
+ 			    "Cut to see whose crib it is -- low card wins? ");
+-				getline();
++				cribbage_getline();
+ 			}
+ 			i = (rand() >> 4) % CARDS;	/* random cut */
+ 			do {	/* comp cuts deck */
+@@ -397,7 +397,7 @@
+ 		if (!rflag) {	/* random cut */
+ 			msg(quiet ? "Cut the deck? " :
+ 		    "How many cards down do you wish to cut the deck? ");
+-			getline();
++			cribbage_getline();
+ 		}
+ 		i = (rand() >> 4) % (CARDS - pos);
+ 		turnover = deck[i + pos];
+diff -Naur bsd-games-2.17/cribbage/io.c bsd-games-2.17.1/cribbage/io.c
+--- bsd-games-2.17/cribbage/io.c	2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/cribbage/io.c	2010-05-22 10:51:23.000000000 -0500
+@@ -245,7 +245,7 @@
+ 
+ 	retval = FALSE;
+ 	rnk = sut = EMPTY;
+-	if (!(line = getline()))
++	if (!(line = cribbage_getline()))
+ 		goto gotit;
+ 	p = p1 = line;
+ 	while (*p1 != ' ' && *p1 != '\0')
+@@ -346,7 +346,7 @@
+ 
+ 	for (sum = 0;;) {
+ 		msg(prompt);
+-		if (!(p = getline()) || *p == '\0') {
++		if (!(p = cribbage_getline()) || *p == '\0') {
+ 			msg(quiet ? "Not a number" :
+ 			    "That doesn't look like a number");
+ 			continue;
+@@ -528,12 +528,12 @@
+ }
+ 
+ /*
+- * getline:
++ * cribbage_getline:
+  *      Reads the next line up to '\n' or EOF.  Multiple spaces are
+  *	compressed to one space; a space is inserted before a ','
+  */
+ char *
+-getline()
++cribbage_getline()
+ {
+ 	char *sp;
+ 	int c, oy, ox;
+diff -Naur bsd-games-2.17/gomoku/bdisp.c bsd-games-2.17.1/gomoku/bdisp.c
+--- bsd-games-2.17/gomoku/bdisp.c	2003-12-16 20:47:37.000000000 -0600
++++ bsd-games-2.17.1/gomoku/bdisp.c	2010-05-22 10:51:23.000000000 -0500
+@@ -241,7 +241,7 @@
+ }
+ 
+ int
+-getline(buf, size)
++gomoku_getline(buf, size)
+ 	char *buf;
+ 	int size;
+ {
+diff -Naur bsd-games-2.17/gomoku/gomoku.h bsd-games-2.17.1/gomoku/gomoku.h
+--- bsd-games-2.17/gomoku/gomoku.h	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/gomoku/gomoku.h	2010-05-22 10:51:23.000000000 -0500
+@@ -263,7 +263,7 @@
+ 
+ void	bdinit(struct spotstr *);
+ void	init_overlap(void);
+-int	getline(char *, int);
++int	gomoku_getline(char *, int);
+ void	ask(const char *);
+ void	dislog(const char *);
+ void	bdump(FILE *);
+diff -Naur bsd-games-2.17/gomoku/main.c bsd-games-2.17.1/gomoku/main.c
+--- bsd-games-2.17/gomoku/main.c	2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/gomoku/main.c	2010-05-22 10:51:23.000000000 -0500
+@@ -155,7 +155,7 @@
+ 		if (inputfp == NULL && test == 0) {
+ 			for (;;) {
+ 				ask("black or white? ");
+-				getline(buf, sizeof(buf));
++				gomoku_getline(buf, sizeof(buf));
+ 				if (buf[0] == 'b' || buf[0] == 'B') {
+ 					color = BLACK;
+ 					break;
+@@ -172,7 +172,7 @@
+ 		}
+ 	} else {
+ 		setbuf(stdout, 0);
+-		getline(buf, sizeof(buf));
++		gomoku_getline(buf, sizeof(buf));
+ 		if (strcmp(buf, "black") == 0)
+ 			color = BLACK;
+ 		else if (strcmp(buf, "white") == 0)
+@@ -244,7 +244,7 @@
+ 		getinput:
+ 			if (interactive)
+ 				ask("move? ");
+-			if (!getline(buf, sizeof(buf))) {
++			if (!gomoku_getline(buf, sizeof(buf))) {
+ 				curmove = RESIGN;
+ 				break;
+ 			}
+@@ -256,7 +256,7 @@
+ 					FILE *fp;
+ 
+ 					ask("save file name? ");
+-					(void)getline(buf, sizeof(buf));
++					(void)gomoku_getline(buf, sizeof(buf));
+ 					if ((fp = fopen(buf, "w")) == NULL) {
+ 						glog("cannot create save file");
+ 						goto getinput;
+@@ -309,14 +309,14 @@
+ 		if (i != RESIGN) {
+ 		replay:
+ 			ask("replay? ");
+-			if (getline(buf, sizeof(buf)) &&
++			if (gomoku_getline(buf, sizeof(buf)) &&
+ 			    (buf[0] == 'y' || buf[0] == 'Y'))
+ 				goto again;
+ 			if (strcmp(buf, "save") == 0) {
+ 				FILE *fp;
+ 
+ 				ask("save file name? ");
+-				(void)getline(buf, sizeof(buf));
++				(void)gomoku_getline(buf, sizeof(buf));
+ 				if ((fp = fopen(buf, "w")) == NULL) {
+ 					glog("cannot create save file");
+ 					goto replay;
+@@ -367,7 +367,7 @@
+ 		quit();
+ top:
+ 	ask("cmd? ");
+-	if (!getline(fmtbuf, sizeof(fmtbuf)))
++	if (!gomoku_getline(fmtbuf, sizeof(fmtbuf)))
+ 		quit();
+ 	switch (*fmtbuf) {
+ 	case '\0':
diff --git a/gnu/packages/patches/bsd-games-null-check.patch b/gnu/packages/patches/bsd-games-null-check.patch
new file mode 100644
index 0000000000..048ed93f40
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-null-check.patch
@@ -0,0 +1,24 @@
+diff --git a/hunt/hunt/hunt.c b/hunt/hunt/hunt.c
+index 11f4c44..28321bc 100644
+--- a/hunt/hunt/hunt.c
++++ b/hunt/hunt/hunt.c
+@@ -394,7 +394,8 @@ broadcast_vec(s, vector)
+ 
+ 	vec_cnt = 0;
+ 	for (ip = ifp; ip; ip = ip->ifa_next)
+-		if ((ip->ifa_addr->sa_family == AF_INET) &&
++		if (ip->ifa_addr &&
++		    (ip->ifa_addr->sa_family == AF_INET) &&
+ 		    (ip->ifa_flags & IFF_BROADCAST))
+ 			vec_cnt++;
+ 
+@@ -405,7 +406,8 @@ broadcast_vec(s, vector)
+ 
+ 	vec_cnt = 0;
+ 	for (ip = ifp; ip; ip = ip->ifa_next)
+-		if ((ip->ifa_addr->sa_family == AF_INET) &&
++		if (ip->ifa_addr &&
++		    (ip->ifa_addr->sa_family == AF_INET) &&
+ 		    (ip->ifa_flags & IFF_BROADCAST))
+ 			memcpy(&(*vector)[vec_cnt++], ip->ifa_broadaddr,
+ 			       sizeof(struct sockaddr_in));
diff --git a/gnu/packages/patches/bsd-games-number.c.patch b/gnu/packages/patches/bsd-games-number.c.patch
new file mode 100644
index 0000000000..1acbeff30a
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-number.c.patch
@@ -0,0 +1,156 @@
+--- bsdgames-2.17.orig/number/number.c
++++ bsdgames-2.17/number/number.c
+@@ -78,9 +78,9 @@
+ 
+ void	convert(char *);
+ int	main(int, char *[]);
+-int	number(const char *, int);
+-void	pfract(int);
+-int	unit(int, const char *);
++int	number(const char *, int, int *);
++void	pfract(int, int);
++int	unit(int, const char *, int *);
+ void	usage(void) __attribute__((__noreturn__));
+ 
+ int lflag;
+@@ -131,7 +131,7 @@
+ convert(line)
+ 	char *line;
+ {
+-	int flen, len, rval;
++	int flen, len, rval, singular;
+ 	char *p, *fraction;
+ 
+ 	flen = 0;
+@@ -174,7 +174,7 @@
+ 		--len;
+ 	}
+ 
+-	rval = len > 0 ? unit(len, line) : 0;
++	rval = len > 0 ? unit(len, line, &singular) : 0;
+ 	if (fraction != NULL && flen != 0)
+ 		for (p = fraction; *p != '\0'; ++p)
+ 			if (*p != '0') {
+@@ -182,10 +182,10 @@
+ 					(void)printf("%sand%s",
+ 					    lflag ? " " : "",
+ 					    lflag ? " " : "\n");
+-				if (unit(flen, fraction)) {
++				if (unit(flen, fraction, &singular)) {
+ 					if (lflag)
+ 						(void)printf(" ");
+-					pfract(flen);
++					pfract(flen, singular);
+ 					rval = 1;
+ 				}
+ 				break;
+@@ -197,9 +197,10 @@
+ }
+ 
+ int
+-unit(len, p)
++unit(len, p, singular)
+ 	int len;
+ 	const char *p;
++	int *singular;
+ {
+ 	int off, rval;
+ 
+@@ -208,7 +209,7 @@
+ 		if (len % 3) {
+ 			off = len % 3;
+ 			len -= off;
+-			if (number(p, off)) {
++			if (number(p, off, singular)) {
+ 				rval = 1;
+ 				(void)printf(" %s%s",
+ 				    name3[len / 3], lflag ? " " : ".\n");
+@@ -217,14 +218,16 @@
+ 		}
+ 		for (; len > 3; p += 3) {
+ 			len -= 3;
+-			if (number(p, 3)) {
++			if (number(p, 3, singular)) {
+ 				rval = 1;
+ 				(void)printf(" %s%s",
+ 				    name3[len / 3], lflag ? " " : ".\n");
+ 			}
+ 		}
+ 	}
+-	if (number(p, len)) {
++	if (number(p, len, singular)) {
++		if (rval)
++			*singular = 0;
+ 		if (!lflag)
+ 			(void)printf(".\n");
+ 		rval = 1;
+@@ -233,17 +236,20 @@
+ }
+ 
+ int
+-number(p, len)
++number(p, len, singular)
+ 	const char *p;
+ 	int len;
++	int *singular;
+ {
+ 	int val, rval;
+ 
+ 	rval = 0;
++	*singular = 1;
+ 	switch (len) {
+ 	case 3:
+ 		if (*p != '0') {
+ 			rval = 1;
++			*singular = 0;
+ 			(void)printf("%s hundred", name1[*p - '0']);
+ 		}
+ 		++p;
+@@ -262,33 +268,42 @@
+ 			}
+ 			rval = 1;
+ 		}
++		if (val != 1)
++			*singular = 0;
+ 		break;
+ 	case 1:
+ 		if (*p != '0') {
+ 			rval = 1;
+ 			(void)printf("%s", name1[*p - '0']);
+ 		}
++		if (*p != '1')
++			*singular = 0;
+ 	}
+ 	return (rval);
+ }
+ 
+ void
+-pfract(len)
++pfract(len, singular)
+ 	int len;
++	int singular;
+ {
+ 	static const char *const pref[] = { "", "ten-", "hundred-" };
+ 
+ 	switch(len) {
+ 	case 1:
+-		(void)printf("tenths.\n");
++		(void)printf("tenth");
+ 		break;
+ 	case 2:
+-		(void)printf("hundredths.\n");
++		(void)printf("hundredth");
+ 		break;
+ 	default:
+-		(void)printf("%s%sths.\n", pref[len % 3], name3[len / 3]);
++		(void)printf("%s%sth", pref[len % 3], name3[len / 3]);
+ 		break;
+ 	}
++	if (!singular) {
++		printf("s");
++	}
++	printf(".\n");
+ }
+ 
+ void
+
diff --git a/gnu/packages/patches/bsd-games-stdio.h.patch b/gnu/packages/patches/bsd-games-stdio.h.patch
new file mode 100644
index 0000000000..786fa54c4f
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-stdio.h.patch
@@ -0,0 +1,14 @@
+diff -ru a/include/stdio.h b/include/stdio.h
+--- a/include/stdio.h	2000-08-04 10:24:39.000000000 +1000
++++ b/include/stdio.h	2005-06-18 14:26:35.000000000 +1000
+@@ -34,6 +34,10 @@
+ #include <bsd-games.h>
+ #include_next <stdio.h>
+ 
++__BEGIN_DECLS
++
+ #ifndef HAVE_fgetln
+ extern char *fgetln(FILE *stream, size_t *len);
+ #endif
++
++__END_DECLS
diff --git a/gnu/packages/patches/bsd-games-use-anthology-style-naming.patch b/gnu/packages/patches/bsd-games-use-anthology-style-naming.patch
new file mode 100644
index 0000000000..0b311f4448
--- /dev/null
+++ b/gnu/packages/patches/bsd-games-use-anthology-style-naming.patch
@@ -0,0 +1,633 @@
+This append the prefix 'bsd-' to the executables, and the manual pages.  This
+prevents the name collisions, ever.  Also it allow the user to type "bsd-",
+press the Tab key, and see the list of all bsd-games at once, which is nice.
+The games were tested after this renaming, and they do work.
+
+Also this patch hides teachgammon, as this is an executable for tutorial of
+backgammon game.  The tutorial is offered to the user at the game start.
+
+diff -Naur bsd-games-2.17/adventure/Makefrag bsd-games-patch/adventure/Makefrag
+--- bsd-games-2.17/adventure/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/adventure/Makefrag	2020-04-23 22:10:57.717880094 +0700
+@@ -35,6 +35,6 @@
+ 	adventure/setup $< >$@
+ 
+ adventure_install:	adventure_all
+-	$(INSTALL_BINARY) adventure/adventure $(INSTALL_PREFIX)$(GAMESDIR)/adventure
++	$(INSTALL_BINARY) adventure/adventure $(INSTALL_PREFIX)$(GAMESDIR)/bsd-adventure
+ 	$(HIDE_GAME) adventure
+ 	$(INSTALL_MANUAL) adventure/adventure.6
+diff -Naur bsd-games-2.17/arithmetic/Makefrag bsd-games-patch/arithmetic/Makefrag
+--- bsd-games-2.17/arithmetic/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/arithmetic/Makefrag	2020-04-23 22:10:57.721880044 +0700
+@@ -32,6 +32,6 @@
+ arithmetic_all:	arithmetic/arithmetic arithmetic/arithmetic.6
+ 
+ arithmetic_install:	arithmetic/arithmetic
+-	$(INSTALL_BINARY) arithmetic/arithmetic $(INSTALL_PREFIX)$(GAMESDIR)/arithmetic
++	$(INSTALL_BINARY) arithmetic/arithmetic $(INSTALL_PREFIX)$(GAMESDIR)/bsd-arithmetic
+ 	$(HIDE_GAME) arithmetic
+ 	$(INSTALL_MANUAL) arithmetic/arithmetic.6
+diff -Naur bsd-games-2.17/atc/Makefrag bsd-games-patch/atc/Makefrag
+--- bsd-games-2.17/atc/Makefrag	2020-04-23 22:20:15.274899300 +0700
++++ bsd-games-patch/atc/Makefrag	2020-04-23 22:10:57.729879944 +0700
+@@ -47,7 +47,7 @@
+ 	mv atc/lex.yy.c $@
+ 
+ atc_install:	atc_all
+-	$(INSTALL_SCORE_GAME) atc/atc $(INSTALL_PREFIX)$(GAMESDIR)/atc
++	$(INSTALL_SCORE_GAME) atc/atc $(INSTALL_PREFIX)$(GAMESDIR)/bsd-atc
+ 	$(HIDE_GAME) atc
+ 	$(INSTALL_SCORE_FILE) $(ATC_SCOREFILE)
+ 	$(INSTALL_MANUAL) atc/atc.6
+diff -Naur bsd-games-2.17/backgammon/backgammon/Makefrag bsd-games-patch/backgammon/backgammon/Makefrag
+--- bsd-games-2.17/backgammon/backgammon/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/backgammon/backgammon/Makefrag	2020-04-23 22:10:57.741879794 +0700
+@@ -33,6 +33,6 @@
+ backgammon_backgammon_all:	backgammon/backgammon/backgammon backgammon/backgammon/backgammon.6
+ 
+ backgammon_backgammon_install:	backgammon_backgammon_all
+-	$(INSTALL_BINARY) backgammon/backgammon/backgammon $(INSTALL_PREFIX)$(GAMESDIR)/backgammon
++	$(INSTALL_BINARY) backgammon/backgammon/backgammon $(INSTALL_PREFIX)$(GAMESDIR)/bsd-backgammon
+ 	$(HIDE_GAME) backgammon
+ 	$(INSTALL_MANUAL) backgammon/backgammon/backgammon.6
+diff -Naur bsd-games-2.17/backgammon/common_source/Makefrag bsd-games-patch/backgammon/common_source/Makefrag
+--- bsd-games-2.17/backgammon/common_source/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/backgammon/common_source/Makefrag	2020-04-23 22:10:57.749879693 +0700
+@@ -26,8 +26,8 @@
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ # SUCH DAMAGE.
+ 
+-backgammon_common_source_EXEC_PATH := $(GAMESDIR)/backgammon
+-backgammon_common_source_TEACH_PATH := $(GAMESDIR)/teachgammon
++backgammon_common_source_EXEC_PATH := $(GAMESDIR)/bsd-backgammon
++backgammon_common_source_TEACH_PATH := $(GAMESDIR)/.bsd-teachgammon
+ 
+ backgammon_common_source_DEFS := -DEXEC_PATH=\"$(backgammon_common_source_EXEC_PATH)\" -DTEACH_PATH=\"$(backgammon_common_source_TEACH_PATH)\"
+ 
+diff -Naur bsd-games-2.17/backgammon/teachgammon/Makefrag bsd-games-patch/backgammon/teachgammon/Makefrag
+--- bsd-games-2.17/backgammon/teachgammon/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/backgammon/teachgammon/Makefrag	2020-04-23 22:10:57.753879644 +0700
+@@ -33,6 +33,6 @@
+ backgammon_teachgammon_all:	backgammon/teachgammon/teachgammon
+ 
+ backgammon_teachgammon_install:	backgammon_teachgammon_all
+-	$(INSTALL_BINARY) backgammon/teachgammon/teachgammon $(INSTALL_PREFIX)$(GAMESDIR)/teachgammon
++	$(INSTALL_BINARY) backgammon/teachgammon/teachgammon $(INSTALL_PREFIX)$(GAMESDIR)/.bsd-teachgammon
+ 	$(HIDE_GAME) teachgammon
+ 	$(INSTALL_MANUAL) backgammon.6 teachgammon.6
+diff -Naur bsd-games-2.17/banner/Makefrag bsd-games-patch/banner/Makefrag
+--- bsd-games-2.17/banner/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/banner/Makefrag	2020-04-23 22:10:57.761879543 +0700
+@@ -31,6 +31,6 @@
+ banner_all:	banner/banner banner/banner.6
+ 
+ banner_install:	banner_all
+-	$(INSTALL_BINARY) banner/banner $(INSTALL_PREFIX)$(GAMESDIR)/banner
++	$(INSTALL_BINARY) banner/banner $(INSTALL_PREFIX)$(GAMESDIR)/bsd-banner
+ 	$(HIDE_GAME) banner
+ 	$(INSTALL_MANUAL) banner/banner.6
+diff -Naur bsd-games-2.17/battlestar/Makefrag bsd-games-patch/battlestar/Makefrag
+--- bsd-games-2.17/battlestar/Makefrag	2020-04-23 22:20:15.274899300 +0700
++++ bsd-games-patch/battlestar/Makefrag	2020-04-23 22:10:57.769879443 +0700
+@@ -32,7 +32,7 @@
+ battlestar_all:	battlestar/battlestar battlestar/battlestar.6
+ 
+ battlestar_install:	battlestar_all
+-	$(INSTALL_SCORE_GAME) battlestar/battlestar $(INSTALL_PREFIX)$(GAMESDIR)/battlestar
++	$(INSTALL_SCORE_GAME) battlestar/battlestar $(INSTALL_PREFIX)$(GAMESDIR)/bsd-battlestar
+ 	$(HIDE_GAME) battlestar
+ 	$(INSTALL_MANUAL) battlestar/battlestar.6
+ 	$(INSTALL_SCORE_FILE) $(BATTLESTAR_SCOREFILE)
+diff -Naur bsd-games-2.17/bcd/Makefrag bsd-games-patch/bcd/Makefrag
+--- bsd-games-2.17/bcd/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/bcd/Makefrag	2020-04-23 22:10:57.773879393 +0700
+@@ -31,6 +31,6 @@
+ bcd_all:	bcd/bcd bcd/bcd.6
+ 
+ bcd_install:	bcd_all
+-	$(INSTALL_BINARY) bcd/bcd $(INSTALL_PREFIX)$(GAMESDIR)/bcd
++	$(INSTALL_BINARY) bcd/bcd $(INSTALL_PREFIX)$(GAMESDIR)/bsd-bcd
+ 	$(HIDE_GAME) bcd
+ 	$(INSTALL_MANUAL) bcd/bcd.6
+diff -Naur bsd-games-2.17/boggle/boggle/Makefrag bsd-games-patch/boggle/boggle/Makefrag
+--- bsd-games-2.17/boggle/boggle/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/boggle/boggle/Makefrag	2020-04-23 22:10:57.785879242 +0700
+@@ -35,7 +35,7 @@
+ boggle_boggle_all:	boggle/boggle/boggle boggle/boggle/boggle.6 boggle/boggle/helpfile
+ 
+ boggle_boggle_install:	boggle_boggle_all
+-	$(INSTALL_BINARY) boggle/boggle/boggle $(INSTALL_PREFIX)$(GAMESDIR)/boggle
++	$(INSTALL_BINARY) boggle/boggle/boggle $(INSTALL_PREFIX)$(GAMESDIR)/bsd-boggle
+ 	$(HIDE_GAME) boggle
+ 	$(INSTALL_MANUAL) boggle/boggle/boggle.6
+ 	$(INSTALL_DATA) boggle/boggle/helpfile $(INSTALL_PREFIX)$(BOGGLE_DIR)/helpfile
+diff -Naur bsd-games-2.17/caesar/Makefrag bsd-games-patch/caesar/Makefrag
+--- bsd-games-2.17/caesar/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/caesar/Makefrag	2020-04-23 22:10:57.805878993 +0700
+@@ -31,9 +31,9 @@
+ caesar_all:	caesar/caesar caesar/caesar.6 caesar/rot13
+ 
+ caesar_install:	caesar_all
+-	$(INSTALL_BINARY) caesar/caesar $(INSTALL_PREFIX)$(GAMESDIR)/caesar
++	$(INSTALL_BINARY) caesar/caesar $(INSTALL_PREFIX)$(GAMESDIR)/bsd-caesar
+ 	$(HIDE_GAME) caesar
+-	$(INSTALL_SCRIPT) caesar/rot13 $(INSTALL_PREFIX)$(GAMESDIR)/rot13
++	$(INSTALL_SCRIPT) caesar/rot13 $(INSTALL_PREFIX)$(GAMESDIR)/bsd-rot13
+ 	$(HIDE_GAME) rot13
+ 	$(INSTALL_MANUAL) caesar/caesar.6
+ 	$(INSTALL_MANUAL) caesar.6 rot13.6
+diff -Naur bsd-games-2.17/caesar/rot13.in bsd-games-patch/caesar/rot13.in
+--- bsd-games-2.17/caesar/rot13.in	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/caesar/rot13.in	2020-04-23 22:14:31.031209315 +0700
+@@ -34,4 +34,4 @@
+ #	@(#)rot13.sh	8.1 (Berkeley) 5/31/93
+ #
+ 
+-exec @gamesdir@/caesar 13 "$@"
++exec @gamesdir@/bsd-caesar 13 "$@"
+diff -Naur bsd-games-2.17/canfield/canfield/Makefrag bsd-games-patch/canfield/canfield/Makefrag
+--- bsd-games-2.17/canfield/canfield/Makefrag	2020-04-23 22:20:15.274899300 +0700
++++ bsd-games-patch/canfield/canfield/Makefrag	2020-04-23 22:10:57.817878842 +0700
+@@ -31,7 +31,7 @@
+ canfield_canfield_all:	canfield/canfield/canfield canfield/canfield/canfield.6
+ 
+ canfield_canfield_install: canfield_canfield_all
+-	$(INSTALL_SCORE_GAME) canfield/canfield/canfield $(INSTALL_PREFIX)$(GAMESDIR)/canfield
++	$(INSTALL_SCORE_GAME) canfield/canfield/canfield $(INSTALL_PREFIX)$(GAMESDIR)/bsd-canfield
+ 	$(HIDE_GAME) canfield
+ 	$(INSTALL_MANUAL) canfield/canfield/canfield.6
+ 	$(INSTALL_SCORE_FILE) $(CANFIELD_SCOREFILE)
+diff -Naur bsd-games-2.17/canfield/cfscores/Makefrag bsd-games-patch/canfield/cfscores/Makefrag
+--- bsd-games-2.17/canfield/cfscores/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/canfield/cfscores/Makefrag	2020-04-23 22:10:57.821878792 +0700
+@@ -32,6 +32,6 @@
+ canfield_cfscores_all:	canfield/cfscores/cfscores
+ 
+ canfield_cfscores_install:	canfield_cfscores_all
+-	$(INSTALL_BINARY) canfield/cfscores/cfscores $(INSTALL_PREFIX)$(GAMESDIR)/cfscores
++	$(INSTALL_BINARY) canfield/cfscores/cfscores $(INSTALL_PREFIX)$(GAMESDIR)/bsd-cfscores
+ 	$(HIDE_GAME) cfscores
+ 	$(INSTALL_MANUAL) canfield.6 cfscores.6
+diff -Naur bsd-games-2.17/countmail/Makefrag bsd-games-patch/countmail/Makefrag
+--- bsd-games-2.17/countmail/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/countmail/Makefrag	2020-04-23 22:10:57.825878742 +0700
+@@ -31,6 +31,6 @@
+ countmail_all:	countmail/countmail countmail/countmail.6
+ 
+ countmail_install:	countmail_all
+-	$(INSTALL_SCRIPT) countmail/countmail $(INSTALL_PREFIX)$(GAMESDIR)/countmail
++	$(INSTALL_SCRIPT) countmail/countmail $(INSTALL_PREFIX)$(GAMESDIR)/bsd-countmail
+ 	$(HIDE_GAME) countmail
+ 	$(INSTALL_MANUAL) countmail/countmail.6
+diff -Naur bsd-games-2.17/cribbage/Makefrag bsd-games-patch/cribbage/Makefrag
+--- bsd-games-2.17/cribbage/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/cribbage/Makefrag	2020-04-23 22:10:57.833878642 +0700
+@@ -31,7 +31,7 @@
+ cribbage_all:	cribbage/cribbage cribbage/cribbage.n cribbage/cribbage.6
+ 
+ cribbage_install:	cribbage_all
+-	$(INSTALL_SCORE_GAME) cribbage/cribbage $(INSTALL_PREFIX)$(GAMESDIR)/cribbage
++	$(INSTALL_SCORE_GAME) cribbage/cribbage $(INSTALL_PREFIX)$(GAMESDIR)/bsd-cribbage
+ 	$(HIDE_GAME) cribbage
+ 	$(INSTALL_DATA) cribbage/cribbage.n $(INSTALL_PREFIX)$(CRIBBAGE_INSTRFILE)
+ 	$(INSTALL_SCORE_FILE) $(CRIBBAGE_SCOREFILE)
+diff -Naur bsd-games-2.17/dab/Makefrag bsd-games-patch/dab/Makefrag
+--- bsd-games-2.17/dab/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/dab/Makefrag	2020-04-23 22:10:57.837878591 +0700
+@@ -31,6 +31,6 @@
+ dab_all:	dab/dab dab/dab.6
+ 
+ dab_install:	dab_all
+-	$(INSTALL_BINARY) dab/dab $(INSTALL_PREFIX)$(GAMESDIR)/dab
++	$(INSTALL_BINARY) dab/dab $(INSTALL_PREFIX)$(GAMESDIR)/bsd-dab
+ 	$(HIDE_GAME) dab
+ 	$(INSTALL_MANUAL) dab/dab.6
+diff -Naur bsd-games-2.17/dm/Makefrag bsd-games-patch/dm/Makefrag
+--- bsd-games-2.17/dm/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/dm/Makefrag	2020-04-23 22:10:57.841878541 +0700
+@@ -33,6 +33,6 @@
+ dm_all:	dm/dm dm/dm.8 dm/dm.conf.5
+ 
+ dm_install:	dm_all
+-	$(INSTALL_DM) dm/dm $(INSTALL_PREFIX)$(GAMESDIR)/dm
++	$(INSTALL_DM) dm/dm $(INSTALL_PREFIX)$(GAMESDIR)/bsd-dm
+ 	$(INSTALL_MANUAL) dm/dm.8
+ 	$(INSTALL_MANUAL) dm/dm.conf.5
+diff -Naur bsd-games-2.17/factor/Makefrag bsd-games-patch/factor/Makefrag
+--- bsd-games-2.17/factor/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/factor/Makefrag	2020-04-23 22:10:57.845878492 +0700
+@@ -34,6 +34,6 @@
+ factor_all:	factor/factor factor/factor.6
+ 
+ factor_install:	factor_all
+-	$(INSTALL_BINARY) factor/factor $(INSTALL_PREFIX)$(GAMESDIR)/factor
++	$(INSTALL_BINARY) factor/factor $(INSTALL_PREFIX)$(GAMESDIR)/bsd-factor
+ 	$(HIDE_GAME) factor
+ 	$(INSTALL_MANUAL) factor/factor.6
+diff -Naur bsd-games-2.17/fish/Makefrag bsd-games-patch/fish/Makefrag
+--- bsd-games-2.17/fish/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/fish/Makefrag	2020-04-23 22:10:57.849878441 +0700
+@@ -31,7 +31,7 @@
+ fish_all:	fish/fish fish/fish.instr fish/fish.6
+ 
+ fish_install:	fish_all
+-	$(INSTALL_BINARY) fish/fish $(INSTALL_PREFIX)$(GAMESDIR)/fish
++	$(INSTALL_BINARY) fish/fish $(INSTALL_PREFIX)$(GAMESDIR)/bsd-fish
+ 	$(HIDE_GAME) fish
+ 	$(INSTALL_DATA) fish/fish.instr $(INSTALL_PREFIX)$(FISH_INSTRFILE)
+ 	$(INSTALL_MANUAL) fish/fish.6
+diff -Naur bsd-games-2.17/fortune/fortune/Makefrag bsd-games-patch/fortune/fortune/Makefrag
+--- bsd-games-2.17/fortune/fortune/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/fortune/fortune/Makefrag	2020-04-23 22:10:57.865878241 +0700
+@@ -33,6 +33,6 @@
+ fortune_fortune_all:	fortune/fortune/fortune fortune/fortune/fortune.6
+ 
+ fortune_fortune_install:	fortune_fortune_all
+-	$(INSTALL_BINARY) fortune/fortune/fortune $(INSTALL_PREFIX)$(GAMESDIR)/fortune
++	$(INSTALL_BINARY) fortune/fortune/fortune $(INSTALL_PREFIX)$(GAMESDIR)/bsd-fortune
+ 	$(HIDE_GAME) fortune
+ 	$(INSTALL_MANUAL) fortune/fortune/fortune.6
+diff -Naur bsd-games-2.17/fortune/strfile/Makefrag bsd-games-patch/fortune/strfile/Makefrag
+--- bsd-games-2.17/fortune/strfile/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/fortune/strfile/Makefrag	2020-04-23 22:10:57.869878191 +0700
+@@ -31,5 +31,5 @@
+ fortune_strfile_all:	fortune/strfile/strfile fortune/strfile/strfile.8
+ 
+ fortune_strfile_install:	fortune_strfile_all
+-	$(INSTALL_BINARY) fortune/strfile/strfile $(INSTALL_PREFIX)$(USRBINDIR)/strfile
++	$(INSTALL_BINARY) fortune/strfile/strfile $(INSTALL_PREFIX)$(USRBINDIR)/bsd-strfile
+ 	$(INSTALL_MANUAL) fortune/strfile/strfile.8
+diff -Naur bsd-games-2.17/fortune/unstr/Makefrag bsd-games-patch/fortune/unstr/Makefrag
+--- bsd-games-2.17/fortune/unstr/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/fortune/unstr/Makefrag	2020-04-23 22:10:57.877878091 +0700
+@@ -33,4 +33,4 @@
+ 
+ # We don't install unstr.
+ fortune_unstr_install:	fortune_unstr_all
+-#	$(INSTALL_BINARY) fortune/unstr/unstr $(INSTALL_PREFIX)$(USRBINDIR)/unstr
++#	$(INSTALL_BINARY) fortune/unstr/unstr $(INSTALL_PREFIX)$(USRBINDIR)/bsd-unstr
+diff -Naur bsd-games-2.17/gomoku/Makefrag bsd-games-patch/gomoku/Makefrag
+--- bsd-games-2.17/gomoku/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/gomoku/Makefrag	2020-04-23 22:10:57.881878041 +0700
+@@ -31,6 +31,6 @@
+ gomoku_all:	gomoku/gomoku gomoku/gomoku.6
+ 
+ gomoku_install:	gomoku_all
+-	$(INSTALL_BINARY) gomoku/gomoku $(INSTALL_PREFIX)$(GAMESDIR)/gomoku
++	$(INSTALL_BINARY) gomoku/gomoku $(INSTALL_PREFIX)$(GAMESDIR)/bsd-gomoku
+ 	$(HIDE_GAME) gomoku
+ 	$(INSTALL_MANUAL) gomoku/gomoku.6
+diff -Naur bsd-games-2.17/hack/Makefrag bsd-games-patch/hack/Makefrag
+--- bsd-games-2.17/hack/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/hack/Makefrag	2020-04-23 22:10:57.885877991 +0700
+@@ -53,7 +53,7 @@
+ hack/hack.zap.d hack/rnd.d:	hack/hack.onames.h
+ 
+ hack_install:	hack_all
+-	$(INSTALL_SCORE_GAME) hack/hack $(INSTALL_PREFIX)$(GAMESDIR)/hack
++	$(INSTALL_SCORE_GAME) hack/hack $(INSTALL_PREFIX)$(GAMESDIR)/bsd-hack
+ 	$(HIDE_GAME) hack
+ 	$(INSTALL_HACK_DIR) $(INSTALL_PREFIX)$(HACK_DIR)
+ 	set -e; for f in data help hh rumors; do $(INSTALL_DATA) hack/$$f $(INSTALL_PREFIX)$(HACK_DIR)/$$f; done
+diff -Naur bsd-games-2.17/hangman/Makefrag bsd-games-patch/hangman/Makefrag
+--- bsd-games-2.17/hangman/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/hangman/Makefrag	2020-04-23 22:10:57.889877940 +0700
+@@ -31,6 +31,6 @@
+ hangman_all:	hangman/hangman hangman/hangman.6
+ 
+ hangman_install:	hangman_all
+-	$(INSTALL_BINARY) hangman/hangman $(INSTALL_PREFIX)$(GAMESDIR)/hangman
++	$(INSTALL_BINARY) hangman/hangman $(INSTALL_PREFIX)$(GAMESDIR)/bsd-hangman
+ 	$(HIDE_GAME) hangman
+ 	$(INSTALL_MANUAL) hangman/hangman.6
+diff -Naur bsd-games-2.17/hunt/hunt/Makefrag bsd-games-patch/hunt/hunt/Makefrag
+--- bsd-games-2.17/hunt/hunt/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/hunt/hunt/Makefrag	2020-04-23 22:10:57.901877791 +0700
+@@ -35,6 +35,6 @@
+ hunt_hunt_all:	hunt/hunt/hunt hunt/hunt/hunt.6
+ 
+ hunt_hunt_install:	hunt_hunt_all
+-	$(INSTALL_BINARY) hunt/hunt/hunt $(INSTALL_PREFIX)$(GAMESDIR)/hunt
++	$(INSTALL_BINARY) hunt/hunt/hunt $(INSTALL_PREFIX)$(GAMESDIR)/bsd-hunt
+ 	$(HIDE_GAME) hunt
+ 	$(INSTALL_MANUAL) hunt/hunt/hunt.6
+diff -Naur bsd-games-2.17/hunt/huntd/Makefrag bsd-games-patch/hunt/huntd/Makefrag
+--- bsd-games-2.17/hunt/huntd/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/hunt/huntd/Makefrag	2020-04-23 22:10:57.905877740 +0700
+@@ -34,5 +34,5 @@
+ hunt_huntd_all:	hunt/huntd/huntd hunt/huntd/huntd.6
+ 
+ hunt_huntd_install:	hunt_huntd_all
+-	$(INSTALL_DAEMON) hunt/huntd/huntd $(INSTALL_PREFIX)$(SBINDIR)/huntd
++	$(INSTALL_DAEMON) hunt/huntd/huntd $(INSTALL_PREFIX)$(SBINDIR)/bsd-huntd
+ 	$(INSTALL_MANUAL) hunt/huntd/huntd.6
+diff -Naur bsd-games-2.17/hunt/Makeconfig bsd-games-patch/hunt/Makeconfig
+--- bsd-games-2.17/hunt/Makeconfig	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/hunt/Makeconfig	2020-04-23 22:16:23.413802295 +0700
+@@ -59,6 +59,6 @@
+ hunt_DEFS_OSF1 := -DINTERNET -DLOG -DBSD_RELEASE=43 -DSIGNAL_TYPE=void -D_BSD
+ hunt_DEFS_LINUX := -DINTERNET -DLOG -DBSD_RELEASE=44 -DUSE_CURSES -DSIGNAL_TYPE=void
+ 
+-hunt_DEFS := $(hunt_GAME_PARAM) $(hunt_DEFS_LINUX) -DHUNTD=\"$(SBINDIR)/huntd\"
++hunt_DEFS := $(hunt_GAME_PARAM) $(hunt_DEFS_LINUX) -DHUNTD=\"$(SBINDIR)/bsd-huntd\"
+ 
+ endif
+diff -Naur bsd-games-2.17/install-man.in bsd-games-patch/install-man.in
+--- bsd-games-2.17/install-man.in	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/install-man.in	2020-04-23 22:17:26.677010195 +0700
+@@ -30,7 +30,7 @@
+ 
+ if [ $# = 1 ]; then
+     page=$1
+-    basepage=$(basename "$page")
++    basepage=bsd-$(basename "$page")
+     section=${basepage##*.}
+     if [ "$section" = 6 ]; then
+ 	mandir=@install_prefix@@man6dir@
+@@ -50,9 +50,9 @@
+ elif [ $# = 2 ]; then
+     # Manpage 2 should link to manpage 1.  No complications of removing
+     # directories from their names.
+-    page1=$1
++    page1=bsd-$1
+     section1=${page1##*.}
+-    page2=$2
++    page2=bsd-$2
+     section2=${page2##*.}
+     if [ "$section2" = 6 ]; then
+ 	mandir=@install_prefix@@man6dir@
+diff -Naur bsd-games-2.17/mille/Makefrag bsd-games-patch/mille/Makefrag
+--- bsd-games-2.17/mille/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/mille/Makefrag	2020-04-23 22:10:57.917877590 +0700
+@@ -31,6 +31,6 @@
+ mille_all:	mille/mille mille/mille.6
+ 
+ mille_install:	mille_all
+-	$(INSTALL_BINARY) mille/mille $(INSTALL_PREFIX)$(GAMESDIR)/mille
++	$(INSTALL_BINARY) mille/mille $(INSTALL_PREFIX)$(GAMESDIR)/bsd-mille
+ 	$(HIDE_GAME) mille
+ 	$(INSTALL_MANUAL) mille/mille.6
+diff -Naur bsd-games-2.17/monop/Makefrag bsd-games-patch/monop/Makefrag
+--- bsd-games-2.17/monop/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/monop/Makefrag	2020-04-23 22:10:57.921877540 +0700
+@@ -35,7 +35,7 @@
+ 	$< monop/cards.inp $@
+ 
+ monop_install:	monop_all
+-	$(INSTALL_BINARY) monop/monop $(INSTALL_PREFIX)$(GAMESDIR)/monop
++	$(INSTALL_BINARY) monop/monop $(INSTALL_PREFIX)$(GAMESDIR)/bsd-monop
+ 	$(HIDE_GAME) monop
+ 	$(INSTALL_MANUAL) monop/monop.6
+ 	$(INSTALL_DATA) monop/cards.pck $(INSTALL_PREFIX)$(MONOP_CARDSFILE)
+diff -Naur bsd-games-2.17/morse/Makefrag bsd-games-patch/morse/Makefrag
+--- bsd-games-2.17/morse/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/morse/Makefrag	2020-04-23 22:10:57.925877490 +0700
+@@ -31,6 +31,6 @@
+ morse_all:	morse/morse
+ 
+ morse_install:	morse_all
+-	$(INSTALL_BINARY) morse/morse $(INSTALL_PREFIX)$(GAMESDIR)/morse
++	$(INSTALL_BINARY) morse/morse $(INSTALL_PREFIX)$(GAMESDIR)/bsd-morse
+ 	$(HIDE_GAME) morse
+ 	$(INSTALL_MANUAL) bcd.6 morse.6
+diff -Naur bsd-games-2.17/number/Makefrag bsd-games-patch/number/Makefrag
+--- bsd-games-2.17/number/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/number/Makefrag	2020-04-23 22:10:57.929877440 +0700
+@@ -32,6 +32,6 @@
+ number_all:	number/number number/number.6
+ 
+ number_install:	number_all
+-	$(INSTALL_BINARY) number/number $(INSTALL_PREFIX)$(GAMESDIR)/number
++	$(INSTALL_BINARY) number/number $(INSTALL_PREFIX)$(GAMESDIR)/bsd-number
+ 	$(HIDE_GAME) number
+ 	$(INSTALL_MANUAL) number/number.6
+diff -Naur bsd-games-2.17/phantasia/Makefrag bsd-games-patch/phantasia/Makefrag
+--- bsd-games-2.17/phantasia/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/phantasia/Makefrag	2020-04-23 22:10:57.937877340 +0700
+@@ -38,7 +38,7 @@
+ 	touch phantasia/scorefiles.stamp
+ 
+ phantasia_install:	phantasia_all
+-	$(INSTALL_SCORE_GAME) phantasia/phantasia $(INSTALL_PREFIX)$(GAMESDIR)/phantasia
++	$(INSTALL_SCORE_GAME) phantasia/phantasia $(INSTALL_PREFIX)$(GAMESDIR)/bsd-phantasia
+ 	$(HIDE_GAME) phantasia
+ 	(set -e; for f in $(phantasia_VFILES1); do \
+ 	    cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; \
+diff -ur bsd-games-2.17.orig/phantasia/pathnames.h.in bsd-games-2.17/phantasia/pathnames.h.in
+--- bsd-games-2.17.orig/phantasia/pathnames.h.in	1970-01-01 07:00:01.000000000 +0700
++++ bsd-games-2.17/phantasia/pathnames.h.in	2020-06-20 02:08:09.212762289 +0700
+@@ -31,7 +31,7 @@
+  *	@(#)pathnames.h	8.2 (Berkeley) 4/2/94
+  */
+ 
+-#define	_PATH_GAMEPROG	"@gamesdir@/phantasia"
++#define	_PATH_GAMEPROG	"@gamesdir@/bsd-phantasia"
+ #define	_PATH_GOLD	"@phantasia_dir@/gold"
+ #define	_PATH_LASTDEAD	"@phantasia_dir@/lastdead"
+ #define	_PATH_MESS	"@phantasia_dir@/mess"
+diff -Naur bsd-games-2.17/pig/Makefrag bsd-games-patch/pig/Makefrag
+--- bsd-games-2.17/pig/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/pig/Makefrag	2020-04-23 22:10:57.941877290 +0700
+@@ -31,6 +31,6 @@
+ pig_all:	pig/pig pig/pig.6
+ 
+ pig_install:	pig_all
+-	$(INSTALL_BINARY) pig/pig $(INSTALL_PREFIX)$(GAMESDIR)/pig
++	$(INSTALL_BINARY) pig/pig $(INSTALL_PREFIX)$(GAMESDIR)/bsd-pig
+ 	$(HIDE_GAME) pig
+ 	$(INSTALL_MANUAL) pig/pig.6
+diff -Naur bsd-games-2.17/pom/Makefrag bsd-games-patch/pom/Makefrag
+--- bsd-games-2.17/pom/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/pom/Makefrag	2020-04-23 22:10:57.945877239 +0700
+@@ -31,6 +31,6 @@
+ pom_all:	pom/pom pom/pom.6
+ 
+ pom_install:	pom_all
+-	$(INSTALL_BINARY) pom/pom $(INSTALL_PREFIX)$(GAMESDIR)/pom
++	$(INSTALL_BINARY) pom/pom $(INSTALL_PREFIX)$(GAMESDIR)/bsd-pom
+ 	$(HIDE_GAME) pom
+ 	$(INSTALL_MANUAL) pom/pom.6
+diff -Naur bsd-games-2.17/ppt/Makefrag bsd-games-patch/ppt/Makefrag
+--- bsd-games-2.17/ppt/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/ppt/Makefrag	2020-04-23 22:10:57.949877189 +0700
+@@ -31,6 +31,6 @@
+ ppt_all:	ppt/ppt
+ 
+ ppt_install:	ppt_all
+-	$(INSTALL_BINARY) ppt/ppt $(INSTALL_PREFIX)$(GAMESDIR)/ppt
++	$(INSTALL_BINARY) ppt/ppt $(INSTALL_PREFIX)$(GAMESDIR)/bsd-ppt
+ 	$(HIDE_GAME) ppt
+ 	$(INSTALL_MANUAL) bcd.6 ppt.6
+diff -Naur bsd-games-2.17/primes/Makefrag bsd-games-patch/primes/Makefrag
+--- bsd-games-2.17/primes/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/primes/Makefrag	2020-04-23 22:10:57.953877140 +0700
+@@ -32,6 +32,6 @@
+ primes_all:	primes/primes primes/primes.6
+ 
+ primes_install:	primes_all
+-	$(INSTALL_BINARY) primes/primes $(INSTALL_PREFIX)$(GAMESDIR)/primes
++	$(INSTALL_BINARY) primes/primes $(INSTALL_PREFIX)$(GAMESDIR)/bsd-primes
+ 	$(HIDE_GAME) primes
+ 	$(INSTALL_MANUAL) primes/primes.6
+diff -Naur bsd-games-2.17/quiz/Makefrag bsd-games-patch/quiz/Makefrag
+--- bsd-games-2.17/quiz/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/quiz/Makefrag	2020-04-23 22:10:57.961877039 +0700
+@@ -32,6 +32,6 @@
+ quiz_all:	quiz/quiz quiz/quiz.6
+ 
+ quiz_install:	quiz_all
+-	$(INSTALL_BINARY) quiz/quiz $(INSTALL_PREFIX)$(GAMESDIR)/quiz
++	$(INSTALL_BINARY) quiz/quiz $(INSTALL_PREFIX)$(GAMESDIR)/bsd-quiz
+ 	$(HIDE_GAME) quiz
+ 	$(INSTALL_MANUAL) quiz/quiz.6
+diff -Naur bsd-games-2.17/rain/Makefrag bsd-games-patch/rain/Makefrag
+--- bsd-games-2.17/rain/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/rain/Makefrag	2020-04-23 22:10:57.969876939 +0700
+@@ -31,6 +31,6 @@
+ rain_all:	rain/rain rain/rain.6
+ 
+ rain_install:	rain_all
+-	$(INSTALL_BINARY) rain/rain $(INSTALL_PREFIX)$(GAMESDIR)/rain
++	$(INSTALL_BINARY) rain/rain $(INSTALL_PREFIX)$(GAMESDIR)/bsd-rain
+ 	$(HIDE_GAME) rain
+ 	$(INSTALL_MANUAL) rain/rain.6
+diff -Naur bsd-games-2.17/random/Makefrag bsd-games-patch/random/Makefrag
+--- bsd-games-2.17/random/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/random/Makefrag	2020-04-23 22:10:57.973876889 +0700
+@@ -31,6 +31,6 @@
+ random_all:	random/random random/random.6
+ 
+ random_install:	random_all
+-	$(INSTALL_BINARY) random/random $(INSTALL_PREFIX)$(GAMESDIR)/random
++	$(INSTALL_BINARY) random/random $(INSTALL_PREFIX)$(GAMESDIR)/bsd-random
+ 	$(HIDE_GAME) random
+ 	$(INSTALL_MANUAL) random/random.6
+diff -Naur bsd-games-2.17/robots/Makefrag bsd-games-patch/robots/Makefrag
+--- bsd-games-2.17/robots/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/robots/Makefrag	2020-04-23 22:10:57.981876789 +0700
+@@ -32,7 +32,7 @@
+ robots_all:	robots/robots robots/robots.6
+ 
+ robots_install:	robots_all
+-	$(INSTALL_SCORE_GAME) robots/robots $(INSTALL_PREFIX)$(GAMESDIR)/robots
++	$(INSTALL_SCORE_GAME) robots/robots $(INSTALL_PREFIX)$(GAMESDIR)/bsd-robots
+ 	$(HIDE_GAME) robots
+ 	$(INSTALL_SCORE_FILE) $(ROBOTS_SCOREFILE)
+ 	$(INSTALL_MANUAL) robots/robots.6
+diff -Naur bsd-games-2.17/sail/Makefrag bsd-games-patch/sail/Makefrag
+--- bsd-games-2.17/sail/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/sail/Makefrag	2020-04-23 22:10:57.989876689 +0700
+@@ -31,7 +31,7 @@
+ sail_all:	sail/sail sail/sail.6
+ 
+ sail_install:	sail_all
+-	$(INSTALL_SCORE_GAME) sail/sail $(INSTALL_PREFIX)$(GAMESDIR)/sail
++	$(INSTALL_SCORE_GAME) sail/sail $(INSTALL_PREFIX)$(GAMESDIR)/bsd-sail
+ 	$(HIDE_GAME) sail
+ 	$(INSTALL_SCORE_FILE) $(SAIL_SCOREFILE)
+ 	$(INSTALL_SAIL_DIR) $(INSTALL_PREFIX)$(SAIL_DIR)
+diff -Naur bsd-games-2.17/snake/snake/Makefrag bsd-games-patch/snake/snake/Makefrag
+--- bsd-games-2.17/snake/snake/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/snake/snake/Makefrag	2020-04-23 22:10:57.997876588 +0700
+@@ -31,7 +31,7 @@
+ snake_snake_all:	snake/snake/snake snake/snake/snake.6
+ 
+ snake_snake_install:	snake_snake_all
+-	$(INSTALL_SCORE_GAME) snake/snake/snake $(INSTALL_PREFIX)$(GAMESDIR)/snake
++	$(INSTALL_SCORE_GAME) snake/snake/snake $(INSTALL_PREFIX)$(GAMESDIR)/bsd-snake
+ 	$(HIDE_GAME) snake
+ 	$(INSTALL_SCORE_FILE) $(SNAKE_SCOREFILE)
+ 	$(INSTALL_SCORE_FILE) $(SNAKE_RAWSCOREFILE)
+diff -Naur bsd-games-2.17/snake/snscore/Makefrag bsd-games-patch/snake/snscore/Makefrag
+--- bsd-games-2.17/snake/snscore/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/snake/snscore/Makefrag	2020-04-23 22:10:58.005876489 +0700
+@@ -32,6 +32,6 @@
+ snake_snscore_all:	snake/snscore/snscore
+ 
+ snake_snscore_install:	snake_snscore_all
+-	$(INSTALL_BINARY) snake/snscore/snscore $(INSTALL_PREFIX)$(GAMESDIR)/snscore
++	$(INSTALL_BINARY) snake/snscore/snscore $(INSTALL_PREFIX)$(GAMESDIR)/bsd-snscore
+ 	$(HIDE_GAME) snscore
+ 	$(INSTALL_MANUAL) snake.6 snscore.6
+diff -Naur bsd-games-2.17/tetris/Makefrag bsd-games-patch/tetris/Makefrag
+--- bsd-games-2.17/tetris/Makefrag	2020-04-23 22:20:15.278899250 +0700
++++ bsd-games-patch/tetris/Makefrag	2020-04-23 22:11:47.137261335 +0700
+@@ -32,7 +32,7 @@
+ tetris_all:	tetris/tetris tetris/tetris.6
+ 
+ tetris_install:	tetris_all
+-	$(INSTALL_SCORE_GAME) tetris/tetris $(INSTALL_PREFIX)$(GAMESDIR)/tetris-bsd
++	$(INSTALL_SCORE_GAME) tetris/tetris $(INSTALL_PREFIX)$(GAMESDIR)/bsd-tetris
+ 	$(HIDE_GAME) tetris-bsd
+ 	$(INSTALL_SCORE_FILE) $(TETRIS_SCOREFILE)
+ 	ln -f tetris/tetris.6 tetris/tetris-bsd.6
+diff -Naur bsd-games-2.17/trek/Makefrag bsd-games-patch/trek/Makefrag
+--- bsd-games-2.17/trek/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/trek/Makefrag	2020-04-23 22:10:58.017876338 +0700
+@@ -31,7 +31,7 @@
+ trek_all:	trek/trek trek/trek.6 trek/USD.doc/trek.me
+ 
+ trek_install:	trek_all
+-	$(INSTALL_BINARY) trek/trek $(INSTALL_PREFIX)$(GAMESDIR)/trek
++	$(INSTALL_BINARY) trek/trek $(INSTALL_PREFIX)$(GAMESDIR)/bsd-trek
+ 	$(HIDE_GAME) trek
+ 	$(INSTALL_MANUAL) trek/trek.6
+ 	$(INSTALL_DATA) trek/USD.doc/trek.me $(INSTALL_PREFIX)$(DOCDIR)/trek.me
+diff -Naur bsd-games-2.17/wargames/Makefrag bsd-games-patch/wargames/Makefrag
+--- bsd-games-2.17/wargames/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/wargames/Makefrag	2020-04-23 22:10:58.021876288 +0700
+@@ -31,6 +31,6 @@
+ wargames_all:	wargames/wargames wargames/wargames.6
+ 
+ wargames_install:	wargames_all
+-	$(INSTALL_SCRIPT) wargames/wargames $(INSTALL_PREFIX)$(GAMESDIR)/wargames
++	$(INSTALL_SCRIPT) wargames/wargames $(INSTALL_PREFIX)$(GAMESDIR)/bsd-wargames
+ 	$(HIDE_GAME) wargames
+ 	$(INSTALL_MANUAL) wargames/wargames.6
+diff -Naur bsd-games-2.17/worm/Makefrag bsd-games-patch/worm/Makefrag
+--- bsd-games-2.17/worm/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/worm/Makefrag	2020-04-23 22:10:58.029876188 +0700
+@@ -31,6 +31,6 @@
+ worm_all:	worm/worm worm/worm.6
+ 
+ worm_install:	worm_all
+-	$(INSTALL_BINARY) worm/worm $(INSTALL_PREFIX)$(GAMESDIR)/worm
++	$(INSTALL_BINARY) worm/worm $(INSTALL_PREFIX)$(GAMESDIR)/bsd-worm
+ 	$(HIDE_GAME) worm
+ 	$(INSTALL_MANUAL) worm/worm.6
+diff -Naur bsd-games-2.17/worms/Makefrag bsd-games-patch/worms/Makefrag
+--- bsd-games-2.17/worms/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/worms/Makefrag	2020-04-23 22:10:58.033876138 +0700
+@@ -31,6 +31,6 @@
+ worms_all:	worms/worms worms/worms.6
+ 
+ worms_install:	worms_all
+-	$(INSTALL_BINARY) worms/worms $(INSTALL_PREFIX)$(GAMESDIR)/worms
++	$(INSTALL_BINARY) worms/worms $(INSTALL_PREFIX)$(GAMESDIR)/bsd-worms
+ 	$(HIDE_GAME) worms
+ 	$(INSTALL_MANUAL) worms/worms.6
+diff -Naur bsd-games-2.17/wtf/Makefrag bsd-games-patch/wtf/Makefrag
+--- bsd-games-2.17/wtf/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/wtf/Makefrag	2020-04-23 22:10:58.037876087 +0700
+@@ -31,7 +31,7 @@
+ wtf_all:	wtf/wtf wtf/wtf.6
+ 
+ wtf_install:	wtf_all
+-	$(INSTALL_SCRIPT) wtf/wtf $(INSTALL_PREFIX)$(GAMESDIR)/wtf
++	$(INSTALL_SCRIPT) wtf/wtf $(INSTALL_PREFIX)$(GAMESDIR)/bsd-wtf
+ 	$(HIDE_GAME) wtf
+ 	$(INSTALL_DATA) wtf/acronyms $(INSTALL_PREFIX)$(WTF_ACRONYMFILE)
+ 	$(INSTALL_DATA) wtf/acronyms.comp $(INSTALL_PREFIX)$(WTF_ACRONYMFILE).comp
+diff -Naur bsd-games-2.17/wump/Makefrag bsd-games-patch/wump/Makefrag
+--- bsd-games-2.17/wump/Makefrag	1970-01-01 07:00:00.000000000 +0700
++++ bsd-games-patch/wump/Makefrag	2020-04-23 22:10:58.045875988 +0700
+@@ -31,7 +31,7 @@
+ wump_all:	wump/wump wump/wump.6 wump/wump.info
+ 
+ wump_install:	wump_all
+-	$(INSTALL_BINARY) wump/wump $(INSTALL_PREFIX)$(GAMESDIR)/wump
++	$(INSTALL_BINARY) wump/wump $(INSTALL_PREFIX)$(GAMESDIR)/bsd-wump
+ 	$(HIDE_GAME) wump
+ 	$(INSTALL_DATA) wump/wump.info $(INSTALL_PREFIX)$(WUMP_INFOFILE)
+ 	$(INSTALL_MANUAL) wump/wump.6
-- 
2.28.0