Diff of the two buildlogs: -- --- b1/build.log 2024-11-10 09:43:51.393942237 +0000 +++ b2/build.log 2024-11-10 09:44:38.620260581 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Nov 9 21:40:40 -12 2024 -I: pbuilder-time-stamp: 1731231640 +I: Current time: Sun Dec 14 06:06:53 +14 2025 +I: pbuilder-time-stamp: 1765642013 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/416458/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2627851/tmp/hooks/D01_modify_environment starting +debug: Running on ionos5-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 Dec 13 16:07 /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/2627851/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2627851/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]="32" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.32(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='f9d2c5b501604a50bc8469df1287525d' - 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='416458' - PS1='# ' - PS2='> ' + INVOCATION_ID=fcefea6188da4c2bac6fc25d1216d315 + 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=2627851 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.RQq0O1UF/pbuilderrc_FJXD --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.RQq0O1UF/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.RQq0O1UF/pbuilderrc_OOxi --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.RQq0O1UF/b2 --logfile b2/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-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos1-amd64 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.10.11+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.11-1~bpo12+1 (2024-10-03) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/416458/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 4 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2627851/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -247,7 +279,7 @@ Get: 133 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 134 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 135 http://deb.debian.org/debian unstable/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 44.1 MB in 1s (38.1 MB/s) +Fetched 44.1 MB in 0s (135 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.12-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 ... 19970 files and directories currently installed.) @@ -702,8 +734,8 @@ Setting up tzdata (2024b-3) ... Current default time zone: 'Etc/UTC' -Local time is now: Sun Nov 10 09:42:36 UTC 2024. -Universal Time is now: Sun Nov 10 09:42:36 UTC 2024. +Local time is now: Sat Dec 13 16:07:23 UTC 2025. +Universal Time is now: Sat Dec 13 16:07:23 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -823,7 +855,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/2627851/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2627851/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 @@ -852,7 +888,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/d20241109-436075-9hrxv7/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20251214-2635379-5tu2vy/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 @@ -860,7 +896,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/d20241109-436075-9hrxv7/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/d20251214-2635379-5tu2vy/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 @@ -899,98 +935,71 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 48013 +Randomized with seed 48696 Mixlib::CLI::Formatter combined_option_display_name  converts --option with no short to '--option' - 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 options the same way even with an argument present  converts short -o with no long option to '-o' + converts options to a blank string if neither short nor long are present friendly_opt_list - for a single item it quotes it and returns it as a string - for two items returns ...  for three items returns...  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 Mixlib::CLI - class method - options= - allows you to set the full options with a single hash - deprecated_option - makes a deprecated option when you declare one - banner - has a default value - allows you to set the banner - options - includes deprecated options and their generated descriptions - returns the current options hash - option - allows you to set a config option with a hash when configured with default single-config-hash behavior initialize + sets the default config value for any options that include it  sets the options to the class defined options and deprecated options, with defaults  sets the banner to the class defined banner - sets the default config value for any options that include it opt_parser - presents the arguments in alphabetical order in the banner  honors :on => :tail options in the banner + presents the arguments in alphabetical order in the banner  honors :on => :head options in the banner - sets the banner in opt_parse  presents the arguments in the banner + sets the banner in opt_parse parse_options - doesn't exit if a required option is specified + changes description if :in key is specified with 2 values  doesn't exit if option is included in the list - raises ArgumentError if options key :in is not an array  doesn't exit if a required boolean option is specified and false - sets the corresponding config value for non-boolean arguments - changes description if :in key is specified with a single value - passes the existing value to two-argument procs - sets the corresponding config value to false when a boolean is prefixed with --no + sets the corresponding config value according to a supplied proc + exits if a config option has :exit set + doesn't exit if a required option is specified  preserves all of the commandline arguments, ARGV + preserves and return any un-parsed elements + passes the existing value to two-argument procs + doesn't exit if a required option is specified and empty + changes description if :in key is specified with a single value +-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 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 - exits if a config option has :exit set --i: three is not one of the allowed values: 'one' or 'two' + changes description if :in key is specified with 3 values +You must supply -i val! 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 - sets the corresponding config value to true for boolean arguments + exit if option is nil and required -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 - preserves and return any un-parsed elements - sets the corresponding config value according to a supplied proc + exits if option is not included in the list and required + sets the corresponding config value for non-boolean arguments + sets the corresponding config value to true for boolean arguments + sets the corresponding config value to false when a boolean is prefixed with --no  doesn't exit if option is nil and not required -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 - changes description if :in key is specified with 3 values - changes description if :in key is specified with 2 values - doesn't exit if a required option is specified and empty + raises ArgumentError if options key :in is not an array with non-deprecated and deprecated options 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 when the deprecated option has a replacement - and a value_mapper is not provided - and the replacement and deprecated are both boolean ---[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 ---[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 keep is set to false in the deprecated option ---option-x: This flag is deprecated. Use -c instead. - captures the replacement value, but does not set the deprecated value - when the replacement does not accept a value ---option-x: This flag is deprecated. Use -c instead. - will still set the value because you haven't given a custom value mapper to set a true/false value 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' @@ -1002,13 +1011,40 @@  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 + 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. + captures the replacement value, but does not set the deprecated value + when the replacement does not accept a value +--option-x: This flag is deprecated. Use -c instead. + 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 the deprecated option does not have a replacement + warns about the deprecated option being removed when configured to separate default options  sets parsed values on the `config` hash  sets default values on the `default` hash + class method + option + allows you to set a config option with a hash + banner + allows you to set the banner + has a default value + options + includes deprecated options and their generated descriptions + returns the current options hash + options= + allows you to set the full options with a single hash + deprecated_option + makes a deprecated option when you declare one when subclassed - isn't able to modify parent classes options - passes its options onto child  also works with an option that's an array + passes its options onto child + isn't able to modify parent classes options  retains previously defined options from parent Deprecation Warnings: @@ -1028,10 +1064,10 @@ 6 deprecation warnings total -Finished in 0.12369 seconds (files took 0.50263 seconds to load) +Finished in 0.04777 seconds (files took 0.11725 seconds to load) 59 examples, 0 failures -Randomized with seed 48013 +Randomized with seed 48696 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1063,12 +1099,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/2627851/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2627851/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/416458 and its subdirectories -I: Current time: Sat Nov 9 21:43:50 -12 2024 -I: pbuilder-time-stamp: 1731231830 +I: removing directory /srv/workspace/pbuilder/2627851 and its subdirectories +I: Current time: Sun Dec 14 06:07:37 +14 2025 +I: pbuilder-time-stamp: 1765642057