[arch-commits] Commit in scons/trunk (PKGBUILD)
David Runge
dvzrv at archlinux.org
Fri Jul 26 13:58:09 UTC 2019
Date: Friday, July 26, 2019 @ 13:58:08
Author: dvzrv
Revision: 358625
upgpkg: scons 3.1.0-1
Upgrading to 3.1.0 and creating a split package (scons with python2 dependencies is tracked in python2-scons, until it is dropped eventually).
Building from general source tarball by emulating a 'release'. Running tests in check() for python and python2. Separating build and packaging steps.
Patching python2 version to be installable side-by-side with python version.
Modified:
scons/trunk/PKGBUILD
----------+
PKGBUILD | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 119 insertions(+), 12 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-07-26 13:56:55 UTC (rev 358624)
+++ PKGBUILD 2019-07-26 13:58:08 UTC (rev 358625)
@@ -1,26 +1,133 @@
-# Maintainer: Ray Rashif <schiv at archlinux.org>
+# Maintainer: David Runge <dave at sleepmap.de>
+# Contributor: Ray Rashif <schiv at archlinux.org>
# Contributor: damir <damir at archlinux.org>
# Contributor: Lukas Sabota <punkrockguy318 at comcast.net>
# Contributor: Brice Carpentier <brice at dlfp.org>
-pkgname=scons
-pkgver=3.0.4
-pkgrel=2
+pkgbase=scons
+pkgname=(scons python2-scons)
+pkgver=3.1.0
+pkgrel=1
pkgdesc="Extensible Python-based build utility"
arch=('any')
url="https://scons.org"
license=('MIT')
depends=('python')
-makedepends=('python-setuptools')
-source=("https://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
-sha256sums=('e2b8b36e25492720a05c0f0a92a219b42d11ce0c51e3397a1e8296dfea1d9b1a')
+makedepends=('python-setuptools' 'python2-setuptools')
+# potential additions include ipkg, rpm
+checkdepends=('clang' 'dmd' 'gdc' 'ldc' 'nasm' 'python-lxml' 'python-pytest'
+'python-virtualenv' 'python2-lxml' 'python2-pytest' 'python2-virtualenv' 'swig'
+'zip')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/${pkgname}/${pkgname}/archive/${pkgver}.tar.gz")
+sha512sums=('3894d17bca02b9aa5426c70d894b8ecfcf3db2b20254b848209c31d8413a8cd1c2a7b2a87ef9bcfe5555980beb2815f62cdbe185098a64ae8b3506c41c867463')
-package() {
- cd $pkgname-$pkgver
+prepare() {
+ (
+ cd "${pkgbase}-${pkgver}"
+ local _copyright='Copyright (c) 2001 - 2019 The SCons Foundation'
+ local _date_of_release="$(grep "RELEASE ${pkgver}" src/CHANGES.txt | cut -d ',' -f2)"
+ local _date="$(date -d "${_date_of_release}" +'%Y-%m-%d %H:%M:%S')"
+ # copy scripts to correct locations and change their globals
+ for _script in scons{,ign,-time,-configure-cache}; do
+ cp -v "src/script/${_script}.py" "src/script/${_script}"
+ sed -e "s|__COPYRIGHT__|${_copyright}|g" \
+ -e "s|__FILE__|/src/script/${_script}|g" \
+ -e 's/__REVISION__/none/g' \
+ -e "s|__DATE__|${_date}|g" \
+ -e 's/__BUILDSYS__/none/g' \
+ -e 's/__DEVELOPER__/none/g' \
+ -e "s/__VERSION__/${pkgver}/g" \
+ -i "src/script/${_script}"
+ done
+ sed -e "s|__COPYRIGHT__|${_copyright}|g" \
+ -e 's|__FILE__|/src/setup.py|g' \
+ -e 's/__REVISION__/none/g' \
+ -e "s|__DATE__|${_date}|g" \
+ -e 's/__BUILDSYS__/none/g' \
+ -e 's/__DEVELOPER__/none/g' \
+ -e "s/__VERSION__/${pkgver}/g" \
+ -i "src/setup.py"
+ )
+ # we need to copy all sources, because using build with python2 and python3
+ # would otherwise overwrite the build created first
+ cp -av "${pkgbase}-${pkgver}" "${pkgname[1]}-${pkgver}"
+ (
+ # fix shebang for python2 version
+ cd "${pkgname[1]}-${pkgver}"
+ sed -e 's/env python/env python2/' \
+ -i src/script/*
+ sed -e 's/python/python2/' \
+ -i src/engine/SCons/Tool/docbook/docbook-xsl-*/extensions/xslt.py
+ )
+}
- python setup.py install --standard-lib \
- --prefix=/usr \
+build() {
+ (
+ cd "${pkgbase}-${pkgver}"
+ # build man page and move to src directory
+ python bootstrap.py doc/SConscript
+ mv -v build/doc/man/* src/
+ cd src
+ python setup.py build
+ )
+ (
+ cd "${pkgname[1]}-${pkgver}"
+ # build man page and move to src directory
+ python2 bootstrap.py doc/SConscript
+ mv -v build/doc/man/* src/
+ cd src
+ python2 setup.py build
+ )
+}
+
+check() {
+ (
+ cd "${pkgbase}-${pkgver}"
+ python runtest.py -a -t || msg "Tests passing with 'NO RESULT' count as failed."
+ )
+ (
+ cd "${pkgname[1]}-${pkgver}"
+ python2 runtest.py -a -t || msg "Tests passing with 'NO RESULT' count as failed."
+ )
+}
+
+package_scons() {
+ depends=('python')
+ cd "${pkgname}-${pkgver}/src"
+ python setup.py install --prefix=/usr \
+ --skip-build \
+ --optimize=1 \
+ --standard-lib \
--install-data=/usr/share \
- --optimize=1 \
--root="$pkgdir"
+ install -vDm 644 LICENSE.txt -t "${pkgdir}/usr/share/licenses/${pkgname}/"
+ install -vDm 644 {CHANGES,README,RELEASE}.txt \
+ -t "${pkgdir}/usr/share/doc/${pkgname}/"
+ # removing Windows only script
+ rm -vf "${pkgdir}/usr/bin/scons"*.bat
}
+
+package_python2-scons() {
+ depends=('python2')
+ cd "${pkgname}-${pkgver}/src"
+ python2 setup.py install --prefix=/usr \
+ --skip-build \
+ --optimize=1 \
+ --standard-lib \
+ --install-data=/usr/share \
+ --root="$pkgdir"
+ install -vDm 644 LICENSE.txt -t "${pkgdir}/usr/share/licenses/${pkgname}/"
+ install -vDm 644 {CHANGES,README,RELEASE}.txt \
+ -t "${pkgdir}/usr/share/doc/${pkgname}/"
+ # removing Windows only script
+ rm -vf "${pkgdir}/usr/bin/scons"*.bat
+ # moving files so scons and python2-scons don't conflict
+ for _man_page in scons{,ign,-time}; do
+ mv -v "${pkgdir}/usr/share/man/man1/${_man_page}".1 \
+ "${pkgdir}/usr/share/man/man1/${_man_page}2".1
+ done
+ for _bin in scons{,ign,-configure-cache,-time}; do
+ mv -v "${pkgdir}/usr/bin/${_bin}"{,2}
+ mv -v "${pkgdir}/usr/bin/${_bin}-${pkgver}" "${pkgdir}/usr/bin/${_bin}2-${pkgver}"
+ done
+}
More information about the arch-commits
mailing list