Skip to content

Commit

Permalink
games-roguelike/mangband: initial commit new package bug #139020
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.28
  • Loading branch information
Amynka committed May 29, 2016
1 parent 6679bf1 commit cf2dd43
Show file tree
Hide file tree
Showing 5 changed files with 237 additions and 0 deletions.
1 change: 1 addition & 0 deletions games-roguelike/mangband/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST mangband-1.1.3.tar.gz 1497078 SHA256 d4917c51fc84a0626db1b09f6cf8b0ebc4522dd8ab34334e56fba8275ede9069 SHA512 5efda352607953e94a433bf9aabb496419a22c984dc9e054cebc90623682da23a90fb6cb910fcc950010d469571f2af515bfa7740c921add44ac9ea95e723130 WHIRLPOOL 28bf625bf930dff87e66ef8f500043a061b5834e830b1f377f7115c824432fc8025ab687fb6bc3bf69e73c8316ece0f4707cf6550ba3f6560d1c2b456c510bd0
118 changes: 118 additions & 0 deletions games-roguelike/mangband/files/mangband-1.1.3-paths.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
diff --git a/src/config.h.in b/src/config.h.in
index e8efdca..9a6290a 100644
--- a/config.h.in
+++ a/config.h.in
@@ -473,6 +473,9 @@
#ifndef DEFAULT_PATH
# define DEFAULT_PATH "./lib/"
#endif
+#ifndef DEFAULT_PATH_W
+# define DEFAULT_PATH_W DEFAULT_PATH
+#endif


/*
diff --git a/src/server/externs.h b/src/server/externs.h
index 249e41b..e1a5c4f 100644
--- a/server/externs.h
+++ a/server/externs.h
@@ -644,7 +644,7 @@ extern errr init_e_info_txt(FILE *fp, char *buf);
extern errr init_r_info_txt(FILE *fp, char *buf);

/* init.c */
-extern void init_file_paths(char *path);
+extern void init_file_paths(char *path, char *path2);
extern void init_some_arrays(void);
extern void load_server_cfg(void);

diff --git a/src/server/init2.c b/src/server/init2.c
index 00d8a01..27fd2b7 100644
--- a/server/init2.c
+++ a/server/init2.c
@@ -63,10 +63,11 @@
* to succeed even if the strings have not been allocated yet,
* as long as the variables start out as "NULL".
*/
-void init_file_paths(char *path)
+void init_file_paths(char *path, char *path2)
{
char *tail;
-
+ char *tail2;
+ char *tmp;

/*** Free everything ***/

@@ -103,6 +104,10 @@ void init_file_paths(char *path)
/* Prepare to append to the Base Path */
tail = path + strlen(path);

+ tmp = string_make(path2);
+
+ /* Prepare to append to the Base Path */
+ tail2 = path2 + strlen(path2);

#ifdef VM

@@ -123,8 +128,8 @@ void init_file_paths(char *path)
/*** Build the sub-directory names ***/

/* Build a path name */
- strcpy(tail, "data");
- ANGBAND_DIR_DATA = string_make(path);
+ strcpy(tail2, "data");
+ ANGBAND_DIR_DATA = string_make(path2);

/* Build a path name */
strcpy(tail, "edit");
@@ -147,16 +152,16 @@ void init_file_paths(char *path)
ANGBAND_DIR_PREF = string_make(path);
#endif
/* Build a path name */
- strcpy(tail, "save");
- ANGBAND_DIR_SAVE = string_make(path);
+ strcpy(tail2, "save");
+ ANGBAND_DIR_SAVE = string_make(path2);

/* Build a path name */
strcpy(tail, "text");
ANGBAND_DIR_TEXT = string_make(path);

/* Build a path name */
- strcpy(tail, "user");
- ANGBAND_DIR_USER = string_make(path);
+ strcpy(tail2, "user");
+ ANGBAND_DIR_USER = string_make(path2);
#if 0
/* Build a path name */
strcpy(tail, "apex");
diff --git a/src/server/main.c b/src/server/main.c
index 4260b8d..7884b2f 100644
--- a/server/main.c
+++ a/server/main.c
@@ -142,6 +142,7 @@ extern unsigned _ovrbuffer = 0x1500;
static void init_stuff(void)
{
char path[1024];
+ char path2[1024];

#if defined(AMIGA) || defined(VM)

@@ -161,10 +162,16 @@ static void init_stuff(void)
/* Hack -- Add a path separator (only if needed) */
if (!suffix(path, PATH_SEP)) strcat(path, PATH_SEP);

+ /* Use the angband_path, or a default */
+ strcpy(path2, tail ? tail : DEFAULT_PATH_W);
+
+ /* Hack -- Add a path separator (only if needed) */
+ if (!suffix(path2, PATH_SEP)) strcat(path2, PATH_SEP);
+
#endif /* AMIGA / VM */

/* Initialize */
- init_file_paths(path);
+ init_file_paths(path, path2);
}

/*
22 changes: 22 additions & 0 deletions games-roguelike/mangband/files/mangband-1.1.3-strchr.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
diff --git a/src/common/h-system.h b/src/common/h-system.h
index f60bbc1..0294dd3 100644
--- a/common/h-system.h
+++ a/common/h-system.h
@@ -104,17 +104,6 @@

#ifdef SET_UID

-# ifdef USG
-# include <string.h>
-# else
-# include <strings.h>
-extern char *strstr();
-extern char *strchr();
-extern char *strrchr();
-# endif
-
-#else
-
# include <string.h>

#endif
84 changes: 84 additions & 0 deletions games-roguelike/mangband/mangband-1.1.3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6
inherit eutils flag-o-matic user

DESCRIPTION="Online multiplayer real-time roguelike game, derived from Angband."
HOMEPAGE="http://www.mangband.org"
SRC_URI="http://www.mangband.org/download/${P}.tar.gz"

#RESTRICT=nomirror # for ebuild debugging

LICENSE="Moria"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="ncurses sdl X"

# Remove this once we hit MAngband 1.2:
S="${WORKDIR}/${P}"/src

RDEPEND="
ncurses? ( sys-libs/ncurses:= )
sdl? ( media-libs/libsdl )
X? ( x11-libs/libX11 )"
DEPEND="${RDEPEND}"

PATCHES=( "${FILESDIR}/${P}-strchr.patch"
"${FILESDIR}/${P}-paths.patch" )

MY_DATADIR=/usr/share/"${PN}"
MY_STATEDIR=/var/lib/"${PN}"
MY_SYSCONFDIR=/etc

src_configure() {
append-cflags "-DDEFAULT_PATH='\"${MY_DATADIR}\"' -DDEFAULT_PATH_W='\"${MY_STATEDIR}\"'"
econf \
$(use_with ncurses gcu) \
$(use_with X x11) \
$(use_with sdl)
}

pkg_setup() {
# mangband server uses own user/group:
enewgroup mangband
enewuser mangband -1 -1 -1 "mangband"
}

src_install() {
# Newer versions of MAngband have "make install", so we could use..
# emake DESTDIR="${D}" install
# dodoc NEWS README INSTALL AUTHORS
#..but not yet

dobin mangband mangclient

# Read-only data
insinto "${MY_DATADIR}"
doins -r "${WORKDIR}/${P}"/lib/{edit,file,help,text,xtra,user}

# Server config
insinto "${MY_SYSCONFDIR}"
doins "${WORKDIR}/${P}"/mangband.cfg

# Read-write data
insinto "${MY_STATEDIR}"
doins -r "${WORKDIR}/${P}"/lib/{data,save,user}

fowners -R mangband:mangband "${MY_STATEDIR}"/{data,save,user}
fperms -R 2664 "${MY_STATEDIR}"/{data,save,user}
fperms 2775 "${MY_STATEDIR}"/{data,save,user}

# Docs
#dodoc ${WORKDIR}/${P}/LICENSE
}

pkg_postinst() {
echo
elog "Make sure LibDir is either unset in ~/.mangrc either points to"
elog " ${MY_DATADIR} for 'mangclient' to pick it up."
elog "Server binary is called 'mangband', and must be run under user"
elog " mangband, i.e. 'sudo -u mangband mangband' "
echo
}
12 changes: 12 additions & 0 deletions games-roguelike/mangband/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>[email protected]</email>
<description>Proxied Maintainer</description>
</maintainer>
<maintainer type="project">
<email>[email protected]</email>
<name>Proxy Maintainers</name>
</maintainer>
</pkgmetadata>

0 comments on commit cf2dd43

Please sign in to comment.