diff --git a/build/bin/write-dockerfile-debian.sh b/build/bin/write-dockerfile-debian.sh new file mode 100755 index 00000000000..20685efd67f --- /dev/null +++ b/build/bin/write-dockerfile-debian.sh @@ -0,0 +1,44 @@ +#! /usr/bin/env bash +## Write a Dockerfile to stdout that tests that the packages listed in the debian.txt files of standard spkg exist +## and satisfy the requirements tested by spkg-configure.m4 +set -e +STRIP_COMMENTS="sed s/#.*//;" +SAGE_ROOT=. +SYSTEM_PACKAGES=$(echo $(${STRIP_COMMENTS} $SAGE_ROOT/build/pkgs/debian.txt)) +# needed for bootstrap: +SYSTEM_PACKAGES+=" gettext autoconf automake libtool" +CONFIGURE_ARGS="--enable-option-checking " +for PKG_SCRIPTS in build/pkgs/*; do + if [ -d $PKG_SCRIPTS ]; then + PKG_BASE=$(basename $PKG_SCRIPTS) + SYSTEM_PACKAGES_FILE=$PKG_SCRIPTS/debian.txt + PKG_TYPE=$(cat $PKG_SCRIPTS/type) + if [ -f $SYSTEM_PACKAGES_FILE -a "$PKG_TYPE" = "standard" ]; then + SYSTEM_PACKAGES+=" "$(echo $(${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE)) + if [ -f $PKG_SCRIPTS/spkg-configure.m4 ]; then + CONFIGURE_ARGS+="--with-system-$PKG_BASE=force " + fi + fi + fi +done +cat < Dockerfile-debian' + docker build . -f Dockerfile-debian --build-arg BASE_IMAGE={env:BASE_IMAGE} --build-arg EXTRA_CONFIGURE_ARGS="{env:EXTRA_CONFIGURE_ARGS}" {env:EXTRA_DOCKER_BUILD_ARGS:}