Diff of the two buildlogs: -- --- b1/build.log 2023-05-05 12:16:12.819061576 +0000 +++ b2/build.log 2023-05-05 12:18:15.225697161 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri May 5 00:14:15 -12 2023 -I: pbuilder-time-stamp: 1683288855 +I: Current time: Sat May 6 02:16:26 +14 2023 +I: pbuilder-time-stamp: 1683288986 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-contracts_0.17.orig.tar.gz] I: copying [./ruby-contracts_0.17-1.debian.tar.xz] I: Extracting source -gpgv: Signature made Tue Dec 20 23:31:37 2022 -12 +gpgv: Signature made Thu Dec 22 01:31:37 2022 +14 gpgv: using RSA key B2DEE66036C40829FCD0F10CFC0DB1BBCD460BDE gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./ruby-contracts_0.17-1.dsc: no acceptable signature found @@ -25,135 +25,167 @@ dpkg-source: info: unpacking ruby-contracts_0.17-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/28619/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/18295/tmp/hooks/D01_modify_environment starting +debug: Running on jtx1a. +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 6 02:16 /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/18295/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/18295/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='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='armhf' + 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]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='042b02c547de4d079b064ef272b8008b' - 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='28619' - PS1='# ' - PS2='> ' + INVOCATION_ID=b751737e814b4163a7ad4f502447342e + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=18295 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.ZI7Jrp5w/pbuilderrc_gHlc --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.ZI7Jrp5w/b1 --logfile b1/build.log ruby-contracts_0.17-1.dsc' - SUDO_GID='113' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + 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.ZI7Jrp5w/pbuilderrc_9snY --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.ZI7Jrp5w/b2 --logfile b2/build.log --extrapackages usrmerge ruby-contracts_0.17-1.dsc' + SUDO_GID=114 + SUDO_UID=108 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux ff4a 5.10.0-22-armmp-lpae #1 SMP Debian 5.10.178-3 (2023-04-22) armv7l GNU/Linux + Linux i-capture-the-hostname 5.10.0-22-arm64 #1 SMP Debian 5.10.178-3 (2023-04-22) aarch64 GNU/Linux I: ls -l /bin total 5072 - -rwxr-xr-x 1 root root 838488 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 67112 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat - -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown - -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp - -rwxr-xr-x 1 root root 132868 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 133220 Sep 20 2022 date - -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd - -rwxr-xr-x 1 root root 68104 Sep 20 2022 df - -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir - -rwxr-xr-x 1 root root 59128 Mar 22 21:02 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 67548 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 55748 Mar 22 21:02 findmnt - -rwsr-xr-x 1 root root 26208 Mar 22 20:15 fusermount - -rwxr-xr-x 1 root root 128608 Jan 24 02:43 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64220 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 67032 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln - -rwxr-xr-x 1 root root 35132 Mar 22 21:51 login - -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls - -rwxr-xr-x 1 root root 136808 Mar 22 21:02 lsblk - -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 38504 Mar 22 21:02 more - -rwsr-xr-x 1 root root 38496 Mar 22 21:02 mount - -rwxr-xr-x 1 root root 9824 Mar 22 21:02 mountpoint - -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm - -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 67400 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 133372 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty - -rwsr-xr-x 1 root root 50800 Mar 22 21:02 su - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync - -rwxr-xr-x 1 root root 336764 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 67144 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch - -rwxr-xr-x 1 root root 67548 Sep 20 2022 true - -rwxr-xr-x 1 root root 9768 Mar 22 20:15 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Mar 22 21:02 umount - -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 42608 Mar 22 21:02 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/28619/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 838488 Apr 24 11:24 bash + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 67632 Sep 21 2022 cat + -rwxr-xr-x 1 root root 67676 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67644 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 67684 Sep 21 2022 chown + -rwxr-xr-x 1 root root 133532 Sep 21 2022 cp + -rwxr-xr-x 1 root root 132868 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 133220 Sep 21 2022 date + -rwxr-xr-x 1 root root 67732 Sep 21 2022 dd + -rwxr-xr-x 1 root root 68104 Sep 21 2022 df + -rwxr-xr-x 1 root root 133632 Sep 21 2022 dir + -rwxr-xr-x 1 root root 59128 Mar 23 23:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 67560 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 67548 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 55748 Mar 23 23:02 findmnt + -rwsr-xr-x 1 root root 26208 Mar 23 22:15 fusermount + -rwxr-xr-x 1 root root 128608 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 67032 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 67720 Sep 21 2022 ln + -rwxr-xr-x 1 root root 35132 Mar 23 23:51 login + -rwxr-xr-x 1 root root 133632 Sep 21 2022 ls + -rwxr-xr-x 1 root root 136808 Mar 23 23:02 lsblk + -rwxr-xr-x 1 root root 67800 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 67764 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 67596 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 38504 Mar 23 23:02 more + -rwsr-xr-x 1 root root 38496 Mar 23 23:02 mount + -rwxr-xr-x 1 root root 9824 Mar 23 23:02 mountpoint + -rwxr-xr-x 1 root root 133532 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 67608 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:24 rbash -> bash + -rwxr-xr-x 1 root root 67600 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 67672 Sep 21 2022 rm + -rwxr-xr-x 1 root root 67600 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 67400 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133372 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 May 6 02:16 sh -> /bin/bash + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 67644 Sep 21 2022 stty + -rwsr-xr-x 1 root root 50800 Mar 23 23:02 su + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sync + -rwxr-xr-x 1 root root 336764 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 67144 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 133224 Sep 21 2022 touch + -rwxr-xr-x 1 root root 67548 Sep 21 2022 true + -rwxr-xr-x 1 root root 9768 Mar 23 22:15 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Mar 23 23:02 umount + -rwxr-xr-x 1 root root 67572 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 133632 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 42608 Mar 23 23:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/18295/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -326,7 +358,7 @@ Get: 129 http://deb.debian.org/debian bookworm/main armhf ruby-rspec-expectations all 3.12.0c0e1m1s0-1 [89.5 kB] Get: 130 http://deb.debian.org/debian bookworm/main armhf ruby-rspec-mocks all 3.12.0c0e1m1s0-1 [79.5 kB] Get: 131 http://deb.debian.org/debian bookworm/main armhf ruby-rspec all 3.12.0c0e1m1s0-1 [5084 B] -Fetched 44.6 MB in 3s (14.1 MB/s) +Fetched 44.6 MB in 4s (10.9 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:armhf. (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 ... 19329 files and directories currently installed.) @@ -873,8 +905,19 @@ 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-contracts-0.17/ && 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-contracts_0.17-1_source.changes +I: user script /srv/workspace/pbuilder/18295/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/18295/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/ruby-contracts-0.17/ && 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-contracts_0.17-1_source.changes dpkg-buildpackage: info: source package ruby-contracts dpkg-buildpackage: info: source version 0.17-1 dpkg-buildpackage: info: source distribution unstable @@ -902,13 +945,13 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-contracts/ -O--buildsystem=ruby dh_ruby --install /build/ruby-contracts-0.17/debian/ruby-contracts -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20230505-865-uegj29/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20230506-23212-prs5ki/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash Successfully built RubyGem Name: contracts Version: 0.17 File: contracts-0.17.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-contracts/usr/share/rubygems-integration/all /tmp/d20230505-865-uegj29/contracts-0.17.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-contracts/usr/share/rubygems-integration/all /tmp/d20230506-23212-prs5ki/contracts-0.17.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/ruby-contracts-0.17/debian/ruby-contracts/usr/share/rubygems-integration/all/gems/contracts-0.17/benchmarks/bench.rb /build/ruby-contracts-0.17/debian/ruby-contracts/usr/share/rubygems-integration/all/gems/contracts-0.17/benchmarks/hash.rb @@ -974,392 +1017,392 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 42509 +Randomized with seed 25146 Contract validators - Range - fails when value is incorrect - fails when value is not in range - passes when value is in range Regexp should fail for a non-matching string should pass for a matching string - within a hash - should pass for a matching string within an array should pass for a matching string + within a hash + should pass for a matching string + Range + fails when value is incorrect + fails when value is not in range + passes when value is in range -Contracts::Support - eigenclass? - is falsey for non-singleton classes - is truthy for singleton classes - eigenclass_of - returns the eigenclass of a given object - -Contract - .override_validator - allows to override valid contract - allows to override class validator - allows to override simple validators - allows to override default validator +Contracts: + method called with blocks + should enforce return value inside lambda with other parameter + should enforce return value inside block with no other parameter + should enforce return value inside block with other parameter + should enforce return value inside lambda with no other parameter Contracts: + Any: + should pass for numbers + should pass for procs + should pass for strings + should pass for nil + HashOf: + doesn't allow to specify multiple key-value pairs with pretty syntax + #to_s + given String => Num + is expected to eq "Hash" + given Symbol => String + is expected to eq "Hash" + given an unfulfilled contract + is expected to raise ContractError + is expected to raise ContractError + is expected to raise ContractError + is expected to raise ContractError + given a fulfilled contract + is expected to eq 2 + is expected to eq 2 Num: - should fail for nil and other data types should pass for Fixnums should pass for Floats - None: - should fail for strings - should fail for procs - should fail for numbers - should fail for nil + should fail for nil and other data types KeywordArgs: - should fail if some keys don't have contracts should fail for incorrect input should pass for exact correct input should fail if a key with a contract on it isn't provided - DescendantOf: - should pass for Array - should pass for a hash - should fail for a number class - should fail for a non-class - Send: - should fail for an object that returns false for method :good - should pass for an object that returns true for method :good - ArrayOf: - should fail for an array with one non-num - should pass for an array of nums - should fail for a non-array - RangeOf: - should pass for a range of nums - should pass for a range of dates - should fail for a range with incorrect data type - should fail for a badly-defined range - should fail for a non-range + should fail if some keys don't have contracts + Nat: + should fail for positive non-whole numbers + should fail for negative numbers + should fail for nil and other data types + should pass for positive whole numbers + should pass for 0 + Enum: + should fail for an object that is not included + should pass for an object that is included StrictHash: - when given not a hash + when given an input with correct keys but wrong types raises an error + when given an exact correct input + does not raise an error when given an input with missing keys raises an error - when given an input with extra keys + when given not a hash raises an error - when given an exact correct input - does not raise an error - when given an input with correct keys but wrong types + when given an input with extra keys raises an error - Enum: - should pass for an object that is included - should fail for an object that is not included - Or: - should pass for strings - should fail for nil - should pass for nums - Neg: - should fail for 0 - should pass for negative numbers - should fail for positive numbers - should fail for nil and other data types - Optional: - can't be used outside of KeywordArgs + Xor: + should fail for an object with both methods :good and :bad + should pass for an object with a method :good + should pass for an object with a method :bad + should fail for an object with neither method + DescendantOf: + should pass for a hash + should fail for a number class + should fail for a non-class + should pass for Array + ArrayOf: + should fail for a non-array + should pass for an array of nums + should fail for an array with one non-num Eq: - should fail when given instance of class - should pass for other values should fail when not equal should pass for a module should pass for a class + should pass for other values + should fail when given instance of class + Optional: + can't be used outside of KeywordArgs + Bool: + should fail for nil + should pass for an argument that is a boolean Not: should fail for nil should pass for an argument that isn't nil - And: - should pass for an object of class A that has a method :good - should fail for an object that has a method :good but isn't of class A - Any: - should pass for nil - should pass for strings - should pass for numbers - should pass for procs + Exactly: + should fail for an object that inherits from Parent + should pass for an object that is exactly a Parent + should fail for an object that is not related to Parent at all SetOf: should fail for a non-array should fail for an array with one non-num should pass for a set of nums - Xor: - should fail for an object with neither method - should pass for an object with a method :good - should fail for an object with both methods :good and :bad - should pass for an object with a method :bad - Bool: + None: + should fail for procs + should fail for numbers should fail for nil - should pass for an argument that is a boolean - RespondTo: - should pass for an object that responds to :good - should fail for an object that doesn't respond to :good - HashOf: - doesn't allow to specify multiple key-value pairs with pretty syntax - given a fulfilled contract - is expected to eq 2 - is expected to eq 2 - #to_s - given String => Num - is expected to eq "Hash" - given Symbol => String - is expected to eq "Hash" - given an unfulfilled contract - is expected to raise ContractError - is expected to raise ContractError - is expected to raise ContractError - is expected to raise ContractError + should fail for strings + Send: + should pass for an object that returns true for method :good + should fail for an object that returns false for method :good + RangeOf: + should pass for a range of nums + should fail for a badly-defined range + should pass for a range of dates + should fail for a non-range + should fail for a range with incorrect data type Maybe: - should pass for nils should pass for nums should fail for strings - Nat: - should fail for nil and other data types - should pass for positive whole numbers - should fail for positive non-whole numbers - should pass for 0 - should fail for negative numbers + should pass for nils + And: + should pass for an object of class A that has a method :good + should fail for an object that has a method :good but isn't of class A Pos: should fail for nil and other data types should fail for 0 should pass for positive numbers should fail for negative numbers - Exactly: - should fail for an object that is not related to Parent at all - should fail for an object that inherits from Parent - should pass for an object that is exactly a Parent + RespondTo: + should pass for an object that responds to :good + should fail for an object that doesn't respond to :good + Or: + should pass for strings + should pass for nums + should fail for nil + Neg: + should fail for nil and other data types + should fail for 0 + should fail for positive numbers + should pass for negative numbers + +module methods + should pass for correct input + should fail for incorrect input Contracts: - instance methods - should allow two classes to have the same method with different contracts - protected methods - should raise an error if you try to access a protected method - should raise an error if you try to access a protected method - classes - should pass for correct input - should fail for incorrect input - inherited methods - should apply the contract to an inherited method - module contracts - passes for instance of class including both modules - does not pass for instance of class including another module - passes for instance of class including module - does not pass for instance of class not including module - passes for instance of class including inherited module - private methods - should raise an error if you try to access a private method - should raise an error if you try to access a private method - varargs with block + class methods should fail for incorrect input should pass for correct input - when block has Func contract - should fail for incorrect input - contracts on functions - should pass for a function that passes the contract as in tutorial - should fail for a returned function that receives the wrong argument type - should not fail for a returned function that passes the contract - should pass for a function that passes the contract with weak other args - should pass for a function that passes the contract - should fail for a function that doesn't pass the contract with weak other args - should fail for a function that doesn't pass the contract - should fail for a returned function that doesn't pass the contract - anonymous modules - does not fail when contract is satisfied - fails with error when contract is violated - when called on module itself - fails with error when contract is violated - does not fail when contract is satisfied - basic - should fail for insufficient contracts - should fail for insufficient arguments - functype - should correctly print out a class method's type - should correctly print out a instance method's type + module usage + with instance methods + should check contract + with singleton class methods + should check contract + with singleton methods + should check contract + classes with extended modules + works correctly with methods with passing contracts + is possible to define it + works correctly with methods with passing contracts + should not fail with 'undefined method 'Contract'' usage in singleton class - should work normally when there is no contract violation should fail with proper error when there is contract violation + should work normally when there is no contract violation builtin contracts usage allows to use builtin contracts without namespacing and redundant Contracts inclusion - default args to functions - should work for a function call that relies on default args - Contracts to_s formatting in expected - should not use custom to_s if empty string - should wrap and pretty print for long return contracts - should show empty quotes as "" - should still show nils, not just blank space - should contain to_s representation within an Array contract - should contain to_s representation within a nested Hash contract - should not contain Contracts:: module prefix - should not stringify native types - should wrap and pretty print for long param contracts - should contain to_s representation within a nested Array contract - should contain to_s representation within a Hash contract - blocks + usage in the singleton class of a subclass + should work with a valid contract on a singleton method + failure callbacks + when failure_callback returns true + calls a function for which the contract fails + when failure_callback returns false + does not call a function for which the contract fails + Procs should fail for incorrect input + should pass for correct input + functype + should correctly print out a instance method's type + should correctly print out a class method's type + blocks should succeed for maybe proc with no proc should handle properly lack of block when there are other arguments - should fail for maybe proc with invalid input - should succeed for maybe proc with proc should pass for correct input + should succeed for maybe proc with proc + should fail for maybe proc with invalid input + should fail for incorrect input varargs are given with a maybe block when a block is passed in, varargs should be correct when a block is NOT passed in, varargs should still be correct - Arrays - should fail for insufficient items - should fail for some incorrect elements - should pass for correct input + default args to functions + should work for a function call that relies on default args + singleton methods self in inherited methods + should be a proper self + anonymous modules + fails with error when contract is violated + does not fail when contract is satisfied + when called on module itself + does not fail when contract is satisfied + fails with error when contract is violated instance and class methods should allow a class to have an instance method and a class method with the same name - failure callbacks - when failure_callback returns true - calls a function for which the contract fails - when failure_callback returns false - does not call a function for which the contract fails varargs + should pass for correct input should work with arg before splat + should fail for incorrect input + Contracts to_s formatting in expected + should wrap and pretty print for long param contracts + should not contain Contracts:: module prefix + should not use custom to_s if empty string + should contain to_s representation within a Hash contract + should not stringify native types + should contain to_s representation within a nested Hash contract + should contain to_s representation within an Array contract + should still show nils, not just blank space + should show empty quotes as "" + should contain to_s representation within a nested Array contract + should wrap and pretty print for long return contracts + anonymous classes + does not fail when contract is satisfied + fails with error when contract is violated + varargs with block should pass for correct input should fail for incorrect input - no contracts feature - disables invariants - does not disable pattern matching - disables normal contract checks + when block has Func contract + should fail for incorrect input + inherited methods + should apply the contract to an inherited method + basic + should fail for insufficient arguments + should fail for insufficient contracts + private methods + should raise an error if you try to access a private method + should raise an error if you try to access a private method + classes + should not fail for an object that is a subclass of the type in the contract + should not fail for an object that is the exact type as the contract Hashes should fail for incorrect input should pass for exact correct input should pass even if some keys don't have contracts should fail if a key with a contract on it isn't provided - module usage - with instance methods - should check contract - with singleton class methods - should check contract - with singleton methods - should check contract - usage in the singleton class of a subclass - should work with a valid contract on a singleton method + contracts for functions with no arguments + should still work for old-style contracts for functions with no args + should not work for a function with a bad contract + should work for functions with no args + no contracts feature + disables normal contract checks + does not disable pattern matching + disables invariants + classes + should pass for correct input + should fail for incorrect input + protected methods + should raise an error if you try to access a protected method + should raise an error if you try to access a protected method + instance methods + should allow two classes to have the same method with different contracts + contracts on functions + should fail for a returned function that receives the wrong argument type + should fail for a returned function that doesn't pass the contract + should pass for a function that passes the contract as in tutorial + should fail for a function that doesn't pass the contract with weak other args + should not fail for a returned function that passes the contract + should pass for a function that passes the contract + should fail for a function that doesn't pass the contract + should pass for a function that passes the contract with weak other args + Arrays + should fail for insufficient items + should fail for some incorrect elements + should pass for correct input + module contracts + passes for instance of class including module + does not pass for instance of class not including module + passes for instance of class including inherited module + does not pass for instance of class including another module + passes for instance of class including both modules pattern matching - if the return contract for a pattern match fails, it should fail instead of trying the next pattern match - should not fall through to next pattern when there is a deep contract violation should work as expected when there is no contract violation - should fail when the pattern-matched method's contract fails should fail if multiple methods are defined with the same contract (for pattern-matching) should work for differing arities + should not fall through to next pattern when there is a deep contract violation + if the return contract for a pattern match fails, it should fail instead of trying the next pattern match + should fail when the pattern-matched method's contract fails when failure_callback was overriden calls a method when first pattern matches falls through to 2nd pattern when first pattern does not match - uses overriden failure_callback when pattern matching fails if the return contract for a pattern match fails, it should fail instead of trying the next pattern match, even with the failure callback - classes - should not fail for an object that is the exact type as the contract - should not fail for an object that is a subclass of the type in the contract - class methods - should pass for correct input - should fail for incorrect input + uses overriden failure_callback when pattern matching fails classes with a valid? class method - should pass for correct input should fail for incorrect input - contracts for functions with no arguments - should not work for a function with a bad contract - should work for functions with no args - should still work for old-style contracts for functions with no args - anonymous classes - fails with error when contract is violated - does not fail when contract is satisfied - singleton methods self in inherited methods - should be a proper self - classes with extended modules - is possible to define it - should not fail with 'undefined method 'Contract'' - works correctly with methods with passing contracts - works correctly with methods with passing contracts - Procs should pass for correct input - should fail for incorrect input -Contracts::Invariants - works when all invariants are holding - raises invariant violation error when any of invariants are not holding - -Contracts: - method called with blocks - should enforce return value inside block with no other parameter - should enforce return value inside lambda with other parameter - should enforce return value inside lambda with no other parameter - should enforce return value inside block with other parameter +Contract + .override_validator + allows to override default validator + allows to override valid contract + allows to override class validator + allows to override simple validators Contracts: Attrs: - attr_reader_with_contract - getting invalid type - setting - getting valid type for second val + attr_accessor_with_contract getting invalid type for second val - getting valid type - attr_writer_with_contract - setting invalid type for second val - setting valid type for second val - setting valid type + getting invalid type setting invalid type - getting - attr_accessor_with_contract - getting valid type for second val setting valid type getting valid type + getting valid type for second val + setting invalid type for second val setting valid type for second val - setting invalid type + attr_reader_with_contract + getting valid type for second val getting invalid type + getting valid type getting invalid type for second val + setting + attr_writer_with_contract + setting valid type + setting invalid type + setting valid type for second val + getting setting invalid type for second val -module methods - should pass for correct input - should fail for incorrect input +Contracts::Invariants + works when all invariants are holding + raises invariant violation error when any of invariants are not holding -Top 10 slowest examples (0.09298 seconds, 16.8% of total time): - Contract.override_validator allows to override default validator - 0.01893 seconds ./spec/override_validators_spec.rb:127 - Contracts: RangeOf: should fail for a range with incorrect data type - 0.01398 seconds ./spec/builtin_contracts_spec.rb:302 - Contract.override_validator allows to override valid contract - 0.01095 seconds ./spec/override_validators_spec.rb:45 - Contracts: Num: should fail for nil and other data types - 0.01021 seconds ./spec/builtin_contracts_spec.rb:41 - Contracts: Send: should fail for an object that returns false for method :good - 0.0099 seconds ./spec/builtin_contracts_spec.rb:218 - Contract validators Range fails when value is incorrect - 0.00723 seconds ./spec/validators_spec.rb:19 - Contracts: Exactly: should fail for an object that inherits from Parent - 0.00613 seconds ./spec/builtin_contracts_spec.rb:228 - Contracts: RangeOf: should fail for a non-range - 0.00598 seconds ./spec/builtin_contracts_spec.rb:295 +Contracts::Support + eigenclass? + is truthy for singleton classes + is falsey for non-singleton classes + eigenclass_of + returns the eigenclass of a given object + +Top 10 slowest examples (0.07345 seconds, 17.8% of total time): + Contracts: pattern matching should not fall through to next pattern when there is a deep contract violation + 0.01463 seconds ./spec/contracts_spec.rb:55 + Contracts: SetOf: should fail for an array with one non-num + 0.01356 seconds ./spec/builtin_contracts_spec.rb:327 + Contracts: Exactly: should fail for an object that is not related to Parent at all + 0.01251 seconds ./spec/builtin_contracts_spec.rb:232 + Contract validators Regexp should fail for a non-matching string + 0.0065 seconds ./spec/validators_spec.rb:31 + Contracts: Procs should pass for correct input + 0.00562 seconds ./spec/contracts_spec.rb:327 + Contracts: contracts on functions should not fail for a returned function that passes the contract + 0.00531 seconds ./spec/contracts_spec.rb:512 Contract.override_validator allows to override class validator - 0.00511 seconds ./spec/override_validators_spec.rb:96 + 0.00385 seconds ./spec/override_validators_spec.rb:96 Contracts: Nat: should fail for nil and other data types - 0.00457 seconds ./spec/builtin_contracts_spec.rb:113 + 0.00384 seconds ./spec/builtin_contracts_spec.rb:113 + Contract.override_validator allows to override valid contract + 0.00383 seconds ./spec/override_validators_spec.rb:45 + Contract.override_validator allows to override default validator + 0.00379 seconds ./spec/override_validators_spec.rb:127 Top 9 slowest example groups: Contract - 0.01027 seconds average (0.04106 seconds / 4 examples) ./spec/override_validators_spec.rb:1 + 0.00409 seconds average (0.01637 seconds / 4 examples) ./spec/override_validators_spec.rb:1 Contracts: - 0.00294 seconds average (0.25855 seconds / 88 examples) ./spec/builtin_contracts_spec.rb:1 + 0.00209 seconds average (0.18352 seconds / 88 examples) ./spec/builtin_contracts_spec.rb:1 Contract validators - 0.00238 seconds average (0.01664 seconds / 7 examples) ./spec/validators_spec.rb:3 - Contracts::Support - 0.00227 seconds average (0.0068 seconds / 3 examples) ./spec/support_spec.rb:2 + 0.00206 seconds average (0.01443 seconds / 7 examples) ./spec/validators_spec.rb:3 Contracts: - 0.00222 seconds average (0.00887 seconds / 4 examples) ./spec/methods_spec.rb:1 + 0.00161 seconds average (0.00642 seconds / 4 examples) ./spec/methods_spec.rb:1 Contracts: - 0.00178 seconds average (0.1838 seconds / 103 examples) ./spec/contracts_spec.rb:1 - Contracts: - 0.00158 seconds average (0.02841 seconds / 18 examples) ./spec/attrs_spec.rb:1 + 0.0016 seconds average (0.16479 seconds / 103 examples) ./spec/contracts_spec.rb:1 + Contracts::Support + 0.00156 seconds average (0.00469 seconds / 3 examples) ./spec/support_spec.rb:2 module methods - 0.00145 seconds average (0.0029 seconds / 2 examples) ./spec/module_spec.rb:10 + 0.00098 seconds average (0.00197 seconds / 2 examples) ./spec/module_spec.rb:10 + Contracts: + 0.00096 seconds average (0.01719 seconds / 18 examples) ./spec/attrs_spec.rb:1 Contracts::Invariants - 0.00104 seconds average (0.00208 seconds / 2 examples) ./spec/invariants_spec.rb:2 + 0.00074 seconds average (0.00148 seconds / 2 examples) ./spec/invariants_spec.rb:2 -Finished in 0.55201 seconds (files took 0.62065 seconds to load) +Finished in 0.41368 seconds (files took 0.50751 seconds to load) 231 examples, 0 failures -Randomized with seed 42509 +Randomized with seed 25146 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1390,12 +1433,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/18295/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/18295/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/28619 and its subdirectories -I: Current time: Fri May 5 00:16:09 -12 2023 -I: pbuilder-time-stamp: 1683288969 +I: removing directory /srv/workspace/pbuilder/18295 and its subdirectories +I: Current time: Sat May 6 02:18:11 +14 2023 +I: pbuilder-time-stamp: 1683289091