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
|
@ -2,36 +2,23 @@
|
|||
# - rewrites python shebangs with the corresponding python version
|
||||
|
||||
hook() {
|
||||
local pyver= shebang= warn= off=
|
||||
local pyver= shebang= off=
|
||||
|
||||
case $pkgname in
|
||||
python-*)
|
||||
pyver=2.7;;
|
||||
python3.4-*)
|
||||
pyver=3.4;;
|
||||
python3.5-*)
|
||||
pyver=3.5;;
|
||||
*)
|
||||
for i in $pycompile_version $python_versions; do
|
||||
if [ "$pyver" ]; then
|
||||
warn=1
|
||||
break;
|
||||
fi
|
||||
pyver=$i
|
||||
done
|
||||
: ${pyver:=2.7}
|
||||
;;
|
||||
esac
|
||||
: ${pyver:=2}
|
||||
|
||||
shebang="#!/usr/bin/python$pyver"
|
||||
if [ -d ${PKGDESTDIR}/usr/lib/python* ]; then
|
||||
pycompile_version="$(find ${PKGDESTDIR}/usr/lib/python* -type d | grep -o '[[:digit:]]\.[[:digit:]]$')"
|
||||
fi
|
||||
|
||||
if [ -n "$pycompile_version" ]; then
|
||||
pyver="$pycompile_version"
|
||||
fi
|
||||
|
||||
shebang="#!/usr/bin/python${pyver%.*}"
|
||||
find ${PKGDESTDIR} -type f -print0 | \
|
||||
xargs -0 grep -H -b -m 1 "^#!.*\([[:space:]]\|/\)python\([[:space:]]\|$\)" -- | while IFS=: read -r f off _; do
|
||||
xargs -0 grep -H -b -m 1 "^#!.*\([[:space:]]\|/\)python\([[:space:]]*\|$\)" -- | while IFS=: read -r f off _; do
|
||||
[ -z "$off" ] && continue
|
||||
if [ "$warn" ]; then
|
||||
msg_warn "$pkgver: multiple python versions defined! (using $pyver for shebangs)\n"
|
||||
unset warn
|
||||
fi
|
||||
echo " Unversioned shebang replaced by '$shebang': ${f#$PKGDESTDIR}"
|
||||
sed -i "1s@.*python@${shebang}@" -- "$f"
|
||||
echo " Shebang converted to '$shebang': ${f#$PKGDESTDIR}"
|
||||
sed -i "1s@.*python.*@${shebang}@" -- "$f"
|
||||
done
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue