public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: games-roguelike/mangband/, games-roguelike/mangband/files/
@ 2016-05-29  8:32 Amy Winston
  0 siblings, 0 replies; only message in thread
From: Amy Winston @ 2016-05-29  8:32 UTC (permalink / raw
  To: gentoo-commits

commit:     cf2dd43960ddaba7674b966b116cb0e9868043eb
Author:     Amy Winston <amynka <AT> gentoo <DOT> org>
AuthorDate: Sun May 29 08:28:29 2016 +0000
Commit:     Amy Winston <amynka <AT> gentoo <DOT> org>
CommitDate: Sun May 29 08:28:29 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf2dd439

games-roguelike/mangband: initial commit new package bug #139020

Package-Manager: portage-2.2.28

 games-roguelike/mangband/Manifest                  |   1 +
 .../mangband/files/mangband-1.1.3-paths.patch      | 118 +++++++++++++++++++++
 .../mangband/files/mangband-1.1.3-strchr.patch     |  22 ++++
 games-roguelike/mangband/mangband-1.1.3.ebuild     |  84 +++++++++++++++
 games-roguelike/mangband/metadata.xml              |  12 +++
 5 files changed, 237 insertions(+)

diff --git a/games-roguelike/mangband/Manifest b/games-roguelike/mangband/Manifest
new file mode 100644
index 0000000..752e404
--- /dev/null
+++ b/games-roguelike/mangband/Manifest
@@ -0,0 +1 @@
+DIST mangband-1.1.3.tar.gz 1497078 SHA256 d4917c51fc84a0626db1b09f6cf8b0ebc4522dd8ab34334e56fba8275ede9069 SHA512 5efda352607953e94a433bf9aabb496419a22c984dc9e054cebc90623682da23a90fb6cb910fcc950010d469571f2af515bfa7740c921add44ac9ea95e723130 WHIRLPOOL 28bf625bf930dff87e66ef8f500043a061b5834e830b1f377f7115c824432fc8025ab687fb6bc3bf69e73c8316ece0f4707cf6550ba3f6560d1c2b456c510bd0

diff --git a/games-roguelike/mangband/files/mangband-1.1.3-paths.patch b/games-roguelike/mangband/files/mangband-1.1.3-paths.patch
new file mode 100644
index 0000000..dd95515
--- /dev/null
+++ b/games-roguelike/mangband/files/mangband-1.1.3-paths.patch
@@ -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);
+ }
+ 
+ /*

diff --git a/games-roguelike/mangband/files/mangband-1.1.3-strchr.patch b/games-roguelike/mangband/files/mangband-1.1.3-strchr.patch
new file mode 100644
index 0000000..f1fa19e
--- /dev/null
+++ b/games-roguelike/mangband/files/mangband-1.1.3-strchr.patch
@@ -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

diff --git a/games-roguelike/mangband/mangband-1.1.3.ebuild b/games-roguelike/mangband/mangband-1.1.3.ebuild
new file mode 100644
index 0000000..1910e28
--- /dev/null
+++ b/games-roguelike/mangband/mangband-1.1.3.ebuild
@@ -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
+}

diff --git a/games-roguelike/mangband/metadata.xml b/games-roguelike/mangband/metadata.xml
new file mode 100644
index 0000000..11e4ff3
--- /dev/null
+++ b/games-roguelike/mangband/metadata.xml
@@ -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>flambard@mangband.org</email>
+		<description>Proxied Maintainer</description>
+	</maintainer>
+	<maintainer type="project">
+		<email>proxy-maint@gentoo.org</email>
+		<name>Proxy Maintainers</name>
+	</maintainer>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-29  8:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-29  8:32 [gentoo-commits] repo/gentoo:master commit in: games-roguelike/mangband/, games-roguelike/mangband/files/ Amy Winston

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox