| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| inherit eutils toolchain-funcs games |
| |
| DEB_PATCH_VER=22 |
| DESCRIPTION="collection of games from NetBSD" |
| HOMEPAGE="http://www.advogato.org/proj/bsd-games/" |
| SRC_URI="ftp://metalab.unc.edu/pub/Linux/games/${P}.tar.gz |
| mirror://debian/pool/main/b/bsdgames/bsdgames_${PV}-${DEB_PATCH_VER}.debian.tar.xz" |
| |
| LICENSE="BSD" |
| SLOT="0" |
| KEYWORDS="alpha amd64 ppc sparc x86" |
| IUSE="" |
| |
| RDEPEND="!games-misc/wtf |
| !app-misc/banner |
| !games-puzzle/hangman |
| sys-libs/ncurses:0 |
| sys-apps/miscfiles" |
| DEPEND="${RDEPEND} |
| sys-devel/flex |
| sys-devel/bison |
| virtual/pkgconfig" |
| |
| # Set GAMES_TO_BUILD variable to whatever you want |
| GAMES_TO_BUILD=${GAMES_TO_BUILD:=adventure arithmetic atc |
| backgammon banner battlestar bcd boggle caesar canfield countmail cribbage |
| dab dm factor fish gomoku hack hangman hunt mille monop morse |
| number phantasia pig pom ppt primes quiz rain random robots sail snake |
| tetris trek wargames worm worms wtf} |
| |
| src_prepare() { |
| local d="${WORKDIR}"/debian/patches |
| EPATCH_SOURCE="${d}" epatch $(<"${d}"/series) |
| |
| # Used by gentoo config.params. See bug 531200 |
| export GAMES_BINDIR GAMES_DATADIR GAMES_STATEDIR |
| |
| epatch \ |
| "${FILESDIR}"/${P}-64bitutmp.patch \ |
| "${FILESDIR}"/${P}-headers.patch \ |
| "${FILESDIR}"/${P}-bg.patch \ |
| "${FILESDIR}"/${P}-gcc4.patch |
| |
| # Use pkg-config to query Libs: from ncurses.pc (for eg. -ltinfo) wrt #459652 |
| sed -i \ |
| -e "/ncurses_lib/s:-lncurses:'$($(tc-getPKG_CONFIG) --libs-only-l ncurses)':" \ |
| configure || die |
| |
| sed -i \ |
| -e "s:/usr/games:${GAMES_BINDIR}:" \ |
| wargames/wargames || die |
| |
| sed -i \ |
| -e '/^CC :=/d' \ |
| -e '/^CXX :=/d' \ |
| -e '/^CFLAGS/s/OPTIMIZE/CFLAGS/' \ |
| -e '/^CXXFLAGS/s/OPTIMIZE/CXXFLAGS/' \ |
| -e '/^LDFLAGS/s/LDFLAGS := /LDFLAGS := \$(LDFLAGS) /' \ |
| Makeconfig.in || die |
| |
| cp "${FILESDIR}"/config.params-gentoo config.params || die |
| echo bsd_games_cfg_usrlibdir=\"$(games_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 |
| } |
| |
| src_test() { |
| addwrite /dev/full |
| emake -j1 check |
| } |
| |
| build_game() { |
| has ${1} ${GAMES_TO_BUILD} |
| } |
| |
| do_statefile() { |
| touch "${D}/${GAMES_STATEDIR}/${1}" || die |
| chmod ug+rw "${D}/${GAMES_STATEDIR}/${1}" || die |
| } |
| |
| src_install() { |
| dodir "${GAMES_BINDIR}" "${GAMES_STATEDIR}" /usr/share/man/man{1,6} |
| emake -j1 DESTDIR="${D}" install |
| |
| dodoc AUTHORS BUGS ChangeLog ChangeLog.0 \ |
| README PACKAGING SECURITY THANKS TODO YEAR2000 |
| |
| # set some binaries to run as games group (+S) |
| build_game atc && fperms g+s "${GAMES_BINDIR}"/atc |
| build_game battlestar && fperms g+s "${GAMES_BINDIR}"/battlestar |
| build_game canfield && fperms g+s "${GAMES_BINDIR}"/canfield |
| build_game cribbage && fperms g+s "${GAMES_BINDIR}"/cribbage |
| build_game phantasia && fperms g+s "${GAMES_BINDIR}"/phantasia |
| build_game robots && fperms g+s "${GAMES_BINDIR}"/robots |
| build_game sail && fperms g+s "${GAMES_BINDIR}"/sail |
| build_game snake && fperms g+s "${GAMES_BINDIR}"/snake |
| build_game tetris && fperms g+s "${GAMES_BINDIR}"/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 "${GAMES_STATEDIR}"/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 ; dodoc atc/BUGS; } |
| 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}; } |
| |
| # 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 "${D}"/usr/share/man/man6/{factor,primes}.6 |
| newman factor/factor.6 primes.6 |
| fi |
| |
| prepgamesdirs |
| |
| # state dirs |
| chmod -R ug+rw "${D}/${GAMES_STATEDIR}"/* || die |
| } |