mirror of
https://git.yoctoproject.org/poky
synced 2026-02-05 16:28:43 +01:00
The compiled .pyc files contain time stamp corresponding to the compile time. This prevents binary reproducibility. This patch allows to achieve binary reproducibility by overriding the build time stamp by the value exported via SOURCE_DATE_EPOCH. Patch by Bernhard M. Wiedemann. [YOCTO#11241] (From OE-Core rev: 2175aec10a764bfc925a3fb447547982d0ae662f) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
81 lines
2.6 KiB
BlitzBasic
81 lines
2.6 KiB
BlitzBasic
require recipes-devtools/python/python.inc
|
|
|
|
PR = "${INC_PR}.0"
|
|
PYTHON_MAJMIN = "3.5"
|
|
DISTRO_SRC_URI ?= "file://sitecustomize.py"
|
|
DISTRO_SRC_URI_linuxstdbase = ""
|
|
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
|
|
file://12-distutils-prefix-is-inside-staging-area.patch \
|
|
file://python-config.patch \
|
|
file://0001-cross-compile-support.patch \
|
|
file://030-fixup-include-dirs.patch \
|
|
file://070-dont-clean-ipkg-install.patch \
|
|
file://080-distutils-dont_adjust_files.patch \
|
|
file://130-readline-setup.patch \
|
|
file://150-fix-setupterm.patch \
|
|
file://python-3.3-multilib.patch \
|
|
file://03-fix-tkinter-detection.patch \
|
|
file://avoid_warning_about_tkinter.patch \
|
|
file://shutil-follow-symlink-fix.patch \
|
|
file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
|
|
file://sysroot-include-headers.patch \
|
|
file://unixccompiler.patch \
|
|
${DISTRO_SRC_URI} \
|
|
file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
|
|
file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
|
|
file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \
|
|
file://support_SOURCE_DATE_EPOCH_in_py_compile.patch \
|
|
"
|
|
|
|
SRC_URI[md5sum] = "57d1f8bfbabf4f2500273fb0706e6f21"
|
|
SRC_URI[sha256sum] = "eefe2ad6575855423ab630f5b51a8ef6e5556f774584c06beab4926f930ddbb0"
|
|
|
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=b680ed99aa60d350c65a65914494207e"
|
|
|
|
# exclude pre-releases for both python 2.x and 3.x
|
|
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
|
|
|
|
S = "${WORKDIR}/Python-${PV}"
|
|
|
|
EXTRANATIVEPATH += "bzip2-native"
|
|
DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native"
|
|
|
|
inherit native
|
|
|
|
require python-native-${PYTHON_MAJMIN}-manifest.inc
|
|
|
|
EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip"
|
|
|
|
EXTRA_OEMAKE = '\
|
|
LIBC="" \
|
|
STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
|
|
STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
|
|
LIB=${baselib} \
|
|
ARCH=${TARGET_ARCH} \
|
|
'
|
|
|
|
# No ctypes option for python 3
|
|
PYTHONLSBOPTS = ""
|
|
|
|
do_configure_append() {
|
|
autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
|
|
}
|
|
|
|
do_install() {
|
|
install -d ${D}${libdir}/pkgconfig
|
|
oe_runmake 'DESTDIR=${D}' install
|
|
if [ -e ${WORKDIR}/sitecustomize.py ]; then
|
|
install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
|
|
fi
|
|
install -d ${D}${bindir}/${PN}
|
|
install -m 0755 Parser/pgen ${D}${bindir}/${PN}
|
|
|
|
# Make sure we use /usr/bin/env python
|
|
for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
|
|
sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
|
|
done
|
|
|
|
# Tests are large and we don't need them in the native sysroot
|
|
rm ${D}${libdir}/python${PYTHON_MAJMIN}/test -rf
|
|
}
|