Diff of the two buildlogs: -- --- b1/build.log 2024-05-14 11:51:14.739148966 +0000 +++ b2/build.log 2024-05-14 11:57:12.327951386 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Jun 16 06:13:16 -12 2025 -I: pbuilder-time-stamp: 1750097596 +I: Current time: Wed May 15 01:51:18 +14 2024 +I: pbuilder-time-stamp: 1715687478 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -30,52 +30,84 @@ dpkg-source: info: applying 0003-Disable-gecode-solver.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2457875/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2875489/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-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 May 14 11:51 /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/2875489/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2875489/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=42 ' - 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=20 ' + 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='42c1902137ae4c6ba3693dd8361ce7a7' - 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='2457875' - PS1='# ' - PS2='> ' + INVOCATION_ID=6926057914574eedac5d007d5c36acff + 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=2875489 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.ytZ4BYb0/pbuilderrc_vNRV --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.ytZ4BYb0/b1 --logfile b1/build.log ruby-solve_4.0.4-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://213.165.73.152: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.ytZ4BYb0/pbuilderrc_jFYc --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.ytZ4BYb0/b2 --logfile b2/build.log ruby-solve_4.0.4-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://46.16.76.132:3128 I: uname -a - Linux ionos5-amd64 6.6.13+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.13-1~bpo12+1 (2024-02-15) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Jun 15 14:07 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2457875/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 13 07:42 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2875489/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -253,7 +285,7 @@ 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] Get: 132 http://deb.debian.org/debian unstable/main amd64 ruby-semverse all 2.0.0-1 [6818 B] -Fetched 46.9 MB in 4s (12.9 MB/s) +Fetched 46.9 MB in 5s (9522 kB/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 ... 19699 files and directories currently installed.) @@ -693,8 +725,8 @@ Setting up tzdata (2024a-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Jun 16 18:13:59 UTC 2025. -Universal Time is now: Mon Jun 16 18:13:59 UTC 2025. +Local time is now: Tue May 14 11:54:21 UTC 2024. +Universal Time is now: Tue May 14 11:54:21 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -820,7 +852,11 @@ fakeroot is already the newest version (1.34-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/ruby-solve-4.0.4/ && 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-solve_4.0.4-1_source.changes +I: user script /srv/workspace/pbuilder/2875489/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2875489/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-solve-4.0.4/ && 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-solve_4.0.4-1_source.changes dpkg-buildpackage: info: source package ruby-solve dpkg-buildpackage: info: source version 4.0.4-1 dpkg-buildpackage: info: source distribution unstable @@ -892,152 +928,152 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 61998 - -Solve::Artifact - #depends - given a name and constraint argument - given the dependency of the given name and constraint does not exist - returns a Solve::Artifact - adds a dependency with the given name and constraint to the list of dependencies - given only a name argument - adds a dependency with a all constraint (>= 0.0.0) - equality - given an artifact with the same name and version - is equal - given an artifact with the same name but different version - is not equal - given an artifact with the same version but different name - is not equal - #dependencies - returns an array - returns all dependencies - returns an empty array if no dependencies have been accessed - sorting - orders artifacts by their version number - #dependency - returns an instance of Solve::Dependency matching the given name and constraint - #dependency? - returns true when the dependendency exists - returns false when the dependency does not exist - -Solve::Demand - equality - returns true when other is a Solve::Demand with the same name and constriant - returns false when other is a Solve::Demand with the same constraint but a different name - returns false when other isn't a Solve::Demand - returns false when other is a Solve::Demand with the same name but a different constraint - #initialize - accepts a Semverse::Constraint for the constraint parameter - accepts a string for the constraint parameter - when no value for 'constraint' is given - uses a default of >= 0.0.0 +Randomized with seed 48924 Solve::Solver::Serializer - deserializes a serialized problem to an equivalent problem creates a problem from a solver - -Solve::Dependency - #== - returns true if the other object is an instance of Solve::Dependency with the same constraint and artifact - #initialize - uses a default of >= 0.0.0 - -Solutions when using the ruby solver - find the correct solution when backtracking in variables introduced via demands - solves when packages and constraints have build elements - raises NoSolutionError when a solution cannot be found - fails with a self dependency - finds the correct solution when there is a diamond shaped dependency - chooses the best artifact for the demands - chooses the correct artifact for the demands - tries all combinations until it finds a solution - rejects a p shaped depenency chain with a circular dep error - solves when packages and constraints have prerelease elements - correctly resolves when a resolution exists but it is not the latest - rejects a circular dependency with a circular dep error - gives an empty solution when there are no demands - when options[:sorted] is true - with a simple list of dependencies - returns a sorted list of dependencies - when the solution is cyclic - raises a Solve::Errors::NoSolutionError because Molinillo doesn't support circular deps - with a constraint that depends upon an earlier constrained artifact - returns a sorted list of dependencies + deserializes a serialized problem to an equivalent problem Solve::RubySolver - has a list of demands as ruby literals has a graph + has a list of demands as ruby literals has a list of demands as model objects - supporting Serializer interface - implements the required interface when the constraints are solvable - gives the solution in sorted form gives the solution as a Hash - when the constraints are not solvable - and molinillo identifies missing artifacts - raises an error detailing the missing artifacts - and molinillo identifies constraints that exclude all known versions - raises an error detailing the missing artifacts - and molinillo identifies dependency conflicts - raises an error detailing the missing artifacts + gives the solution in sorted form ClassMethods - ::activate - is a no-op ::timeout returns 30,000 by default when the SOLVE_TIMEOUT env variable is set returns the value multiplied by a thousand - -Solve - ClassMethods - #it - returns nil if a solution does not exist (PENDING: No reason given) - #it! - raises NoSolutionError if a solution does not exist (PENDING: No reason given) + ::activate + is a no-op + supporting Serializer interface + implements the required interface + when the constraints are not solvable + and molinillo identifies dependency conflicts + raises an error detailing the missing artifacts + and molinillo identifies missing artifacts + raises an error detailing the missing artifacts + and molinillo identifies constraints that exclude all known versions + raises an error detailing the missing artifacts Solve::Graph - #find - returns nil when the artifact does not exist - returns an instance of artifact of the matching name and version == + returns false if the other has the same dependencies but different artifacts returns false if the other has the same artifacts but different dependencies returns true if the other is the same - returns false if the other has the same dependencies but different artifacts returns false if other isn't a Solve::Graph + #find + returns an instance of artifact of the matching name and version + returns nil when the artifact does not exist #versions - returns all the artifacts matching the given name does not satisfy constraints if it is the default returns only matching constraints if one is given - #artifacts - returns an empty array if no artifacts have been accessed - returns an array containing an artifact if one was accessed - returns an array + returns all the artifacts matching the given name + #artifact? + returns true if the given Solve::Artifact is a member of the collection + returns false if the given Solve::Artifact is not a member of the collection #artifact given the artifact of the given name and version does not exist - returns a Solve::Artifact the artifact has the given name - the artifact has the given version adds an artifact to the artifacts collection - #artifact? - returns true if the given Solve::Artifact is a member of the collection - returns false if the given Solve::Artifact is not a member of the collection + returns a Solve::Artifact + the artifact has the given version + #artifacts + returns an empty array if no artifacts have been accessed + returns an array containing an artifact if one was accessed + returns an array + +Solve::Demand + #initialize + accepts a Semverse::Constraint for the constraint parameter + accepts a string for the constraint parameter + when no value for 'constraint' is given + uses a default of >= 0.0.0 + equality + returns true when other is a Solve::Demand with the same name and constriant + returns false when other is a Solve::Demand with the same constraint but a different name + returns false when other is a Solve::Demand with the same name but a different constraint + returns false when other isn't a Solve::Demand + +Solutions when using the ruby solver + finds the correct solution when there is a diamond shaped dependency + rejects a circular dependency with a circular dep error + fails with a self dependency + raises NoSolutionError when a solution cannot be found + solves when packages and constraints have build elements + rejects a p shaped depenency chain with a circular dep error + correctly resolves when a resolution exists but it is not the latest + find the correct solution when backtracking in variables introduced via demands + gives an empty solution when there are no demands + tries all combinations until it finds a solution + solves when packages and constraints have prerelease elements + chooses the correct artifact for the demands + chooses the best artifact for the demands + when options[:sorted] is true + when the solution is cyclic + raises a Solve::Errors::NoSolutionError because Molinillo doesn't support circular deps + with a simple list of dependencies + returns a sorted list of dependencies + with a constraint that depends upon an earlier constrained artifact + returns a sorted list of dependencies + +Solve::Artifact + #dependencies + returns an array + returns an empty array if no dependencies have been accessed + returns all dependencies + #depends + given only a name argument + adds a dependency with a all constraint (>= 0.0.0) + given a name and constraint argument + given the dependency of the given name and constraint does not exist + adds a dependency with the given name and constraint to the list of dependencies + returns a Solve::Artifact + #dependency + returns an instance of Solve::Dependency matching the given name and constraint + sorting + orders artifacts by their version number + equality + given an artifact with the same name and version + is equal + given an artifact with the same name but different version + is not equal + given an artifact with the same version but different name + is not equal + #dependency? + returns false when the dependency does not exist + returns true when the dependendency exists + +Solve + ClassMethods + #it! + raises NoSolutionError if a solution does not exist (PENDING: No reason given) + #it + returns nil if a solution does not exist (PENDING: No reason given) + +Solve::Dependency + #initialize + uses a default of >= 0.0.0 + #== + returns true if the other object is an instance of Solve::Dependency with the same constraint and artifact Pending: (Failures listed here are expected and do not affect your suite's status) - 1) Solve ClassMethods #it returns nil if a solution does not exist + 1) Solve ClassMethods #it! raises NoSolutionError if a solution does not exist # No reason given - # ./spec/unit/solve_spec.rb:8 + # ./spec/unit/solve_spec.rb:14 - 2) Solve ClassMethods #it! raises NoSolutionError if a solution does not exist + 2) Solve ClassMethods #it returns nil if a solution does not exist # No reason given - # ./spec/unit/solve_spec.rb:14 + # ./spec/unit/solve_spec.rb:8 Deprecation Warnings: Using `should` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` with `config.expect_with(:rspec) { |c| c.syntax = :should }` instead. Called from /build/reproducible-path/ruby-solve-4.0.4/spec/unit/solve/solver/serializer_spec.rb:23:in `block (2 levels) in '. -Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /build/reproducible-path/ruby-solve-4.0.4/spec/unit/solve/artifact_spec.rb:7:in `block (2 levels) in '. +Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /build/reproducible-path/ruby-solve-4.0.4/spec/unit/solve/ruby_solver_spec.rb:13:in `block (5 levels) in '. If you need more of the backtrace for any of these deprecations to @@ -1047,10 +1083,10 @@ 2 deprecation warnings total -Finished in 0.06646 seconds (files took 0.17583 seconds to load) +Finished in 0.62896 seconds (files took 1.62 seconds to load) 72 examples, 0 failures, 2 pending -Randomized with seed 61998 +Randomized with seed 48924 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1082,12 +1118,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/2875489/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2875489/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/2457875 and its subdirectories -I: Current time: Mon Jun 16 06:14:14 -12 2025 -I: pbuilder-time-stamp: 1750097654 +I: removing directory /srv/workspace/pbuilder/2875489 and its subdirectories +I: Current time: Wed May 15 01:57:11 +14 2024 +I: pbuilder-time-stamp: 1715687831