commit:     8abf1e5c2106c97e443ab15a30897b0b4771cd98
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 27 09:08:01 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jun 27 09:27:02 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8abf1e5c

games-misc/bsd-games: add 3.2

Signed-off-by: Sam James <sam <AT> gentoo.org>

 games-misc/bsd-games/Manifest                      |   1 +
 games-misc/bsd-games/bsd-games-3.2.ebuild          | 153 +++++++++++++++++++++
 .../bsd-games/files/bsd-games-3.2-no-strip.patch   |  32 +++++
 .../bsd-games/files/bsd-games-3.2-no-which.patch   |  30 ++++
 4 files changed, 216 insertions(+)

diff --git a/games-misc/bsd-games/Manifest b/games-misc/bsd-games/Manifest
index 7bc99d0ea376..688e1edfdb61 100644
--- a/games-misc/bsd-games/Manifest
+++ b/games-misc/bsd-games/Manifest
@@ -1,4 +1,5 @@
 DIST bsd-games-3.1-verbose-build.patch.gz 4633 BLAKE2B 
cc75175ac2ef9d476c03bdb08b8c054d13090d6cdd1a14dd44022d13290112c68a7663d0c03f9ca7535ea10f2bb5e49a84acca4f782f0ced59685f762efd5151
 SHA512 
120c0859bb73a026dae017bcc2bc7505ca156b454bf5f87c91b4887417d5ac62f3dec706af91b22b11be8b5bce11d168f9205d722a9fd30dea654f682a66b1c8
 DIST bsd-games-3.1.tar.gz 267636 BLAKE2B 
116b340e383430fc56e9d2379a398494b43664aa124157bfa01f2c6a76ebdc90128cc676abae83b6d74680b0ad9396d24f1c0d11adcff1f552a3e68717b8cc8f
 SHA512 
3f311e89481913b734a21fc7d0765628637af8251228d5a38349c27cc702c307240e81711785bbd7428e208a142bd07597630d29e97e2c7bf5bd9cac1ebc6ada
+DIST bsd-games-3.2.tar.gz 270345 BLAKE2B 
3d984601a71e157dd65e4102e68b3cddc9552d13ec546c599d26a501361616e6223f5fba8990ad8c7ba4559b3982e89a7f1064ff7de2422d1eb71f6c8838bcf1
 SHA512 
cf5f5a9e5d215ee553486580f9a7dfc9801d254a2806172df201dfc42ecbb05326db7bc25b7624eb8a8e541ad61ec319d258687609bddae2bc07edcbade2291a
 DIST bsdgames_2.17-28.debian.tar.xz 58464 BLAKE2B 
3f5a70322341b153a8b3cb8df81fea1e773971d0f3b79ba8fb0c0877e95c61c8e8689952333f8ac4263948d781c2dc64c8178f9dac6a1c09ae702f91794b9583
 SHA512 
7e2db9f830c0657f3fcd1371635bda4a87e7a68180e486e44752904740c0710c02271522ff2d4b606542b3c502dd28795fcecf883360c3ac5bea78c148281f6a
 DIST bsdgames_2.17.orig.tar.gz 2563311 BLAKE2B 
9dfff4e70929e14a422c536c661cd95c5f1ac81d9112494525b9ef13d7a39b66bd59b6a264e614cfb29784fdb63364f56b12b4d284b125b5b3c12e92def07fb0
 SHA512 
cb2ee60474f164d42e3d47700270bbeeda3c8279d64da409c9cc05e36437ef95b92d0a85543298e97604635fcf3e068f3a5cc812e90b5c61fb8d146cf35bc38f

