[Git][reproducible-builds/reprotest][master] 2 commits: Log selected variations on verbosity >= 1
Mattia Rizzolo (@mattia)
gitlab at salsa.debian.org
Tue Oct 12 17:15:45 UTC 2021
Mattia Rizzolo pushed to branch master at Reproducible Builds / reprotest
Commits:
a2911a6c by Vasyl Gello at 2021-10-08T17:40:24+00:00
Log selected variations on verbosity >= 1
Signed-off-by: Vasyl Gello <vasek.gello at gmail.com>
- - - - -
53e18ade by Mattia Rizzolo at 2021-10-12T17:15:38+00:00
Merge branch 'print-variations' into 'master'
Log selected variations on verbosity >= 1
See merge request reproducible-builds/reprotest!15
- - - - -
1 changed file:
- reprotest/build.py
Changes:
=====================================
reprotest/build.py
=====================================
@@ -206,6 +206,8 @@ def environment(ctx, build, vary):
removed += [k]
else:
added += [(k, v)]
+ if ctx.verbosity >= 1:
+ logger.info("ENVIRONMENT variation: added = (" + ','.join(map(str, added)) + ") removed = " + ''.join(removed))
return build.modify_env(added, removed)
def domain_host(ctx, build, vary):
@@ -214,6 +216,8 @@ def domain_host(ctx, build, vary):
hostname = "reprotest-capture-hostname"
domainname = "reprotest-capture-domainname"
_ = build
+ if ctx.verbosity >= 1:
+ logger.info("DOMAIN_HOST variation: hostname = " + hostname + " domainname = " + domainname)
# TODO: below only works on linux, of course..
if ctx.spec.domain_host.use_sudo:
@@ -249,12 +253,16 @@ def build_path(ctx, build, vary):
if vary:
return build
const_path = os.path.join(dirname(build.tree), 'const_build_path')
+ if ctx.verbosity >= 1:
+ logger.info("BUILD_PATH variation: const_path = " + const_path)
return build.move_tree(build.tree, const_path, True)
@tool_required("disorderfs")
def fileordering(ctx, build, vary):
if not vary:
return build
+ if ctx.verbosity >= 1:
+ logger.info("DISORDERFS variation: --shuffle-dirents=yes")
old_tree = os.path.join(dirname(build.tree), basename(build.tree) + '-before-disorderfs', '')
_ = build.move_tree(build.tree, old_tree, False)
@@ -274,6 +282,8 @@ def home(ctx, build, vary):
# choose an existent HOME, see Debian bug #860428
return build.add_env('HOME', build.tree)
else:
+ if ctx.verbosity >= 1:
+ logger.info("HOME variation: HOME = /nonexistent/second-build")
return build.add_env('HOME', '/nonexistent/second-build')
# TODO: uname is a POSIX standard. The related Linux command
@@ -289,10 +299,14 @@ def kernel(ctx, build, vary):
_ = _.append_setup_exec_raw('SETARCH_ARCH=$(setarch --list | grep -vF "$(uname -m)" | shuf | head -n1)')
_ = _.append_setup_exec_raw('KERNEL_VERSION=$(uname -r)')
_ = _.append_setup_exec_raw('if [ ${KERNEL_VERSION#2.6} = $KERNEL_VERSION ]; then SETARCH_OPTS=--uname-2.6; fi')
+ if ctx.verbosity >= 1:
+ _ = _.append_setup_exec_raw('echo "INFO:reprotest.build:KERNEL variation: SETARCH_ARCH = \'$SETARCH_ARCH\' SETARCH_OPTS = \'$SETARCH_OPTS\'" >&2')
return _.prepend_to_build_command_raw('setarch', '$SETARCH_ARCH', '$SETARCH_OPTS')
def aslr(ctx, build, vary):
if vary:
+ if ctx.verbosity >= 1:
+ logger.info("ASLR variation: ASLR enabled")
return build
return build.append_setup_exec_raw('SETARCH_OPTS="$SETARCH_OPTS -R"')
@@ -311,8 +325,10 @@ def num_cpus(ctx, build, vary):
else shuf -i$((CPU_MIN + 1))-$CPU_MAX -n1; fi)')
# select CPU_NUM random cpus from the range 0..$((CPU_MAX-1))
- cpu_list = "$(echo $(shuf -i0-$((CPU_MAX - 1)) -n$CPU_NUM) | tr ' ' ,)"
- return _.prepend_to_build_command_raw('taskset', '-a', '-c', cpu_list)
+ _ = _.append_setup_exec_raw("export CPU_LIST=\"$(echo $(shuf -i0-$((CPU_MAX - 1)) -n$CPU_NUM) | tr ' ' ,)\"")
+ if vary and ctx.verbosity >= 1:
+ _ = _.append_setup_exec_raw('echo "INFO:reprotest.build:NUM_CPUS variation: cpu_list = $CPU_LIST" >&2')
+ return _.prepend_to_build_command_raw('taskset', '-a', '-c', '$CPU_LIST')
# TODO: if this locale doesn't exist on the system, Python's
# locales.getlocale() will return (None, None) rather than this
@@ -333,11 +349,15 @@ def locales(ctx, build, vary):
# if there is an issue with this being random, we could instead select it
# based on a deterministic hash of the inputs
loc = random.choice(['fr_CH.UTF-8', 'es_ES', 'ru_RU.CP1251', 'kk_KZ.RK1048', 'zh_CN'])
+ if ctx.verbosity >= 1:
+ logger.info("LOCALE variation: LC_ALL = " + loc + " LANGUAGE = " + loc + ":fr")
return build.add_env('LANG', loc).add_env('LC_ALL', loc).add_env('LANGUAGE', '%s:fr' % loc)
def exec_path(ctx, build, vary):
if not vary:
return build
+ if ctx.verbosity >= 1:
+ logger.info("EXEC_PATH variation: PATH = " + build.env['PATH'] + ':/i_capture_the_path')
return build.add_env('PATH', build.env['PATH'] + ':/i_capture_the_path')
# This doesn't require superuser privileges, but the chsh command
@@ -351,8 +371,12 @@ def timezone(ctx, build, vary):
# (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08),
# so they should be cross-platform compatible.
if not vary:
+ if ctx.verbosity >= 1:
+ logger.info("TIMEZONE variation: TZ=GMT+12")
return build.add_env('TZ', 'GMT+12')
else:
+ if ctx.verbosity >= 1:
+ logger.info("TIMEZONE variation: TZ=GMT-14")
return build.add_env('TZ', 'GMT-14')
@tool_required("faketime")
@@ -371,6 +395,8 @@ def faketime(ctx, build, vary):
if base < now - 15552000 and not random.randint(0, 1):
# if ctx.base_faketime is far in the past, with 1/2 probability
# reuse the current time and don't fake it
+ if ctx.verbosity >= 1:
+ logger.info("FAKETIME variation: enabled but chosen randomly not to fake!")
return build
else:
# otherwise use a date far in the future
@@ -381,12 +407,16 @@ def faketime(ctx, build, vary):
# this is only mentioned in the README. we do not want this, it really really
# messes with GNU make and other buildsystems that look at timestamps.
# set NO_FAKE_STAT=1 avoids this.
+ if ctx.verbosity >= 1:
+ logger.info("FAKETIME variation: faketime = " + faket)
return build.add_env('NO_FAKE_STAT', '1').prepend_to_build_command('faketime', faket)
def umask(ctx, build, vary):
if not vary:
return build.append_setup_exec('umask', '0022')
else:
+ if ctx.verbosity >= 1:
+ logger.info("UMASK variation: umask 0002")
return build.append_setup_exec('umask', '0002')
View it on GitLab: https://salsa.debian.org/reproducible-builds/reprotest/-/compare/8f7bc6a1a139bff884ebfde41c073405b2de134d...53e18ade55d92370d4700025921597d708216f37
--
View it on GitLab: https://salsa.debian.org/reproducible-builds/reprotest/-/compare/8f7bc6a1a139bff884ebfde41c073405b2de134d...53e18ade55d92370d4700025921597d708216f37
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20211012/4bfe824e/attachment.htm>
More information about the rb-commits
mailing list