gnubg, new recipe (#9936)

This commit is contained in:
Schrijvers Luc
2024-01-11 08:56:28 +01:00
committed by GitHub
parent 5aefcbbec2
commit 2d52f34281

View File

@@ -0,0 +1,122 @@
SUMMARY="The GNU BackGammon"
DESCRIPTION="GNU Backgammon (GNUbg) plays and analyzes backgammon games and matches. It is able \
to play and analyze both money games and tournament matches, evaluate and roll out positions, and \
more. Driven by a command-line interface, it displays an ASCII rendering of a board on text-only \
terminals, but also allows the user to play games and manipulate positions with a graphical GTK+ \
interface. GNU Backgammon is extensible on platforms which support Python.
GNU Backgammon is a world class opponent and rates at over 2000 on FIBS, the First Internet \
Backgammon Server.
The following features can be found in the current release of GNU Backgammon.
A command line interface (with full command editing features if GNU readline is available) that \
lets you play matches and sessions against GNU Backgammon with a rough ASCII representation of \
the board on text terminals.
* Support for a GTK+ interface with a graphical board window. Both 2D and 3D graphics are \
available.
* Tournament match and money session cube handling and cubeful play. All governed by underlying \
cubeless money game based neural networks.
* Support for both 1-sided and 2-sided bearoff databases: 1-sided bearoff database for 15 \
checkers on the first 6 points and optional 2-sided database kept in memory. Optional larger \
1-sided and 2-sided databases stored on disk.
* Automated rollouts of positions, with lookahead and variance reduction where appropriate. \
Rollouts may be extended.
* Automatic and manual annotation (analysis and commentary) of games and matches.
* Record keeping of statistics of players in games and matches (both native inside GNU Backgammon \
and externally using relational databases and Python).
* Loading and saving analyzed games and matches as .sgf files (Smart Game Format).
* Exporting positions, games and matches to: (.eps) Encapsulated Postscript, (.gam) Jellyfish \
Game, (.html) HTML, (.mat) Jellyfish Match, (.pdf) PDF, (.png) Portable Network Graphics, (.pos) \
Jellyfish Position, (.ps) PostScript, (.sgf) GNU Backgammon File, (.tex) LaTeX, (.txt) Plain \
Text, (.txt) Snowie Text
* Import of matches and positions from a number of file formats: (.bgf) BGRoom Game, (.gam) \
GammonEmpire Game, (.gam) PartyGammon Game, (.mat) Jellyfish Match, (.pos) Jellyfish Position, \
(.sgf) GNU Backgammon File, (.sgg) GridGammon Save Game, (.tmg) TrueMoneyGames, (.txt) Snowie Text
* Python Scripting ability.
* Native language support; 15 languages complete or in progress: (cs_CZ, da_DK, en_GB; en_US, \
fi_FI, fr_FR, de_DE, el_GR, is_IS, it_IT, ja_JP, ro_RO, ru_RU, es_ES and tr_TR)"
HOMEPAGE="https://www.gnu.org/software/gnubg/"
COPYRIGHT="1999-2004 Gary Wong
2004-2022 gnubg contributors"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://ftp.gnu.org/gnu/gnubg/gnubg-release-$portVersion-sources.tar.gz"
CHECKSUM_SHA256="72399729419cad9f112c3066a12d0000da450a456add7b094d89155069d6821e"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
commandBinDir=$binDir
commandSuffix=$secondaryArchSuffix
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
PROVIDES="
gnubg$secondaryArchSuffix = $portVersion
cmd:bearoffdump$commandSuffix = $portVersion
cmd:gnubg$commandSuffix = $portVersion
cmd:makebearoff$commandSuffix = $portVersion
cmd:makehyper$commandSuffix = $portVersion
cmd:makeweights$commandSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcurl$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libgthread_2.0$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
# lib:libpython3.10$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libcurl$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgobject_2.0$secondaryArchSuffix
devel:libgthread_2.0$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoheader
cmd:automake
cmd:bison
cmd:gcc$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:flex
cmd:make
cmd:pkg_config$secondaryArchSuffix
# error on launch when python is enabled
# Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding
# cmd:python3
cmd:xsltproc
"
BUILD()
{
./autogen.sh
runConfigure --omit-dirs binDir ./configure \
--bindir=$commandBinDir \
--without-python
make $jobArgs
}
INSTALL()
{
make install
}
TEST()
{
make check
}