diff options
author | Alessio Sergi <al3hex@gmail.com> | 2016-10-16 14:46:46 +0000 |
---|---|---|
committer | Alessio Sergi <al3hex@gmail.com> | 2016-10-16 14:59:31 +0000 |
commit | 4e6576e7a4d11e717ce6e16121bbb1bdb362bb50 (patch) | |
tree | c25d8791349c0fd37c6beebfa8624969bdc9d56b /common/hooks | |
parent | c90131095c15f1572e0b3d156f5a7568f1d7d45f (diff) | |
download | void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.tar void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.tar.gz void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.tar.bz2 void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.tar.lz void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.tar.xz void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.tar.zst void-packages-4e6576e7a4d11e717ce6e16121bbb1bdb362bb50.zip |
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)
Diffstat (limited to 'common/hooks')
-rw-r--r-- | common/hooks/post-install/04-create-xbps-metadata-scripts.sh | 4 | ||||
-rw-r--r-- | common/hooks/pre-pkg/03-rewrite-python-shebang.sh | 41 |
2 files changed, 18 insertions, 27 deletions
diff --git a/common/hooks/post-install/04-create-xbps-metadata-scripts.sh b/common/hooks/post-install/04-create-xbps-metadata-scripts.sh index 36dbc8c72fa..090e27e4a7c 100644 --- a/common/hooks/post-install/04-create-xbps-metadata-scripts.sh +++ b/common/hooks/post-install/04-create-xbps-metadata-scripts.sh @@ -231,6 +231,10 @@ _EOF # # Handle python bytecode archives with pycompile trigger. # + if [ -d ${PKGDESTDIR}/usr/lib/python* ]; then + pycompile_version="$(find ${PKGDESTDIR}/usr/lib/python* -type d | grep -o '[[:digit:]]\.[[:digit:]]$')" + fi + if [ -n "${pycompile_dirs}" -o -n "${pycompile_module}" ]; then echo "export pycompile_version=\"${pycompile_version:=2.7}\"" >>$tmpf if [ -n "${pycompile_dirs}" ]; then diff --git a/common/hooks/pre-pkg/03-rewrite-python-shebang.sh b/common/hooks/pre-pkg/03-rewrite-python-shebang.sh index e45c6044458..e5fb2157441 100644 --- a/common/hooks/pre-pkg/03-rewrite-python-shebang.sh +++ b/common/hooks/pre-pkg/03-rewrite-python-shebang.sh @@ -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 } |