The Samba-Bugzilla – Attachment 17256 Details for
Bug 15033
4.16.0 build without PYTHONHASHSEED=1 fails due to gssapi.h header ordering
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Patches for v4-16-test
bfixes-tmp416.txt (text/plain), 22.96 KB, created by
Stefan Metzmacher
on 2022-03-30 09:09:18 UTC
(
hide
)
Description:
Patches for v4-16-test
Filename:
MIME Type:
Creator:
Stefan Metzmacher
Created:
2022-03-30 09:09:18 UTC
Size:
22.96 KB
patch
obsolete
>From cf43283d9dac9116e178364b1005a32756fffa75 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Sat, 19 Feb 2022 08:52:17 +0100 >Subject: [PATCH 1/8] buildtools: Reformat shell scripts > >shfmt -f buildtools | xargs shfmt -w -p -i 0 -fn > >Signed-off-by: Andreas Schneider <asn@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit 2d5d88ff34532ba2d78997467e5720bba480f07e) >--- > buildtools/compare_config_h4.sh | 4 +- > buildtools/compare_generated.sh | 59 ++++++++++++++------------- > buildtools/compare_install.sh | 4 +- > buildtools/scripts/abi_gen.sh | 22 +++++------ > buildtools/scripts/autogen-waf.sh | 6 +-- > buildtools/testwaf.sh | 66 +++++++++++++++---------------- > 6 files changed, 80 insertions(+), 81 deletions(-) > >diff --git a/buildtools/compare_config_h4.sh b/buildtools/compare_config_h4.sh >index b78b36fdd0fa..fee8abfbd503 100755 >--- a/buildtools/compare_config_h4.sh >+++ b/buildtools/compare_config_h4.sh >@@ -3,8 +3,8 @@ > # compare the generated config.h from a waf build with existing samba > # build > >-grep "^.define" bin/default/source4/include/config.h | sort > waf-config.h >-grep "^.define" $HOME/samba_old/source4/include/config.h | sort > old-config.h >+grep "^.define" bin/default/source4/include/config.h | sort >waf-config.h >+grep "^.define" $HOME/samba_old/source4/include/config.h | sort >old-config.h > > comm -23 old-config.h waf-config.h > >diff --git a/buildtools/compare_generated.sh b/buildtools/compare_generated.sh >index ebef8a979bde..e62657958139 100755 >--- a/buildtools/compare_generated.sh >+++ b/buildtools/compare_generated.sh >@@ -10,41 +10,40 @@ gen_files=$(cd bin/default && find . -type f -name '*.[ch]') > > strip_file() > { >- in_file=$1 >- out_file=$2 >- cat $in_file | >- grep -v 'The following definitions come from' | >- grep -v 'Automatically generated at' | >- grep -v 'Generated from' | >- sed 's|/home/tnagy/samba/source4||g' | >- sed 's|/home/tnagy/samba/|../|g' | >- sed 's|bin/default/source4/||g' | >- sed 's|bin/default/|../|g' | >- sed 's/define _____/define ___/g' | >- sed 's/define __*/define _/g' | >- sed 's/define _DEFAULT_/define _/g' | >- sed 's/define _SOURCE4_/define ___/g' | >- sed 's/define ___/define _/g' | >- sed 's/ifndef ___/ifndef _/g' | >- sed 's|endif /* ____|endif /* __|g' | >- sed s/__DEFAULT_SOURCE4/__/ | >- sed s/__DEFAULT_SOURCE4/__/ | >- sed s/__DEFAULT/____/ > $out_file >+ in_file=$1 >+ out_file=$2 >+ cat $in_file | >+ grep -v 'The following definitions come from' | >+ grep -v 'Automatically generated at' | >+ grep -v 'Generated from' | >+ sed 's|/home/tnagy/samba/source4||g' | >+ sed 's|/home/tnagy/samba/|../|g' | >+ sed 's|bin/default/source4/||g' | >+ sed 's|bin/default/|../|g' | >+ sed 's/define _____/define ___/g' | >+ sed 's/define __*/define _/g' | >+ sed 's/define _DEFAULT_/define _/g' | >+ sed 's/define _SOURCE4_/define ___/g' | >+ sed 's/define ___/define _/g' | >+ sed 's/ifndef ___/ifndef _/g' | >+ sed 's|endif /* ____|endif /* __|g' | >+ sed s/__DEFAULT_SOURCE4/__/ | >+ sed s/__DEFAULT_SOURCE4/__/ | >+ sed s/__DEFAULT/____/ >$out_file > } > > compare_file() > { >- f=$f >- bname=$(basename $f) >- t1=/tmp/$bname.old.$$ >- t2=/tmp/$bname.new.$$ >- strip_file $old_build/$f $t1 >- strip_file bin/default/$f $t2 >- diff -u -b $t1 $t2 2>&1 >- rm -f $t1 $t2 >+ f=$f >+ bname=$(basename $f) >+ t1=/tmp/$bname.old.$$ >+ t2=/tmp/$bname.new.$$ >+ strip_file $old_build/$f $t1 >+ strip_file bin/default/$f $t2 >+ diff -u -b $t1 $t2 2>&1 >+ rm -f $t1 $t2 > } > > for f in $gen_files; do >- compare_file $f >+ compare_file $f > done >- >diff --git a/buildtools/compare_install.sh b/buildtools/compare_install.sh >index b964117550b6..37772a46a4ca 100755 >--- a/buildtools/compare_install.sh >+++ b/buildtools/compare_install.sh >@@ -3,6 +3,6 @@ > prefix1="$1" > prefix2="$2" > >-(cd $prefix1 && find . ) | sort > p1.txt >-(cd $prefix2 && find . ) | sort > p2.txt >+(cd $prefix1 && find .) | sort >p1.txt >+(cd $prefix2 && find .) | sort >p2.txt > diff -u p[12].txt >diff --git a/buildtools/scripts/abi_gen.sh b/buildtools/scripts/abi_gen.sh >index ddb0a7cc36fd..c66a1b848a88 100755 >--- a/buildtools/scripts/abi_gen.sh >+++ b/buildtools/scripts/abi_gen.sh >@@ -6,21 +6,21 @@ SHAREDLIB="$1" > GDBSCRIPT="gdb_syms.$$" > > ( >-cat <<EOF >+ cat <<EOF > set height 0 > set width 0 > EOF > >-# On older linker versions _init|_fini symbols are not hidden. >-objdump --dynamic-syms "${SHAREDLIB}" | \ >- awk '$0 !~ /.hidden/ {if ($2 == "g" && $3 ~ /D(F|O)/ && $4 ~ /(.bss|.rodata|.text)/) print $NF}' | \ >- sort | \ >- while read -r s; do >- echo "echo $s: " >- echo p "${s}" >-done >-) > $GDBSCRIPT >+ # On older linker versions _init|_fini symbols are not hidden. >+ objdump --dynamic-syms "${SHAREDLIB}" | >+ awk '$0 !~ /.hidden/ {if ($2 == "g" && $3 ~ /D(F|O)/ && $4 ~ /(.bss|.rodata|.text)/) print $NF}' | >+ sort | >+ while read -r s; do >+ echo "echo $s: " >+ echo p "${s}" >+ done >+) >$GDBSCRIPT > > # forcing the terminal avoids a problem on Fedora12 >-TERM=none gdb -n -batch -x $GDBSCRIPT "$SHAREDLIB" < /dev/null >+TERM=none gdb -n -batch -x $GDBSCRIPT "$SHAREDLIB" </dev/null > rm -f $GDBSCRIPT >diff --git a/buildtools/scripts/autogen-waf.sh b/buildtools/scripts/autogen-waf.sh >index 7a6e94c5ec4d..a0ed80c33fa6 100755 >--- a/buildtools/scripts/autogen-waf.sh >+++ b/buildtools/scripts/autogen-waf.sh >@@ -1,6 +1,6 @@ > #!/bin/sh > >-p=`dirname $0` >+p=$(dirname $0) > > echo "Setting up for waf build" > >@@ -13,12 +13,12 @@ echo "Found buildtools in $p/$d" > > echo "Setting up configure" > rm -f $p/configure $p/include/config*.h* >-sed "s|BUILDTOOLS|$d|g;s|BUILDPATH|$p|g" < "$p/$d/scripts/configure.waf" > $p/configure >+sed "s|BUILDTOOLS|$d|g;s|BUILDPATH|$p|g" <"$p/$d/scripts/configure.waf" >$p/configure > chmod +x $p/configure > > echo "Setting up Makefile" > rm -f $p/makefile $p/Makefile >-sed "s|BUILDTOOLS|$d|g" < "$p/$d/scripts/Makefile.waf" > $p/Makefile >+sed "s|BUILDTOOLS|$d|g" <"$p/$d/scripts/Makefile.waf" >$p/Makefile > > echo "done. Now run $p/configure or $p/configure.developer then make." > if [ $p != "." ]; then >diff --git a/buildtools/testwaf.sh b/buildtools/testwaf.sh >index 127e52589103..3e8e6431c783 100755 >--- a/buildtools/testwaf.sh >+++ b/buildtools/testwaf.sh >@@ -9,52 +9,52 @@ cd $d/.. > PREFIX=$HOME/testprefix > > if [ $# -gt 0 ]; then >- tests="$*" >+ tests="$*" > else >- tests="lib/replace lib/talloc lib/tevent lib/tdb lib/ldb" >+ tests="lib/replace lib/talloc lib/tevent lib/tdb lib/ldb" > fi > > echo "testing in dirs $tests" > > for d in $tests; do >- echo "`date`: testing $d" >- pushd $d >- rm -rf bin >- type waf >- waf dist >- ./configure -C --enable-developer --prefix=$PREFIX >- time make >- make install >- make distcheck >- case $d in >+ echo "$(date): testing $d" >+ pushd $d >+ rm -rf bin >+ type waf >+ waf dist >+ ./configure -C --enable-developer --prefix=$PREFIX >+ time make >+ make install >+ make distcheck >+ case $d in > "lib/ldb") >- ldd bin/ldbadd >- ;; >+ ldd bin/ldbadd >+ ;; > "lib/replace") >- ldd bin/replace_testsuite >- ;; >+ ldd bin/replace_testsuite >+ ;; > "lib/talloc") >- ldd bin/talloc_testsuite >- ;; >+ ldd bin/talloc_testsuite >+ ;; > "lib/tdb") >- ldd bin/tdbtool >- ;; >- esac >- popd >+ ldd bin/tdbtool >+ ;; >+ esac >+ popd > done > > echo "testing python portability" > pushd lib/talloc > versions="python2.4 python2.5 python2.6 python3.0 python3.1" > for p in $versions; do >- ret=$(which $p || echo "failed") >- if [ $ret = "failed" ]; then >- echo "$p not found, skipping" >- continue >- fi >- echo "Testing $p" >- $p ../../buildtools/bin/waf configure -C --enable-developer --prefix=$PREFIX >- $p ../../buildtools/bin/waf build install >+ ret=$(which $p || echo "failed") >+ if [ $ret = "failed" ]; then >+ echo "$p not found, skipping" >+ continue >+ fi >+ echo "Testing $p" >+ $p ../../buildtools/bin/waf configure -C --enable-developer --prefix=$PREFIX >+ $p ../../buildtools/bin/waf build install > done > popd > >@@ -62,9 +62,9 @@ echo "testing cross compiling" > pushd lib/talloc > ret=$(which arm-linux-gnueabi-gcc || echo "failed") > if [ $ret != "failed" ]; then >- CC=arm-linux-gnueabi-gcc ./configure -C --prefix=$PREFIX --cross-compile --cross-execute='runarm' >- make && make install >+ CC=arm-linux-gnueabi-gcc ./configure -C --prefix=$PREFIX --cross-compile --cross-execute='runarm' >+ make && make install > else >- echo "Cross-compiler not installed, skipping test" >+ echo "Cross-compiler not installed, skipping test" > fi > popd >-- >2.25.1 > > >From bccb8b807bb1c00ffc2cd95cadfee253eb0d0cff Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 12:38:02 +0200 >Subject: [PATCH 2/8] buildtools: remove unused testwaf.sh > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit 42eeed05f1aed10b48f7008a18e47cf15ac2c010) >--- > buildtools/testwaf.sh | 70 ------------------------------------------- > 1 file changed, 70 deletions(-) > delete mode 100755 buildtools/testwaf.sh > >diff --git a/buildtools/testwaf.sh b/buildtools/testwaf.sh >deleted file mode 100755 >index 3e8e6431c783..000000000000 >--- a/buildtools/testwaf.sh >+++ /dev/null >@@ -1,70 +0,0 @@ >-#!/bin/bash >- >-set -e >-set -x >- >-d=$(dirname $0) >- >-cd $d/.. >-PREFIX=$HOME/testprefix >- >-if [ $# -gt 0 ]; then >- tests="$*" >-else >- tests="lib/replace lib/talloc lib/tevent lib/tdb lib/ldb" >-fi >- >-echo "testing in dirs $tests" >- >-for d in $tests; do >- echo "$(date): testing $d" >- pushd $d >- rm -rf bin >- type waf >- waf dist >- ./configure -C --enable-developer --prefix=$PREFIX >- time make >- make install >- make distcheck >- case $d in >- "lib/ldb") >- ldd bin/ldbadd >- ;; >- "lib/replace") >- ldd bin/replace_testsuite >- ;; >- "lib/talloc") >- ldd bin/talloc_testsuite >- ;; >- "lib/tdb") >- ldd bin/tdbtool >- ;; >- esac >- popd >-done >- >-echo "testing python portability" >-pushd lib/talloc >-versions="python2.4 python2.5 python2.6 python3.0 python3.1" >-for p in $versions; do >- ret=$(which $p || echo "failed") >- if [ $ret = "failed" ]; then >- echo "$p not found, skipping" >- continue >- fi >- echo "Testing $p" >- $p ../../buildtools/bin/waf configure -C --enable-developer --prefix=$PREFIX >- $p ../../buildtools/bin/waf build install >-done >-popd >- >-echo "testing cross compiling" >-pushd lib/talloc >-ret=$(which arm-linux-gnueabi-gcc || echo "failed") >-if [ $ret != "failed" ]; then >- CC=arm-linux-gnueabi-gcc ./configure -C --prefix=$PREFIX --cross-compile --cross-execute='runarm' >- make && make install >-else >- echo "Cross-compiler not installed, skipping test" >-fi >-popd >-- >2.25.1 > > >From 8b609eb416bd737578a79beabb3bd736d341e326 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 12:49:24 +0200 >Subject: [PATCH 3/8] lib/fuzzing/README.md: don't use waf directly > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit 10d69da1d34b2b11920d9bf051f5a26dbbcadf02) >--- > lib/fuzzing/README.md | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > >diff --git a/lib/fuzzing/README.md b/lib/fuzzing/README.md >index 33d33b923905..d3e34bd79a36 100644 >--- a/lib/fuzzing/README.md >+++ b/lib/fuzzing/README.md >@@ -17,9 +17,9 @@ Example command line to build binaries for use with > [honggfuzz](https://github.com/google/honggfuzz/): > > ```sh >-buildtools/bin/waf -C --without-gettext --enable-debug --enable-developer \ >+./configure -C --without-gettext --enable-debug --enable-developer \ > --address-sanitizer --enable-libfuzzer --abi-check-disable \ >- CC=.../honggfuzz/hfuzz_cc/hfuzz-clang configure \ >+ CC=.../honggfuzz/hfuzz_cc/hfuzz-clang \ > LINK_CC=.../honggfuzz/hfuzz_cc/hfuzz-clang > ``` > >@@ -30,7 +30,7 @@ Example for fuzzing `tiniparser` using `honggfuzz` (see `--help` for more > options): > > ```sh >-buildtools/bin/waf --targets=fuzz_tiniparser build && \ >+make bin/fuzz_tiniparser && \ > .../honggfuzz/honggfuzz --sanitizers --timeout 3 --max_file_size 256 \ > --rlimit_rss 100 -f .../tiniparser-corpus -- bin/fuzz_tiniparser > ``` >@@ -43,9 +43,9 @@ Example command line to build binaries for use with > [afl](http://lcamtuf.coredump.cx/afl/) > > ```sh >-buildtools/bin/waf -C --without-gettext --enable-debug --enable-developer \ >+./configure -C --without-gettext --enable-debug --enable-developer \ > --enable-afl-fuzzer --abi-check-disable \ >- CC=afl-gcc configure >+ CC=afl-gcc > ``` > > ## Fuzzing tiniparser >@@ -54,7 +54,7 @@ Example for fuzzing `tiniparser` using `afl-fuzz` (see `--help` for more > options): > > ```sh >-buildtools/bin/waf --targets=fuzz_tiniparser build && \ >+make bin/fuzz_tiniparser build && \ > afl-fuzz -m 200 -i inputdir -o outputdir -- bin/fuzz_tiniparser > ``` > >-- >2.25.1 > > >From 8af7d17c14fb1f664f4a3f69ef0f7a9bbc5a96b1 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 12:49:50 +0200 >Subject: [PATCH 4/8] s4:selftest/provisions: make use of 'make testenv' and > avoid direct waf > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit 0be4f5672338802042b06308c5cf0ea04bcaf48e) >--- > .../selftest/provisions/release-4-1-0rc3/steps-to-reproduce.txt | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/source4/selftest/provisions/release-4-1-0rc3/steps-to-reproduce.txt b/source4/selftest/provisions/release-4-1-0rc3/steps-to-reproduce.txt >index fc0dfddf8ac2..19466e252f6b 100644 >--- a/source4/selftest/provisions/release-4-1-0rc3/steps-to-reproduce.txt >+++ b/source4/selftest/provisions/release-4-1-0rc3/steps-to-reproduce.txt >@@ -6,7 +6,7 @@ patch -p1 < rename-domains.patch > > # MASTER_SRC needs to point at where the schema files can be found, not the 4.1.0rc1 checkout > >-SELFTEST_TESTENV=promoted_dc:local ./buildtools/bin/waf test --testenv >+SELFTEST_TESTENV=promoted_dc:local make testenv > > # then in the testenv, run: > >-- >2.25.1 > > >From 16d566b1139f56686fac969d3bc362be162bad28 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 12:50:55 +0200 >Subject: [PATCH 5/8] wafsamba: let test_duplicate_symbol.sh export > PYTHONHASHSEED=1 > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit a6b1e4b5766205b7337e0e4b00944184289bfc36) >--- > buildtools/wafsamba/test_duplicate_symbol.sh | 3 +++ > 1 file changed, 3 insertions(+) > >diff --git a/buildtools/wafsamba/test_duplicate_symbol.sh b/buildtools/wafsamba/test_duplicate_symbol.sh >index 46f44a67dcf8..dffac7570022 100755 >--- a/buildtools/wafsamba/test_duplicate_symbol.sh >+++ b/buildtools/wafsamba/test_duplicate_symbol.sh >@@ -5,6 +5,9 @@ > > subunit_start_test duplicate_symbols > >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > if $PYTHON ./buildtools/bin/waf build --dup-symbol-check; then > subunit_pass_test duplicate_symbols > else >-- >2.25.1 > > >From 73295e83a14b1ed662ca842b531c1f84143301ca Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 12:59:12 +0200 >Subject: [PATCH 6/8] configure/Makefile: export PYTHONHASHSEED=1 in all > 'configure/Makefile' scripts > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit 22c46d9f41876d9ec7187148e658d1692bf37cdd) >--- > buildtools/scripts/Makefile.waf | 4 ++-- > buildtools/scripts/configure.waf | 11 +++++++++-- > configure | 4 ++++ > ctdb/Makefile | 2 +- > ctdb/configure | 7 +++++++ > lib/ldb/configure | 7 +++++++ > lib/replace/configure | 7 +++++++ > lib/talloc/configure | 7 +++++++ > lib/tdb/configure | 7 +++++++ > lib/tevent/configure | 7 +++++++ > 10 files changed, 58 insertions(+), 5 deletions(-) > >diff --git a/buildtools/scripts/Makefile.waf b/buildtools/scripts/Makefile.waf >index 5fc939c99e03..a15a5f87607e 100644 >--- a/buildtools/scripts/Makefile.waf >+++ b/buildtools/scripts/Makefile.waf >@@ -1,7 +1,7 @@ > # simple makefile wrapper to run waf > >-WAF_BINARY=BUILDTOOLS/bin/waf >-WAF=WAF_MAKE=1 $(WAF_BINARY) >+WAF_BINARY=$(PYTHON) BUILDTOOLS/bin/waf >+WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY) > > all: > $(WAF) build >diff --git a/buildtools/scripts/configure.waf b/buildtools/scripts/configure.waf >index a7d8d1dbd641..ccb62849a54f 100755 >--- a/buildtools/scripts/configure.waf >+++ b/buildtools/scripts/configure.waf >@@ -1,6 +1,6 @@ > #!/bin/sh > >-PREVPATH=`dirname $0` >+PREVPATH=$(dirname $0) > > WAF=BUILDTOOLS/bin/waf > >@@ -9,6 +9,13 @@ WAF=BUILDTOOLS/bin/waf > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd BUILDPATH || exit 1 >-$WAF configure "$@" || exit 1 >+$PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/configure b/configure >index a6ca50feb470..9153c0e5f784 100755 >--- a/configure >+++ b/configure >@@ -12,6 +12,10 @@ export JOBS > # Make sure we don't have any library preloaded. > unset LD_PRELOAD > >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/ctdb/Makefile b/ctdb/Makefile >index ec362e294082..5dbc7acdc54e 100644 >--- a/ctdb/Makefile >+++ b/ctdb/Makefile >@@ -1,7 +1,7 @@ > # simple makefile wrapper to run waf > > WAF_BINARY=$(PYTHON) ../buildtools/bin/waf >-WAF=WAF_MAKE=1 $(WAF_BINARY) >+WAF=PYTHONHASHSEED=1 WAF_MAKE=1 $(WAF_BINARY) > > all: > $(WAF) build >diff --git a/ctdb/configure b/ctdb/configure >index dbb0c1446b51..48b786b1612d 100755 >--- a/ctdb/configure >+++ b/ctdb/configure >@@ -10,6 +10,13 @@ WAF=buildtools/bin/waf > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/lib/ldb/configure b/lib/ldb/configure >index 6c931bfbf5e2..28d62ab27ae2 100755 >--- a/lib/ldb/configure >+++ b/lib/ldb/configure >@@ -16,6 +16,13 @@ fi > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/lib/replace/configure b/lib/replace/configure >index d8a8d2ac2f39..091f814e5f2c 100755 >--- a/lib/replace/configure >+++ b/lib/replace/configure >@@ -16,6 +16,13 @@ fi > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/lib/talloc/configure b/lib/talloc/configure >index d8a8d2ac2f39..091f814e5f2c 100755 >--- a/lib/talloc/configure >+++ b/lib/talloc/configure >@@ -16,6 +16,13 @@ fi > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/lib/tdb/configure b/lib/tdb/configure >index d8a8d2ac2f39..091f814e5f2c 100755 >--- a/lib/tdb/configure >+++ b/lib/tdb/configure >@@ -16,6 +16,13 @@ fi > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >diff --git a/lib/tevent/configure b/lib/tevent/configure >index c3c444754e3d..0dc9bace4356 100755 >--- a/lib/tevent/configure >+++ b/lib/tevent/configure >@@ -16,6 +16,13 @@ fi > JOBS=1 > export JOBS > >+# Make sure we don't have any library preloaded. >+unset LD_PRELOAD >+ >+# Make sure we get stable hashes >+PYTHONHASHSEED=1 >+export PYTHONHASHSEED >+ > cd . || exit 1 > $PYTHON $WAF configure "$@" || exit 1 > cd $PREVPATH >-- >2.25.1 > > >From 2cd1e53284c0c212c62d909028c5bd9872493934 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 12:38:36 +0200 >Subject: [PATCH 7/8] ctdb/packaging/RPM: don't use waf directly > >./configure && make && make install is will always work. > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit aa02cf3c4449cb0a22da8f359f0b3edc4f1d9bb7) >--- > ctdb/packaging/RPM/ctdb.spec.in | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > >diff --git a/ctdb/packaging/RPM/ctdb.spec.in b/ctdb/packaging/RPM/ctdb.spec.in >index 80eb2945e419..ea5c5a256ec9 100644 >--- a/ctdb/packaging/RPM/ctdb.spec.in >+++ b/ctdb/packaging/RPM/ctdb.spec.in >@@ -88,7 +88,7 @@ fi > export CC > > CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" \ >-$PYTHON ./buildtools/bin/waf configure \ >+./configure \ > --builtin-libraries=replace,popt \ > --bundled-libraries=!talloc,!tevent,!tdb \ > --minimum-library-version=talloc:%libtalloc_version,tdb:%libtdb_version,tevent:%libtevent_version \ >@@ -103,7 +103,7 @@ $PYTHON ./buildtools/bin/waf configure \ > --mandir=%{_mandir} \ > --localstatedir=%{_localstatedir} > >-$PYTHON ./buildtools/bin/waf build >+make -j > > %install > # Clean up in case there is trash left from a previous build >@@ -112,7 +112,7 @@ rm -rf $RPM_BUILD_ROOT > # Create the target build directory hierarchy > mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sudoers.d > >-DESTDIR=$RPM_BUILD_ROOT $PYTHON ./buildtools/bin/waf install >+DESTDIR=$RPM_BUILD_ROOT make -j install > > install -m644 config/ctdb.conf $RPM_BUILD_ROOT%{_sysconfdir}/ctdb > install -m644 config/ctdb.tunables $RPM_BUILD_ROOT%{_sysconfdir}/ctdb >-- >2.25.1 > > >From 5a6029aa55d806647fe1e2e0c3a6ca58aaf79ca0 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Mon, 28 Mar 2022 13:00:03 +0200 >Subject: [PATCH 8/8] wafsamba: require PYTHONHASHSEED=1 to be exported > >This avoids a lot of trouble with random build failures, >if people try to use waf directly. > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> > >Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> >Autobuild-Date(master): Tue Mar 29 23:31:38 UTC 2022 on sn-devel-184 > >(cherry picked from commit 420bbb1d92fd2a28725b53f425ba3d214831b660) > >The last 8 patches are backported to avoid people running into: >https://bugzilla.samba.org/show_bug.cgi?id=15033 >and >https://bugzilla.samba.org/show_bug.cgi?id=15037 >--- > buildtools/wafsamba/wscript | 4 ++++ > 1 file changed, 4 insertions(+) > >diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript >index a4d6f3e5c49e..8729b0829daa 100644 >--- a/buildtools/wafsamba/wscript >+++ b/buildtools/wafsamba/wscript >@@ -8,6 +8,10 @@ import wafsamba > from samba_utils import symlink > from optparse import SUPPRESS_HELP > >+phs = os.environ.get("PYTHONHASHSEED", None) >+if phs != "1": >+ raise Errors.WafError('''PYTHONHASHSEED=1 missing! Don't use waf directly, use ./configure and make!''') >+ > # this forces configure to be re-run if any of the configure > # sections of the build scripts change. We have to check > # for this in sys.argv as options have not yet been parsed when >-- >2.25.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
metze
:
review?
(
abartlet
)
Actions:
View
Attachments on
bug 15033
: 17256