diff --git a/games-misc/bsd-games/bsd-games-3.2.ebuild 
b/games-misc/bsd-games/bsd-games-3.2.ebuild
new file mode 100644
index 000000000000..a4e1f68fde8e
--- /dev/null
+++ b/games-misc/bsd-games/bsd-games-3.2.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="collection of games from NetBSD"
+HOMEPAGE="https://www.polyomino.org.uk/computer/software/bsd-games/";
+SRC_URI="https://github.com/msharov/bsd-games/archive/refs/tags/v${PV}.tar.gz 
-> ${P}.tar.gz"
+SRC_URI+=" 
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-3.1-verbose-build.patch.gz";
+
+LICENSE="BSD"
+# Subslot indicates the fork / new version
+# 3 doesn't include the same games as the classic variant, etc
+SLOT="0/3"
+KEYWORDS="~alpha ~amd64 ~hppa ~mips ~riscv ~x86"
+
+# 'check' target doesn't exist, nor do any actual tests
+# bug #779649
+RESTRICT="test"
+
+DEPEND="
+       sys-apps/miscfiles
+       sys-libs/ncurses:=[unicode(+)]
+       !games-puzzle/hangman
+       !games-misc/wumpus
+"
+RDEPEND="
+       ${DEPEND}
+       acct-group/gamestat
+"
+BDEPEND="
+       sys-devel/bison
+       sys-devel/flex
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${WORKDIR}"/${PN}-3.1-verbose-build.patch
+       "${FILESDIR}"/${PN}-3.1-no-install-manpages-automatically.patch
+       "${FILESDIR}"/${PN}-3.2-no-which.patch
+       "${FILESDIR}"/${P}-no-strip.patch
+)
+
+# Set GAMES_TO_BUILD variable to whatever you want
+GAMES_TO_BUILD=${GAMES_TO_BUILD:=adventure atc battlestar caesar cribbage
+dab drop4 gofish gomoku hangman klondike robots sail snake spirhunt
+worm wump}
+
+src_prepare() {
+       default
+
+       # Use completely our own CFLAGS/LDFLAGS, no stripping and so on
+       sed -i \
+               -e 's/+= -std=c11 @pkgcflags@ ${CFLAGS}/= -std=c11 @pkgcflags@ 
${CPPFLAGS} ${CFLAGS} ${LDFLAGS}/' \
+               -e 's/+= @pkgldflags@ ${LDFLAGS}/= @pkgldflags@ ${LDFLAGS}/' \
+               -e s'/${INSTALL} -m 755 -s/${INSTALL} -m 755/' \
+               -e '/man[6]dir/d' \
+               Config.mk.in || die
+
+       # Yes, this stinks.
+       # Right now, the custom configure script calls pkg-config manually
+       # and seds it a bunch, and this is easier.
+       # Force looking for both ncurses and ncursesw
+       sed -i -e 's/pkgs="ncurses"/pkgs="ncursesw"/' configure || die
+
+       cp "${FILESDIR}"/config.params-gentoo config.params || die
+       echo bsd_games_cfg_usrlibdir=\"$(get_libdir)\" >> ./config.params || die
+       echo bsd_games_cfg_build_dirs=\"${GAMES_TO_BUILD}\" >> ./config.params 
|| die
+       echo bsd_games_cfg_docdir=\"/usr/share/doc/${PF}\" >> ./config.params 
|| die
+       if use riscv; then
+               sed -i 's/${CC} ${ldflags} -o $@ $^/${CC} ${ldflags} -o $@ $^ 
-latomic/' ./*/Module.mk || die
+       fi
+}
+
+src_configure() {
+       tc-export AR CC RANLIB
+
+       econf
+}
+
+src_compile() {
+       emake CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+       dodir /var/games
+       emake DESTDIR="${D}" install
+
+       _build_game() {
+               has ${1} ${GAMES_TO_BUILD}
+       }
+
+       _do_statefile() {
+               touch "${ED}"/var/games/${1} || die
+               chmod ug+rw "${ED}"/var/games/${1} || die
+       }
+
+       # set some binaries to run as games group (+S)
+       _build_game atc && fperms g+s /usr/bin/atc
+       _build_game battlestar && fperms g+s /usr/bin/battlestar
+       _build_game canfield && fperms g+s /usr/bin/canfield
+       _build_game cribbage && fperms g+s /usr/bin/cribbage
+       _build_game phantasia && fperms g+s /usr/bin/phantasia
+       _build_game robots && fperms g+s /usr/bin/robots
+       _build_game sail && fperms g+s /usr/bin/sail
+       _build_game snake && fperms g+s /usr/bin/snake
+       _build_game tetris && fperms g+s /usr/bin/tetris-bsd
+
+       # state files
+       _build_game atc && _do_statefile atc_score
+       _build_game battlestar && _do_statefile battlestar.log
+       _build_game canfield && _do_statefile cfscores
+       _build_game cribbage && _do_statefile criblog
+       _build_game hack && keepdir /var/games/hack
+       _build_game robots && _do_statefile robots_roll
+       _build_game sail && _do_statefile saillog
+       _build_game snake && _do_statefile snake.log && _do_statefile 
snakerawscores
+       _build_game tetris && _do_statefile tetris-bsd.scores
+
+       # extra docs
+       _build_game atc && docinto atc
+       _build_game boggle && { docinto boggle ; dodoc boggle/README; }
+       _build_game hack && { docinto hack ; dodoc 
hack/{OWNER,Original_READ_ME,READ_ME,help}; }
+       _build_game hunt && { docinto hunt ; dodoc hunt/README; }
+       _build_game phantasia && { docinto phantasia ; dodoc 
phantasia/{OWNER,README}; }
+
+       # Install the man pages manually to make life easier (circumventing 
compression)
+       local game
+       for game in ${GAMES_TO_BUILD[@]} ; do
+               if [[ -e ${game}/${game}.1 ]] ; then
+                       doman ${game}/${game}.1
+               else
+                       doman ${game}/${game}.6
+               fi
+       done
+
+       # Since factor is usually not installed, and primes.6 is a symlink to
+       # factor.6, make sure that primes.6 is ok ...
+       if _build_game primes && [[ ! $(_build_game factor) ]] ; then
+               rm -f "${ED}"/usr/share/man/man6/{factor,primes}.6 || die
+               newman factor/factor.6 primes.6
+       fi
+
+       # All of this needs to be owned by the gamestat group
+       fowners -R :gamestat /var/games/
+       # ... and so do the binaries
+       fowners -R :gamestat /usr/bin/
+
+       # State dirs
+       fperms -R ug+rw /var/games/
+}

