summaryrefslogtreecommitdiff
path: root/games/xsokoban
diff options
context:
space:
mode:
authordrochner <drochner>2009-04-08 16:31:56 +0000
committerdrochner <drochner>2009-04-08 16:31:56 +0000
commitcf9fa72db7e3197501b14bf3b8698a7182161963 (patch)
tree7654d3f45dea88bf399d6d7617ae7894082ef1bb /games/xsokoban
parent0ac3837a1d00dac883a627518ea6259a75664abd (diff)
downloadpkgsrc-cf9fa72db7e3197501b14bf3b8698a7182161963.tar.gz
add xsokoban-3.3c, from Aleksey Cheusov per pkgsrc-wip
Diffstat (limited to 'games/xsokoban')
-rw-r--r--games/xsokoban/DESCR7
-rw-r--r--games/xsokoban/Makefile50
-rw-r--r--games/xsokoban/PLIST191
-rw-r--r--games/xsokoban/distinfo13
-rw-r--r--games/xsokoban/patches/patch-aa39
-rw-r--r--games/xsokoban/patches/patch-ab75
-rw-r--r--games/xsokoban/patches/patch-ac20
-rw-r--r--games/xsokoban/patches/patch-ad35
-rw-r--r--games/xsokoban/patches/patch-ae12
-rw-r--r--games/xsokoban/patches/patch-af63
-rw-r--r--games/xsokoban/patches/patch-ag12
-rw-r--r--games/xsokoban/patches/patch-ah19
12 files changed, 536 insertions, 0 deletions
diff --git a/games/xsokoban/DESCR b/games/xsokoban/DESCR
new file mode 100644
index 00000000000..74677a5648b
--- /dev/null
+++ b/games/xsokoban/DESCR
@@ -0,0 +1,7 @@
+xsokoban is an implementation of the game sokoban, written on top of X(1).
+
+The goal of xsokoban is to push all the round objects into the score area
+of each level using the mouse or the arrow keys. The arrow keys move the
+player in the corresponding direction, pushing an object if it is in the way
+and there is a clear space on the other side. The mouse buttons each have a
+distinct function.
diff --git a/games/xsokoban/Makefile b/games/xsokoban/Makefile
new file mode 100644
index 00000000000..825a2b8d978
--- /dev/null
+++ b/games/xsokoban/Makefile
@@ -0,0 +1,50 @@
+# $NetBSD: Makefile,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+#
+
+DISTNAME= xsokoban-3.3c
+CATEGORIES= games
+MASTER_SITES= http://www.cs.cornell.edu/andru/release/
+
+MAINTAINER= cheusov@tut.by
+HOMEPAGE= http://www.cs.cornell.edu/andru/release/
+COMMENT= Classic logical game
+
+WRKSRC= ${WRKDIR}/xsokoban
+
+GNU_CONFIGURE= yes
+USE_TOOLS+= autoconf
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+SAVEPATH= ${VARBASE}/games/xsokoban
+SCOREFILE= ${SAVEPATH}/scores
+
+CONFIGURE_ARGS+= --datadir=${PREFIX}/share/xsokoban
+CONFIGURE_ENV+= X11BASE=${X11BASE}
+
+# For removing setting SETGIDGAME from here pkgsrc should be fixed
+SETGIDGAME= yes
+
+SPECIAL_PERMS= bin/xsokoban ${SETGID_GAMES_PERMS}
+OWN_DIRS_PERMS+= ${SAVEPATH} ${GAMEOWN} ${GAMEGRP} ${GAMEDIRMODE}
+
+MAKE_FLAGS+= INSTALL_PROGRAM=${INSTALL_PROGRAM:Q}
+MAKE_FLAGS+= INSTALL_DATA=${INSTALL_DATA:Q}
+MAKE_FLAGS+= INSTALL=${INSTALL:Q}
+MAKE_FLAGS+= INSTALL_MAN=${INSTALL_MAN:Q}
+
+BUILD_TARGET= xsokoban
+
+CPPFLAGS+= -DROOTDIR="\"${PREFIX}/share/xsokoban\""
+CPPFLAGS+= -DSAVEPATH="\"${SAVEPATH}\""
+CPPFLAGS+= -DSCOREPATH="\"${SCOREFILE}\""
+
+AUTO_MKDIRS= yes
+
+AUTOCONF_REQD= 2.59
+
+pre-configure:
+ cd ${WRKSRC} && autoconf
+
+.include "../../x11/libXpm/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/games/xsokoban/PLIST b/games/xsokoban/PLIST
new file mode 100644
index 00000000000..547121b4c27
--- /dev/null
+++ b/games/xsokoban/PLIST
@@ -0,0 +1,191 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+bin/xsokoban
+man/man1/xsokoban.1
+share/xsokoban/bitmaps/20/centerwall.xpm
+share/xsokoban/bitmaps/20/east_twall.xpm
+share/xsokoban/bitmaps/20/eastwall.xpm
+share/xsokoban/bitmaps/20/floor.xpm
+share/xsokoban/bitmaps/20/goal.xpm
+share/xsokoban/bitmaps/20/horizwall.xpm
+share/xsokoban/bitmaps/20/llcornerwall.xpm
+share/xsokoban/bitmaps/20/lonewall.xpm
+share/xsokoban/bitmaps/20/lrcornerwall.xpm
+share/xsokoban/bitmaps/20/man.xpm
+share/xsokoban/bitmaps/20/north_twall.xpm
+share/xsokoban/bitmaps/20/northwall.xpm
+share/xsokoban/bitmaps/20/object.xpm
+share/xsokoban/bitmaps/20/saveman.xpm
+share/xsokoban/bitmaps/20/south_twall.xpm
+share/xsokoban/bitmaps/20/southwall.xpm
+share/xsokoban/bitmaps/20/treasure.xpm
+share/xsokoban/bitmaps/20/ulcornerwall.xpm
+share/xsokoban/bitmaps/20/urcornerwall.xpm
+share/xsokoban/bitmaps/20/vertiwall.xpm
+share/xsokoban/bitmaps/20/wall.xpm
+share/xsokoban/bitmaps/20/west_twall.xpm
+share/xsokoban/bitmaps/20/westwall.xpm
+share/xsokoban/bitmaps/36/centerwall.xpm
+share/xsokoban/bitmaps/36/east_twall.xpm
+share/xsokoban/bitmaps/36/eastwall.xpm
+share/xsokoban/bitmaps/36/floor.xpm
+share/xsokoban/bitmaps/36/goal.xpm
+share/xsokoban/bitmaps/36/horizwall.xpm
+share/xsokoban/bitmaps/36/llcornerwall.xpm
+share/xsokoban/bitmaps/36/lonewall.xpm
+share/xsokoban/bitmaps/36/lrcornerwall.xpm
+share/xsokoban/bitmaps/36/man.xpm
+share/xsokoban/bitmaps/36/north_twall.xpm
+share/xsokoban/bitmaps/36/northwall.xpm
+share/xsokoban/bitmaps/36/object.xpm
+share/xsokoban/bitmaps/36/saveman.xpm
+share/xsokoban/bitmaps/36/south_twall.xpm
+share/xsokoban/bitmaps/36/southwall.xpm
+share/xsokoban/bitmaps/36/treasure.xpm
+share/xsokoban/bitmaps/36/ulcornerwall.xpm
+share/xsokoban/bitmaps/36/urcornerwall.xpm
+share/xsokoban/bitmaps/36/vertiwall.xpm
+share/xsokoban/bitmaps/36/wall.xpm
+share/xsokoban/bitmaps/36/west_twall.xpm
+share/xsokoban/bitmaps/36/westwall.xpm
+share/xsokoban/bitmaps/defaults/centerwall.xbm
+share/xsokoban/bitmaps/defaults/centerwall.xpm
+share/xsokoban/bitmaps/defaults/east_twall.xbm
+share/xsokoban/bitmaps/defaults/east_twall.xpm
+share/xsokoban/bitmaps/defaults/eastwall.xbm
+share/xsokoban/bitmaps/defaults/eastwall.xpm
+share/xsokoban/bitmaps/defaults/floor.xbm
+share/xsokoban/bitmaps/defaults/floor.xpm
+share/xsokoban/bitmaps/defaults/goal.xbm
+share/xsokoban/bitmaps/defaults/goal.xpm
+share/xsokoban/bitmaps/defaults/horizwall.xbm
+share/xsokoban/bitmaps/defaults/horizwall.xpm
+share/xsokoban/bitmaps/defaults/llcornerwall.xbm
+share/xsokoban/bitmaps/defaults/llcornerwall.xpm
+share/xsokoban/bitmaps/defaults/lonewall.xbm
+share/xsokoban/bitmaps/defaults/lonewall.xpm
+share/xsokoban/bitmaps/defaults/lrcornerwall.xbm
+share/xsokoban/bitmaps/defaults/lrcornerwall.xpm
+share/xsokoban/bitmaps/defaults/man.xbm
+share/xsokoban/bitmaps/defaults/man.xpm
+share/xsokoban/bitmaps/defaults/north_twall.xbm
+share/xsokoban/bitmaps/defaults/north_twall.xpm
+share/xsokoban/bitmaps/defaults/northwall.xbm
+share/xsokoban/bitmaps/defaults/northwall.xpm
+share/xsokoban/bitmaps/defaults/object.xbm
+share/xsokoban/bitmaps/defaults/object.xpm
+share/xsokoban/bitmaps/defaults/saveman.xbm
+share/xsokoban/bitmaps/defaults/saveman.xpm
+share/xsokoban/bitmaps/defaults/south_twall.xbm
+share/xsokoban/bitmaps/defaults/south_twall.xpm
+share/xsokoban/bitmaps/defaults/southwall.xbm
+share/xsokoban/bitmaps/defaults/southwall.xpm
+share/xsokoban/bitmaps/defaults/treasure.xbm
+share/xsokoban/bitmaps/defaults/treasure.xpm
+share/xsokoban/bitmaps/defaults/ulcornerwall.xbm
+share/xsokoban/bitmaps/defaults/ulcornerwall.xpm
+share/xsokoban/bitmaps/defaults/urcornerwall.xbm
+share/xsokoban/bitmaps/defaults/urcornerwall.xpm
+share/xsokoban/bitmaps/defaults/vertiwall.xbm
+share/xsokoban/bitmaps/defaults/vertiwall.xpm
+share/xsokoban/bitmaps/defaults/wall.xbm
+share/xsokoban/bitmaps/defaults/wall.xpm
+share/xsokoban/bitmaps/defaults/west_twall.xbm
+share/xsokoban/bitmaps/defaults/west_twall.xpm
+share/xsokoban/bitmaps/defaults/westwall.xbm
+share/xsokoban/bitmaps/defaults/westwall.xpm
+share/xsokoban/screens/screen.1
+share/xsokoban/screens/screen.10
+share/xsokoban/screens/screen.11
+share/xsokoban/screens/screen.12
+share/xsokoban/screens/screen.13
+share/xsokoban/screens/screen.14
+share/xsokoban/screens/screen.15
+share/xsokoban/screens/screen.16
+share/xsokoban/screens/screen.17
+share/xsokoban/screens/screen.18
+share/xsokoban/screens/screen.19
+share/xsokoban/screens/screen.2
+share/xsokoban/screens/screen.20
+share/xsokoban/screens/screen.21
+share/xsokoban/screens/screen.22
+share/xsokoban/screens/screen.23
+share/xsokoban/screens/screen.24
+share/xsokoban/screens/screen.25
+share/xsokoban/screens/screen.26
+share/xsokoban/screens/screen.27
+share/xsokoban/screens/screen.28
+share/xsokoban/screens/screen.29
+share/xsokoban/screens/screen.3
+share/xsokoban/screens/screen.30
+share/xsokoban/screens/screen.31
+share/xsokoban/screens/screen.32
+share/xsokoban/screens/screen.33
+share/xsokoban/screens/screen.34
+share/xsokoban/screens/screen.35
+share/xsokoban/screens/screen.36
+share/xsokoban/screens/screen.37
+share/xsokoban/screens/screen.38
+share/xsokoban/screens/screen.39
+share/xsokoban/screens/screen.4
+share/xsokoban/screens/screen.40
+share/xsokoban/screens/screen.41
+share/xsokoban/screens/screen.42
+share/xsokoban/screens/screen.43
+share/xsokoban/screens/screen.44
+share/xsokoban/screens/screen.45
+share/xsokoban/screens/screen.46
+share/xsokoban/screens/screen.47
+share/xsokoban/screens/screen.48
+share/xsokoban/screens/screen.49
+share/xsokoban/screens/screen.5
+share/xsokoban/screens/screen.50
+share/xsokoban/screens/screen.51
+share/xsokoban/screens/screen.52
+share/xsokoban/screens/screen.53
+share/xsokoban/screens/screen.54
+share/xsokoban/screens/screen.55
+share/xsokoban/screens/screen.56
+share/xsokoban/screens/screen.57
+share/xsokoban/screens/screen.58
+share/xsokoban/screens/screen.59
+share/xsokoban/screens/screen.6
+share/xsokoban/screens/screen.60
+share/xsokoban/screens/screen.61
+share/xsokoban/screens/screen.62
+share/xsokoban/screens/screen.63
+share/xsokoban/screens/screen.64
+share/xsokoban/screens/screen.65
+share/xsokoban/screens/screen.66
+share/xsokoban/screens/screen.67
+share/xsokoban/screens/screen.68
+share/xsokoban/screens/screen.69
+share/xsokoban/screens/screen.7
+share/xsokoban/screens/screen.70
+share/xsokoban/screens/screen.71
+share/xsokoban/screens/screen.72
+share/xsokoban/screens/screen.73
+share/xsokoban/screens/screen.74
+share/xsokoban/screens/screen.75
+share/xsokoban/screens/screen.76
+share/xsokoban/screens/screen.77
+share/xsokoban/screens/screen.78
+share/xsokoban/screens/screen.79
+share/xsokoban/screens/screen.8
+share/xsokoban/screens/screen.80
+share/xsokoban/screens/screen.81
+share/xsokoban/screens/screen.82
+share/xsokoban/screens/screen.83
+share/xsokoban/screens/screen.84
+share/xsokoban/screens/screen.85
+share/xsokoban/screens/screen.86
+share/xsokoban/screens/screen.87
+share/xsokoban/screens/screen.88
+share/xsokoban/screens/screen.89
+share/xsokoban/screens/screen.9
+share/xsokoban/screens/screen.90
+@dirrm share/xsokoban/bitmaps/20
+@dirrm share/xsokoban/bitmaps/36
+@dirrm share/xsokoban/bitmaps/defaults
+@dirrm share/xsokoban/bitmaps
+@dirrm share/xsokoban/screens
+@dirrm share/xsokoban
diff --git a/games/xsokoban/distinfo b/games/xsokoban/distinfo
new file mode 100644
index 00000000000..95e04884c85
--- /dev/null
+++ b/games/xsokoban/distinfo
@@ -0,0 +1,13 @@
+$NetBSD: distinfo,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+SHA1 (xsokoban-3.3c.tar.gz) = d5a829a8a507c60458093baa431e4fe9ff619aed
+RMD160 (xsokoban-3.3c.tar.gz) = 394cc9663982004f27135baad4e26c18c2c6817c
+Size (xsokoban-3.3c.tar.gz) = 98961 bytes
+SHA1 (patch-aa) = ba21be16ffdf2640014a2a91a4e042bee3660cfc
+SHA1 (patch-ab) = 17791f14cfba86154b12eb3bef61fedf8c6e1f8c
+SHA1 (patch-ac) = eeaa85eb12c473b2703b55b1602eae4c89639a0f
+SHA1 (patch-ad) = 2338d0e6afac7709abfe55eb57e809247d42b6f1
+SHA1 (patch-ae) = 234e46167bf5b3786462488c99bf10de60736452
+SHA1 (patch-af) = 43b4abe82c6cb7d51ad65e3eb1ef05fc345916a4
+SHA1 (patch-ag) = 77a33b22e071637377e25636dd2df8ec45ac9d1e
+SHA1 (patch-ah) = 1d8cb6cf6c5e57c8bb4a019e73eca9c56c21306f
diff --git a/games/xsokoban/patches/patch-aa b/games/xsokoban/patches/patch-aa
new file mode 100644
index 00000000000..bee6f3bd8f8
--- /dev/null
+++ b/games/xsokoban/patches/patch-aa
@@ -0,0 +1,39 @@
+$NetBSD: patch-aa,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- config.h.orig 1997-07-17 19:27:58.000000000 +0300
++++ config.h
+@@ -62,14 +62,14 @@
+ in the same directory as the score file.
+ */
+ #ifndef LOCKFILE
+-#define LOCKFILE ROOTDIR "/scores/lock"
++#define LOCKFILE SAVEPATH "/lock"
+ #endif
+
+ /*
+ SCOREFILE: the full pathname of the score file
+ */
+ #ifndef SCOREFILE
+-#define SCOREFILE ROOTDIR "/scores/scores"
++#define SCOREFILE SAVEPATH "/scores"
+ #endif
+
+ /*
+@@ -108,7 +108,7 @@
+ /*
+ ANYLEVEL: Allow any user to play any level and enter a score for it
+ */
+-#define ANYLEVEL 0
++#define ANYLEVEL 1
+
+ /*
+ MAXSOLNRANK: The maximum solution rank for which an entry is retained
+@@ -147,7 +147,7 @@
+ */
+
+ #ifndef WWW
+-#define WWW 1
++#define WWW 0
+ #endif
+
+ #define DEBUG_SERVER(x)
diff --git a/games/xsokoban/patches/patch-ab b/games/xsokoban/patches/patch-ab
new file mode 100644
index 00000000000..8052a80cb81
--- /dev/null
+++ b/games/xsokoban/patches/patch-ab
@@ -0,0 +1,75 @@
+$NetBSD: patch-ab,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- configure.in.orig 1996-10-29 18:51:14.000000000 +0100
++++ configure.in
+@@ -42,40 +42,7 @@ AC_FEATURE_CHECK(www, WWW, WWW scoring)
+ if test $use_xpm = 1; then
+ libxpm=1
+ incxpm=1
+- AC_CHECK_LIB(Xpm, main, [LIBS="$LIBS -lXpm"],
+- [
+- libok=no;
+- AC_MSG_CHECKING(other locations for libXpm)
+- for lib in /usr/local/lib xpm*/lib ../xpm*/lib;
+- do
+- if test -r $lib/libXpm.a; then
+- AC_MSG_RESULT(Found it in $lib!)
+- LIBS="$LIBS -L$lib -lXpm";
+- libok=yes;
+- break;
+- fi
+- done
+- if test $libok = no; then
+- AC_MSG_WARN(Can't find libXpm.a! You must add it to LIBS in Makefile.)
+- fi
+- ])
+- AC_HEADER_CHECK(xpm.h,,
+- [
+- incok=no;
+- for inc in /usr/local/include /usr/local/include/X11* \
+- /usr/local/X11*/include xpm*/lib ../xpm*/lib;
+- do
+- if test -r $inc/xpm.h; then
+- AC_MSG_RESULT(Found it in $inc!)
+- INCS="$INCS -I$inc";
+- incok=yes;
+- break;
+- fi
+- done
+- if test $incok = no; then
+- AC_MSG_WARN(Can't find xpm.h! You must add its location to INCS in Makefile.)
+- fi
+- ])
++ LIBS="$LIBS -L${X11BASE}/lib -Wl,-R${X11BASE}/lib -lXpm"
+ fi
+ rm -f tmp.$$.c tmp2.$$
+
+@@ -114,28 +81,6 @@ if test $www = 1; then
+ fi
+
+ ##############
+-# Figure out OWNER
+-AC_MSG_CHECKING(owner of game)
+-AC_VAR_CHECK(OWNER, OWNER)
+-OWNER=`echo $OWNER | sed -e 's/"//g'`
+-AC_TRY_RUN([
+-#include <stdio.h>
+-#include <pwd.h>
+-#include <stdlib.h>
+-
+-main(int argc, char **argv) {
+- struct passwd *p;
+- p = getpwnam("$OWNER");
+- exit((p == 0) ? 1 : 0);
+-}], ownerok=1, ownerok="", ownerok=1)
+-if test -n "$ownerok"; then
+- AC_MSG_RESULT("owner is $OWNER")
+- AC_SUBST(OWNER)
+-else
+- AC_MSG_WARN(\"$OWNER\" seems not to be a username. \nEdit \"config.h\" and change OWNER.),
+-fi
+-
+-##############
+ # DEC bogosity
+
+ AC_CHECK_LIB(dnet_stub,main)
diff --git a/games/xsokoban/patches/patch-ac b/games/xsokoban/patches/patch-ac
new file mode 100644
index 00000000000..781c18ad399
--- /dev/null
+++ b/games/xsokoban/patches/patch-ac
@@ -0,0 +1,20 @@
+$NetBSD: patch-ac,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- display.c.orig 1997-07-17 19:25:52.000000000 +0300
++++ display.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include <assert.h>
+
+ #include "config_local.h"
+@@ -19,7 +20,7 @@
+ #include "display.h"
+
+ #if USE_XPM
+-#include "xpm.h"
++#include "X11/xpm.h"
+ #endif
+
+ static short LoadBitmaps(void);
diff --git a/games/xsokoban/patches/patch-ad b/games/xsokoban/patches/patch-ad
new file mode 100644
index 00000000000..262c7e25ff1
--- /dev/null
+++ b/games/xsokoban/patches/patch-ad
@@ -0,0 +1,35 @@
+$NetBSD: patch-ad,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- main.c.orig 1996-07-03 16:56:06.000000000 +0300
++++ main.c
+@@ -47,7 +47,7 @@ static struct passwd *pwd;
+ static int movelen;
+ /* Length of the verified move sequence waiting on stdin if -v is used */
+
+-void main(int argc, char **argv)
++int main(int argc, char **argv)
+ {
+ short ret = 0;
+
+@@ -93,7 +93,7 @@ void main(int argc, char **argv)
+ }
+ #endif
+ /* see if we are the owner */
+- owner = (strcmp(username, OWNER) == 0) ? _true_ : _false_;
++ owner = _true_;
+ if (ret == 0) {
+ if (opt_show_score) {
+ DEBUG_SERVER("sending score file");
+@@ -106,9 +106,9 @@ void main(int argc, char **argv)
+ } else if (opt_make_score) {
+ if (owner) {
+ /* make sure of that, shall we? */
+- ret = GetGamePassword();
+- if (ret == 0)
+- ret = MakeNewScore(optfile);
++/* ret = GetGamePassword();
++ if (ret == 0)*/
++ ret = MakeNewScore(optfile);
+ } else
+ /* sorry, BAD owner */
+ ret = E_NOSUPER;
diff --git a/games/xsokoban/patches/patch-ae b/games/xsokoban/patches/patch-ae
new file mode 100644
index 00000000000..9df4df59685
--- /dev/null
+++ b/games/xsokoban/patches/patch-ae
@@ -0,0 +1,12 @@
+$NetBSD: patch-ae,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- play.c.orig 1995-04-10 21:11:28.000000000 +0300
++++ play.c
+@@ -3,6 +3,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <ctype.h>
++#include <unistd.h>
+
+ #include "externs.h"
+ #include "globals.h"
diff --git a/games/xsokoban/patches/patch-af b/games/xsokoban/patches/patch-af
new file mode 100644
index 00000000000..fefbf10c302
--- /dev/null
+++ b/games/xsokoban/patches/patch-af
@@ -0,0 +1,63 @@
+$NetBSD: patch-af,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- Makefile.in.orig 1996-07-03 15:56:27.000000000 +0200
++++ Makefile.in
+@@ -13,28 +13,30 @@ INCS = @INCS@
+ WARN = @WARN@
+ LIBS = @LIBS@
+ DEFS =
+-OWNER = @OWNER@
+
+ ############################################################
+ # Other programs
+ ############################################################
+-INSTALL = @INSTALL@ -o $(OWNER)
++#INSTALL = @INSTALL@ -o $(OWNER)
+ CP = /bin/cp
+ CHOWN = /bin/chown
++CHGRP = /bin/chgrp
+ MKDIR = /bin/mkdir
+
+ ############################################################
+ # Where to install the executable, data files, and man page
+ ############################################################
+-INSTALL_BIN = /usr/local/bin
+-INSTALL_LIB = /usr/local/lib/xsokoban
+-INSTALL_MAN = /usr/local/man/man1
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++BINDIR = ${DESTDIR}@bindir@
++DATADIR = ${DESTDIR}@datadir@
++MANDIR = ${DESTDIR}@mandir@/man1
+
+ ##### Nothing from here on should need customization ######################
+
+ CFLAGS = $(OPTIMIZER) $(WARN) $(INCS) $(DEFS)
+ OBJECTS = display.o main.o resources.o play.o score.o screen.o save.o \
+- scoredisp.o qtelnet.o
++ scoredisp.o
+
+ xsokoban: $(OBJECTS)
+ $(CC) $(CFLAGS) -o xsokoban $(OBJECTS) $(LIBS)
+@@ -46,15 +48,12 @@ clobber: clean
+ rm -f xsokoban config.cache config.status Makefile
+
+ install: xsokoban
+- $(INSTALL) -s -o $(OWNER) -m 4755 xsokoban $(INSTALL_BIN)/xsokoban
+- $(INSTALL) xsokoban.man $(INSTALL_MAN)/xsokoban.1
+- -$(MKDIR) $(INSTALL_LIB)
+- -$(MKDIR) $(INSTALL_LIB)/scores
+- -$(MKDIR) $(INSTALL_LIB)/saves
+- -$(MKDIR) $(INSTALL_LIB)/screens
+- $(CP) screens/screen.* $(INSTALL_LIB)/screens
+- $(CP) -r bitmaps $(INSTALL_LIB)
+- $(CHOWN) $(OWNER) $(INSTALL_LIB)/scores
++ $(INSTALL_PROGRAM) xsokoban $(BINDIR)/xsokoban
++ $(INSTALL_MAN) xsokoban.man $(MANDIR)/xsokoban.1
++ -$(MKDIR) $(DATADIR)
++ -$(MKDIR) $(DATADIR)/screens
++ $(INSTALL_DATA) screens/screen.* $(DATADIR)/screens
++ $(CP) -r bitmaps $(DATADIR)
+ @echo "Remember to run 'xsokoban -c' if you have no score file yet."
+
+ # DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/games/xsokoban/patches/patch-ag b/games/xsokoban/patches/patch-ag
new file mode 100644
index 00000000000..f76ad74102e
--- /dev/null
+++ b/games/xsokoban/patches/patch-ag
@@ -0,0 +1,12 @@
+$NetBSD: patch-ag,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- externs.h.orig 1995-04-16 01:46:14.000000000 +0300
++++ externs.h
+@@ -5,7 +5,6 @@
+ #include <X11/Xresource.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+-#include <malloc.h>
+
+ #ifdef NEED_NETINET_IN
+ #include <netinet/in.h>
diff --git a/games/xsokoban/patches/patch-ah b/games/xsokoban/patches/patch-ah
new file mode 100644
index 00000000000..cec20bb9652
--- /dev/null
+++ b/games/xsokoban/patches/patch-ah
@@ -0,0 +1,19 @@
+$NetBSD: patch-ah,v 1.1.1.1 2009/04/08 16:31:56 drochner Exp $
+
+--- score.c.orig 1996-08-27 21:23:58.000000000 +0200
++++ score.c
+@@ -633,10 +633,11 @@ static short WriteScore()
+ char tempfile[MAXPATHLEN];
+ strcpy(tempfile, tempnm);
+
+- (void)mktemp(tempfile);
+- scorefile = fopen(tempfile, "w");
++ sfdbn = mkstemp(tempfile);
++ if (sfdbn < 0)
++ return E_FOPENSCORE;
++ scorefile = fdopen(sfdbn, "w");
+ if (!scorefile) return E_FOPENSCORE;
+- sfdbn = fileno(scorefile);
+
+ scoreentries = htons(scoreentries);
+ if (fwrite(SCORE_VERSION, 4, 1, scorefile) != 1) {