waf relies on Python set order, so let's make it consistent to avoid
brittle builds.

Added into existing phase functions instead of pkg_setup to retain
compatibility with existing ebuilds.

Signed-off-by: Matthew Smith <matt...@gentoo.org>
---
 eclass/waf-utils.eclass | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/eclass/waf-utils.eclass b/eclass/waf-utils.eclass
index 66041fc3f60..3ff74db0d79 100644
--- a/eclass/waf-utils.eclass
+++ b/eclass/waf-utils.eclass
@@ -95,6 +95,7 @@ waf-utils_src_configure() {
        tc-export AR CC CPP CXX RANLIB
 
        local CMD=(
+               PYTHONHASHSEED=1
                CCFLAGS="${CFLAGS}"
                LINKFLAGS="${CFLAGS} ${LDFLAGS}"
                PKGCONFIG="$(tc-getPKG_CONFIG)"
@@ -119,6 +120,8 @@ waf-utils_src_compile() {
        local _mywafconfig
        [[ ${WAF_VERBOSE} == ON ]] && _mywafconfig="--verbose"
 
+       export PYTHONHASHSEED=1
+
        local jobs="--jobs=$(makeopts_jobs)"
        echo "\"${WAF_BINARY}\" build ${_mywafconfig} ${jobs} ${*}"
        "${WAF_BINARY}" ${_mywafconfig} ${jobs} "${@}" || die "build failed"
@@ -130,6 +133,8 @@ waf-utils_src_compile() {
 waf-utils_src_install() {
        debug-print-function ${FUNCNAME} "$@"
 
+       export PYTHONHASHSEED=1
+
        echo "\"${WAF_BINARY}\" --jobs=1 --destdir=\"${D}\" ${*} install"
        "${WAF_BINARY}" --jobs=1 --destdir="${D}" "${@}" install || die "Make 
install failed"
 
-- 
2.38.1


Reply via email to