pkgsrc/games/nethack-lib/patches/patch-ab
pooka f813eca7e7 Nethack 3.4.3
This is a bugfix-release.  It should be compatible with bones files
and savegames all the way back to 3.4.0 (but of course it's safer
to ascend before upgrade).

Assorted fixes (full list in doc/fixes34.3):
  * Correct several inconsistencies
  * Correct a potentially fatal bug caused by dropping loadstones
  * Handle level completely filled with monsters better
  * X11 player selection fixes, one of which could be fatal
  * Eliminated a gold-in-shop-container cheat
2004-03-05 15:21:01 +00:00

121 lines
4 KiB
Text

$NetBSD: patch-ab,v 1.11 2004/03/05 15:21:01 pooka Exp $
--- sys/unix/Makefile.top.orig 2003-12-08 01:39:13.000000000 +0200
+++ sys/unix/Makefile.top 2004-03-05 15:40:57.000000000 +0200
@@ -14,18 +14,17 @@
# MAKE = make
# make NetHack
-PREFIX = /usr
GAME = nethack
# GAME = nethack.prg
-GAMEUID = games
-GAMEGRP = bin
+GAMEUID = root
+GAMEGRP = games
# Permissions - some places use setgid instead of setuid, for instance
# See also the option "SECURE" in include/config.h
-GAMEPERM = 04755
-FILEPERM = 0644
+GAMEPERM = 2755
+FILEPERM = 0664
EXEPERM = 0755
-DIRPERM = 0755
+DIRPERM = 0775
# GAMEDIR also appears in config.h as "HACKDIR".
# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else GAMEDIR
@@ -35,12 +34,12 @@
# therefore there should not be anything in GAMEDIR that you want to keep
# (if there is, you'll have to do the installation by hand or modify the
# instructions)
-GAMEDIR = $(PREFIX)/games/lib/$(GAME)dir
+GAMEDIR = $(PREFIX)/share/$(GAME)dir340
VARDIR = $(GAMEDIR)
-SHELLDIR = $(PREFIX)/games
+SHELLDIR = $(PREFIX)/bin
# per discussion in Install.X11 and Install.Qt
-VARDATND =
+VARDATND = pet_mark.xbm rip.xpm
# VARDATND = x11tiles NetHack.ad pet_mark.xbm
# VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm
# for Atari/Gem
@@ -87,9 +86,12 @@
$(GAME):
( cd src ; $(MAKE) )
-all: $(GAME) recover Guidebook $(VARDAT) dungeon spec_levs check-dlb
+all: $(GAME) datastuff
@echo "Done."
+datastuff: recover Guidebook $(VARDAT) dungeon spec_levs check-dlb
+ @echo "Data Sets Built."
+
# Note: many of the dependencies below are here to allow parallel make
# to generate valid output
@@ -183,18 +185,15 @@
-e '}' \
-e '$$s/.*/nodlb/p' < dat/options` ; \
$(MAKE) dofiles-$${target-nodlb}
- cp src/$(GAME) $(GAMEDIR)
- cp util/recover $(GAMEDIR)
+ cp util/recover $(PREFIX)/bin
-rm -f $(SHELLDIR)/$(GAME)
sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \
-e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
+ -e 's;XXXPREFIXXXX;$(PREFIX);' \
< sys/unix/nethack.sh \
> $(SHELLDIR)/$(GAME)
# set up their permissions
- -( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \
- $(CHGRP) $(GAMEGRP) $(GAME) recover )
- chmod $(GAMEPERM) $(GAMEDIR)/$(GAME)
- chmod $(EXEPERM) $(GAMEDIR)/recover
+ chmod $(EXEPERM) $(PREFIX)/bin/recover
-$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)
$(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)
chmod $(EXEPERM) $(SHELLDIR)/$(GAME)
@@ -230,16 +229,16 @@
# and a reminder
@echo You may also want to install the man pages via the doc Makefile.
-install: $(GAME) recover $(VARDAT) dungeon spec_levs
+install-dat: recover $(VARDAT) dungeon spec_levs
# set up the directories
# not all mkdirs have -p; those that don't will create a -p directory
-mkdir -p $(SHELLDIR)
- -rm -rf $(GAMEDIR) $(VARDIR)
-mkdir -p $(GAMEDIR) $(VARDIR) $(VARDIR)/save
-rmdir ./-p
-$(CHOWN) $(GAMEUID) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
$(CHGRP) $(GAMEGRP) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
- chmod $(DIRPERM) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
+ chmod $(DIRPERM) $(GAMEDIR) $(VARDIR)
+ chmod 770 $(VARDIR)/save
# set up the game files
( $(MAKE) dofiles )
# set up some additional files
@@ -247,9 +246,20 @@
-( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \
$(CHGRP) $(GAMEGRP) perm record logfile ; \
chmod $(FILEPERM) perm record logfile )
+ -touch -c $(VARDIR)/bones* $(VARDIR)/?lock* $(VARDIR)/wizard*
+ -touch -c $(VARDIR)/save/*
+ -mkdir -p $(PREFIX)/share/doc/nethack
+ cp doc/Guidebook $(PREFIX)/share/doc/nethack
+ chown $(GAMEUID):$(GAMEGRP) $(PREFIX)/share/doc/nethack/Guidebook
+ chmod $(FILEPERM) $(PREFIX)/share/doc/nethack/Guidebook
# and a reminder
@echo You may also want to reinstall the man pages via the doc Makefile.
+binfiles: $(GAME)
+ cp src/$(GAME) $(SHELLDIR)/$(GAME)$(GTYPE)
+ -( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)$(GTYPE) ; \
+ $(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)$(GTYPE) )
+ chmod $(GAMEPERM) $(SHELLDIR)/$(GAME)$(GTYPE)
# 'make clean' removes all the .o files, but leaves around all the executables
# and compiled data files