Diff of the two buildlogs:
--
--- b1/build.log 2021-06-19 15:21:50.224994463 +0000
+++ b2/build.log 2021-06-19 15:30:13.613927341 +0000
@@ -1,6 +1,8 @@
-I: pbuilder: network access will be disabled during build
-I: Current time: Fri Jul 22 09:43:33 -12 2022
-I: pbuilder-time-stamp: 1658526213
+unshare: unshare failed: Cannot allocate memory
+W: pbuilder: unshare CLONE_NEWNET not available
+I: pbuilder: network access is available during build!
+I: Current time: Sun Jun 20 05:21:52 +14 2021
+I: pbuilder-time-stamp: 1624116112
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz]
I: copying local configuration
@@ -17,8 +19,8 @@
I: copying [./octave-geometry_4.0.0-2.debian.tar.xz]
I: Extracting source
gpgv: unknown type of key resource 'trustedkeys.kbx'
-gpgv: keyblock resource '/tmp/dpkg-verify-sig.z5OOr5T1/trustedkeys.kbx': General error
-gpgv: Signature made Tue Jul 28 02:41:14 2020 -12
+gpgv: keyblock resource '/tmp/dpkg-verify-sig.LGzNktBL/trustedkeys.kbx': General error
+gpgv: Signature made Wed Jul 29 04:41:14 2020 +14
gpgv: using RSA key 3F464391498FE874BDB5D98F2124AA1983785C90
gpgv: Can't check signature: No public key
dpkg-source: warning: failed to verify signature on ./octave-geometry_4.0.0-2.dsc
@@ -29,137 +31,171 @@
dpkg-source: info: applying skip-unit-tests-svg.patch
I: Not using root during the build.
I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/41678/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/6982/tmp/hooks/D01_modify_environment starting
+debug: Running on ionos12-i386.
+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/6982/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/6982/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='i386'
- DEBIAN_FRONTEND='noninteractive'
- DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=18'
- DISTRIBUTION=''
- HOME='/root'
- HOST_ARCH='i386'
+ 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]="1" [2]="4" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")
+ BASH_VERSION='5.1.4(1)-release'
+ BUILDDIR=/build
+ BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+ BUILDUSERNAME=pbuilder2
+ BUILD_ARCH=i386
+ DEBIAN_FRONTEND=noninteractive
+ DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=10'
+ DIRSTACK=()
+ DISTRIBUTION=
+ EUID=0
+ FUNCNAME=([0]="Echo" [1]="main")
+ GROUPS=()
+ HOME=/root
+ HOSTNAME=i-capture-the-hostname
+ HOSTTYPE=i686
+ HOST_ARCH=i386
IFS='
'
- INVOCATION_ID='5eb0f00f3abc4b7899106d3a28626bee'
- LANG='C'
- LANGUAGE='en_US:en'
- LC_ALL='C'
- LD_LIBRARY_PATH='/usr/lib/libeatmydata'
- LD_PRELOAD='libeatmydata.so'
- 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='41678'
- PS1='# '
- PS2='> '
+ INVOCATION_ID=f5cbfdc54458440492a27b17534178a9
+ LANG=C
+ LANGUAGE=de_CH:de
+ LC_ALL=C
+ LD_LIBRARY_PATH=/usr/lib/libeatmydata
+ LD_PRELOAD=libeatmydata.so
+ MACHTYPE=i686-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=6982
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.GEA1e5l70m/pbuilderrc_hekH --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.GEA1e5l70m/b1 --logfile b1/build.log octave-geometry_4.0.0-2.dsc'
- SUDO_GID='112'
- SUDO_UID='107'
- SUDO_USER='jenkins'
- TERM='unknown'
- TZ='/usr/share/zoneinfo/Etc/GMT+12'
- USER='root'
- _='/usr/bin/systemd-run'
- http_proxy='http://85.184.249.68: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.GEA1e5l70m/pbuilderrc_uWJB --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.GEA1e5l70m/b2 --logfile b2/build.log --extrapackages usrmerge octave-geometry_4.0.0-2.dsc'
+ SUDO_GID=112
+ SUDO_UID=107
+ SUDO_USER=jenkins
+ TERM=unknown
+ TZ=/usr/share/zoneinfo/Etc/GMT-14
+ UID=0
+ USER=root
+ _='I: set'
+ http_proxy=http://78.137.99.97:3128
I: uname -a
- Linux ionos6-i386 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
+ Linux i-capture-the-hostname 4.19.0-16-686-pae #1 SMP Debian 4.19.181-1 (2021-03-19) i686 GNU/Linux
I: ls -l /bin
- total 5776
- -rwxr-xr-x 1 root root 1367848 Feb 24 2021 bash
- -rwxr-xr-x 3 root root 38280 Jul 20 2020 bunzip2
- -rwxr-xr-x 3 root root 38280 Jul 20 2020 bzcat
- lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff
- -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff
- lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep
- -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe
- lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep
- -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep
- -rwxr-xr-x 3 root root 38280 Jul 20 2020 bzip2
- -rwxr-xr-x 1 root root 17768 Jul 20 2020 bzip2recover
- lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore
- -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore
- -rwxr-xr-x 1 root root 38824 Sep 22 2020 cat
- -rwxr-xr-x 1 root root 71624 Sep 22 2020 chgrp
- -rwxr-xr-x 1 root root 67528 Sep 22 2020 chmod
- -rwxr-xr-x 1 root root 75752 Sep 22 2020 chown
- -rwxr-xr-x 1 root root 157960 Sep 22 2020 cp
- -rwxr-xr-x 1 root root 128724 Dec 10 2020 dash
- -rwxr-xr-x 1 root root 124904 Sep 22 2020 date
- -rwxr-xr-x 1 root root 92172 Sep 22 2020 dd
- -rwxr-xr-x 1 root root 100752 Sep 22 2020 df
- -rwxr-xr-x 1 root root 153964 Sep 22 2020 dir
- -rwxr-xr-x 1 root root 83644 Feb 7 2021 dmesg
- lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname
- lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname
- -rwxr-xr-x 1 root root 34664 Sep 22 2020 echo
- -rwxr-xr-x 1 root root 28 Nov 9 2020 egrep
- -rwxr-xr-x 1 root root 34664 Sep 22 2020 false
- -rwxr-xr-x 1 root root 28 Nov 9 2020 fgrep
- -rwxr-xr-x 1 root root 71928 Feb 7 2021 findmnt
- -rwsr-xr-x 1 root root 30112 Feb 26 2021 fusermount
- -rwxr-xr-x 1 root root 210488 Nov 9 2020 grep
- -rwxr-xr-x 2 root root 2346 Mar 2 2021 gunzip
- -rwxr-xr-x 1 root root 6376 Mar 2 2021 gzexe
- -rwxr-xr-x 1 root root 100952 Mar 2 2021 gzip
- -rwxr-xr-x 1 root root 21916 Nov 6 2019 hostname
- -rwxr-xr-x 1 root root 83980 Sep 22 2020 ln
- -rwxr-xr-x 1 root root 55572 Feb 7 2020 login
- -rwxr-xr-x 1 root root 153964 Sep 22 2020 ls
- -rwxr-xr-x 1 root root 153124 Feb 7 2021 lsblk
- -rwxr-xr-x 1 root root 96328 Sep 22 2020 mkdir
- -rwxr-xr-x 1 root root 79912 Sep 22 2020 mknod
- -rwxr-xr-x 1 root root 47048 Sep 22 2020 mktemp
- -rwxr-xr-x 1 root root 58920 Feb 7 2021 more
- -rwsr-xr-x 1 root root 50720 Feb 7 2021 mount
- -rwxr-xr-x 1 root root 13856 Feb 7 2021 mountpoint
- -rwxr-xr-x 1 root root 157996 Sep 22 2020 mv
- lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname
- lrwxrwxrwx 1 root root 14 Apr 18 2021 pidof -> /sbin/killall5
- -rwxr-xr-x 1 root root 38824 Sep 22 2020 pwd
- lrwxrwxrwx 1 root root 4 Feb 24 2021 rbash -> bash
- -rwxr-xr-x 1 root root 46984 Sep 22 2020 readlink
- -rwxr-xr-x 1 root root 75720 Sep 22 2020 rm
- -rwxr-xr-x 1 root root 46984 Sep 22 2020 rmdir
- -rwxr-xr-x 1 root root 22292 Sep 27 2020 run-parts
- -rwxr-xr-x 1 root root 125036 Dec 22 2018 sed
- lrwxrwxrwx 1 root root 4 Jul 22 03:48 sh -> dash
- -rwxr-xr-x 1 root root 34696 Sep 22 2020 sleep
- -rwxr-xr-x 1 root root 83880 Sep 22 2020 stty
- -rwsr-xr-x 1 root root 79396 Feb 7 2021 su
- -rwxr-xr-x 1 root root 34696 Sep 22 2020 sync
- -rwxr-xr-x 1 root root 602584 Feb 16 2021 tar
- -rwxr-xr-x 1 root root 13860 Sep 27 2020 tempfile
- -rwxr-xr-x 1 root root 108520 Sep 22 2020 touch
- -rwxr-xr-x 1 root root 34664 Sep 22 2020 true
- -rwxr-xr-x 1 root root 17768 Feb 26 2021 ulockmgr_server
- -rwsr-xr-x 1 root root 30236 Feb 7 2021 umount
- -rwxr-xr-x 1 root root 34664 Sep 22 2020 uname
- -rwxr-xr-x 2 root root 2346 Mar 2 2021 uncompress
- -rwxr-xr-x 1 root root 153964 Sep 22 2020 vdir
- -rwxr-xr-x 1 root root 63024 Feb 7 2021 wdctl
- lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname
- -rwxr-xr-x 1 root root 1984 Mar 2 2021 zcat
- -rwxr-xr-x 1 root root 1678 Mar 2 2021 zcmp
- -rwxr-xr-x 1 root root 5880 Mar 2 2021 zdiff
- -rwxr-xr-x 1 root root 29 Mar 2 2021 zegrep
- -rwxr-xr-x 1 root root 29 Mar 2 2021 zfgrep
- -rwxr-xr-x 1 root root 2081 Mar 2 2021 zforce
- -rwxr-xr-x 1 root root 7585 Mar 2 2021 zgrep
- -rwxr-xr-x 1 root root 2206 Mar 2 2021 zless
- -rwxr-xr-x 1 root root 1842 Mar 2 2021 zmore
- -rwxr-xr-x 1 root root 4553 Mar 2 2021 znew
-I: user script /srv/workspace/pbuilder/41678/tmp/hooks/D02_print_environment finished
+ total 5784
+ -rwxr-xr-x 1 root root 1367848 Feb 25 10:57 bash
+ -rwxr-xr-x 3 root root 38280 Jul 21 2020 bunzip2
+ -rwxr-xr-x 3 root root 38280 Jul 21 2020 bzcat
+ lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff
+ -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff
+ lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep
+ -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe
+ lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep
+ -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep
+ -rwxr-xr-x 3 root root 38280 Jul 21 2020 bzip2
+ -rwxr-xr-x 1 root root 17768 Jul 21 2020 bzip2recover
+ lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore
+ -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore
+ -rwxr-xr-x 1 root root 38824 Sep 23 2020 cat
+ -rwxr-xr-x 1 root root 71624 Sep 23 2020 chgrp
+ -rwxr-xr-x 1 root root 67528 Sep 23 2020 chmod
+ -rwxr-xr-x 1 root root 75752 Sep 23 2020 chown
+ -rwxr-xr-x 1 root root 157960 Sep 23 2020 cp
+ -rwxr-xr-x 1 root root 128724 Dec 11 2020 dash
+ -rwxr-xr-x 1 root root 124904 Sep 23 2020 date
+ -rwxr-xr-x 1 root root 92172 Sep 23 2020 dd
+ -rwxr-xr-x 1 root root 100752 Sep 23 2020 df
+ -rwxr-xr-x 1 root root 153964 Sep 23 2020 dir
+ -rwxr-xr-x 1 root root 83644 Feb 8 04:38 dmesg
+ lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname
+ lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname
+ -rwxr-xr-x 1 root root 34664 Sep 23 2020 echo
+ -rwxr-xr-x 1 root root 28 Nov 10 2020 egrep
+ -rwxr-xr-x 1 root root 34664 Sep 23 2020 false
+ -rwxr-xr-x 1 root root 28 Nov 10 2020 fgrep
+ -rwxr-xr-x 1 root root 71928 Feb 8 04:38 findmnt
+ -rwsr-xr-x 1 root root 30112 Feb 27 06:12 fusermount
+ -rwxr-xr-x 1 root root 210488 Nov 10 2020 grep
+ -rwxr-xr-x 2 root root 2346 Mar 3 13:30 gunzip
+ -rwxr-xr-x 1 root root 6376 Mar 3 13:30 gzexe
+ -rwxr-xr-x 1 root root 100952 Mar 3 13:30 gzip
+ -rwxr-xr-x 1 root root 21916 Nov 8 2019 hostname
+ -rwxr-xr-x 1 root root 83980 Sep 23 2020 ln
+ -rwxr-xr-x 1 root root 55572 Feb 8 2020 login
+ -rwxr-xr-x 1 root root 153964 Sep 23 2020 ls
+ -rwxr-xr-x 1 root root 153124 Feb 8 04:38 lsblk
+ -rwxr-xr-x 1 root root 96328 Sep 23 2020 mkdir
+ -rwxr-xr-x 1 root root 79912 Sep 23 2020 mknod
+ -rwxr-xr-x 1 root root 47048 Sep 23 2020 mktemp
+ -rwxr-xr-x 1 root root 58920 Feb 8 04:38 more
+ -rwsr-xr-x 1 root root 50720 Feb 8 04:38 mount
+ -rwxr-xr-x 1 root root 13856 Feb 8 04:38 mountpoint
+ -rwxr-xr-x 1 root root 157996 Sep 23 2020 mv
+ lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname
+ lrwxrwxrwx 1 root root 14 Apr 19 05:38 pidof -> /sbin/killall5
+ -rwxr-xr-x 1 root root 38824 Sep 23 2020 pwd
+ lrwxrwxrwx 1 root root 4 Feb 25 10:57 rbash -> bash
+ -rwxr-xr-x 1 root root 46984 Sep 23 2020 readlink
+ -rwxr-xr-x 1 root root 75720 Sep 23 2020 rm
+ -rwxr-xr-x 1 root root 46984 Sep 23 2020 rmdir
+ -rwxr-xr-x 1 root root 22292 Sep 28 2020 run-parts
+ -rwxr-xr-x 1 root root 125036 Dec 23 2018 sed
+ lrwxrwxrwx 1 root root 4 Jun 20 05:24 sh -> bash
+ lrwxrwxrwx 1 root root 4 Jun 18 23:27 sh.distrib -> dash
+ -rwxr-xr-x 1 root root 34696 Sep 23 2020 sleep
+ -rwxr-xr-x 1 root root 83880 Sep 23 2020 stty
+ -rwsr-xr-x 1 root root 79396 Feb 8 04:38 su
+ -rwxr-xr-x 1 root root 34696 Sep 23 2020 sync
+ -rwxr-xr-x 1 root root 602584 Feb 17 23:55 tar
+ -rwxr-xr-x 1 root root 13860 Sep 28 2020 tempfile
+ -rwxr-xr-x 1 root root 108520 Sep 23 2020 touch
+ -rwxr-xr-x 1 root root 34664 Sep 23 2020 true
+ -rwxr-xr-x 1 root root 17768 Feb 27 06:12 ulockmgr_server
+ -rwsr-xr-x 1 root root 30236 Feb 8 04:38 umount
+ -rwxr-xr-x 1 root root 34664 Sep 23 2020 uname
+ -rwxr-xr-x 2 root root 2346 Mar 3 13:30 uncompress
+ -rwxr-xr-x 1 root root 153964 Sep 23 2020 vdir
+ -rwxr-xr-x 1 root root 63024 Feb 8 04:38 wdctl
+ lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname
+ -rwxr-xr-x 1 root root 1984 Mar 3 13:30 zcat
+ -rwxr-xr-x 1 root root 1678 Mar 3 13:30 zcmp
+ -rwxr-xr-x 1 root root 5880 Mar 3 13:30 zdiff
+ -rwxr-xr-x 1 root root 29 Mar 3 13:30 zegrep
+ -rwxr-xr-x 1 root root 29 Mar 3 13:30 zfgrep
+ -rwxr-xr-x 1 root root 2081 Mar 3 13:30 zforce
+ -rwxr-xr-x 1 root root 7585 Mar 3 13:30 zgrep
+ -rwxr-xr-x 1 root root 2206 Mar 3 13:30 zless
+ -rwxr-xr-x 1 root root 1842 Mar 3 13:30 zmore
+ -rwxr-xr-x 1 root root 4553 Mar 3 13:30 znew
+I: user script /srv/workspace/pbuilder/6982/tmp/hooks/D02_print_environment finished
-> Attempting to satisfy build-dependencies
-> Creating pbuilder-satisfydepends-dummy package
Package: pbuilder-satisfydepends-dummy
@@ -660,7 +696,7 @@
Get: 455 http://deb.debian.org/debian bullseye/main i386 libxslt1.1 i386 1.1.34-4 [251 kB]
Get: 456 http://deb.debian.org/debian bullseye/main i386 octave-matgeom all 1.2.2-3 [308 kB]
Get: 457 http://deb.debian.org/debian bullseye/main i386 python3-lxml i386 4.6.3-1 [1080 kB]
-Fetched 169 MB in 2s (70.3 MB/s)
+Fetched 169 MB in 29s (5882 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package bsdextrautils.
(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 ... 19675 files and directories currently installed.)
@@ -2536,8 +2572,25 @@
Writing extended state information...
Building tag database...
-> Finished parsing the build-deps
+Reading package lists...
+Building dependency tree...
+Reading state information...
+The following NEW packages will be installed:
+ usrmerge
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Need to get 13.0 kB of archives.
+After this operation, 43.0 kB of additional disk space will be used.
+Get:1 http://deb.debian.org/debian bullseye/main i386 usrmerge all 25 [13.0 kB]
+debconf: delaying package configuration, since apt-utils is not installed
+Fetched 13.0 kB in 0s (424 kB/s)
+Selecting previously unselected package usrmerge.
+(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 ... 37211 files and directories currently installed.)
+Preparing to unpack .../archives/usrmerge_25_all.deb ...
+Unpacking usrmerge (25) ...
+Setting up usrmerge (25) ...
+The system has been successfully converted.
I: Building the package
-I: Running cd /build/octave-geometry-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/octave-geometry-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 octave-geometry
dpkg-buildpackage: info: source version 4.0.0-2
dpkg-buildpackage: info: source distribution unstable
@@ -2579,10 +2632,10 @@
/usr/bin/mkoctfile --verbose -c martinez.cpp -o martinez.o
/usr/bin/mkoctfile --verbose -c polygon.cpp -o polygon.o
/usr/bin/mkoctfile --verbose -c utilities.cpp -o utilities.o
-g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -I. -DMEX_DEBUG clipper.cpp -o /tmp/oct-DtWTfP.o
+g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security polygon.cpp -o polygon.o
g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security connector.cpp -o connector.o
+g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -I. -DMEX_DEBUG clipper.cpp -o /tmp/oct-KBr1Hv.o
g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security martinez.cpp -o martinez.o
-g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security polygon.cpp -o polygon.o
g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security utilities.cpp -o utilities.o
clipper.cpp: In function 'void ClipperLib::InitEdge(ClipperLib::TEdge*, ClipperLib::TEdge*, ClipperLib::TEdge*, const ClipperLib::IntPoint&)':
clipper.cpp:750:34: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct ClipperLib::TEdge'; use assignment or value-initialization instead [-Wclass-memaccess]
@@ -2592,10 +2645,10 @@
95 | struct TEdge {
| ^~~~~
/usr/bin/mkoctfile --verbose connector.o martinez.o polygon.o utilities.o polybool_mrf.cc -o polybool_mrf.oct
-g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security polybool_mrf.cc -o /tmp/oct-1CO8JF.o
-g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -I. -DMEX_DEBUG mexclipper.cpp -o /tmp/oct-esQcDN.o
-g++ -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -o polybool_mrf.oct connector.o martinez.o polygon.o utilities.o /tmp/oct-1CO8JF.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/i386-linux-gnu -Wl,-z,relro
-g++ -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -o clipper.mex /tmp/oct-DtWTfP.o /tmp/oct-esQcDN.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/i386-linux-gnu -Wl,-z,relro
+g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security polybool_mrf.cc -o /tmp/oct-Pc2OJl.o
+g++ -c -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -I. -DMEX_DEBUG mexclipper.cpp -o /tmp/oct-IO3wBv.o
+g++ -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -o polybool_mrf.oct connector.o martinez.o polygon.o utilities.o /tmp/oct-Pc2OJl.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/i386-linux-gnu -Wl,-z,relro
+g++ -I/usr/include/octave-6.2.0/octave/.. -I/usr/include/octave-6.2.0/octave -pthread -fopenmp -mieee-fp -g -O2 -fdebug-prefix-map=/build/octave-geometry-4.0.0=. -fstack-protector-strong -Wformat -Werror=format-security -g -Wall -o clipper.mex /tmp/oct-KBr1Hv.o /tmp/oct-IO3wBv.o -shared -Wl,-Bsymbolic -Wl,-z,relro -L/usr/lib/i386-linux-gnu -Wl,-z,relro
make[1]: Leaving directory '/build/octave-geometry-4.0.0/src'
copyfile /build/octave-geometry-4.0.0/./src/polybool_mrf.oct /build/octave-geometry-4.0.0/./src/clipper.mex /build/octave-geometry-4.0.0/./inst/i686-pc-linux-gnu-api-v55
For information about changes from previous versions of the geometry package, run 'news geometry'.
@@ -2607,7 +2660,7 @@
load_packages_and_dependencies at line 56 column 5
load_packages at line 53 column 3
pkg at line 588 column 7
- /tmp/tmp.HOHc4nhbdV at line 9 column 9
+ /tmp/tmp.iHVvIdC35P at line 9 column 9
warning: Permanently renaming verLessThan.m since it is already present
warning: called from
@@ -2616,71 +2669,53 @@
load_packages_and_dependencies at line 56 column 5
load_packages at line 53 column 3
pkg at line 588 column 7
- /tmp/tmp.HOHc4nhbdV at line 9 column 9
-
-[inst/simplifyPolygon_geometry.m]
->>>>> /build/octave-geometry-4.0.0/inst/simplifyPolygon_geometry.m
-***** test
- P = [0 0; 1 0; 0 1];
- P2 = [0 0; 0.1 0; 0.2 0; 0.25 0; 1 0; 0 1; 0 0.7; 0 0.6; 0 0.3; 0 0.1];
- assert(simplifyPolygon_geometry (P2),P,min(P2(:))*eps)
-***** demo
-
- P = [0 0; 1 0; 0 1];
- P2 = [0 0; 0.1 0; 0.2 0; 0.25 0; 1 0; 0 1; 0 0.7; 0 0.6; 0 0.3; 0 0.1];
- Pr = simplifyPolygon_geometry (P2);
+ /tmp/tmp.iHVvIdC35P at line 9 column 9
- cla
- drawPolygon(P,'or;Reference;');
- hold on
- drawPolygon(P2,'x-b;Redundant;');
- drawPolygon(Pr,'*g;Simplified;');
- hold off
-
- # --------------------------------------------------------------------------
- # The two polygons describe the same figure, a triangle. Extra points are
- # removed from the redundant one.
-1 test, 1 passed, 0 known failure, 0 skipped
-[inst/ispolycw.m]
->>>>> /build/octave-geometry-4.0.0/inst/ispolycw.m
-***** shared pccw, pcw, ph
- pccw = pcw = [0 0; 1 0; 1 1; 0 1];
- pcw([2 4],:) = pcw([4 2], :);
- ph = [pccw; nan(1,2); 0.5*pcw+[0.25 0.25]];
-***** assert (~ispolycw (pccw));
-***** assert (ispolycw (pcw));
-***** assert (ispolycw ({pccw;pcw}), [false;true]);
-***** assert (ispolycw ({pccw,pcw}), [false,true]);
-***** assert (ispolycw(ph),[false;true]);
-***** test
- phcw = [pcw; nan(1,2); 0.5*pccw+[0.25 0.25]];
- assert (ispolycw(phcw),[true;false]);
-***** test
- x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
- assert(ispolycw(x,y),[true;false]);
-7 tests, 7 passed, 0 known failure, 0 skipped
[inst/polygon2shape.m]
>>>>> /build/octave-geometry-4.0.0/inst/polygon2shape.m
***** test
pp = [0 0; 1 0; 1 1; 0 1];
s = polygon2shape (pp);
1 test, 1 passed, 0 known failure, 0 skipped
-[inst/poly2ccw.m]
->>>>> /build/octave-geometry-4.0.0/inst/poly2ccw.m
+[inst/orientPolygon.m]
+>>>>> /build/octave-geometry-4.0.0/inst/orientPolygon.m
+***** shared pccw, pcw, pxccw, pyccw, pxnan, pynan, pnan
+ pccw = [0 0; 1 0; 1 1; 0 1];
+ pcw = reversePolygon (pccw);
+ pxccw = pccw(:,1);
+ pyccw = pccw(:,2);
+ pxnan = [2; 2; 0; 0; NaN; 0; 0; 2];
+ pynan = [0; 2; 2; 0; NaN; 0; 3; 0];
+ pnan = [pxnan pynan];
***** test
- x = [0 0 1 1 0]; y = [0 1 1 0 0];
- [xccw,yccw] = poly2ccw(x,y);
- xexp = [0; 1; 1; 0; 0]; yexp = [0; 0; 1; 1; 0];
- assert (xccw,xexp);
- assert (yccw,yexp);
+ x = orientPolygon (pccw,[],"ccw");
+ assert (x, pccw);
***** test
- x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
- [xccw,yccw]=poly2ccw(x,y);
- xexp=[0; 2; 2; 0; NaN; 0; 2; 0];
- yexp=[0; 0; 2; 2; NaN; 0; 0; 3];
- assert (xccw,xexp);
- assert (yccw,yexp);
-2 tests, 2 passed, 0 known failure, 0 skipped
+ x = orientPolygon (pccw,[],"cw");
+ assert (x, pcw);
+***** test
+ x = orientPolygon (pcw,[],"ccw");
+ assert (x, pccw);
+***** test
+ x = orientPolygon (pcw,[],"cw");
+ assert (x, pcw);
+***** test
+ x = orientPolygon (pnan,[],"cw");
+ y = splitPolygons (pnan);
+ y = joinPolygons ({reversePolygon(y{1}); y{2}});
+ assert (x, y);
+***** test
+ x = orientPolygon (pnan,[],"ccw");
+ y = splitPolygons (pnan);
+ y = joinPolygons ({y{1}; reversePolygon(y{2})});
+ assert (x, y);
+***** test
+ [x y] = orientPolygon (pxccw,pyccw,"ccw");
+ assert ([x y], pccw);
+***** test
+ [x y] = orientPolygon (pxccw,pyccw,"cw");
+ assert ([x y], pcw);
+8 tests, 8 passed, 0 known failure, 0 skipped
[inst/shapeArea.m]
>>>>> /build/octave-geometry-4.0.0/inst/shapeArea.m
***** demo # non-convex piece-wise polynomial shape
@@ -2711,31 +2746,6 @@
A = shapeArea (circle);
assert (pi*5^2, A, 5e-2);
2 tests, 2 passed, 0 known failure, 0 skipped
-[inst/isPolygonCCW.m]
->>>>> /build/octave-geometry-4.0.0/inst/isPolygonCCW.m
-***** shared pccw, pcw, pxccw, pyccw, pxnan, pynan, pnan
- pccw = [0 0; 1 0; 1 1; 0 1];
- pcw = reversePolygon (pccw);
- pxccw = pccw(:,1);
- pyccw = pccw(:,2);
- pxnan = [2; 2; 0; 0; NaN; 0; 0; 2];
- pynan = [0; 2; 2; 0; NaN; 0; 3; 0];
- pnan = [pxnan pynan];
-***** assert (isPolygonCCW (pccw));
-***** assert (isPolygonCCW (pxccw, pyccw));
-***** assert (isPolygonCCW ({pxccw, pxccw}, {pyccw, pyccw}), {true, true});
-***** assert (~isPolygonCCW (pcw));
-***** assert (isPolygonCCW ({pccw;pcw}), {true;false});
-***** assert (isPolygonCCW(pnan), [true; false]);
-***** assert (isPolygonCCW({pnan,pcw}),{[true;false], false});
-***** assert (isPolygonCCW (pccw,[],"clipper"));
-***** assert (isPolygonCCW (pxccw, pyccw,"clipper"));
-***** assert (isPolygonCCW ({pxccw, pxccw}, {pyccw, pyccw},"clipper"), {true, true});
-***** assert (~isPolygonCCW (pcw,[],"clipper"));
-***** assert (isPolygonCCW ({pccw;pcw},[],"clipper"), {true;false});
-***** xtest assert (isPolygonCCW(pnan,[],"clipper"), [true; false]);
-***** xtest assert (isPolygonCCW({pnan,pcw},[],"clipper"),{[true; false], false});
-14 tests, 14 passed, 0 known failure, 0 skipped
[inst/clipPolygon.m]
>>>>> /build/octave-geometry-4.0.0/inst/clipPolygon.m
***** error clipPolygon([],[],[],'abracadabra')
@@ -2787,187 +2797,6 @@
axis off
endfor
2 tests, 2 passed, 0 known failure, 0 skipped
-[inst/orientPolygon.m]
->>>>> /build/octave-geometry-4.0.0/inst/orientPolygon.m
-***** shared pccw, pcw, pxccw, pyccw, pxnan, pynan, pnan
- pccw = [0 0; 1 0; 1 1; 0 1];
- pcw = reversePolygon (pccw);
- pxccw = pccw(:,1);
- pyccw = pccw(:,2);
- pxnan = [2; 2; 0; 0; NaN; 0; 0; 2];
- pynan = [0; 2; 2; 0; NaN; 0; 3; 0];
- pnan = [pxnan pynan];
-***** test
- x = orientPolygon (pccw,[],"ccw");
- assert (x, pccw);
-***** test
- x = orientPolygon (pccw,[],"cw");
- assert (x, pcw);
-***** test
- x = orientPolygon (pcw,[],"ccw");
- assert (x, pccw);
-***** test
- x = orientPolygon (pcw,[],"cw");
- assert (x, pcw);
-***** test
- x = orientPolygon (pnan,[],"cw");
- y = splitPolygons (pnan);
- y = joinPolygons ({reversePolygon(y{1}); y{2}});
- assert (x, y);
-***** test
- x = orientPolygon (pnan,[],"ccw");
- y = splitPolygons (pnan);
- y = joinPolygons ({y{1}; reversePolygon(y{2})});
- assert (x, y);
-***** test
- [x y] = orientPolygon (pxccw,pyccw,"ccw");
- assert ([x y], pccw);
-***** test
- [x y] = orientPolygon (pxccw,pyccw,"cw");
- assert ([x y], pcw);
-8 tests, 8 passed, 0 known failure, 0 skipped
-[inst/ispolyccw.m]
->>>>> /build/octave-geometry-4.0.0/inst/ispolyccw.m
-***** shared pccw, pcw, ph
- pccw = pcw = [0 0; 1 0; 1 1; 0 1];
- pcw([2 4],:) = pcw([4 2], :);
- ph = [pccw; nan(1,2); 0.5*pcw+[0.25 0.25]];
-***** assert (ispolyccw (pccw));
-***** assert (~ispolyccw (pcw));
-***** assert (ispolyccw ({pccw;pcw}), {true false});
-***** assert (ispolyccw(ph),[true;false]);
-***** test
- phcw = [pcw; nan(1,2); 0.5*pccw+[0.25 0.25]];
- assert (ispolyccw(phcw),[false;true]);
-***** test
- x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
- assert(ispolyccw(x,y),[false;true]);
-6 tests, 6 passed, 0 known failure, 0 skipped
-[inst/polybool.m]
->>>>> /build/octave-geometry-4.0.0/inst/polybool.m
-***** shared ipol, cpol, ix, iy, cx, cy, xi, yi, xc, yc
- ipol = [0 0; 3 0; 3 3; 0 3; 0 0];
- cpol = [2, 1; 5, 1; 5, 4; 2, 4; 2, 1];
- ix = {ipol(:, 1)'};
- iy = {ipol(:, 2)'};
- cx = {cpol(:, 1)'};
- cy = {cpol(:, 2)'};
- xi = {ipol(:, 1)};
- yi = {ipol(:, 2)};
- xc = {cpol(:, 1)};
- yc = {cpol(:, 2)};
-***** test
- opol = polybool (0, ipol, cpol);
- assert (size (opol), [7, 2]);
- assert (polygonArea (opol), 7);
-***** test
- [ox, oy] = polybool (0, ix, iy, cx, cy);
- opol = [ox{1}', oy{1}'];
- assert (size (opol), [7, 2]);
- assert (polygonArea (opol), 7);
-***** test
- [ox, oy] = polybool (0, xi, yi, xc, yc);
- opol = [ox{1}, oy{1}];
- assert (size (opol), [7, 2]);
- assert (polygonArea (opol), 7);
-***** test
- opol = polybool (1, cpol, ipol);
- assert (size (opol), [5, 2]);
- assert (polygonArea (opol), 2);
-***** test
- [ox, oy] = polybool (1, ix, iy, cx, cy);
- opol = [ox{1}', oy{1}'];
- assert (size (opol), [5, 2]);
- assert (polygonArea (opol), 2);
-***** test
- opol = polybool (2, cpol, ipol);
- assert (size (opol), [15, 2]);
- assert (polygonArea (opol), 14);
-***** test
- [ox, oy] = polybool (2, ix, iy, cx, cy);
- opol = [ox{1}', oy{1}'];
- assert (size (opol), [15, 2]);
- assert (polygonArea (opol), 14);
-***** test
- opol = polybool (3, cpol, ipol);
- assert (size (opol), [9, 2]);
- assert (polygonArea (opol), 16);
-***** test
- [ox, oy] = polybool (3, ix, iy, cx, cy);
- opol = [ox{1}', oy{1}'];
- assert (size (opol), [9, 2]);
- assert (polygonArea (opol), 16);
-***** error polybool ("a", 1, 2, 3 ,4);
-***** error polybool (-1, 1, 2);
-***** error polybool (-1, [1 1; 2 2; 3 3], [2 2; 3 3; 4 4]);
-***** error polybool (1, [0 0 0; 2 2 2; 5 5 5], [1 1 1; 3 3 3]);
-***** error polybool (1, [0 0 0; 2 2 2; 5 5 5], [1 1 1; 3 3 3; 6 6 7]);
-***** error polybool (1, {1, 2}, [1, 2]);
-***** error polybool (1, {[1, 2, 3]}, {[1, 2, 3, 4]});
-***** error polybool (1, {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 4, 5]});
-***** error polybool ('z', {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 4]});
-***** error polybool (1, [1 1; 2 2; 3 3], [2 2; 3 3; 4 4], "abc")
-19 tests, 19 passed, 0 known failure, 0 skipped
-[inst/polyjoin.m]
->>>>> /build/octave-geometry-4.0.0/inst/polyjoin.m
-***** demo
- x = {[1 2]'; [3 4]'}
- y = {[10 20]'; [30 40]'}
- [vecx, vecy] = polyjoin (x, y)
-***** test
- x = {[1 2]'; [3 4]'}; y = {[10 20]'; [30 40]'};
- [vecx, vecy] = polyjoin (x, y);
- assert (vecx, [1; 2; NaN; 3; 4]);
- assert (vecy, [10; 20; NaN; 30; 40]);
-***** test
- x = {[1;2]; [3;4]; [3]}; y = {[10;20]; [30;40]; [10]};
- [vecx, vecy] = polyjoin (x, y);
- assert (vecx, [1; 2; NaN; 3; 4; NaN; 3]);
- assert (vecy, [10; 20; NaN; 30; 40; NaN; 10]);
-***** test
- x = {[1 2 3]'; 4; [5 6 7 8 NaN 9]'};
- y = {[9 8 7]'; 6; [5 4 3 2 NaN 1]'};
- [vecx, vecy] = polyjoin (x, y);
- assert (vecx, [1; 2; 3; NaN; 4; NaN; 5; 6; 7; 8; NaN; 9]);
- assert (vecy, [9; 8; 7; NaN; 6; NaN; 5; 4; 3; 2; NaN; 1]);
-***** test
- xyi = {[0 0; 0 10; 10, 10; 10, 0; 0, 0]; [1 5; 2 5; 2 6; 1 6; 1 5]};
- xyo = polyjoin (xyi);
- assert (polyjoin (xyi), [0 0; 0 10; 10 10; 10 0; 0 0; NaN, NaN; 1 5; 2 5; 2 6; 1 6; 1 5], eps);
-***** test
- xyi = {[0 0 1; 0 10 2; 10, 10 3; 10, 0 2; 0, 0 1]; [1 5 1.5; 2 5 2; 2 6 2.5; 1 6 2; 1 5 1.5]};
- xyo = polyjoin (xyi);
- assert (polyjoin (xyi), [0 0 1; 0 10 2; 10 10 3; 10 0 2; 0 0 1; NaN, NaN NaN; 1 5 1.5; 2 5 2; 2 6 2.5; 1 6 2; 1 5 1.5], eps);
-***** test
- assert (polyjoin ({[2, 3]}), [2, 3], eps);
-***** error polyjoin (1);
-***** error polyjoin ({2});
-***** error polyjoin ({2, 3});
-***** error polyjoin ({1; 2}, [3 4]);
-***** warning polyjoin ({1; 2}, {3 4});
-11 tests, 11 passed, 0 known failure, 0 skipped
-[inst/@svg/svg.m]
->>>>> /build/octave-geometry-4.0.0/inst/@svg/svg.m
-***** test
- dc = svg('drawing5.svg');
- dc.getpath();
- dc.pathid();
- dc.getpath('path3756');
-
- dc = svg('drawing.svg');
- ids = dc.pathid();
- dc.getpath({ids{[1 3]}});
-***** xtest
- dc = svg('drawing6.svg');
- ids = dc.pathid();
- P = dc.path2polygon(ids{1});
-!!!!! known failure
-cat: dimension mismatch
-***** xtest
- dc = svg('drawing6.svg');
- dc.plot();
- dc.plot('color','r','linewidth',2);
-3 tests, 2 passed, 1 known failure, 0 skipped
[inst/plotShape.m]
>>>>> /build/octave-geometry-4.0.0/inst/plotShape.m
***** demo
@@ -3000,18 +2829,99 @@
***** test
plotShape (s,'-om', 'tol', 1e-4, 'tol', 1e-2);close;
7 tests, 7 passed, 0 known failure, 0 skipped
-[inst/joinPolygons.m]
->>>>> /build/octave-geometry-4.0.0/inst/joinPolygons.m
+[inst/isPolygonCCW.m]
+>>>>> /build/octave-geometry-4.0.0/inst/isPolygonCCW.m
+***** shared pccw, pcw, pxccw, pyccw, pxnan, pynan, pnan
+ pccw = [0 0; 1 0; 1 1; 0 1];
+ pcw = reversePolygon (pccw);
+ pxccw = pccw(:,1);
+ pyccw = pccw(:,2);
+ pxnan = [2; 2; 0; 0; NaN; 0; 0; 2];
+ pynan = [0; 2; 2; 0; NaN; 0; 3; 0];
+ pnan = [pxnan pynan];
+***** assert (isPolygonCCW (pccw));
+***** assert (isPolygonCCW (pxccw, pyccw));
+***** assert (isPolygonCCW ({pxccw, pxccw}, {pyccw, pyccw}), {true, true});
+***** assert (~isPolygonCCW (pcw));
+***** assert (isPolygonCCW ({pccw;pcw}), {true;false});
+***** assert (isPolygonCCW(pnan), [true; false]);
+***** assert (isPolygonCCW({pnan,pcw}),{[true;false], false});
+***** assert (isPolygonCCW (pccw,[],"clipper"));
+***** assert (isPolygonCCW (pxccw, pyccw,"clipper"));
+***** assert (isPolygonCCW ({pxccw, pxccw}, {pyccw, pyccw},"clipper"), {true, true});
+***** assert (~isPolygonCCW (pcw,[],"clipper"));
+***** assert (isPolygonCCW ({pccw;pcw},[],"clipper"), {true;false});
+***** xtest assert (isPolygonCCW(pnan,[],"clipper"), [true; false]);
+***** xtest assert (isPolygonCCW({pnan,pcw},[],"clipper"),{[true; false], false});
+14 tests, 14 passed, 0 known failure, 0 skipped
+[inst/poly2cw.m]
+>>>>> /build/octave-geometry-4.0.0/inst/poly2cw.m
***** test
- assert (joinPolygons ({1,2}), [1 2]);
+ x = [0; 1; 1; 0; 0]; y = [0; 0; 1; 1; 0];
+ [xcw,ycw] = poly2cw(x,y);
+ xexp = [0; 0; 1; 1; 0]; yexp = [0; 1; 1; 0; 0];
+ assert (xcw,xexp);
+ assert (ycw,yexp);
***** test
- assert (joinPolygons ({}), []);
+ x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
+ [xcw,ycw]=poly2cw(x,y);
+ xexp=[0; 0; 2; 2; NaN; 0; 0; 2];
+ yexp=[0; 2; 2; 0; NaN; 0; 3; 0];
+ assert (xcw,xexp);
+ assert (ycw,yexp);
+2 tests, 2 passed, 0 known failure, 0 skipped
+[inst/polysplit.m]
+>>>>> /build/octave-geometry-4.0.0/inst/polysplit.m
***** test
- XY = joinPolygons ({[1 6; 2 5; 3 4]; [4 3; 5 2; 6 1]});
- assert (XY, [1 6; 2 5; 3 4; NaN NaN; 4 3; 5 2; 6 1]);
-***** error joinPolygons ([1 2 NaN 3 4], [56 NaN 78])
-***** error joinPolygons ({[1,0], [0,2]});
-5 tests, 5 passed, 0 known failure, 0 skipped
+ x=[1 ;2 ;NaN ;3 ;4]; y=[4 ;3 ;NaN ;2 ;1];
+ [cellx,celly]=polysplit(x,y);
+ assert (cellx, {[1; 2];[3; 4]});
+ assert (celly, {[4; 3];[2; 1]});
+***** test
+ x=[1 2 NaN 3 4]; y=[4 3 NaN 2 1];
+ [cellx,celly]=polysplit(x,y);
+ assert (cellx, {[1 2];[3 4]});
+ assert (celly, {[4 3];[2 1]});
+***** test
+ x=[0 ;2 ;2 ;0 ;0 ;NaN ;NaN]; y=[0 ;0 ;3 ;3 ;0 ;NaN ;NaN];
+ [cellx,celly]=polysplit(x,y);
+ assert (cellx, {[0 ;2 ;2 ;0 ;0]});
+ assert (celly, {[0 ;0 ;3 ;3 ;0]});
+3 tests, 3 passed, 0 known failure, 0 skipped
+[inst/ispolycw.m]
+>>>>> /build/octave-geometry-4.0.0/inst/ispolycw.m
+***** shared pccw, pcw, ph
+ pccw = pcw = [0 0; 1 0; 1 1; 0 1];
+ pcw([2 4],:) = pcw([4 2], :);
+ ph = [pccw; nan(1,2); 0.5*pcw+[0.25 0.25]];
+***** assert (~ispolycw (pccw));
+***** assert (ispolycw (pcw));
+***** assert (ispolycw ({pccw;pcw}), [false;true]);
+***** assert (ispolycw ({pccw,pcw}), [false,true]);
+***** assert (ispolycw(ph),[false;true]);
+***** test
+ phcw = [pcw; nan(1,2); 0.5*pccw+[0.25 0.25]];
+ assert (ispolycw(phcw),[true;false]);
+***** test
+ x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
+ assert(ispolycw(x,y),[true;false]);
+7 tests, 7 passed, 0 known failure, 0 skipped
+[inst/poly2ccw.m]
+>>>>> /build/octave-geometry-4.0.0/inst/poly2ccw.m
+***** test
+ x = [0 0 1 1 0]; y = [0 1 1 0 0];
+ [xccw,yccw] = poly2ccw(x,y);
+ xexp = [0; 1; 1; 0; 0]; yexp = [0; 0; 1; 1; 0];
+ assert (xccw,xexp);
+ assert (yccw,yexp);
+***** test
+ x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
+ [xccw,yccw]=poly2ccw(x,y);
+ xexp=[0; 2; 2; 0; NaN; 0; 2; 0];
+ yexp=[0; 0; 2; 2; NaN; 0; 0; 3];
+ assert (xccw,xexp);
+ assert (yccw,yexp);
+2 tests, 2 passed, 0 known failure, 0 skipped
[inst/clipPolygon_mrf.m]
>>>>> /build/octave-geometry-4.0.0/inst/clipPolygon_mrf.m
***** test
@@ -3151,40 +3061,160 @@
axis off
title "7. Clip - sub";
4 tests, 4 passed, 0 known failure, 0 skipped
-[inst/polysplit.m]
->>>>> /build/octave-geometry-4.0.0/inst/polysplit.m
+[inst/ispolyccw.m]
+>>>>> /build/octave-geometry-4.0.0/inst/ispolyccw.m
+***** shared pccw, pcw, ph
+ pccw = pcw = [0 0; 1 0; 1 1; 0 1];
+ pcw([2 4],:) = pcw([4 2], :);
+ ph = [pccw; nan(1,2); 0.5*pcw+[0.25 0.25]];
+***** assert (ispolyccw (pccw));
+***** assert (~ispolyccw (pcw));
+***** assert (ispolyccw ({pccw;pcw}), {true false});
+***** assert (ispolyccw(ph),[true;false]);
***** test
- x=[1 ;2 ;NaN ;3 ;4]; y=[4 ;3 ;NaN ;2 ;1];
- [cellx,celly]=polysplit(x,y);
- assert (cellx, {[1; 2];[3; 4]});
- assert (celly, {[4; 3];[2; 1]});
+ phcw = [pcw; nan(1,2); 0.5*pccw+[0.25 0.25]];
+ assert (ispolyccw(phcw),[false;true]);
***** test
- x=[1 2 NaN 3 4]; y=[4 3 NaN 2 1];
- [cellx,celly]=polysplit(x,y);
- assert (cellx, {[1 2];[3 4]});
- assert (celly, {[4 3];[2 1]});
+ x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
+ assert(ispolyccw(x,y),[false;true]);
+6 tests, 6 passed, 0 known failure, 0 skipped
+[inst/polybool.m]
+>>>>> /build/octave-geometry-4.0.0/inst/polybool.m
+***** shared ipol, cpol, ix, iy, cx, cy, xi, yi, xc, yc
+ ipol = [0 0; 3 0; 3 3; 0 3; 0 0];
+ cpol = [2, 1; 5, 1; 5, 4; 2, 4; 2, 1];
+ ix = {ipol(:, 1)'};
+ iy = {ipol(:, 2)'};
+ cx = {cpol(:, 1)'};
+ cy = {cpol(:, 2)'};
+ xi = {ipol(:, 1)};
+ yi = {ipol(:, 2)};
+ xc = {cpol(:, 1)};
+ yc = {cpol(:, 2)};
***** test
- x=[0 ;2 ;2 ;0 ;0 ;NaN ;NaN]; y=[0 ;0 ;3 ;3 ;0 ;NaN ;NaN];
- [cellx,celly]=polysplit(x,y);
- assert (cellx, {[0 ;2 ;2 ;0 ;0]});
- assert (celly, {[0 ;0 ;3 ;3 ;0]});
-3 tests, 3 passed, 0 known failure, 0 skipped
-[inst/poly2cw.m]
->>>>> /build/octave-geometry-4.0.0/inst/poly2cw.m
+ opol = polybool (0, ipol, cpol);
+ assert (size (opol), [7, 2]);
+ assert (polygonArea (opol), 7);
***** test
- x = [0; 1; 1; 0; 0]; y = [0; 0; 1; 1; 0];
- [xcw,ycw] = poly2cw(x,y);
- xexp = [0; 0; 1; 1; 0]; yexp = [0; 1; 1; 0; 0];
- assert (xcw,xexp);
- assert (ycw,yexp);
+ [ox, oy] = polybool (0, ix, iy, cx, cy);
+ opol = [ox{1}', oy{1}'];
+ assert (size (opol), [7, 2]);
+ assert (polygonArea (opol), 7);
***** test
- x=[0 0 2 2 NaN 0 2 0]; y=[0 2 2 0 NaN 0 0 3];
- [xcw,ycw]=poly2cw(x,y);
- xexp=[0; 0; 2; 2; NaN; 0; 0; 2];
- yexp=[0; 2; 2; 0; NaN; 0; 3; 0];
- assert (xcw,xexp);
- assert (ycw,yexp);
-2 tests, 2 passed, 0 known failure, 0 skipped
+ [ox, oy] = polybool (0, xi, yi, xc, yc);
+ opol = [ox{1}, oy{1}];
+ assert (size (opol), [7, 2]);
+ assert (polygonArea (opol), 7);
+***** test
+ opol = polybool (1, cpol, ipol);
+ assert (size (opol), [5, 2]);
+ assert (polygonArea (opol), 2);
+***** test
+ [ox, oy] = polybool (1, ix, iy, cx, cy);
+ opol = [ox{1}', oy{1}'];
+ assert (size (opol), [5, 2]);
+ assert (polygonArea (opol), 2);
+***** test
+ opol = polybool (2, cpol, ipol);
+ assert (size (opol), [15, 2]);
+ assert (polygonArea (opol), 14);
+***** test
+ [ox, oy] = polybool (2, ix, iy, cx, cy);
+ opol = [ox{1}', oy{1}'];
+ assert (size (opol), [15, 2]);
+ assert (polygonArea (opol), 14);
+***** test
+ opol = polybool (3, cpol, ipol);
+ assert (size (opol), [9, 2]);
+ assert (polygonArea (opol), 16);
+***** test
+ [ox, oy] = polybool (3, ix, iy, cx, cy);
+ opol = [ox{1}', oy{1}'];
+ assert (size (opol), [9, 2]);
+ assert (polygonArea (opol), 16);
+***** error polybool ("a", 1, 2, 3 ,4);
+***** error polybool (-1, 1, 2);
+***** error polybool (-1, [1 1; 2 2; 3 3], [2 2; 3 3; 4 4]);
+***** error polybool (1, [0 0 0; 2 2 2; 5 5 5], [1 1 1; 3 3 3]);
+***** error polybool (1, [0 0 0; 2 2 2; 5 5 5], [1 1 1; 3 3 3; 6 6 7]);
+***** error polybool (1, {1, 2}, [1, 2]);
+***** error polybool (1, {[1, 2, 3]}, {[1, 2, 3, 4]});
+***** error polybool (1, {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 4, 5]});
+***** error polybool ('z', {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 3]}, {[1, 2, 4]});
+***** error polybool (1, [1 1; 2 2; 3 3], [2 2; 3 3; 4 4], "abc")
+19 tests, 19 passed, 0 known failure, 0 skipped
+[inst/@svg/svg.m]
+>>>>> /build/octave-geometry-4.0.0/inst/@svg/svg.m
+***** test
+ dc = svg('drawing5.svg');
+ dc.getpath();
+ dc.pathid();
+ dc.getpath('path3756');
+
+ dc = svg('drawing.svg');
+ ids = dc.pathid();
+ dc.getpath({ids{[1 3]}});
+***** xtest
+ dc = svg('drawing6.svg');
+ ids = dc.pathid();
+ P = dc.path2polygon(ids{1});
+!!!!! known failure
+cat: dimension mismatch
+***** xtest
+ dc = svg('drawing6.svg');
+ dc.plot();
+ dc.plot('color','r','linewidth',2);
+3 tests, 2 passed, 1 known failure, 0 skipped
+[inst/polyjoin.m]
+>>>>> /build/octave-geometry-4.0.0/inst/polyjoin.m
+***** demo
+ x = {[1 2]'; [3 4]'}
+ y = {[10 20]'; [30 40]'}
+ [vecx, vecy] = polyjoin (x, y)
+***** test
+ x = {[1 2]'; [3 4]'}; y = {[10 20]'; [30 40]'};
+ [vecx, vecy] = polyjoin (x, y);
+ assert (vecx, [1; 2; NaN; 3; 4]);
+ assert (vecy, [10; 20; NaN; 30; 40]);
+***** test
+ x = {[1;2]; [3;4]; [3]}; y = {[10;20]; [30;40]; [10]};
+ [vecx, vecy] = polyjoin (x, y);
+ assert (vecx, [1; 2; NaN; 3; 4; NaN; 3]);
+ assert (vecy, [10; 20; NaN; 30; 40; NaN; 10]);
+***** test
+ x = {[1 2 3]'; 4; [5 6 7 8 NaN 9]'};
+ y = {[9 8 7]'; 6; [5 4 3 2 NaN 1]'};
+ [vecx, vecy] = polyjoin (x, y);
+ assert (vecx, [1; 2; 3; NaN; 4; NaN; 5; 6; 7; 8; NaN; 9]);
+ assert (vecy, [9; 8; 7; NaN; 6; NaN; 5; 4; 3; 2; NaN; 1]);
+***** test
+ xyi = {[0 0; 0 10; 10, 10; 10, 0; 0, 0]; [1 5; 2 5; 2 6; 1 6; 1 5]};
+ xyo = polyjoin (xyi);
+ assert (polyjoin (xyi), [0 0; 0 10; 10 10; 10 0; 0 0; NaN, NaN; 1 5; 2 5; 2 6; 1 6; 1 5], eps);
+***** test
+ xyi = {[0 0 1; 0 10 2; 10, 10 3; 10, 0 2; 0, 0 1]; [1 5 1.5; 2 5 2; 2 6 2.5; 1 6 2; 1 5 1.5]};
+ xyo = polyjoin (xyi);
+ assert (polyjoin (xyi), [0 0 1; 0 10 2; 10 10 3; 10 0 2; 0 0 1; NaN, NaN NaN; 1 5 1.5; 2 5 2; 2 6 2.5; 1 6 2; 1 5 1.5], eps);
+***** test
+ assert (polyjoin ({[2, 3]}), [2, 3], eps);
+***** error polyjoin (1);
+***** error polyjoin ({2});
+***** error polyjoin ({2, 3});
+***** error polyjoin ({1; 2}, [3 4]);
+***** warning polyjoin ({1; 2}, {3 4});
+11 tests, 11 passed, 0 known failure, 0 skipped
+[inst/joinPolygons.m]
+>>>>> /build/octave-geometry-4.0.0/inst/joinPolygons.m
+***** test
+ assert (joinPolygons ({1,2}), [1 2]);
+***** test
+ assert (joinPolygons ({}), []);
+***** test
+ XY = joinPolygons ({[1 6; 2 5; 3 4]; [4 3; 5 2; 6 1]});
+ assert (XY, [1 6; 2 5; 3 4; NaN NaN; 4 3; 5 2; 6 1]);
+***** error joinPolygons ([1 2 NaN 3 4], [56 NaN 78])
+***** error joinPolygons ({[1,0], [0,2]});
+5 tests, 5 passed, 0 known failure, 0 skipped
[inst/shapeCentroid.m]
>>>>> /build/octave-geometry-4.0.0/inst/shapeCentroid.m
***** demo # non-convex bezier shape
@@ -3278,6 +3308,29 @@
vn = shapeCentroid (nshape)(:);
assert(vn,[0; 0],1e-2);
6 tests, 6 passed, 0 known failure, 0 skipped
+[inst/simplifyPolygon_geometry.m]
+>>>>> /build/octave-geometry-4.0.0/inst/simplifyPolygon_geometry.m
+***** test
+ P = [0 0; 1 0; 0 1];
+ P2 = [0 0; 0.1 0; 0.2 0; 0.25 0; 1 0; 0 1; 0 0.7; 0 0.6; 0 0.3; 0 0.1];
+ assert(simplifyPolygon_geometry (P2),P,min(P2(:))*eps)
+***** demo
+
+ P = [0 0; 1 0; 0 1];
+ P2 = [0 0; 0.1 0; 0.2 0; 0.25 0; 1 0; 0 1; 0 0.7; 0 0.6; 0 0.3; 0 0.1];
+ Pr = simplifyPolygon_geometry (P2);
+
+ cla
+ drawPolygon(P,'or;Reference;');
+ hold on
+ drawPolygon(P2,'x-b;Redundant;');
+ drawPolygon(Pr,'*g;Simplified;');
+ hold off
+
+ # --------------------------------------------------------------------------
+ # The two polygons describe the same figure, a triangle. Extra points are
+ # removed from the redundant one.
+1 test, 1 passed, 0 known failure, 0 skipped
Checking C++ files ...
Summary: 103 tests, 102 passed, 1 known failures, 0 skipped
dh_installdocs -O--buildsystem=octave
@@ -3310,20 +3363,21 @@
dpkg-gencontrol: warning: package octave-geometry: substitution variable ${octave:Upstream-Description} unused, but is defined
dh_md5sums -O--buildsystem=octave
dh_builddeb -O--buildsystem=octave
-dpkg-deb: building package 'octave-geometry' in '../octave-geometry_4.0.0-2_i386.deb'.
dpkg-deb: building package 'octave-geometry-dbgsym' in '../octave-geometry-dbgsym_4.0.0-2_i386.deb'.
+dpkg-deb: building package 'octave-geometry' in '../octave-geometry_4.0.0-2_i386.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../octave-geometry_4.0.0-2_i386.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
-I: copying local configuration
+I: user script /srv/workspace/pbuilder/6982/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/6982/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/41678 and its subdirectories
-I: Current time: Fri Jul 22 09:44:49 -12 2022
-I: pbuilder-time-stamp: 1658526289
+I: removing directory /srv/workspace/pbuilder/6982 and its subdirectories
+I: Current time: Sun Jun 20 05:30:13 +14 2021
+I: pbuilder-time-stamp: 1624116613