mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-20 16:12:22 +01:00
the wininst is only needed for creating binary disttribution for windows and is rarely needed. The precompiled .exe files contains statically linked version of zlib 1.2.8 which is vulnerable. Remove them from main package and save a couple of MB.
135 lines
4.2 KiB
Plaintext
135 lines
4.2 KiB
Plaintext
# Maintainer: Łukasz Jendrysik <scadu@yandex.com>
|
|
# Contributor: Kiyoshi Aman <kiyoshi.aman@gmail.com>
|
|
|
|
pkgname=python3
|
|
pkgver=3.6.2
|
|
_basever="${pkgver%.*}"
|
|
pkgrel=3
|
|
pkgdesc="A high-level scripting language"
|
|
url="http://www.python.org"
|
|
arch="all"
|
|
license="custom"
|
|
provides="py3-pip"
|
|
subpackages="$pkgname-dev $pkgname-doc $pkgname-tests::noarch
|
|
$pkgname-tkinter:tkinter $pkgname-wininst"
|
|
makedepends="expat-dev libressl-dev zlib-dev ncurses-dev bzip2-dev xz-dev
|
|
sqlite-dev libffi-dev tcl-dev linux-headers gdbm-dev readline-dev
|
|
tk tk-dev"
|
|
source="http://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz
|
|
musl-find_library.patch
|
|
fix-xattrs-glibc.patch
|
|
bpo-30353.patch
|
|
"
|
|
builddir="$srcdir/Python-$pkgver"
|
|
|
|
prepare() {
|
|
default_prepare
|
|
|
|
cd "$builddir"
|
|
# force system libs
|
|
rm -r Modules/expat \
|
|
Modules/zlib \
|
|
Modules/_ctypes/darwin* \
|
|
Modules/_ctypes/libffi*
|
|
}
|
|
|
|
build() {
|
|
cd "$builddir"
|
|
|
|
# --enable-optimizations is not enabled because it
|
|
# is very, very slow as many tests are ran sequentially
|
|
# for profile guided optimizations. additionally it
|
|
# seems some of the training tests hang on certain
|
|
# e.g. architectures (x86) possibly due to grsec or musl.
|
|
|
|
./configure \
|
|
--prefix=/usr \
|
|
--disable-rpath \
|
|
--enable-ipv6 \
|
|
--enable-loadable-sqlite-extensions \
|
|
--enable-shared \
|
|
--with-lto \
|
|
--with-computed-gotos \
|
|
--with-dbmliborder=gdbm:ndbm \
|
|
--with-system-expat \
|
|
--with-system-ffi \
|
|
--with-threads
|
|
|
|
make EXTRA_CFLAGS="$CFLAGS"
|
|
}
|
|
|
|
check() {
|
|
cd "$builddir"
|
|
local fail
|
|
|
|
# musl related
|
|
fail="test__locale test_locale test_strptime test_re" # various musl locale deficiencies
|
|
fail="$fail test_datetime" # hangs if 'tzdata' installed
|
|
fail="$fail test_os" # fpathconf, ttyname errno values
|
|
fail="$fail test_posix" # sched_[gs]etscheduler not impl
|
|
fail="$fail test_shutil" # lchmod, requires real unzip
|
|
|
|
# failures needing investigation
|
|
fail="$fail test_faulthandler test_gdb" # hangs(?)
|
|
fail="$fail test_tokenize test_tools" # SLOW (~60s)
|
|
fail="$fail test_capi" # test.test_capi.EmbeddingTests
|
|
fail="$fail test_threadsignals" # test_{,r}lock_acquire_interruption
|
|
fail="$fail test_time" # strftime/strptime %Z related
|
|
fail="$fail test_cmath test_math" # hang(?) on x86
|
|
fail="$fail test_hash test_plistlib" # fail on armhf
|
|
fail="$fail test_ctypes" # fail on aarch64 (ctypes.test.test_win32.Structures)
|
|
|
|
# kernel related
|
|
fail="$fail test_fcntl" # wants DNOTIFY, we don't have it
|
|
|
|
make quicktest TESTOPTS="--exclude $fail"
|
|
}
|
|
|
|
package() {
|
|
cd "$builddir"
|
|
make -j1 DESTDIR="$pkgdir" EXTRA_CFLAGS="$CFLAGS" install maninstall
|
|
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
|
|
}
|
|
|
|
dev() {
|
|
default_dev
|
|
|
|
# pyconfig.h is needed runtime so we move it back
|
|
mkdir -p "$pkgdir"/usr/include/python${_basever}m
|
|
mv "$subpkgdir"/usr/include/python${_basever}m/pyconfig.h \
|
|
"$pkgdir"/usr/include/python${_basever}m/
|
|
}
|
|
|
|
tests() {
|
|
pkgdesc="The test modules from the main python package"
|
|
|
|
cd "$pkgdir"/usr/lib/python$_basever
|
|
local i; for i in */test */tests; do
|
|
mkdir -p "$subpkgdir"/usr/lib/python$_basever/"$i"
|
|
mv "$i"/* "$subpkgdir"/usr/lib/python$_basever/"$i"
|
|
rm -rf "$i"
|
|
done
|
|
mv "$pkgdir"/usr/lib/python$_basever/test \
|
|
"$subpkgdir"/usr/lib/python$_basever/
|
|
}
|
|
|
|
tkinter() {
|
|
pkgdesc="A graphical user interface for the Python"
|
|
local libdir="usr/lib/python$_basever/lib-dynload"
|
|
|
|
mkdir -p "$subpkgdir"/$libdir
|
|
mv "$pkgdir"/$libdir/_tkinter.*.so "$subpkgdir"/$libdir/
|
|
}
|
|
|
|
wininst() {
|
|
pkgdesc="Python wininst files"
|
|
mkdir -p "$subpkgdir"/usr/lib/python$_basever/distutils/command
|
|
mv "$pkgdir"/usr/lib/python$_basever/distutils/command/*.exe \
|
|
"$subpkgdir"/usr/lib/python$_basever/distutils/command
|
|
}
|
|
|
|
sha512sums="a8270a09a9e9b39f69ece6cdade2fa964665d2107b5acbad4453f1b921107b329c697c137185928fb4a576fc0f2ae2a98dbf26a8b7ea17219e990ddbc216db8b Python-3.6.2.tar.xz
|
|
ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch
|
|
37b6ee5d0d5de43799316aa111423ba5a666c17dc7f81b04c330f59c1d1565540eac4c585abe2199bbed52ebe7426001edb1c53bd0a17486a2a8e052d0f494ad fix-xattrs-glibc.patch
|
|
df54032e66171483aad24f9f370e185072dcb2d6981210a8dd79b5fa51c2c7aa64da2501aa96bb5009bfb658387851068bc82f23c515f739672722495c2c98dd bpo-30353.patch"
|