• [gentoo-dev] [PATCH 4/4] waf-utils.eclass: set PYTHONHASHSEED environme

    From Matthew Smith@21:1/5 to All on Sat Nov 19 10:30:01 2022
    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 <matthew@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
  • From =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?=@21:1/5 to Matthew Smith on Sat Nov 19 11:20:01 2022
    On Sat, 2022-11-19 at 09:23 +0000, Matthew Smith wrote:
    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.


    Normally I'd say that avoiding build system bugs like this goes against
    Gentoo principles but given this is waf...

    --
    Best regards,
    Michał Górny

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)