@@ -11,45 +11,75 @@ STRIP_COMMENTS="sed s/#.*//;"
1111shopt -s extglob
1212
1313DEVELOP_SPKG_PATTERN=" @(_develop$( for a in $( head -n 1 build/pkgs/_develop/dependencies) ; do echo -n " |" $a ; done) )"
14- BOOTSTRAP_PACKAGES=$( echo $( ${STRIP_COMMENTS} build/pkgs/_bootstrap/distros/conda.txt) )
15- SYSTEM_PACKAGES=
16- OPTIONAL_SYSTEM_PACKAGES=
17- SAGELIB_SYSTEM_PACKAGES=
18- SAGELIB_OPTIONAL_SYSTEM_PACKAGES=
19- DEVELOP_SYSTEM_PACKAGES=
14+ BOOTSTRAP_PACKAGES=_bootstrap
15+ PACKAGES=
16+ OPTIONAL_PACKAGES=
17+ SAGELIB_PACKAGES=
18+ SAGELIB_OPTIONAL_PACKAGES=
19+ DEVELOP_PACKAGES=
20+
2021for PKG_BASE in $( sage-package list --has-file distros/conda.txt --exclude _sagemath) ; do
2122 PKG_SCRIPTS=build/pkgs/$PKG_BASE
2223 SYSTEM_PACKAGES_FILE=$PKG_SCRIPTS /distros/conda.txt
2324 PKG_TYPE=$( cat $PKG_SCRIPTS /type)
2425 PKG_SYSTEM_PACKAGES=$( echo $( ${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE ) )
25- if [ -n " PKG_SYSTEM_PACKAGES" ]; then
26+ if [ -n " $ PKG_SYSTEM_PACKAGES" ]; then
2627 if [ -f $PKG_SCRIPTS /spkg-configure.m4 ]; then
28+ if grep -q SAGE_PYTHON_PACKAGE_CHECK $PKG_SCRIPTS /spkg-configure.m4; then
29+ # Python package that would need --enable-system-site-packages to be used
30+ # with the Sage distribution, but we do not recommend that for conda.
31+ PKG_SAGELIB_ONLY=yes
32+ else
33+ PKG_SAGELIB_ONLY=no
34+ fi
35+ else
36+ # No spkg-configure, so the Sage distribution is not able to make use of this package.
37+ PKG_SAGELIB_ONLY=yes
38+ fi
39+ [ -n " $BOOTSTRAP_VERBOSE " ] && echo " $PKG_BASE :$PKG_TYPE :$PKG_SAGELIB_ONLY "
40+ if [ $PKG_SAGELIB_ONLY = no ]; then
2741 case " $PKG_BASE :$PKG_TYPE " in
2842 * :standard)
29- SYSTEM_PACKAGES +=" $PKG_SYSTEM_PACKAGES "
43+ PACKAGES +=" $PKG_BASE "
3044 ;;
3145 $DEVELOP_SPKG_PATTERN :* )
32- DEVELOP_SYSTEM_PACKAGES +=" $PKG_SYSTEM_PACKAGES "
46+ DEVELOP_PACKAGES +=" $PKG_BASE "
3347 ;;
3448 * )
35- OPTIONAL_SYSTEM_PACKAGES +=" $PKG_SYSTEM_PACKAGES "
49+ OPTIONAL_PACKAGES +=" $PKG_BASE "
3650 ;;
3751 esac
3852 else
3953 case " $PKG_BASE :$PKG_TYPE " in
4054 * :standard)
41- SAGELIB_SYSTEM_PACKAGES +=" $PKG_SYSTEM_PACKAGES "
55+ SAGELIB_PACKAGES +=" $PKG_BASE "
4256 ;;
4357 $DEVELOP_SPKG_PATTERN :* )
44- DEVELOP_SYSTEM_PACKAGES +=" $PKG_SYSTEM_PACKAGES "
58+ DEVELOP_PACKAGES +=" $PKG_BASE "
4559 ;;
4660 * )
47- SAGELIB_OPTIONAL_SYSTEM_PACKAGES +=" $PKG_SYSTEM_PACKAGES "
61+ SAGELIB_OPTIONAL_PACKAGES +=" $PKG_BASE "
4862 ;;
4963 esac
5064 fi
5165 fi
5266done
67+ unset PKG_SYSTEM_PACKAGES
68+
69+ [ -n " $BOOTSTRAP_VERBOSE " ] && echo " ## Collected:" && set | grep PACKAGES=
70+
71+ # Translate to system packages
72+ export ENABLE_SYSTEM_SITE_PACKAGES=yes # Disable filtering in sage-get-system-packages
73+ SYSTEM_PACKAGES=$( sage-get-system-packages conda $PACKAGES )
74+ BOOTSTRAP_SYSTEM_PACKAGES=$( sage-get-system-packages conda $BOOTSTRAP_PACKAGES )
75+ OPTIONAL_SYSTEM_PACKAGES=$( sage-get-system-packages conda $OPTIONAL_PACKAGES )
76+ SAGELIB_SYSTEM_PACKAGES=$( sage-get-system-packages conda $SAGELIB_PACKAGES )
77+ SAGELIB_OPTIONAL_SYSTEM_PACKAGES=$( sage-get-system-packages conda $SAGELIB_OPTIONAL_PACKAGES )
78+ DEVELOP_SYSTEM_PACKAGES=$( sage-get-system-packages conda $DEVELOP_PACKAGES )
79+ unset ENABLE_SYSTEM_SITE_PACKAGES
80+
81+ [ -n " $BOOTSTRAP_VERBOSE " ] && echo " ## Translated to system:" && set | grep SYSTEM_PACKAGES=
82+
5383echo >&2 $0 :$LINENO : generate conda environment files
5484for python_version in 3.9 3.10 3.11; do
5585 (
@@ -63,7 +93,7 @@ for python_version in 3.9 3.10 3.11; do
6393 echo " - $pkg "
6494 done
6595 echo " # Packages needed for ./bootstrap"
66- for pkg in $BOOTSTRAP_PACKAGES ; do
96+ for pkg in $BOOTSTRAP_SYSTEM_PACKAGES ; do
6797 echo " - $pkg "
6898 done
6999 ) > environment-$python_version .yml
@@ -84,23 +114,25 @@ for python_version in 3.9 3.10 3.11; do
84114 ) > environment-optional-$python_version .yml
85115
86116 (
87- (
88- sed ' s/name: sage/name: sage-dev/' src/environment-$python_version .yml
89- echo " # Additional dev tools"
90- for pkg in $DEVELOP_SYSTEM_PACKAGES ; do
91- echo " - $pkg "
92- done
93- ) >&4
94- (
95- cat src/environment-$python_version .yml
96- echo " # optional packages"
97- for pkg in $OPTIONAL_SYSTEM_PACKAGES $SAGELIB_OPTIONAL_SYSTEM_PACKAGES ; do
98- echo " - $pkg "
99- done
100- ) >&5
117+ sed ' s/name: sage/name: sage-dev/' src/environment-$python_version .yml
118+ echo " # Additional dev tools"
119+ for pkg in $DEVELOP_SYSTEM_PACKAGES ; do
120+ echo " - $pkg "
121+ done
122+ ) > src/environment-dev-$python_version .yml
123+
124+ (
125+ cat src/environment-$python_version .yml
126+ echo " # optional packages"
127+ for pkg in $OPTIONAL_SYSTEM_PACKAGES $SAGELIB_OPTIONAL_SYSTEM_PACKAGES ; do
128+ echo " - $pkg "
129+ done
130+ ) > src/environment-optional-$python_version .yml
131+
132+ (
101133 echo >&4 " - pip:"
102134 echo >&5 " - pip:"
103- for PKG_BASE in $(( sage- package list : standard: : optional: -- has- file requirements.txt -- no- file distros/ conda.txt -- no- file src; sage- package list : standard: : optional: -- has- file install- requires.txt -- no- file requirements.txt -- no- file distros/ conda.txt -- no- file src) | sort ); do
135+ for PKG_BASE in $( sage-package list :standard: :optional: --has-file requirements.txt --no-file distros/conda.txt --no-file src; sage-package list :standard: :optional: --has-file install-requires.txt --no-file requirements.txt --no-file distros/conda.txt --no-file src) ; do
104136 PKG_SCRIPTS=build/pkgs/$PKG_BASE
105137 SYSTEM_PACKAGES_FILE=$PKG_SCRIPTS /requirements.txt
106138 if [ ! -f $SYSTEM_PACKAGES_FILE ]; then
0 commit comments