xbps-src: add support for python3 pkgs
- python_module build style now builds modules for python2/3 by default - new python2_module and python3_module build styles for building python2-only and python3-only packages respectively - no more python_versions - no need to define pycompile_version for Python modules anymore (still needed for non-Python modules though) - Python version and paths are now guessed automatically and a set of useful variables can now be used in templates - #!/usr/bin/python2 and #!/usr/bin/python3 are now the default shebangs - /usr/bin/foo2 and /usr/bin/foo3 are now the default names for bin scripts (for use with alternatives)
This commit is contained in:
parent
c90131095c
commit
4e6576e7a4
8 changed files with 149 additions and 57 deletions
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
|
||||
do_build() {
|
||||
: ${python_versions:=2.7}
|
||||
: ${python_versions:="2.7 $py3_ver"}
|
||||
local pyver= pysufx=
|
||||
|
||||
for pyver in $python_versions; do
|
||||
|
@ -27,7 +27,7 @@ do_build() {
|
|||
}
|
||||
|
||||
do_install() {
|
||||
: ${python_versions:=2.7}
|
||||
: ${python_versions:="2.7 $py3_ver"}
|
||||
local pyver= pysufx=
|
||||
|
||||
for pyver in $python_versions; do
|
||||
|
@ -51,13 +51,11 @@ do_install() {
|
|||
fi
|
||||
|
||||
# Rename unversioned scripts to avoid name conflicts.
|
||||
if [ "$python_versions" != "2.7" -a "$python_versions" != "${python_versions#2.7}" ]; then
|
||||
if [ -d ${DESTDIR}/usr/bin ]; then
|
||||
find ${DESTDIR}/usr/bin -type f ! -name "*[[:digit:]]\.[[:digit:]]" | while IFS= read -r f _; do
|
||||
mv "${f}" "${f}${pyver}"
|
||||
echo "[python-module] Unversioned script renamed to '${f#$DESTDIR}${pyver}'"
|
||||
done
|
||||
fi
|
||||
if [ -d ${DESTDIR}/usr/bin ]; then
|
||||
find ${DESTDIR}/usr/bin -type f ! -name "*[[:digit:]]" | while IFS= read -r f _; do
|
||||
mv "${f}" "${f}${pyver%.*}"
|
||||
echo "[python-module] Unversioned script renamed to '${f#$DESTDIR}${pyver%.*}'"
|
||||
done
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
|
37
common/build-style/python2-module.sh
Normal file
37
common/build-style/python2-module.sh
Normal file
|
@ -0,0 +1,37 @@
|
|||
#
|
||||
# This helper is for templates installing python2-only modules.
|
||||
#
|
||||
|
||||
do_build() {
|
||||
if [ -n "$CROSS_BUILD" ]; then
|
||||
PYPREFIX="$XBPS_CROSS_BASE"
|
||||
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py2_inc} -I${XBPS_CROSS_BASE}/usr/include"
|
||||
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py2_lib} -L${XBPS_CROSS_BASE}/usr/lib"
|
||||
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
|
||||
LDSHARED="${CC} -shared $LDFLAGS"
|
||||
env CC="$CC" LDSHARED="$LDSHARED" \
|
||||
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
|
||||
LDFLAGS="$LDFLAGS" python2 setup.py \
|
||||
build --build-base=build-${py2_ver} ${make_build_args}
|
||||
else
|
||||
python2 setup.py build --build-base=build-${py2_ver} ${make_build_args}
|
||||
fi
|
||||
}
|
||||
|
||||
do_install() {
|
||||
if [ -n "$CROSS_BUILD" ]; then
|
||||
PYPREFIX="$XBPS_CROSS_BASE"
|
||||
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py2_inc} -I${XBPS_CROSS_BASE}/usr/include"
|
||||
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py2_lib} -L${XBPS_CROSS_BASE}/usr/lib"
|
||||
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
|
||||
LDSHARED="${CC} -shared $LDFLAGS"
|
||||
env CC="$CC" LDSHARED="$LDSHARED" \
|
||||
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
|
||||
LDFLAGS="$LDFLAGS" python2 setup.py \
|
||||
build --build-base=build-${py2_ver} \
|
||||
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
|
||||
else
|
||||
python2 setup.py build --build-base=build-${py2_ver} \
|
||||
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
|
||||
fi
|
||||
}
|
37
common/build-style/python3-module.sh
Normal file
37
common/build-style/python3-module.sh
Normal file
|
@ -0,0 +1,37 @@
|
|||
#
|
||||
# This helper is for templates installing python3-only modules.
|
||||
#
|
||||
|
||||
do_build() {
|
||||
if [ -n "$CROSS_BUILD" ]; then
|
||||
PYPREFIX="$XBPS_CROSS_BASE"
|
||||
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
|
||||
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
|
||||
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
|
||||
LDSHARED="${CC} -shared $LDFLAGS"
|
||||
env CC="$CC" LDSHARED="$LDSHARED" \
|
||||
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
|
||||
LDFLAGS="$LDFLAGS" python3 setup.py \
|
||||
build --build-base=build-${py3_ver} ${make_build_args}
|
||||
else
|
||||
python3 setup.py build --build-base=build-${py3_ver} ${make_build_args}
|
||||
fi
|
||||
}
|
||||
|
||||
do_install() {
|
||||
if [ -n "$CROSS_BUILD" ]; then
|
||||
PYPREFIX="$XBPS_CROSS_BASE"
|
||||
CFLAGS+=" -I${XBPS_CROSS_BASE}/${py3_inc} -I${XBPS_CROSS_BASE}/usr/include"
|
||||
LDFLAGS+=" -L${XBPS_CROSS_BASE}/${py3_lib} -L${XBPS_CROSS_BASE}/usr/lib"
|
||||
CC="${XBPS_CROSS_TRIPLET}-gcc -pthread $CFLAGS $LDFLAGS"
|
||||
LDSHARED="${CC} -shared $LDFLAGS"
|
||||
env CC="$CC" LDSHARED="$LDSHARED" \
|
||||
PYPREFIX="$PYPREFIX" CFLAGS="$CFLAGS" \
|
||||
LDFLAGS="$LDFLAGS" python3 setup.py \
|
||||
build --build-base=build-${py3_ver} \
|
||||
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
|
||||
else
|
||||
python3 setup.py build --build-base=build-${py3_ver} \
|
||||
install --prefix=/usr --root=${DESTDIR} ${make_install_args}
|
||||
fi
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue