[package - main-powerpc64-default][math/xspread] Failed for xspread-3.1.1c_4 in stage

From: <pkg-fallout_at_FreeBSD.org>
Date: Thu, 20 May 2021 17:10:09 UTC
You are receiving this mail as a port that you maintain
is failing to build on the FreeBSD package build server.
Please investigate the failure and submit a PR to fix
build.

Maintainer:     ports@FreeBSD.org
Log URL:        http://pylon.nyi.freebsd.org/data/main-powerpc64-default/p7bfc2c072607_s8d2b4b2e7c/logs/xspread-3.1.1c_4.log
Build URL:      http://pylon.nyi.freebsd.org/build.html?mastername=main-powerpc64-default&build=p7bfc2c072607_s8d2b4b2e7c
Log:

=>> Building math/xspread
build started at Thu May 20 17:08:53 UTC 2021
port directory: /usr/ports/math/xspread
package name: xspread-3.1.1c_4
building for: FreeBSD main-powerpc64-default-job-11 14.0-CURRENT FreeBSD 14.0-CURRENT 1400013 powerpc
maintained by: ports@FreeBSD.org
Makefile ident: 
Poudriere version: 3.2.8-8-gaf08dbda
Host OSVERSION: 1400003
Jail OSVERSION: 1400013
Job Id: 11




!!! Jail is newer than host. (Jail: 1400013, Host: 1400003) !!!
!!! This is not supported. !!!
!!! Host kernel must be same or newer than jail. !!!
!!! Expect build failures. !!!



---Begin Environment---
SHELL=/bin/csh
OSVERSION=1400013
UNAME_v=FreeBSD 14.0-CURRENT 1400013
UNAME_r=14.0-CURRENT
BLOCKSIZE=K
MAIL=/var/mail/root
MM_CHARSET=UTF-8
LANG=C.UTF-8
STATUS=1
HOME=/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
LOCALBASE=/usr/local
USER=root
LIBEXECPREFIX=/usr/local/libexec/poudriere
POUDRIERE_VERSION=3.2.8-8-gaf08dbda
MASTERMNT=/usr/local/poudriere/data/.m/main-powerpc64-default/ref
POUDRIERE_BUILD_TYPE=bulk
PACKAGE_BUILDING=yes
SAVED_TERM=
PWD=/usr/local/poudriere/data/.m/main-powerpc64-default/ref/.p/pool
P_PORTS_FEATURES=FLAVORS SELECTED_OPTIONS
MASTERNAME=main-powerpc64-default
SCRIPTPREFIX=/usr/local/share/poudriere
OLDPWD=/usr/local/poudriere/data/.m/main-powerpc64-default/ref/.p
SCRIPTPATH=/usr/local/share/poudriere/bulk.sh
POUDRIEREPATH=/usr/local/bin/poudriere
---End Environment---

---Begin Poudriere Port Flags/Env---
PORT_FLAGS=
PKGENV=
FLAVOR=
DEPENDS_ARGS=
MAKE_ARGS=
---End Poudriere Port Flags/Env---

---Begin OPTIONS List---
===> The following configuration options are available for xspread-3.1.1c_4:
     DOCS=on: Build and/or install documentation
     X11=off: X11 (graphics) support
===> Use 'make config' to modify these settings
---End OPTIONS List---

--MAINTAINER--
ports@FreeBSD.org
--End MAINTAINER--

--CONFIGURE_ARGS--
--prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
ac_cv_header_X11_X_h=no XDG_DATA_HOME=/wrkdirs/usr/ports/math/xspread/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/math/xspread/work  HOME=/wrkdirs/usr/ports/math/xspread/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/math/xspread/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin SHELL=/bin/sh CONFIG_SHELL=/bin/sh CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=524288
--End CONFIGURE_ENV--

--MAKE_ENV--
XDG_DATA_HOME=/wrkdirs/usr/ports/math/xspread/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/math/xspread/work  HOME=/wrkdirs/usr/ports/math/xspread/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/math/xspread/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -fstack-protector-strong -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" -fstack-protector-strong " LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing  "  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444"
--End MAKE_ENV--

--PLIST_SUB--
PORTDOCS="" OSREL=14.0 PREFIX=%D LOCALBASE=/usr/local  RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/xspread"  EXAMPLESDIR="share/examples/xspread"  DATADIR="share/xspread"  WWWDIR="www/xspread"  ETCDIR="etc/xspread"
--End PLIST_SUB--

--SUB_LIST--
PREFIX=/usr/local LOCALBASE=/usr/local  DATADIR=/usr/local/share/xspread DOCSDIR=/usr/local/share/doc/xspread EXAMPLESDIR=/usr/local/share/examples/xspread  WWWDIR=/usr/local/www/xspread ETCDIR=/usr/local/etc/xspread
--End SUB_LIST--

---Begin make.conf---
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
PORTSDIR=/usr/ports
PACKAGES=/packages
DISTDIR=/distfiles
PACKAGE_BUILDING=yes
PACKAGE_BUILDING_FLAVORS=yes
#### /usr/local/etc/poudriere.d/make.conf ####
# XXX: We really need this but cannot use it while 'make checksum' does not
# try the next mirror on checksum failure.  It currently retries the same
# failed mirror and then fails rather then trying another.  It *does*
# try the next if the size is mismatched though.
#MASTER_SITE_FREEBSD=yes
# Build ALLOW_MAKE_JOBS_PACKAGES with 2 jobs
MAKE_JOBS_NUMBER=2
#### /usr/ports/Mk/Scripts/ports_env.sh ####
_CCVERSION_921dbbb2=FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) Target: powerpc64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin
_ALTCCVERSION_921dbbb2=none
_CXXINTERNAL_acaad9ca=FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) Target: powerpc64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin "/usr/bin/ld" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld-elf.so.1" "--enable-new-dtags" "-o" "a.out" "/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" "-L/usr/lib" "/dev/null" "-lc++" "-lm" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "/usr/lib/crtend.o" "/usr/lib/crtn.o"
CC_OUTPUT_921dbbb2_58173849=yes
CC_OUTPUT_921dbbb2_9bdba57c=yes
CC_OUTPUT_921dbbb2_6a4fe7f5=yes
CC_OUTPUT_921dbbb2_6bcac02b=yes
CC_OUTPUT_921dbbb2_67d20829=yes
CC_OUTPUT_921dbbb2_bfa62e83=yes
CC_OUTPUT_921dbbb2_f0b4d593=yes
CC_OUTPUT_921dbbb2_308abb44=yes
CC_OUTPUT_921dbbb2_f00456e5=yes
CC_OUTPUT_921dbbb2_65ad290d=yes
CC_OUTPUT_921dbbb2_f2776b26=yes
CC_OUTPUT_921dbbb2_b2657cc3=yes
CC_OUTPUT_921dbbb2_380987f7=yes
CC_OUTPUT_921dbbb2_160933ec=yes
CC_OUTPUT_921dbbb2_fb62803b=yes
_OBJC_CCVERSION_921dbbb2=FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe) Target: powerpc64-unknown-freebsd14.0 Thread model: posix InstalledDir: /usr/bin
_OBJC_ALTCCVERSION_921dbbb2=none
ARCH=powerpc64
PPC_ABI=ELFv2
OPSYS=FreeBSD
_OSRELEASE=14.0-CURRENT
OSREL=14.0
OSVERSION=1400013
PYTHONBASE=/usr/local
CONFIGURE_MAX_CMD_LEN=524288
HAVE_PORTS_ENV=1
#### Misc Poudriere ####
GID=0
UID=0
---End make.conf---
--Resource limits--
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  33554432
stack size              (kbytes, -s)  524288
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  89999
open files                      (-n)  1024
virtual mem size        (kbytes, -v)  unlimited
swap limit              (kbytes, -w)  unlimited
socket buffer size       (bytes, -b)  unlimited
pseudo-terminals                (-p)  unlimited
kqueues                         (-k)  unlimited
umtx shared locks               (-o)  unlimited
--End resource limits--
=======================<phase: check-sanity   >============================
===>   NOTICE:

The xspread port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port

===>  License GPLv2+ accepted by the user
===========================================================================
=======================<phase: pkg-depends    >============================
===>   xspread-3.1.1c_4 depends on file: /usr/local/sbin/pkg - not found
===>   Installing existing package /packages/All/pkg-1.16.3.txz
[main-powerpc64-default-job-11] Installing pkg-1.16.3...
[main-powerpc64-default-job-11] Extracting pkg-1.16.3: .......... done
===>   xspread-3.1.1c_4 depends on file: /usr/local/sbin/pkg - found
===>   Returning to build of xspread-3.1.1c_4
===========================================================================
=======================<phase: fetch-depends  >============================
===========================================================================
=======================<phase: fetch          >============================
===>   NOTICE:

The xspread port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port

===>  License GPLv2+ accepted by the user
===> Fetching all distfiles required by xspread-3.1.1c_4 for building
===========================================================================
<snip>
--- scXstuff.o ---
rm -f scXstuff.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  scXstuff.c
--- screen.o ---
rm -f screen.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  screen.c
screen.c:84:17: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register    row, col;
    ~~~~~~~~    ^
