Diff of the two buildlogs: -- --- b1/build.log 2024-05-01 03:30:57.799785347 +0000 +++ b2/build.log 2024-05-01 03:32:14.424528264 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Apr 30 15:25:58 -12 2024 -I: pbuilder-time-stamp: 1714533958 +I: Current time: Tue Jun 3 23:54:00 +14 2025 +I: pbuilder-time-stamp: 1748944440 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -25,52 +25,84 @@ dpkg-source: info: unpacking ruby-mixlib-cli_2.1.6-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1394210/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jun 3 09:54 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='4844b2672c654173b3427ef18acbef73' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1394210' - PS1='# ' - PS2='> ' + INVOCATION_ID=d9cbe442af1f4c3692ea022e3c914726 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=3649852 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.tQvP7h9p/pbuilderrc_xwCs --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.tQvP7h9p/b1 --logfile b1/build.log ruby-mixlib-cli_2.1.6-1.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.tQvP7h9p/pbuilderrc_eI9O --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.tQvP7h9p/b2 --logfile b2/build.log ruby-mixlib-cli_2.1.6-1.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos1-amd64 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.6.13+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.13-1~bpo12+1 (2024-02-15) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Apr 27 07:43 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1394210/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 31 14:05 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -243,7 +275,7 @@ Get: 129 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 130 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 131 http://deb.debian.org/debian unstable/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 47.1 MB in 3s (16.3 MB/s) +Fetched 47.1 MB in 4s (13.3 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19694 files and directories currently installed.) @@ -680,8 +712,8 @@ Setting up tzdata (2024a-3) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed May 1 03:28:44 UTC 2024. -Universal Time is now: Wed May 1 03:28:44 UTC 2024. +Local time is now: Tue Jun 3 09:54:49 UTC 2025. +Universal Time is now: Tue Jun 3 09:54:49 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -801,7 +833,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-mixlib-cli-2.1.6/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-mixlib-cli_2.1.6-1_source.changes +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-mixlib-cli-2.1.6/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-mixlib-cli_2.1.6-1_source.changes dpkg-buildpackage: info: source package ruby-mixlib-cli dpkg-buildpackage: info: source version 2.1.6-1 dpkg-buildpackage: info: source distribution unstable @@ -830,7 +866,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-mixlib-cli/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-mixlib-cli-2.1.6/debian/ruby-mixlib-cli -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20240430-1422904-8z9a3a/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250603-3659102-fjkjzr/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: description and summary are identical WARNING: See https://guides.rubygems.org/specification-reference/ for help @@ -838,7 +874,7 @@ Name: mixlib-cli Version: 2.1.6 File: mixlib-cli-2.1.6.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-mixlib-cli/usr/share/rubygems-integration/all /tmp/d20240430-1422904-8z9a3a/mixlib-cli-2.1.6.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-mixlib-cli/usr/share/rubygems-integration/all /tmp/d20250603-3659102-fjkjzr/mixlib-cli-2.1.6.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/reproducible-path/ruby-mixlib-cli-2.1.6/debian/ruby-mixlib-cli/usr/share/rubygems-integration/all/gems/mixlib-cli-2.1.6/lib/mixlib/cli.rb /build/reproducible-path/ruby-mixlib-cli-2.1.6/debian/ruby-mixlib-cli/usr/share/rubygems-integration/all/gems/mixlib-cli-2.1.6/lib/mixlib/cli/formatter.rb @@ -877,70 +913,81 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 30421 +Randomized with seed 16195 + +Mixlib::CLI::Formatter + friendly_opt_list + for more than three items creates a list in the same was as three items + for two items returns ... + for a single item it quotes it and returns it as a string + for three items returns... + combined_option_display_name + converts options to a blank string if neither short nor long are present + converts options the same way even with an argument present + converts --option with short -o to '-s/--option' + converts --option with no short to '--option' + converts short -o with no long option to '-o' Mixlib::CLI class method banner  has a default value  allows you to set the banner - options= - allows you to set the full options with a single hash deprecated_option  makes a deprecated option when you declare one options - includes deprecated options and their generated descriptions  returns the current options hash + includes deprecated options and their generated descriptions + options= + allows you to set the full options with a single hash option  allows you to set a config option with a hash + when subclassed + passes its options onto child + also works with an option that's an array + retains previously defined options from parent + isn't able to modify parent classes options when configured with default single-config-hash behavior parse_options + doesn't exit if a required option is specified and empty You must supply -i val! Usage: /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec (options) -i val  exit if option is nil and required - preserves all of the commandline arguments, ARGV - doesn't exit if a required boolean option is specified and false -i: three is not one of the allowed values: 'one' or 'two' Usage: /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec (options) -i val  exits if option is not included in the list and not required - passes the existing value to two-argument procs + changes description if :in key is specified with 2 values  doesn't exit if option is nil and not required - doesn't exit if a required option is specified and empty - sets the corresponding config value to true for boolean arguments - doesn't exit if a required option is specified - raises ArgumentError if options key :in is not an array + doesn't exit if option is included in the list + doesn't exit if a required boolean option is specified and false + exits if a config option has :exit set + sets the corresponding config value to false when a boolean is prefixed with --no You must supply -r! Usage: /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec (options) -r  exits if a required option is missing - sets the corresponding config value for non-boolean arguments - doesn't exit if option is included in the list - sets the corresponding config value according to a supplied proc - sets the corresponding config value to false when a boolean is prefixed with --no - changes description if :in key is specified with 2 values - exits if a config option has :exit set - preserves and return any un-parsed elements  changes description if :in key is specified with 3 values  changes description if :in key is specified with a single value + passes the existing value to two-argument procs + sets the corresponding config value for non-boolean arguments + sets the corresponding config value according to a supplied proc + sets the corresponding config value to true for boolean arguments + preserves all of the commandline arguments, ARGV -i: three is not one of the allowed values: 'one' or 'two' Usage: /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec (options) -i val  exits if option is not included in the list and required + preserves and return any un-parsed elements + doesn't exit if a required option is specified + raises ArgumentError if options key :in is not an array with non-deprecated and deprecated options + when the deprecated option does not have a replacement + warns about the deprecated option being removed + when someone injects an unexpected value into 'config' + parses and preserves both known and unknown config values when the deprecated option has a replacement - and a value_mapper is provided ---option-x: This flag is deprecated. Use -b instead. - sets the mapped value in the replacement option and the deprecated value in the deprecated option ---option-x: This flag is deprecated. Use -b instead. --b: xxx is not one of the allowed values: 'a', 'b', or 'c' -Usage: /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec (options) - --[no-]option-a - -b ARG - -c ARG - --option-x ARG This flag is deprecated. Use -b instead. - still checks the replacement's 'in' validation list and a value_mapper is not provided and keep is set to false in the deprecated option --option-x: This flag is deprecated. Use -c instead. @@ -950,44 +997,33 @@  will still set the value because you haven't given a custom value mapper to set a true/false value and the replacement and deprecated are both boolean --[no-]option-x: This flag is deprecated. Use --[no-]option-a instead. - sets original and replacement to true when the deprecated flag is used ---[no-]option-x: This flag is deprecated. Use --[no-]option-a instead.  sets the original and replacement to false when the negative deprecated flag is used - when someone injects an unexpected value into 'config' - parses and preserves both known and unknown config values - when the deprecated option does not have a replacement - warns about the deprecated option being removed +--[no-]option-x: This flag is deprecated. Use --[no-]option-a instead. + sets original and replacement to true when the deprecated flag is used + and a value_mapper is provided +--option-x: This flag is deprecated. Use -b instead. +-b: xxx is not one of the allowed values: 'a', 'b', or 'c' +Usage: /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec (options) + --[no-]option-a + -b ARG + -c ARG + --option-x ARG This flag is deprecated. Use -b instead. + still checks the replacement's 'in' validation list +--option-x: This flag is deprecated. Use -b instead. + sets the mapped value in the replacement option and the deprecated value in the deprecated option opt_parser - honors :on => :head options in the banner  sets the banner in opt_parse  honors :on => :tail options in the banner  presents the arguments in alphabetical order in the banner + honors :on => :head options in the banner  presents the arguments in the banner initialize + sets the options to the class defined options and deprecated options, with defaults  sets the default config value for any options that include it  sets the banner to the class defined banner - sets the options to the class defined options and deprecated options, with defaults when configured to separate default options - sets default values on the `default` hash  sets parsed values on the `config` hash - when subclassed - also works with an option that's an array - isn't able to modify parent classes options - retains previously defined options from parent - passes its options onto child - -Mixlib::CLI::Formatter - friendly_opt_list - for more than three items creates a list in the same was as three items - for a single item it quotes it and returns it as a string - for three items returns... - for two items returns ... - combined_option_display_name - converts short -o with no long option to '-o' - converts options to a blank string if neither short nor long are present - converts options the same way even with an argument present - converts --option with no short to '--option' - converts --option with short -o to '-s/--option' + sets default values on the `default` hash Deprecation Warnings: @@ -1006,10 +1042,10 @@ 6 deprecation warnings total -Finished in 0.95577 seconds (files took 0.81679 seconds to load) +Finished in 0.04446 seconds (files took 0.12006 seconds to load) 59 examples, 0 failures -Randomized with seed 30421 +Randomized with seed 16195 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1041,12 +1077,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3649852/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1394210 and its subdirectories -I: Current time: Tue Apr 30 15:30:56 -12 2024 -I: pbuilder-time-stamp: 1714534256 +I: removing directory /srv/workspace/pbuilder/3649852 and its subdirectories +I: Current time: Tue Jun 3 23:55:13 +14 2025 +I: pbuilder-time-stamp: 1748944513