Files
Pierre MARTINandClaude Opus 5.5 8677193bee Image Docker du gnubg de référence (commit 14b6798)
Compile gnubg sans interface graphique, avec Python, SIMD forcé à SSE2,
et produit gnubg.wd, gnubg_os0.bd, gnubg_ts0.bd avec les outils officiels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:57:14 +01:00

47 lines
2.0 KiB
Docker

# GNU Backgammon de référence pour les tests d'Ustagammon (ADR 0005).
#
# Compile gnubg en ligne de commande, sans interface graphique, depuis le
# commit figé 14b67984737ded0f6de43d63dcb789f729d9b06b (1.08.003), avec le
# scripting Python intégré. Produit aussi, avec les outils officiels de gnubg,
# les données dont le moteur embarqué devra se servir à l'identique :
# gnubg.wd : poids du réseau, binaires, par `makeweights` ;
# gnubg_os0.bd : base de sortie à un côté, par `makebearoff -o 6 -s 7999999` ;
# gnubg_ts0.bd : base de sortie à deux côtés, par `makebearoff -t 6x6`.
# `make` les produit et `make install` les installe dans /usr/local/share/gnubg/ ;
# leurs sommes SHA-256 sont dans /usr/local/share/gnubg/donnees.sha256.
FROM debian:trixie
ARG GNUBG_DEPOT=https://git.savannah.gnu.org/git/gnubg.git
ARG GNUBG_COMMIT=14b67984737ded0f6de43d63dcb789f729d9b06b
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
autoconf automake autopoint bison build-essential ca-certificates \
flex gettext git libglib2.0-dev libtool pkgconf python3-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src/gnubg
RUN git init -q . \
&& git remote add origin "$GNUBG_DEPOT" \
&& git fetch -q --depth 1 origin "$GNUBG_COMMIT" \
&& git checkout -q FETCH_HEAD \
&& test "$(git rev-parse HEAD)" = "$GNUBG_COMMIT"
# Options figées pour un résultat indépendant de la machine hôte :
# - pas d'interface graphique, pas de plateau 3D, pas de SQLite ;
# - SIMD forcé à SSE2 (présent sur tout x86-64) au lieu de la détection
# automatique du processeur de la machine qui construit l'image ;
# - drapeaux de compilation par défaut de gnubg (-O3 -ffast-math).
RUN ./autogen.sh \
&& ./configure --without-gtk --without-board3d --without-sqlite \
--with-python=python3 --enable-simd=sse2 \
&& make -j2 \
&& make install \
&& cd /usr/local/share/gnubg \
&& sha256sum /src/gnubg/gnubg.weights gnubg.wd gnubg_os0.bd gnubg_ts0.bd met/Kazaross-XG2.xml > donnees.sha256 \
&& printf '%s\n' "$GNUBG_COMMIT" > commit
ENV LANG=C.UTF-8
WORKDIR /travail