@@ -349,6 +349,8 @@ setenv =
349
349
local: SETENV =:
350
350
local-nobootstrap: BOOTSTRAP =:
351
351
local-!direct: PATH =/usr/bin:/bin:/usr/sbin:/sbin
352
+ local-sudo: __SUDO =--sudo
353
+ local-root: CONFIG_CONFIGURE_ARGS_ROOT =--enable-build-as-root
352
354
# brew caches downloaded files in ${HOME}/Library/Caches. We share it between different toxenvs.
353
355
local-homebrew: HOMEBREW ={envdir}/homebrew
354
356
local-homebrew-usrlocal: HOMEBREW =/usr/local
@@ -387,7 +389,7 @@ setenv =
387
389
#
388
390
# Resulting full configuration args, including EXTRA_CONFIGURE_ARGS from the user environment
389
391
#
390
- CONFIGURE_ARGS ={env:CONFIG_CONFIGURE_ARGS_1:} {env:CONFIG_CONFIGURE_ARGS_2:} {env:EXTRA_CONFIGURE_ARGS:}
392
+ CONFIGURE_ARGS ={env:CONFIG_CONFIGURE_ARGS_ROOT:} {env: CONFIG_CONFIGURE_ARGS_1:} {env:CONFIG_CONFIGURE_ARGS_2:} {env:EXTRA_CONFIGURE_ARGS:}
391
393
392
394
# environment will be skipped if regular expression does not match against the sys.platform string
393
395
platform =
@@ -410,12 +412,7 @@ commands =
410
412
#
411
413
# https://docs.brew.sh/Installation
412
414
homebrew: bash -c ' if [ ! -x {env:HOMEBREW}/bin/brew ]; then mkdir -p {env:HOMEBREW} && cd {env:HOMEBREW} && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 ; fi'
413
- # homebrew-minimal: Minimal for bootstrapping and build.
414
- # gettext and pkg-config are needed so that their aclocal macros are available.
415
- homebrew: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/homebrew*.txt`; {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
416
- # -standard and -maximal are for now the same. This should be fixed when refactoring write-dockerfile.
417
- homebrew-standard: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/homebrew.txt`; {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
418
- homebrew-maximal: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/homebrew.txt`; {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
415
+ homebrew: bash -c ' PACKAGES=$(build/bin/sage-get-system-packages homebrew $(PATH=build/bin:$PATH build/bin/sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) _bootstrap); {env:HOMEBREW}/bin/brew install $PACKAGES; {env:HOMEBREW}/bin/brew upgrade $PACKAGES'
419
416
#
420
417
# local-conda
421
418
#
@@ -428,18 +425,13 @@ commands =
428
425
local-conda: bash -c ' cat {env:CONDARC} >> {env:CONDA_PREFIX}/.condarc'
429
426
local-conda: bash -c ' if [ ! -x {env:CONDA_PREFIX}/bin/conda ]; then curl -L {env:CONDA_INSTALLER_URL_BASE}{env:CONDA_INSTALLER_FILE} -C - -o {env:SHARED_CACHE_DIR}/{env:CONDA_INSTALLER_FILE} && bash {env:SHARED_CACHE_DIR}/{env:CONDA_INSTALLER_FILE} -b -f -p {env:CONDA_PREFIX}; fi'
430
427
local-conda: bash -c ' {env:SETENV} && {env:CONDA_PREFIX}/bin/conda update -n base --yes conda'
431
- local-conda: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/conda*.txt`; {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES'
432
- # -standard and -maximal are for now the same. This should be fixed when refactoring write-dockerfile.
433
- local-conda-standard: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/conda.txt`; {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES'
434
- local-conda-maximal: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/conda.txt`; {env:SETENV} && {env:CONDA_PREFIX}/bin/conda install --yes --quiet $PACKAGES'
428
+ 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'
435
429
#
436
- # local-sudo
430
+ # local-root: Assume we are root, run the system package commands
431
+ # local-sudo: Use sudo to run the system package commands as root
437
432
#
438
- local-sudo: bash -c ' $(build/bin/sage-print-system-package-command {env:SYSTEM} update) #'
439
- local-sudo: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/{env:SYSTEM}*.txt`; $(build/bin/sage-print-system-package-command {env:SYSTEM} --sudo --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" '
440
- # -standard and -maximal are for now the same. This should be fixed when refactoring write-dockerfile.
441
- local-sudo-standard: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/{env:SYSTEM}.txt`; $(build/bin/sage-print-system-package-command {env:SYSTEM} --sudo --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" '
442
- local-sudo-maximal: bash -c ' PACKAGES=`sed "s/#.*//;" build/pkgs/*/distros/{env:SYSTEM}.txt`; $(build/bin/sage-print-system-package-command {env:SYSTEM} --sudo --yes --no-install-recommends install $PACKAGES) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" '
433
+ local-{root,sudo}: bash -c ' eval $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} update) #'
434
+ 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)" '
443
435
#
444
436
# All "local" environments
445
437
#
@@ -473,7 +465,15 @@ commands =
473
465
docker: done'
474
466
# #28728: gap fails its test suite.
475
467
# linbox/cysignals testsuites fail. ppl takes very long.
476
- 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,!rpy2,!symengine_py,!sage_sws2rst" {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,!networkx,!rpy2,!symengine_py,!sage_sws2rst" {env:TARGETS_OPTIONAL:} || echo "(error ignored)" ) '
468
+ local: bash -c ' export PATH={env:PATH} && {env:SETENV} && \
469
+ local: {env:BOOTSTRAP} && \
470
+ local: ./configure --prefix={envdir}/local {env:CONFIGURE_ARGS} && \
471
+ local: case "{posargs:}" in \
472
+ local: config*) ;; \
473
+ local: *) make -k V=0 base-toolchain ;; \
474
+ local: esac && \
475
+ 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,!rpy2,!symengine_py,!sage_sws2rst" {env:TARGETS_PRE:} {posargs:build} && \
476
+ 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,!networkx,!rpy2,!symengine_py,!sage_sws2rst" {env:TARGETS_OPTIONAL:} || echo "(error ignored)" ) '
477
477
478
478
[testenv:check_configure]
479
479
# # Test that configure behaves properly
0 commit comments