screen.c:84:22: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register    row, col;
    ~~~~~~~~         ^
screen.c:88:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register r;
    ~~~~~~~~ ^
screen.c:89:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register i;
    ~~~~~~~~ ^
screen.c:369:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
        register c = RESCOL;
        ~~~~~~~~ ^
screen.c:494:29: warning: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Wimplicit-function-declaration]
                        if (strlen(field) > fwidth[col]) {
                            ^
screen.c:494:29: note: include the header <string.h> or explicitly provide a declaration for 'strlen'
screen.c:875:4: warning: implicitly declaring library function 'strcat' with type 'char *(char *, const char *)' [-Wimplicit-function-declaration]
                        strcat(stringbuf, "|{");
                        ^
screen.c:875:4: note: include the header <string.h> or explicitly provide a declaration for 'strcat'
--- sc.o ---
10 warnings generated.
--- search.o ---
rm -f search.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  search.c
--- screen.o ---
7 warnings generated.
--- sort.o ---
rm -f sort.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  sort.c
--- search.o ---
search.c:354:9: warning: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Wimplicit-function-declaration]
    if (strcmp(p->label , search_label) == 0) 
        ^
search.c:354:9: note: include the header <string.h> or explicitly provide a declaration for 'strcmp'
--- sort.o ---
sort.c:255:23: warning: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Wimplicit-function-declaration]
                  if (strcmp(q->label, minmax) > 0) 
                      ^
sort.c:255:23: note: include the header <string.h> or explicitly provide a declaration for 'strcmp'
1 warning generated.
--- search.o ---
1 warning generated.
--- utils.o ---
rm -f utils.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  utils.c
--- version.o ---
rm -f version.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  version.c
--- vi.o ---
rm -f vi.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  vi.c
--- vmtbl.o ---
rm -f vmtbl.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  vmtbl.c
--- vi.o ---
vi.c:254:9: warning: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Wimplicit-function-declaration]
    if (strlen(line)+1 > undolen)
        ^
vi.c:254:9: note: include the header <string.h> or explicitly provide a declaration for 'strlen'
vi.c:259:12: warning: implicitly declaring library function 'strcpy' with type 'char *(char *, const char *)' [-Wimplicit-function-declaration]
    (void) strcpy(undo_line, line);
           ^
vi.c:259:12: note: include the header <string.h> or explicitly provide a declaration for 'strcpy'
vi.c:533:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
static del_end;
~~~~~~ ^
vi.c:687:20: warning: implicitly declaring library function 'strchr' with type 'char *(const char *, int)' [-Wimplicit-function-declaration]
        for ( look_here = strchr(look_here, last_search[0]);
                          ^
vi.c:687:20: note: include the header <string.h> or explicitly provide a declaration for 'strchr'
vi.c:691:10: warning: implicitly declaring library function 'strncmp' with type 'int (const char *, const char *, unsigned long)' [-Wimplicit-function-declaration]
            if (strncmp(look_here, last_search, strlen(last_search)) == 0)
                ^
vi.c:691:10: note: include the header <string.h> or explicitly provide a declaration for 'strncmp'
vi.c:871:2: warning: implicitly declaring library function 'strncpy' with type 'char *(char *, const char *, unsigned long)' [-Wimplicit-function-declaration]
        strncpy(s, buf, max_str_len);
        ^
vi.c:871:2: note: include the header <string.h> or explicitly provide a declaration for 'strncpy'
--- vmtbl.o ---
vmtbl.c:151:3: warning: implicitly declaring library function 'memset' with type 'void *(void *, int, unsigned long)' [-Wimplicit-function-declaration]
                MEMZERO(row_hidden+maxrows, (newrows-maxrows)*sizeof(char));
                ^
./sc.h:538:30: note: expanded from macro 'MEMZERO'
# define MEMZERO(dest, len)             memset((dest), 0, (unsigned int)(len));
                                        ^
vmtbl.c:151:3: note: include the header <string.h> or explicitly provide a declaration for 'memset'
./sc.h:538:30: note: expanded from macro 'MEMZERO'
# define MEMZERO(dest, len)             memset((dest), 0, (unsigned int)(len));
                                        ^
1 warning generated.
--- xmalloc.o ---
rm -f xmalloc.o
cc -I. -I. -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  xmalloc.c
--- pvmtbl.o ---
rm -f pvmtbl.c
ln -s vmtbl.c pvmtbl.c
cc -I. -I. -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -c -DPSC pvmtbl.c
pvmtbl.c:171:3: warning: implicitly declaring library function 'memset' with type 'void *(void *, int, unsigned long)' [-Wimplicit-function-declaration]
--- vi.o ---
6 warnings generated.
--- pvmtbl.o ---
                MEMZERO(fwidth+maxcols, (newcols-maxcols)*sizeof(int));
                ^
./sc.h:538:30: note: expanded from macro 'MEMZERO'
# define MEMZERO(dest, len)             memset((dest), 0, (unsigned int)(len));
                                        ^
pvmtbl.c:171:3: note: include the header <string.h> or explicitly provide a declaration for 'memset'
./sc.h:538:30: note: expanded from macro 'MEMZERO'
# define MEMZERO(dest, len)             memset((dest), 0, (unsigned int)(len));
                                        ^
1 warning generated.
--- putils.o ---
rm -f putils.c
ln -s utils.c putils.c
cc -I. -I. -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -c -DPSC putils.c
--- pvmtbl.o ---
rm -f pvmtbl.c
--- pxmalloc.o ---
rm -f pxmalloc.c
ln -s xmalloc.c pxmalloc.c
cc -I. -I. -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -c -DPSC pxmalloc.c
--- putils.o ---
putils.c:79:20: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
   fprintf(stderr, errstring);
                   ^~~~~~~~~
putils.c:79:20: note: treat the string as an argument to avoid this
   fprintf(stderr, errstring);
                   ^
                   "%s", 
putils.c:111:20: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
   fprintf(stderr, x);
                   ^
putils.c:111:20: note: treat the string as an argument to avoid this
   fprintf(stderr, x);
                   ^
                   "%s", 
2 warnings generated.
rm -f putils.c
--- pxmalloc.o ---
rm -f pxmalloc.c
--- lex.o ---
--- pxspread ---
cc -I. -I. -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -fstack-protector-strong  -o pxspread psc.c pvmtbl.o pxmalloc.o putils.o version.o  -ltermlib -lm  -lcurses
--- lex.o ---
cc -I. -I. -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -c lex.c
lex.c:133:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
        register tokenl;
        ~~~~~~~~ ^
lex.c:167:13: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
                        register i = 1;
                        ~~~~~~~~ ^
--- pxspread ---
psc.c:85:14: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register effr, effc;
    ~~~~~~~~ ^
psc.c:85:20: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register effr, effc;
    ~~~~~~~~       ^
psc.c:216:10: warning: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Wimplicit-function-declaration]
            i = strlen(token);
                ^
psc.c:216:10: note: include the header <string.h> or explicitly provide a declaration for 'strlen'
psc.c:354:15: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
    register  col;
    ~~~~~~~~  ^
--- lex.o ---
2 warnings generated.
--- xspread ---
--- pxspread ---
4 warnings generated.
--- xspread ---
rm -f xspread
cc -o xspread        cmds.o color.o crypt.o format.o graphic_main.o help.o interp.o  matrix.o plot_XY.o plot_bar.o plot_line.o plot_pie.o  plot_stk_bar.o range.o sc.o scXstuff.o screen.o search.o sort.o  utils.o version.o vi.o vmtbl.o xmalloc.o gram.o lex.o  -ltermlib -lm  -lcurses 
===========================================================================
=======================<phase: run-depends    >============================
===========================================================================
=======================<phase: stage          >============================
===>  Staging for xspread-3.1.1c_4
===>   Generating temporary packing list
install  -s -m 555 /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig/pxspread /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/bin/pxspread
install  -s -m 555 /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig/xspread /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/bin/xspread
install  -m 444 /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig/pxspread.man /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/man/man1/pxspread.1
install  -m 444 /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig/xspread.man /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/man/man1/xspread.1
install  -m 0644 /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig/README /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/share/doc/xspread
install  -m 0644 /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig/x/notes /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/share/doc/xspread
(cd /wrkdirs/usr/ports/math/xspread/work/xspread-3.1.1c.orig && /bin/sh -c '(/usr/bin/find -Ed $1 $3 | /usr/bin/cpio -dumpl $2 >/dev/null 2>&1) &&  /usr/bin/find -Ed $1 $3 \(   -type d -exec /bin/sh -c '\''cd '\''$2'\'' && chmod 755 "$@"'\'' . {} +  -o -type f -exec /bin/sh -c '\''cd '\''$2'\'' && chmod 0644 "$@"'\'' . {} + \)' COPYTREE_SHARE "doc documents sample_files tests" /wrkdirs/usr/ports/math/xspread/work/stage/usr/local/share/doc/xspread "! -name *.tmp")
*** Error code 1

Stop.
make: stopped in /usr/ports/math/xspread