mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-05 06:33:50 +02:00
New package: python3.11-3.11.6
This commit is contained in:
parent
591ad074bd
commit
b532149a46
7 changed files with 288 additions and 0 deletions
1
srcpkgs/python3.11-devel
Symbolic link
1
srcpkgs/python3.11-devel
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
python3.11
|
29
srcpkgs/python3.11/files/EXTERNALLY-MANAGED
Normal file
29
srcpkgs/python3.11/files/EXTERNALLY-MANAGED
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
[externally-managed]
|
||||||
|
Error=
|
||||||
|
This system-wide Python installation is managed by the Void Linux package
|
||||||
|
manager, XBPS. Installation of Python packages from other sources is not
|
||||||
|
normally allowed.
|
||||||
|
|
||||||
|
To install a Python package not offered by Void Linux, consider using a virtual
|
||||||
|
environment, e.g.:
|
||||||
|
|
||||||
|
python3 -m venv /path/to/venv
|
||||||
|
/path/to/venv/pip install <package>
|
||||||
|
|
||||||
|
Appending the flag --system-site-packages to the first command will give the
|
||||||
|
virtual environment access to any Python package installed via XBPS.
|
||||||
|
|
||||||
|
Invoking python, pip, and executables installed by pip in /path/to/venv/bin
|
||||||
|
should automatically use the virtual environment. Alternatively, source its
|
||||||
|
activation script to add the environment to the command search path for a shell:
|
||||||
|
|
||||||
|
. /path/to/venv/activate
|
||||||
|
|
||||||
|
After activation, running
|
||||||
|
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
will remove the environment from the search path without destroying it.
|
||||||
|
|
||||||
|
The XBPS package python3-pipx provides pipx, a convenient tool to automatically
|
||||||
|
manage virtual environments for individual Python applications.
|
21
srcpkgs/python3.11/files/cross.patch
Normal file
21
srcpkgs/python3.11/files/cross.patch
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
diff -ur a/Makefile.pre.in b/Makefile.pre.in
|
||||||
|
--- a/Makefile.pre.in
|
||||||
|
+++ b/Makefile.pre.in
|
||||||
|
@@ -1901,8 +1901,6 @@
|
||||||
|
upgrade) ensurepip="--upgrade" ;; \
|
||||||
|
install|*) ensurepip="" ;; \
|
||||||
|
esac; \
|
||||||
|
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
||||||
|
- $$ensurepip --root=$(DESTDIR)/ ; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
.PHONY: altinstall
|
||||||
|
@@ -1912,8 +1910,6 @@
|
||||||
|
upgrade) ensurepip="--altinstall --upgrade" ;; \
|
||||||
|
install|*) ensurepip="--altinstall" ;; \
|
||||||
|
esac; \
|
||||||
|
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
||||||
|
- $$ensurepip --root=$(DESTDIR)/ ; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
.PHONY: commoninstall
|
44
srcpkgs/python3.11/patches/musl-find_library.patch
Normal file
44
srcpkgs/python3.11/patches/musl-find_library.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
--- a/Lib/ctypes/util.py
|
||||||
|
+++ b/Lib/ctypes/util.py
|
||||||
|
@@ -265,6 +265,41 @@
|
||||||
|
def find_library(name, is64 = False):
|
||||||
|
return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
|
||||||
|
|
||||||
|
+ elif True:
|
||||||
|
+
|
||||||
|
+ # Patched for Alpine Linux / musl - search manually system paths
|
||||||
|
+ def _is_elf(filepath):
|
||||||
|
+ try:
|
||||||
|
+ with open(filepath, 'rb') as fh:
|
||||||
|
+ return fh.read(4) == b'\x7fELF'
|
||||||
|
+ except:
|
||||||
|
+ return False
|
||||||
|
+
|
||||||
|
+ def find_library(name):
|
||||||
|
+ from glob import glob
|
||||||
|
+ # absolute name?
|
||||||
|
+ if os.path.isabs(name):
|
||||||
|
+ return name
|
||||||
|
+ # special case for libm, libcrypt and libpthread and musl
|
||||||
|
+ if name in ['m', 'crypt', 'pthread']:
|
||||||
|
+ name = 'c'
|
||||||
|
+ elif name in ['libm.so', 'libcrypt.so', 'libpthread.so']:
|
||||||
|
+ name = 'libc.so'
|
||||||
|
+ # search in standard locations (musl order)
|
||||||
|
+ paths = ['/lib', '/usr/local/lib', '/usr/lib']
|
||||||
|
+ if 'LD_LIBRARY_PATH' in os.environ:
|
||||||
|
+ paths = os.environ['LD_LIBRARY_PATH'].split(':') + paths
|
||||||
|
+ for d in paths:
|
||||||
|
+ f = os.path.join(d, name)
|
||||||
|
+ if _is_elf(f):
|
||||||
|
+ return os.path.basename(f)
|
||||||
|
+
|
||||||
|
+ prefix = os.path.join(d, 'lib'+name)
|
||||||
|
+ for suffix in ['.so', '.so.*']:
|
||||||
|
+ for f in glob('{0}{1}'.format(prefix, suffix)):
|
||||||
|
+ if _is_elf(f):
|
||||||
|
+ return os.path.basename(f)
|
||||||
|
+
|
||||||
|
else:
|
||||||
|
|
||||||
|
def _findSoname_ldconfig(name):
|
45
srcpkgs/python3.11/patches/ppc-fixes.patch
Normal file
45
srcpkgs/python3.11/patches/ppc-fixes.patch
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
diff -ur a/configure b/configure
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -5952,6 +5952,14 @@
|
||||||
|
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
|
||||||
|
EGREP="$ac_cv_path_EGREP"
|
||||||
|
|
||||||
|
+if test x$MULTIARCH = xpowerpc-linux-musl
|
||||||
|
+then
|
||||||
|
+ MULTIARCH="powerpc-linux-gnu"
|
||||||
|
+fi
|
||||||
|
+if test x$MULTIARCH = xpowerpcle-linux-musl
|
||||||
|
+then
|
||||||
|
+ MULTIARCH="powerpcle-linux-gnu"
|
||||||
|
+fi
|
||||||
|
|
||||||
|
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CC compiler name" >&5
|
||||||
|
@@ -6859,7 +6867,11 @@
|
||||||
|
powerpc64-linux-gnu
|
||||||
|
# endif
|
||||||
|
# elif defined(__powerpc__)
|
||||||
|
+# if defined(__LITTLE_ENDIAN__)
|
||||||
|
+ powerpcle-linux-gnu
|
||||||
|
+# else
|
||||||
|
powerpc-linux-gnu
|
||||||
|
+# endif
|
||||||
|
# elif defined(__s390x__)
|
||||||
|
s390x-linux-gnu
|
||||||
|
# elif defined(__s390__)
|
||||||
|
diff -ur a/configure.ac b/configure.ac
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -1039,7 +1039,11 @@
|
||||||
|
powerpc64-linux-gnu
|
||||||
|
# endif
|
||||||
|
# elif defined(__powerpc__)
|
||||||
|
+# if defined(__LITTLE_ENDIAN__)
|
||||||
|
+ powerpcle-linux-gnu
|
||||||
|
+# else
|
||||||
|
powerpc-linux-gnu
|
||||||
|
+# endif
|
||||||
|
# elif defined(__s390x__)
|
||||||
|
s390x-linux-gnu
|
||||||
|
# elif defined(__s390__)
|
145
srcpkgs/python3.11/template
Normal file
145
srcpkgs/python3.11/template
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
# Template file for 'python3.11'
|
||||||
|
pkgname=python3.11
|
||||||
|
version=3.11.6
|
||||||
|
revision=1
|
||||||
|
build_style="gnu-configure"
|
||||||
|
configure_args="--enable-shared --enable-ipv6 --enable-optimizations
|
||||||
|
--enable-loadable-sqlite-extensions --with-computed-gotos
|
||||||
|
--with-dbmliborder=gdbm:ndbm --with-system-expat --with-system-ffi
|
||||||
|
--without-ensurepip ac_cv_working_tzset=yes"
|
||||||
|
pycompile_dirs="usr/lib/python${version%.*}"
|
||||||
|
hostmakedepends="pkgconf"
|
||||||
|
makedepends="libffi-devel readline-devel gdbm-devel openssl-devel
|
||||||
|
expat-devel sqlite-devel bzip2-devel zlib-devel liblzma-devel"
|
||||||
|
depends="ca-certificates"
|
||||||
|
checkdepends="$depends iana-etc"
|
||||||
|
short_desc="Python ${version%.*} (limited install; not for regular use)"
|
||||||
|
maintainer="Andrew J. Hesford <ajh@sideband.org>"
|
||||||
|
license="Python-2.0"
|
||||||
|
homepage="https://www.python.org"
|
||||||
|
_bluez="bluez-5.64"
|
||||||
|
distfiles="
|
||||||
|
https://www.python.org/ftp/python/${version%rc*}/Python-${version}.tar.xz
|
||||||
|
${KERNEL_SITE}/bluetooth/${_bluez}.tar.xz
|
||||||
|
"
|
||||||
|
checksum="0fab78fa7f133f4f38210c6260d90d7c0d5c7198446419ce057ec7ac2e6f5f38
|
||||||
|
ae437e65b6b3070c198bc5b0109fe9cdeb9eaa387380e2072f9de65fe8a1de34"
|
||||||
|
skip_extraction="${_bluez}.tar.xz"
|
||||||
|
|
||||||
|
if [ "$CROSS_BUILD" ]; then
|
||||||
|
hostmakedepends+=" python3.11"
|
||||||
|
configure_args+=" --with-build-python=python${version%.*}"
|
||||||
|
configure_args+=" ac_cv_broken_sem_getvalue=no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
# Ensure that the internal copy of expat is not used
|
||||||
|
rm -r Modules/expat
|
||||||
|
|
||||||
|
# Extract Bluetooth headers
|
||||||
|
local _srcdistdir="${XBPS_SRCDISTDIR}/${sourcepkg}-${version}"
|
||||||
|
mkdir External
|
||||||
|
bsdtar -C External --strip-components=1 -x \
|
||||||
|
-f "${_srcdistdir}/${_bluez}.tar.xz" "${_bluez}/lib/*.h"
|
||||||
|
mv External/lib External/bluetooth
|
||||||
|
}
|
||||||
|
|
||||||
|
post_patch() {
|
||||||
|
if [ -n "$CROSS_BUILD" ]; then
|
||||||
|
patch -Np1 -i ${FILESDIR}/cross.patch
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_configure() {
|
||||||
|
# If these are set, distutils will default to cc and attempt to pass
|
||||||
|
# `-R<path>` to the compiler for every compiled extension that sets an
|
||||||
|
# rpath rather than the '-Wl,-R<path>' argument that GCC requires
|
||||||
|
unset GCC CC CXX CPP LD AR AS RANLIB
|
||||||
|
|
||||||
|
# Make sure configure can find Bluetooth headers
|
||||||
|
CFLAGS+=" -I./External"
|
||||||
|
CPPFLAGS+=" -I./External"
|
||||||
|
./configure ${configure_args}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_check() {
|
||||||
|
local opts
|
||||||
|
|
||||||
|
# relies on sane group membership not found in xbps-src
|
||||||
|
opts="-i test_chown_*"
|
||||||
|
# expects shadow passwd db unreadable by user
|
||||||
|
opts+=" -i test_getspnam_exception"
|
||||||
|
# expects functionality patched out for musl
|
||||||
|
opts+=" -i test_find_library_with_*"
|
||||||
|
# SSL advertises unexpected ciphers
|
||||||
|
opts+=" -i test_shared_ciphers"
|
||||||
|
# requires in-tree expat, which we removed
|
||||||
|
opts+=" -i test_freeze_simple_script"
|
||||||
|
# anomalies in SSL session handling
|
||||||
|
opts+=" -i test_session*"
|
||||||
|
# overflow in datetime.time.mktime
|
||||||
|
opts+=" -i test_localtime_daylight_*_dst_true"
|
||||||
|
|
||||||
|
if [ "${XBPS_TARGET_LIBC}" = "musl" ]; then
|
||||||
|
# musl doesn't work with locales
|
||||||
|
opts+=" -i test_locale* -i test_c_locale* -i test__locale"
|
||||||
|
opts+=" -i test_fpathconf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
make ${makejobs} EXTRATESTOPTS="${opts}" quicktest
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
make DESTDIR=${DESTDIR} install maninstall
|
||||||
|
|
||||||
|
# Put the license in the usual location and remove from the libdir
|
||||||
|
# to prevent the XBPS trigger from attempting to byte-compile it
|
||||||
|
vlicense LICENSE
|
||||||
|
rm ${DESTDIR}/usr/lib/python${version%.*}/LICENSE.txt
|
||||||
|
|
||||||
|
# Remove major-only components that conflict with python3 packages
|
||||||
|
rm ${DESTDIR}/usr/bin/{pydoc3,python3,2to3,python3-config}
|
||||||
|
rm ${DESTDIR}/usr/lib/libpython3.so
|
||||||
|
rm ${DESTDIR}/usr/lib/pkgconfig/python3{,-embed}.pc
|
||||||
|
rm ${DESTDIR}/usr/share/man/man1/python3.1
|
||||||
|
|
||||||
|
# Remove files that belong to idle
|
||||||
|
rm ${DESTDIR}/usr/bin/idle3*
|
||||||
|
rm -r ${DESTDIR}/usr/lib/python${version%.*}/idlelib
|
||||||
|
|
||||||
|
# Remove test module and tests that fail to be byte-compiled.
|
||||||
|
rm -r ${DESTDIR}/usr/lib/python${version%.*}/test
|
||||||
|
rm -r ${DESTDIR}/usr/lib/python${version%.*}/lib2to3/tests
|
||||||
|
|
||||||
|
# Remove references to the install(1) wrapper.
|
||||||
|
sed -e "s,${XBPS_WRAPPERDIR},/usr/bin,g" -i \
|
||||||
|
${DESTDIR}/usr/lib/python${version%.*}/_sysconfigdata_*_*.py \
|
||||||
|
${DESTDIR}/usr/lib/python${version%.*}/config-${version%.*}*/Makefile
|
||||||
|
|
||||||
|
if [ "$CROSS_BUILD" ]; then
|
||||||
|
# Remove references to cross toolchain.
|
||||||
|
sed -i "s/$XBPS_CROSS_TRIPLET-//g" \
|
||||||
|
${DESTDIR}/usr/lib/python${version%.*}/_sysconfigdata_*_*.py \
|
||||||
|
${DESTDIR}/usr/lib/python${version%.*}/config-${version%.*}*/Makefile
|
||||||
|
sed -i -e "s,$XBPS_CROSS_BASE,,g" \
|
||||||
|
${DESTDIR}/usr/bin/python${version%.*}-config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://peps.python.org/pep-0668/
|
||||||
|
vinstall ${FILESDIR}/EXTERNALLY-MANAGED 644 usr/lib/python${version%.*}
|
||||||
|
}
|
||||||
|
|
||||||
|
python3.11-devel_package() {
|
||||||
|
short_desc+=" - development files"
|
||||||
|
depends="${sourcepkg}-${version}_${revision}"
|
||||||
|
pkg_install() {
|
||||||
|
vmove usr/bin/python*-config
|
||||||
|
vmove usr/lib/pkgconfig
|
||||||
|
vmove usr/include
|
||||||
|
mv ${DESTDIR}/usr/lib/python${version%.*}/config-${version%.*}*/libpython${version%.*}*.a \
|
||||||
|
${PKGDESTDIR}/usr/lib
|
||||||
|
mkdir -p ${DESTDIR}/usr/include/python${version%.*}
|
||||||
|
mv ${PKGDESTDIR}/usr/include/python${version%.*}/pyconfig.h \
|
||||||
|
${DESTDIR}/usr/include/python${version%.*}
|
||||||
|
}
|
||||||
|
}
|
3
srcpkgs/python3.11/update
Normal file
3
srcpkgs/python3.11/update
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
pkgname=Python
|
||||||
|
site="${homepage}/downloads/source/"
|
||||||
|
pattern='Python-\K3\.11\.[0-9]+(?=\.tgz)'
|
Loading…
Add table
Reference in a new issue