From 93f5e32272d0f5082fce05406f99d6487d1a50fc Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 22 Nov 2020 12:02:52 -0800 Subject: [PATCH 1/6] build/bin/sage-print-system-package-command (debian --yes): Use DEBIAN_FRONTEND=noninteractive --- build/bin/sage-print-system-package-command | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build/bin/sage-print-system-package-command b/build/bin/sage-print-system-package-command index c1219e3e6da..9e16ed86433 100755 --- a/build/bin/sage-print-system-package-command +++ b/build/bin/sage-print-system-package-command @@ -49,6 +49,7 @@ if [ -z "$system" -o -z "$command" ]; then fi system_packages="$*" options= +env= shopt -s extglob case $system:$command in homebrew*:setup-build-env) @@ -73,8 +74,8 @@ case $system:$command in ;; @(debian*|ubuntu*):*) [ "$NO_INSTALL_RECOMMENDS" = yes ] && options="$options --no-install-recommends" - [ "$YES" = yes ] && options="$options --yes" - [ -n "$system_packages" ] && echo "${PROMPT}${SUDO}apt-get $command $options $system_packages" + [ "$YES" = yes ] && options="$options --yes" env="DEBIAN_FRONTEND=noninteractive " + [ -n "$system_packages" ] && echo "${PROMPT}${SUDO}${env}apt-get $command $options $system_packages" ;; @(fedora*|redhat*|centos*):install) [ "$YES" = yes ] && options="$options -y" From 898758da497ca4b57c5e8b609cf2439d215018a7 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 25 Nov 2020 13:58:40 -0800 Subject: [PATCH 2/6] tox.ini: Add local-root --- tox.ini | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 27e168ecf9b..f2bf1c07433 100644 --- a/tox.ini +++ b/tox.ini @@ -403,10 +403,11 @@ commands = local-conda: bash -c '{env:SETENV} && {env:CONDA_PREFIX}/bin/conda update -n base --yes conda' local-conda: bash -c 'PACKAGES=$(build/bin/sage-get-system-packages conda $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES' # + # local-root: Assume we are root, run the system package commands # local-sudo: Use sudo to run the system package commands as root # - local-sudo: bash -c '$(build/bin/sage-print-system-package-command {env:SYSTEM} update) #' - local-sudo: bash -c 'PACKAGES=$(build/bin/sage-get-system-packages {env:SYSTEM} $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" ' + local-{root,sudo}: bash -c '$(build/bin/sage-print-system-package-command {env:SYSTEM} update) #' + local-{root,sudo}: bash -c 'PACKAGES=$(build/bin/sage-get-system-packages {env:SYSTEM} $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" ' # # All "local" environments # From 559dd8e7acd647224b2b320a9e77e95e0737bc04 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 25 Nov 2020 14:01:45 -0800 Subject: [PATCH 3/6] tox.ini (local-root): Pass --enable-build-as-root to configure --- tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index f2bf1c07433..7ae4fdf2ecb 100644 --- a/tox.ini +++ b/tox.ini @@ -327,6 +327,7 @@ setenv = local-nobootstrap: BOOTSTRAP=: local-!direct: PATH=/usr/bin:/bin:/usr/sbin:/sbin local-sudo: __SUDO=--sudo + local-root: CONFIG_CONFIGURE_ARGS_ROOT=--enable-build-as-root # brew caches downloaded files in ${HOME}/Library/Caches. We share it between different toxenvs. local-homebrew: HOMEBREW={envdir}/homebrew local-homebrew-usrlocal: HOMEBREW=/usr/local @@ -365,7 +366,7 @@ setenv = # # Resulting full configuration args, including EXTRA_CONFIGURE_ARGS from the user environment # - CONFIGURE_ARGS={env:CONFIG_CONFIGURE_ARGS_1:} {env:CONFIG_CONFIGURE_ARGS_2:} {env:EXTRA_CONFIGURE_ARGS:} + CONFIGURE_ARGS={env:CONFIG_CONFIGURE_ARGS_ROOT:} {env:CONFIG_CONFIGURE_ARGS_1:} {env:CONFIG_CONFIGURE_ARGS_2:} {env:EXTRA_CONFIGURE_ARGS:} # environment will be skipped if regular expression does not match against the sys.platform string platform = From a85f41c9220d9b71f0033faf1cb9010a8626ede1 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 25 Nov 2020 21:11:24 -0800 Subject: [PATCH 4/6] tox.ini (local): Do not build the toolchain when posargs = config.status or posargs = configure --- tox.ini | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 7ae4fdf2ecb..cadd14fd661 100644 --- a/tox.ini +++ b/tox.ini @@ -442,7 +442,15 @@ commands = docker: done' # #28728: gap fails its test suite. # linbox/cysignals testsuites fail. ppl takes very long. - local: bash -c 'export PATH={env:PATH} && {env:SETENV} && {env:BOOTSTRAP} && ./configure --prefix={envdir}/local {env:CONFIGURE_ARGS} && make -k V=0 base-toolchain && make -k V=0 SAGE_SPKG="sage-spkg -y -o" SAGE_CHECK=warn SAGE_CHECK_PACKAGES="!cython,!r,!python3,!nose,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!networkx,!symengine_py" {env:TARGETS_PRE:} {posargs:build} && (make -k V=0 SAGE_SPKG="sage-spkg -y -o" SAGE_CHECK=warn SAGE_CHECK_PACKAGES="!cython,!r,!python3,!nose,!gap,!cysignals,!linbox,!git,!ppl,!cmake" {env:TARGETS_OPTIONAL:} || echo "(error ignored)" ) ' + local: bash -c 'export PATH={env:PATH} && {env:SETENV} && \ + local: {env:BOOTSTRAP} && \ + local: ./configure --prefix={envdir}/local {env:CONFIGURE_ARGS} && \ + local: case "{posargs:}" in \ + local: config*) ;; \ + local: *) make -k V=0 base-toolchain ;; \ + local: esac && \ + local: make -k V=0 SAGE_SPKG="sage-spkg -y -o" SAGE_CHECK=warn SAGE_CHECK_PACKAGES="!cython,!r,!python3,!nose,!gap,!cysignals,!linbox,!git,!ppl,!cmake,!networkx,!symengine_py" {env:TARGETS_PRE:} {posargs:build} && \ + local: ([ -z "{env:TARGETS_OPTIONAL:}" ] || make -k V=0 SAGE_SPKG="sage-spkg -y -o" SAGE_CHECK=warn SAGE_CHECK_PACKAGES="!cython,!r,!python3,!nose,!gap,!cysignals,!linbox,!git,!ppl,!cmake" {env:TARGETS_OPTIONAL:} || echo "(error ignored)" ) ' [testenv:check_configure] ## Test that configure behaves properly From 1de912a69f441c80e4d4c64a627f0707e5807442 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 2 Dec 2020 13:48:32 -0800 Subject: [PATCH 5/6] tox.ini (local-sudo): Run apt-get update with sudo --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index cadd14fd661..f7ea6bb43af 100644 --- a/tox.ini +++ b/tox.ini @@ -407,7 +407,7 @@ commands = # local-root: Assume we are root, run the system package commands # local-sudo: Use sudo to run the system package commands as root # - local-{root,sudo}: bash -c '$(build/bin/sage-print-system-package-command {env:SYSTEM} update) #' + local-{root,sudo}: bash -c '$(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} update) #' local-{root,sudo}: bash -c 'PACKAGES=$(build/bin/sage-get-system-packages {env:SYSTEM} $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" ' # # All "local" environments From 3c7e5c482e1c54ba140c3d134ebfc909bd943a3d Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 2 Dec 2020 17:14:05 -0800 Subject: [PATCH 6/6] tox.ini (local-root, local-sudo): Run output of sage-print-system-package-command through eval --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index f7ea6bb43af..709002b5e82 100644 --- a/tox.ini +++ b/tox.ini @@ -407,8 +407,8 @@ commands = # local-root: Assume we are root, run the system package commands # local-sudo: Use sudo to run the system package commands as root # - local-{root,sudo}: bash -c '$(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} update) #' - local-{root,sudo}: bash -c 'PACKAGES=$(build/bin/sage-get-system-packages {env:SYSTEM} $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" ' + local-{root,sudo}: bash -c 'eval $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} update) #' + local-{root,sudo}: bash -c 'PACKAGES=$(build/bin/sage-get-system-packages {env:SYSTEM} $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); eval $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" ' # # All "local" environments #