diff --git a/games-misc/bsd-games/files/bsd-games-3.2-no-strip.patch 
b/games-misc/bsd-games/files/bsd-games-3.2-no-strip.patch
new file mode 100644
index 000000000000..1afd6772a8f3
--- /dev/null
+++ b/games-misc/bsd-games/files/bsd-games-3.2-no-strip.patch
@@ -0,0 +1,32 @@
+https://github.com/msharov/bsd-games/commit/b3d60ff0f7aa377594e6b9a2e1d1d8a509501beb
+
+From: Mike Sharov <[email protected]>
+Date: Sun, 3 Apr 2022 09:16:27 -0400
+Subject: [PATCH] Remove -s arg to install program
+
+If configure was not called with --with-debug, executables are already
+built stripped. Additional stripping during installation is not needed.
+--- a/Config.mk.in
++++ b/Config.mk.in
+@@ -7,7 +7,7 @@ AR             := @AR@
+ RANLIB                := @RANLIB@
+ INSTALL               := @INSTALL@
+ INSTALL_DATA  := ${INSTALL} -m 644
+-INSTALL_PROGRAM       := ${INSTALL} -m 755 -s
++INSTALL_PROGRAM       := ${INSTALL} -m 755
+ INSTALL_SCORE := ${INSTALL} -m 664 -g users /dev/null
+ 
+ ################ Destination #########################################
+
+diff --git a/Config.mk.in b/Config.mk.in
+index e069054..d9ee2cb 100644
+--- a/Config.mk.in
++++ b/Config.mk.in
+@@ -30,7 +30,6 @@ ifdef debug
+     ldflags   := -g -rdynamic
+ else
+     cflags    := -Os -g0 -DNDEBUG=1
+-    ldflags   := -s
+ endif
+ CFLAGS                := -Wall -Wextra -Wstrict-prototypes -Wshadow
+ cflags                += -std=c11 @pkg_cflags@ ${CFLAGS}

diff --git a/games-misc/bsd-games/files/bsd-games-3.2-no-which.patch 
b/games-misc/bsd-games/files/bsd-games-3.2-no-which.patch
new file mode 100644
index 000000000000..c38dda4ef462
--- /dev/null
+++ b/games-misc/bsd-games/files/bsd-games-3.2-no-which.patch
@@ -0,0 +1,30 @@
+https://github.com/msharov/bsd-games/pull/12
+--- a/configure
++++ b/configure
+@@ -145,7 +145,7 @@ s/@builddir@/\$\{TMPDIR\}\/make/g"
+ 
+ #### Find headers, libs, programs, and subs ##########################
+ 
+-# Programs found using which
++# Programs found using command -v
+ for i in $progs; do
+     pname=$(expr $i : '\([^=]*\)')
+     pcall=$(expr $i : '[^=]*=\([^=]*\)')
+@@ -153,7 +153,7 @@ for i in $progs; do
+     # First check if an environment variable is set
+     [ -n "$ppath" ] && sub "s/@$pname@/$ppath/g"
+     # Check if the program exists
+-    ppath=$(which $pcall 2>/dev/null)
++    ppath=$(command -v $pcall 2>/dev/null)
+     [ -n "$ppath" ] && [ -x "$ppath" ] && sub "s/@$pname@/$pcall/g"
+ done
+ # If nothing found in first loop, set the first pair anyway
+@@ -164,7 +164,7 @@ for i in $progs; do
+ done
+ 
+ # Packages found using pkg-config
+-pkgconfig=$(which pkg-config 2>/dev/null)
++pkgconfig=$(command -v pkg-config 2>/dev/null)
+ if [ -n "$pkgconfig" ] && [ -x "$pkgconfig" ]; then
+     faildeps=""
+     for i in $pkgs; do

Reply via email to