Diff of the two buildlogs: -- --- b1/build.log 2023-04-09 11:29:58.594668134 +0000 +++ b2/build.log 2023-04-09 11:31:37.351368943 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat May 11 05:51:53 -12 2024 -I: pbuilder-time-stamp: 1715449913 +I: Current time: Mon Apr 10 01:30:02 +14 2023 +I: pbuilder-time-stamp: 1681039802 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./ruby-tty-command_0.10.1.orig.tar.gz] I: copying [./ruby-tty-command_0.10.1-1.debian.tar.xz] I: Extracting source -gpgv: Signature made Thu Oct 21 12:40:03 2021 -12 +gpgv: Signature made Fri Oct 22 14:40:03 2021 +14 gpgv: using RSA key 8ED6C3F8BAC9DB7FC130A870F823A2729883C97C gpgv: issuer "kanashiro@debian.org" gpgv: Can't check signature: No public key @@ -26,11 +26,20 @@ dpkg-source: info: unpacking ruby-tty-command_0.10.1-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/26512/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/11177/tmp/hooks/D01_modify_environment starting +debug: Running on codethink16-arm64. +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 +lrwxrwxrwx 1 root root 4 Jan 6 03:20 /bin/sh -> dash +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/11177/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/11177/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME='pbuilder2' BUILD_ARCH='arm64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=8' @@ -40,38 +49,38 @@ IFS=' ' LANG='C' - LANGUAGE='en_US:en' + LANGUAGE='nl_BE:nl' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' + 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' - PPID='26512' + PPID='11177' PS1='# ' PS2='> ' 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.Qyh658rd/pbuilderrc_cPwG --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Qyh658rd/b1 --logfile b1/build.log ruby-tty-command_0.10.1-1.dsc' + 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.Qyh658rd/pbuilderrc_lJOs --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Qyh658rd/b2 --logfile b2/build.log --extrapackages usrmerge ruby-tty-command_0.10.1-1.dsc' SUDO_GID='117' SUDO_UID='110' SUDO_USER='jenkins' TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' + TZ='/usr/share/zoneinfo/Etc/GMT-14' USER='root' USERNAME='root' _='/usr/bin/systemd-run' http_proxy='http://192.168.101.16:3128' I: uname -a - Linux codethink11-arm64 4.15.0-208-generic #220-Ubuntu SMP Mon Mar 20 14:28:12 UTC 2023 aarch64 GNU/Linux + Linux i-capture-the-hostname 4.15.0-208-generic #220-Ubuntu SMP Mon Mar 20 14:28:12 UTC 2023 aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 9 04:48 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/26512/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Apr 9 00:25 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/11177/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -248,7 +257,7 @@ Get: 131 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec-expectations all 3.12.0c0e1m1s0-1 [89.5 kB] Get: 132 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec-mocks all 3.12.0c0e1m1s0-1 [79.5 kB] Get: 133 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec all 3.12.0c0e1m1s0-1 [5084 B] -Fetched 45.6 MB in 1s (39.0 MB/s) +Fetched 45.6 MB in 1s (38.2 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:arm64. (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 ... 19616 files and directories currently installed.) @@ -803,8 +812,17 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/ruby-tty-command-0.10.1/ && 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-tty-command_0.10.1-1_source.changes +I: user script /srv/workspace/pbuilder/11177/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +I: user script /srv/workspace/pbuilder/11177/tmp/hooks/A99_set_merged_usr finished +hostname: Temporary failure in name resolution +I: Running cd /build/ruby-tty-command-0.10.1/ && 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-tty-command_0.10.1-1_source.changes dpkg-buildpackage: info: source package ruby-tty-command dpkg-buildpackage: info: source version 0.10.1-1 dpkg-buildpackage: info: source distribution unstable @@ -833,7 +851,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-tty-command/ -O--buildsystem=ruby dh_ruby --install /build/ruby-tty-command-0.10.1/debian/ruby-tty-command -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20240511-1917-zbtrsm/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20230410-20601-4gx8ad/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on rake (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' @@ -845,7 +863,7 @@ Name: tty-command Version: 0.10.1 File: tty-command-0.10.1.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-tty-command/usr/share/rubygems-integration/all /tmp/d20240511-1917-zbtrsm/tty-command-0.10.1.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-tty-command/usr/share/rubygems-integration/all /tmp/d20230410-20601-4gx8ad/tty-command-0.10.1.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/ruby-tty-command-0.10.1/debian/ruby-tty-command/usr/share/rubygems-integration/all/gems/tty-command-0.10.1/lib/tty-command.rb /build/ruby-tty-command-0.10.1/debian/ruby-tty-command/usr/share/rubygems-integration/all/gems/tty-command-0.10.1/lib/tty/command.rb @@ -893,184 +911,184 @@ RUBYLIB=. GEM_PATH=/build/ruby-tty-command-0.10.1/debian/ruby-tty-command/usr/share/rubygems-integration/all:/build/ruby-tty-command-0.10.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.12.0/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 64721 - -TTY::Command::ExitError info - displays stdin & stdout - explains no stdin & stdout +Randomized with seed 54547 TTY::Command::Printers::Pretty - prints output on error & raises ExitError when only_output_on_error is true - prints successful command exit in color - prints command start without uuid - prints failure command exit in color - prints command start in color - doesn't print output on success when only_output_on_error is true - prints output on error when only_output_on_error is true - prints command stderr data prints command stdout data prints command exit without exit status in color + doesn't print output on success when only_output_on_error is true + prints command start without uuid + prints command stderr data + prints output on error when only_output_on_error is true + prints output on error & raises ExitError when only_output_on_error is true + prints failure command exit in color prints command start without color - -TTY::Command input - reads user input data + prints command start in color + prints successful command exit in color TTY::Command::Printers::Null doesn't print command stderr data - doesn't print command start or exit doesn't print command stdout data + doesn't print command start or exit -TTY::Command#test - implements classic bash command - -TTY::Command::Printers::Progress - doesn't print command start - prints failure command exit in color - prints successful command exit in color - doesn't print command stdout data - -TTY::Command :output - runs command and prints to a file - -TTY::Command::Truncator - writes more bytes letter - overflows prefix and suffix - reflows suffix with less content - reflows suffix with more content - writes both prefix and suffix - writes content within maximum size - omits bytes - writes nil content +Custom Printer + accepts options + prints command stdout data + prints command start + prints command exit -TTY::Command :pty - logs phased output in pseudo terminal mode - executes command in pseudo terminal mode as command option - executes command in pseudo terminal mode as global option +TTY::Command#ruby + runs ruby with a single string argument + runs ruby with multiple arguments TTY::Command#run - encodes output as binary - encodes all commands output as binary - encodes output as unicode by default + times out an infite process with constant output + times out infinite process without input or output + times out an infinite process with constant input data -TTY::Command#run - runs command successfully with logging - raises ExitError on command failure - streams output data - runs command and prints to stdout - runs command successfully with logging without color - does not persist environment variables - runs command successfully with logging without uuid set globally - preserves ANSI codes - runs command successfully with logging without uuid set locally - logs phased output in one line - runs command and fails with logging +TTY::Command dry run + queries for dry mode + runs command in dry run mode + allows to run command in dry mode + doesn't collect printout to stdin or stderr TTY::Command redirect - redirects STDOUT -> /dev/null - redirects to a file - redirects multiple fds to a file - redirects 1 -> 2 - redirects :out -> :err redirects :stdout -> :stderr + redirects to a file + redirects STDOUT -> /dev/null redirects STDOUT -> :err accepts standard shell redirects + redirects 1 -> 2 + redirects :out -> :err redirects to a file as an array value + redirects multiple fds to a file TTY::Command::Result + accesses exit code exits successfully - reads stdout + iterates over output with default delimiter doesn't exit is the same with equivalent object + iterates over output with global delimiter isn't equivalent with another object exist with non-zero code - iterates over output with default delimiter - iterates over output with global delimiter + reads stdout provides runtime iterates over output with argument delimiter - accesses exit code -TTY::Command dry run - doesn't collect printout to stdin or stderr - allows to run command in dry mode - queries for dry mode - runs command in dry run mode +TTY::Command#test + implements classic bash command -TTY::Command#run - times out an infite process with constant output - times out infinite process without input or output - times out an infinite process with constant input data +TTY::Command :pty + logs phased output in pseudo terminal mode + executes command in pseudo terminal mode as command option + executes command in pseudo terminal mode as global option -Custom Printer - prints command start - prints command exit - prints command stdout data - accepts options +TTY::Command::ExitError info + explains no stdin & stdout + displays stdin & stdout -TTY::Command#ruby - runs ruby with multiple arguments - runs ruby with a single string argument +TTY::Command::Truncator + omits bytes + writes more bytes letter + reflows suffix with less content + writes content within maximum size + writes both prefix and suffix + writes nil content + reflows suffix with more content + overflows prefix and suffix + +TTY::Command :output + runs command and prints to a file + +TTY::Command#run + encodes output as binary + encodes output as unicode by default + encodes all commands output as binary TTY::Command::Printers::Quiet - doesn't print command start or exit - prints command stdout data prints command stderr data + prints command stdout data + doesn't print command start or exit prints output on error when only_output_on_error is true doesn't print output on success when only_output_on_error is true TTY::Command :printer detects printer based on name detects null printer - fails to find printer based on name - uses custom printer uses printer based on instance - uses printer based on class name + fails to find printer based on name fails to find printer for nil + uses printer based on class name + uses custom printer + +TTY::Command#run + runs command successfully with logging without color + runs command and fails with logging + runs command successfully with logging without uuid set globally + preserves ANSI codes + does not persist environment variables + runs command successfully with logging without uuid set locally + runs command successfully with logging + runs command and prints to stdout + raises ExitError on command failure + logs phased output in one line + streams output data + +TTY::Command input + reads user input data + +TTY::Command::Printers::Progress + doesn't print command stdout data + doesn't print command start + prints successful command exit in color + prints failure command exit in color TTY::Command::Cmd::new - handles environment with fanky characters - accepts a command as heredoc - runs command as a group + updates command options with global only when not already present + runs command as a user in a group + runs command as a user + escapes environment values + accepts command with environment as [cmdname, arg1, ..., opts] + accepts a command requires at least command argument - accepts command as [[cmdname, argv0], arg1, ...] + provides unique identifier + converts command to hash accepts command with multiple environment keys + runs command with umask, chdir & user + accepts a command as heredoc + handles environment with fanky characters + accepts command as [[cmdname, argv0], arg1, ...] runs command with umask, user, chdir and env - accepts command as [cmdname, arg1, ...] - runs command as a user + runs command as a group runs command with umask, chdir - provides unique identifier - escapes special characters in split arguments - accepts environment as first argument - accepts command with environment as [cmdname, arg1, ..., opts] - escapes environment values + runs command with umask escapes arguments that need escaping + runs command in specified directory + escapes special characters in split arguments accepts command with environemnt string keys - converts command to hash - runs command with umask, chdir & user - accepts a command - runs command as a user in a group - runs command with umask + accepts command as [cmdname, arg1, ...] + accepts environment as first argument escapes directory path with fanky characters - runs command in specified directory - requires non empty command argument - updates command options with global only when not already present runs command in specified directory with environment + requires non empty command argument -Top 2 slowest examples (1.19 seconds, 19.6% of total time): - TTY::Command::Printers::Pretty prints output on error & raises ExitError when only_output_on_error is true - 0.6281 seconds ./spec/unit/printers/pretty_spec.rb:120 - TTY::Command::Printers::Quiet doesn't print output on success when only_output_on_error is true - 0.55952 seconds ./spec/unit/printers/quiet_spec.rb:37 +Top 2 slowest examples (1.39 seconds, 20.8% of total time): + TTY::Command::Printers::Pretty doesn't print output on success when only_output_on_error is true + 0.80131 seconds ./spec/unit/printers/pretty_spec.rb:97 + TTY::Command::Printers::Pretty prints output on error when only_output_on_error is true + 0.59189 seconds ./spec/unit/printers/pretty_spec.rb:144 Top 2 slowest example groups: TTY::Command :pty - 0.28979 seconds average (0.86937 seconds / 3 examples) ./spec/unit/pty_spec.rb:3 + 0.3031 seconds average (0.90931 seconds / 3 examples) ./spec/unit/pty_spec.rb:3 TTY::Command input - 0.26533 seconds average (0.26533 seconds / 1 example) ./spec/unit/input_spec.rb:3 + 0.28827 seconds average (0.28827 seconds / 1 example) ./spec/unit/input_spec.rb:3 -Finished in 6.07 seconds (files took 0.64691 seconds to load) +Finished in 6.68 seconds (files took 0.66927 seconds to load) 120 examples, 0 failures -Randomized with seed 64721 +Randomized with seed 54547 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1103,12 +1121,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/11177/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/11177/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/26512 and its subdirectories -I: Current time: Sat May 11 05:52:57 -12 2024 -I: pbuilder-time-stamp: 1715449977 +I: removing directory /srv/workspace/pbuilder/11177 and its subdirectories +I: Current time: Mon Apr 10 01:31:36 +14 2023 +I: pbuilder-time-stamp: 1681039896