Diff of the two buildlogs: -- --- b1/build.log 2021-07-04 13:11:06.902734530 +0000 +++ b2/build.log 2021-07-04 13:11:46.137252008 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Jul 4 01:10:29 -12 2021 -I: pbuilder-time-stamp: 1625404229 +I: Current time: Sun Aug 7 09:34:11 +14 2022 +I: pbuilder-time-stamp: 1659814451 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -17,7 +17,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Fri Mar 23 08:23:57 2018 -12 +gpgv: Signature made Sat Mar 24 10:23:57 2018 +14 gpgv: using RSA key 9CCD6B319DBF8E40AB1ABD1A89AF82B739CD217A gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ruby-solve_4.0.0-1.dsc @@ -30,136 +30,170 @@ 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/61496/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/11655/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 +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by 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/11655/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/11655/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' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.0.3(1)-release' + BUILDDIR=/build + 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=16' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='c1d44670d7834c8aa75935c77c53d6f0' - 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='61496' - PS1='# ' - PS2='> ' + INVOCATION_ID=84eb2da26ff34919a14c594c4270e2dc + 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=11655 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/tmp.k0Sxt19Vdp/pbuilderrc_WE99 --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.k0Sxt19Vdp/b1 --logfile b1/build.log ruby-solve_4.0.0-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://78.137.99.97: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/tmp.k0Sxt19Vdp/pbuilderrc_uUz1 --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.k0Sxt19Vdp/b2 --logfile b2/build.log ruby-solve_4.0.0-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://85.184.249.68:3128 I: uname -a - Linux ionos1-amd64 4.19.0-17-amd64 #1 SMP Debian 4.19.194-2 (2021-06-21) x86_64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-0.bpo.7-amd64 #1 SMP Debian 5.10.40-1~bpo10+1 (2021-06-04) x86_64 GNU/Linux I: ls -l /bin total 5116 - -rwxr-xr-x 1 root root 1168776 Apr 17 2019 bash - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzcat - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2227 Jul 10 2019 bzdiff - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Jun 24 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3641 Jul 10 2019 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 14328 Jul 10 2019 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 10 2019 bzmore - -rwxr-xr-x 1 root root 43744 Feb 28 2019 cat - -rwxr-xr-x 1 root root 64320 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 64288 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 72512 Feb 28 2019 chown - -rwxr-xr-x 1 root root 146880 Feb 28 2019 cp - -rwxr-xr-x 1 root root 121464 Jan 17 2019 dash - -rwxr-xr-x 1 root root 109408 Feb 28 2019 date - -rwxr-xr-x 1 root root 76712 Feb 28 2019 dd - -rwxr-xr-x 1 root root 93744 Feb 28 2019 df - -rwxr-xr-x 1 root root 138856 Feb 28 2019 dir - -rwxr-xr-x 1 root root 84288 Jan 9 2019 dmesg - lrwxrwxrwx 1 root root 8 Sep 26 2018 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Sep 26 2018 domainname -> hostname - -rwxr-xr-x 1 root root 39520 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 35424 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 68880 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 34896 Apr 22 2020 fusermount - -rwxr-xr-x 1 root root 198976 Jan 7 2019 grep - -rwxr-xr-x 2 root root 2345 Jan 5 2019 gunzip - -rwxr-xr-x 1 root root 6375 Jan 5 2019 gzexe - -rwxr-xr-x 1 root root 98048 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 26696 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 68552 Feb 28 2019 ln - -rwxr-xr-x 1 root root 56760 Jul 26 2018 login - -rwxr-xr-x 1 root root 138856 Feb 28 2019 ls - -rwxr-xr-x 1 root root 108624 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 89088 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 68544 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 43808 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 43008 Jan 9 2019 more - -rwsr-xr-x 1 root root 51280 Jan 9 2019 mount - -rwxr-xr-x 1 root root 14408 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 138728 Feb 28 2019 mv - lrwxrwxrwx 1 root root 8 Sep 26 2018 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Feb 14 2019 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 39616 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 47776 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 68416 Feb 28 2019 rm - -rwxr-xr-x 1 root root 47776 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 23312 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jun 20 20:24 sh -> dash - -rwxr-xr-x 1 root root 39552 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 80672 Feb 28 2019 stty - -rwsr-xr-x 1 root root 63568 Jan 9 2019 su - -rwxr-xr-x 1 root root 35488 Feb 28 2019 sync - -rwxr-xr-x 1 root root 445560 Apr 23 2019 tar - -rwxr-xr-x 1 root root 14440 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 97152 Feb 28 2019 touch - -rwxr-xr-x 1 root root 35424 Feb 28 2019 true - -rwxr-xr-x 1 root root 14328 Apr 22 2020 ulockmgr_server - -rwsr-xr-x 1 root root 34888 Jan 9 2019 umount - -rwxr-xr-x 1 root root 39584 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 138856 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 34896 Jan 9 2019 wdctl - -rwxr-xr-x 1 root root 946 Jan 21 2019 which - lrwxrwxrwx 1 root root 8 Sep 26 2018 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1983 Jan 5 2019 zcat - -rwxr-xr-x 1 root root 1677 Jan 5 2019 zcmp - -rwxr-xr-x 1 root root 5879 Jan 5 2019 zdiff - -rwxr-xr-x 1 root root 29 Jan 5 2019 zegrep - -rwxr-xr-x 1 root root 29 Jan 5 2019 zfgrep - -rwxr-xr-x 1 root root 2080 Jan 5 2019 zforce - -rwxr-xr-x 1 root root 7584 Jan 5 2019 zgrep - -rwxr-xr-x 1 root root 2205 Jan 5 2019 zless - -rwxr-xr-x 1 root root 1841 Jan 5 2019 zmore - -rwxr-xr-x 1 root root 4552 Jan 5 2019 znew -I: user script /srv/workspace/pbuilder/61496/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1168776 Apr 18 2019 bash + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzcat + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2227 Jul 11 2019 bzdiff + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Jun 25 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3641 Jul 11 2019 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 14328 Jul 11 2019 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 11 2019 bzmore + -rwxr-xr-x 1 root root 43744 Mar 1 2019 cat + -rwxr-xr-x 1 root root 64320 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 64288 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 72512 Mar 1 2019 chown + -rwxr-xr-x 1 root root 146880 Mar 1 2019 cp + -rwxr-xr-x 1 root root 121464 Jan 18 2019 dash + -rwxr-xr-x 1 root root 109408 Mar 1 2019 date + -rwxr-xr-x 1 root root 76712 Mar 1 2019 dd + -rwxr-xr-x 1 root root 93744 Mar 1 2019 df + -rwxr-xr-x 1 root root 138856 Mar 1 2019 dir + -rwxr-xr-x 1 root root 84288 Jan 10 2019 dmesg + lrwxrwxrwx 1 root root 8 Sep 27 2018 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Sep 27 2018 domainname -> hostname + -rwxr-xr-x 1 root root 39520 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 35424 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 68880 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 34896 Apr 23 2020 fusermount + -rwxr-xr-x 1 root root 198976 Jan 8 2019 grep + -rwxr-xr-x 2 root root 2345 Jan 6 2019 gunzip + -rwxr-xr-x 1 root root 6375 Jan 6 2019 gzexe + -rwxr-xr-x 1 root root 98048 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 26696 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 68552 Mar 1 2019 ln + -rwxr-xr-x 1 root root 56760 Jul 27 2018 login + -rwxr-xr-x 1 root root 138856 Mar 1 2019 ls + -rwxr-xr-x 1 root root 108624 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 89088 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 68544 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 43808 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 43008 Jan 10 2019 more + -rwsr-xr-x 1 root root 51280 Jan 10 2019 mount + -rwxr-xr-x 1 root root 14408 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 138728 Mar 1 2019 mv + lrwxrwxrwx 1 root root 8 Sep 27 2018 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Feb 15 2019 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 39616 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 47776 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 68416 Mar 1 2019 rm + -rwxr-xr-x 1 root root 47776 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 23312 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Aug 7 09:34 sh -> bash + lrwxrwxrwx 1 root root 4 Jul 25 04:46 sh.distrib -> dash + -rwxr-xr-x 1 root root 39552 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 80672 Mar 1 2019 stty + -rwsr-xr-x 1 root root 63568 Jan 10 2019 su + -rwxr-xr-x 1 root root 35488 Mar 1 2019 sync + -rwxr-xr-x 1 root root 445560 Apr 24 2019 tar + -rwxr-xr-x 1 root root 14440 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 97152 Mar 1 2019 touch + -rwxr-xr-x 1 root root 35424 Mar 1 2019 true + -rwxr-xr-x 1 root root 14328 Apr 23 2020 ulockmgr_server + -rwsr-xr-x 1 root root 34888 Jan 10 2019 umount + -rwxr-xr-x 1 root root 39584 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 138856 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 34896 Jan 10 2019 wdctl + -rwxr-xr-x 1 root root 946 Jan 22 2019 which + lrwxrwxrwx 1 root root 8 Sep 27 2018 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1983 Jan 6 2019 zcat + -rwxr-xr-x 1 root root 1677 Jan 6 2019 zcmp + -rwxr-xr-x 1 root root 5879 Jan 6 2019 zdiff + -rwxr-xr-x 1 root root 29 Jan 6 2019 zegrep + -rwxr-xr-x 1 root root 29 Jan 6 2019 zfgrep + -rwxr-xr-x 1 root root 2080 Jan 6 2019 zforce + -rwxr-xr-x 1 root root 7584 Jan 6 2019 zgrep + -rwxr-xr-x 1 root root 2205 Jan 6 2019 zless + -rwxr-xr-x 1 root root 1841 Jan 6 2019 zmore + -rwxr-xr-x 1 root root 4552 Jan 6 2019 znew +I: user script /srv/workspace/pbuilder/11655/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -342,7 +376,7 @@ Get: 135 http://deb.debian.org/debian buster/main amd64 ruby-rspec-core all 3.8.0c0e1m0s0-1 [190 kB] Get: 136 http://deb.debian.org/debian buster/main amd64 ruby-rspec all 3.8.0c0e1m0s0-1 [7620 B] Get: 137 http://deb.debian.org/debian buster/main amd64 ruby-semverse all 2.0.0-1 [6818 B] -Fetched 43.1 MB in 1s (70.5 MB/s) +Fetched 43.1 MB in 1s (64.2 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0: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 ... 19195 files and directories currently installed.) @@ -922,7 +956,7 @@ fakeroot is already the newest version (1.23-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/ruby-solve-4.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/ruby-solve-4.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package ruby-solve dpkg-buildpackage: info: source version 4.0.0-1 dpkg-buildpackage: info: source distribution unstable @@ -999,16 +1033,18 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 50131 +Randomized with seed 9056 -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 Solve::RubySolver has a list of demands as ruby literals - has a graph has a list of demands as model objects + has a graph ClassMethods ::activate is a no-op @@ -1016,57 +1052,73 @@ returns 30,000 by default when the SOLVE_TIMEOUT env variable is set returns the value multiplied by a thousand + 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 constraints that exclude all known versions - raises an error detailing the missing artifacts and molinillo identifies missing artifacts raises an error detailing the missing artifacts and molinillo identifies dependency conflicts raises an error detailing the missing artifacts - when the constraints are solvable - gives the solution as a Hash - gives the solution in sorted form - supporting Serializer interface - implements the required interface + and molinillo identifies constraints that exclude all known versions + raises an error detailing the missing artifacts -Solve::Artifact - #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 - returns a Solve::Artifact - adds a dependency with the given name and constraint to the list of dependencies - #dependency? - returns true when the dependendency exists - returns false when the dependency does not exist - #dependencies - returns an empty array if no dependencies have been accessed - returns an array - returns all dependencies - sorting - orders artifacts by their version number +Solutions when using the ruby solver + finds the correct solution when there is a diamond shaped dependency + rejects a p shaped depenency chain with a circular dep error + correctly resolves when a resolution exists but it is not the latest + solves when packages and constraints have build elements + find the correct solution when backtracking in variables introduced via demands + rejects a circular dependency with a circular dep error + gives an empty solution when there are no demands + solves when packages and constraints have prerelease elements + fails with a self dependency + chooses the best artifact for the demands + tries all combinations until it finds a solution + chooses the correct artifact for the demands + raises NoSolutionError when a solution cannot be found + when options[:sorted] is true + with a constraint that depends upon an earlier constrained artifact + returns a sorted list of dependencies + 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 + +Solve::Demand + #initialize + accepts a string for the constraint parameter + accepts a Semverse::Constraint for the constraint parameter + when no value for 'constraint' is given + uses a default of >= 0.0.0 equality - given an artifact with the same name and version - is equal - given an artifact with the same version but different name - is not equal - given an artifact with the same name but different version - is not equal - #dependency - returns an instance of Solve::Dependency matching the given name and constraint + returns true when other is a Solve::Demand with the same name and constriant + returns false when other isn't a Solve::Demand + 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 + +Solve::Solver::Serializer + creates a problem from a solver + deserializes a serialized problem to an equivalent problem 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) + #it + returns nil if a solution does not exist (PENDING: No reason given) 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 + returns only matching constraints if one is given + does not satisfy constraints if it is the default + #artifacts + returns an array containing an artifact if one was accessed + returns an empty array if no artifacts have been accessed + returns an array #artifact given the artifact of the given name and version does not exist returns a Solve::Artifact @@ -1075,74 +1127,56 @@ the artifact has the given version == returns false if other isn't a Solve::Graph - 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 - #artifacts - returns an array containing an artifact if one was accessed - returns an array - returns an empty array if no artifacts have been accessed - #versions - returns all the artifacts matching the given name - returns only matching constraints if one is given - does not satisfy constraints if it is the default + returns true if the other is the same + returns false if the other has the same artifacts but different dependencies + #find + returns an instance of artifact of the matching name and version + returns nil when the artifact does not exist #artifact? - returns false if the given Solve::Artifact is not a member of the collection 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 -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 - -Solve::Demand +Solve::Artifact equality - returns false when other is a Solve::Demand with the same name but a different constraint - 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 true when other is a Solve::Demand with the same name and constriant - #initialize - accepts a string for the constraint parameter - accepts a Semverse::Constraint for the constraint parameter - when no value for 'constraint' is given - uses a default of >= 0.0.0 - -Solutions when using the ruby solver - chooses the best artifact for the demands - solves when packages and constraints have prerelease elements - rejects a circular dependency with a circular dep error - rejects a p shaped depenency chain with a circular dep error - raises NoSolutionError when a solution cannot be found - tries all combinations until it finds a solution - find the correct solution when backtracking in variables introduced via demands - solves when packages and constraints have build elements - fails with a self dependency - correctly resolves when a resolution exists but it is not the latest - gives an empty solution when there are no demands - chooses the correct artifact for the demands - finds the correct solution when there is a diamond shaped dependency - when options[:sorted] is true - 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 - when the solution is cyclic - raises a Solve::Errors::NoSolutionError because Molinillo doesn't support circular deps + given an artifact with the same name and version + is equal + given an artifact with the same version but different name + is not equal + given an artifact with the same name but different version + is not equal + #dependency + returns an instance of Solve::Dependency matching the given name and constraint + #dependencies + returns all dependencies + returns an empty array if no dependencies have been accessed + returns an array + sorting + orders artifacts by their version number + #dependency? + returns true when the dependendency exists + returns false when the dependency does not exist + #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 + returns a Solve::Artifact + adds a dependency with the given name and constraint to the list of dependencies 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/ruby-solve-4.0.0/spec/unit/solve/solver/serializer_spec.rb:23:in `block (2 levels) in '. +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/ruby-solve-4.0.0/spec/unit/solve/ruby_solver_spec.rb:35: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/ruby-solve-4.0.0/spec/unit/solve/ruby_solver_spec.rb:13:in `block (5 levels) in '. @@ -1154,10 +1188,10 @@ 2 deprecation warnings total -Finished in 0.08243 seconds (files took 0.46438 seconds to load) +Finished in 0.08112 seconds (files took 0.21252 seconds to load) 72 examples, 0 failures, 2 pending -Randomized with seed 50131 +Randomized with seed 9056 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1186,12 +1220,14 @@ dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/11655/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/11655/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/61496 and its subdirectories -I: Current time: Sun Jul 4 01:11:06 -12 2021 -I: pbuilder-time-stamp: 1625404266 +I: removing directory /srv/workspace/pbuilder/11655 and its subdirectories +I: Current time: Sun Aug 7 09:34:48 +14 2022 +I: pbuilder-time-stamp: 1659814488