jai 0.2-1
| Status: | SUCCESS |
|---|---|
| Last updated: | 2026-03-28 12:16 |
| Description: | Light-weight sandbox for AI agents |
| Upstream: | AUR |
Build Output
==> Making package: jai 0.2-1 (Sat Mar 28 12:16:00 2026)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Downloading jai-0.2.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
100 765.2k 100 765.2k 0 0 3.24M 0 0
100 765.2k 100 765.2k 0 0 3.24M 0 0
100 765.2k 100 765.2k 0 0 3.24M 0 0
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with b2sums...
jai-0.2.tar.gz ... Passed
==> Extracting sources...
-> Extracting jai-0.2.tar.gz with bsdtar
==> Starting build()...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether sleep supports fractional seconds... yes
checking filesystem timestamp resolution... 0.01
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/sbin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking xargs -n works... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
checking for pkg-config... /usr/sbin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for mount... yes
checking for libacl... yes
checking for bash... /usr/sbin/bash
configure: untrusted user: jai
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating tests/Makefile
config.status: creating jai.conf
config.status: creating tests/common.sh
config.status: creating tests/setup-setuid.sh
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing test-scripts commands
make all-recursive
make[1]: Entering directory '/builder/src/jai-0.2'
Making all in tests
make[2]: Entering directory '/builder/src/jai-0.2/tests'
chmod +x ./setup-setuid.sh
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make[2]: Entering directory '/builder/src/jai-0.2'
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT complete.o -MD -MP -MF .deps/complete.Tpo -c -o complete.o complete.cc
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT cred.o -MD -MP -MF .deps/cred.Tpo -c -o cred.o cred.cc
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT default_conf.o -MD -MP -MF .deps/default_conf.Tpo -c -o default_conf.o default_conf.cc
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT fs.o -MD -MP -MF .deps/fs.Tpo -c -o fs.o fs.cc
cred.cc: In member function ‘void Credentials::make_effective() const’:
cred.cc:12:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
12 | seteuid(0);
| ~~~~~~~^~~
cred.cc: In member function ‘void Credentials::make_real() const’:
cred.cc:25:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
25 | seteuid(0);
| ~~~~~~~^~~
In file included from fs.h:6,
from fs.cc:12:
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
41 | write(2, msg.c_str(), msg.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
fs.cc: In function ‘Fd ensure_dir(int, const std::filesystem::__cxx11::path&, mode_t, FollowLinks, bool)’:
fs.cc:227:13: warning: ignoring return value of ‘int fchown(int, __uid_t, __gid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
227 | fchown(*fd, -1, 0);
| ~~~~~~^~~~~~~~~~~~
fs.cc: In function ‘void make_whiteout(int, const std::filesystem::__cxx11::path&)’:
fs.cc:253:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
253 | seteuid(0);
| ~~~~~~~^~~
fs.cc:257:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
257 | seteuid(olduid);
| ~~~~~~~^~~~~~~~
mv -f .deps/cred.Tpo .deps/cred.Po
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT jai.o -MD -MP -MF .deps/jai.Tpo -c -o jai.o jai.cc
mv -f .deps/default_conf.Tpo .deps/default_conf.Po
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT options.o -MD -MP -MF .deps/options.Tpo -c -o options.o options.cc
mv -f .deps/fs.Tpo .deps/fs.Po
mv -f .deps/complete.Tpo .deps/complete.Po
mv -f .deps/options.Tpo .deps/options.Po
In file included from cred.h:5,
from jai.h:6,
from jai.cc:1:
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {const char* const&, const char* const&}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
41 | write(2, msg.c_str(), msg.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {const char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const char (&)[1], long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const char* const&}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[1], long unsigned int}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const char (&)[12], char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
jai.cc: In member function ‘void Config::exec(int, char**)’:
jai.cc:801:9: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
801 | read(*stop_me[0], &c, 1);
| ~~~~^~~~~~~~~~~~~~~~~~~~
jai.cc: In static member function ‘static void Config::pid1(Fd)’:
jai.cc:939:10: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
939 | write(*stop_me, &sig, 1);
| ~~~~~^~~~~~~~~~~~~~~~~~~
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
41 | write(2, msg.c_str(), msg.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
jai.cc: In lambda function:
jai.cc:1168:14: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
1168 | write(1, jai_defaults.data(), jai_defaults.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/jai.Tpo .deps/jai.Po
g++ -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai complete.o cred.o default_conf.o fs.o jai.o options.o -lmount -lacl
make[2]: Leaving directory '/builder/src/jai-0.2'
make[1]: Leaving directory '/builder/src/jai-0.2'
==> Starting check()...
Making check in tests
make[1]: Entering directory '/builder/src/jai-0.2/tests'
chmod +x ./setup-setuid.sh
make jai_test_probe jai_test_pty_driver options_test
make[2]: Entering directory '/builder/src/jai-0.2/tests'
depbase=`echo jai-test-probe.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT jai-test-probe.o -MD -MP -MF $depbase.Tpo -c -o jai-test-probe.o jai-test-probe.cc &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo jai-test-pty-driver.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT jai-test-pty-driver.o -MD -MP -MF $depbase.Tpo -c -o jai-test-pty-driver.o jai-test-pty-driver.cc &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo options_test.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT options_test.o -MD -MP -MF $depbase.Tpo -c -o options_test.o options_test.cc &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ../options.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT ../options.o -MD -MP -MF $depbase.Tpo -c -o ../options.o ../options.cc &&\
mv -f $depbase.Tpo $depbase.Po
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai_test_probe jai-test-probe.o
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai_test_pty_driver jai-test-pty-driver.o
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o options_test options_test.o ../options.o
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make check-TESTS
make[2]: Entering directory '/builder/src/jai-0.2/tests'
PASS: options_test
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: basic.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: casual-overlay.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: config-dir-hidden.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: config-precedence.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: home-cwd-guard.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: jail-files.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control-same-pgrp-stop.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control-sigtstp-fallback.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control-sigtstp-preserve.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: modes.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: mask.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: process-state.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: strict-home-grant.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: sudo-env.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: storage.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: storage-from-conf.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: teardown.sh
=======================
1 test passed
(18 tests were not run)
=======================
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Entering directory '/builder/src/jai-0.2'
g++ -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai complete.o cred.o default_conf.o fs.o jai.o options.o -lmount -lacl
make[1]: Leaving directory '/builder/src/jai-0.2'
==> Entering fakeroot environment...
==> Starting package()...
Making install in tests
make[1]: Entering directory '/builder/src/jai-0.2/tests'
chmod +x ./setup-setuid.sh
make[2]: Entering directory '/builder/src/jai-0.2/tests'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Entering directory '/builder/src/jai-0.2'
make[2]: Entering directory '/builder/src/jai-0.2'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/share/bash-completion/completions'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/share/man/man1'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/lib/sysusers.d'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/bin'
/usr/bin/install -c -m 644 bash-completion/jai '/builder/pkg/jai//usr/share/bash-completion/completions'
/usr/bin/install -c -m 644 jai.conf '/builder/pkg/jai//usr/lib/sysusers.d'
/usr/bin/install -c -m 644 jai.1 '/builder/pkg/jai//usr/share/man/man1'
make install-data-hook
/usr/bin/install -c jai '/builder/pkg/jai//usr/bin'
make[3]: Entering directory '/builder/src/jai-0.2'
make install-exec-hook
make[3]: Leaving directory '/builder/src/jai-0.2'
make[3]: Entering directory '/builder/src/jai-0.2'
chown root /builder/pkg/jai//usr/bin/jai
chmod 04511 /builder/pkg/jai//usr/bin/jai
make[3]: Leaving directory '/builder/src/jai-0.2'
make[2]: Leaving directory '/builder/src/jai-0.2'
make[1]: Leaving directory '/builder/src/jai-0.2'
==> Tidying install...
-> Removing libtool files...
-> Removing static library files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "jai"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: jai 0.2-1 (Sat Mar 28 12:16:20 2026)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Downloading jai-0.2.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
100 765.2k 100 765.2k 0 0 3.24M 0 0
100 765.2k 100 765.2k 0 0 3.24M 0 0
100 765.2k 100 765.2k 0 0 3.24M 0 0
==> WARNING: Skipping verification of source file PGP signatures.
==> Validating source files with b2sums...
jai-0.2.tar.gz ... Passed
==> Extracting sources...
-> Extracting jai-0.2.tar.gz with bsdtar
==> Starting build()...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether sleep supports fractional seconds... yes
checking filesystem timestamp resolution... 0.01
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/sbin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking xargs -n works... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
checking for pkg-config... /usr/sbin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for mount... yes
checking for libacl... yes
checking for bash... /usr/sbin/bash
configure: untrusted user: jai
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating tests/Makefile
config.status: creating jai.conf
config.status: creating tests/common.sh
config.status: creating tests/setup-setuid.sh
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing test-scripts commands
make all-recursive
make[1]: Entering directory '/builder/src/jai-0.2'
Making all in tests
make[2]: Entering directory '/builder/src/jai-0.2/tests'
chmod +x ./setup-setuid.sh
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make[2]: Entering directory '/builder/src/jai-0.2'
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT complete.o -MD -MP -MF .deps/complete.Tpo -c -o complete.o complete.cc
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT cred.o -MD -MP -MF .deps/cred.Tpo -c -o cred.o cred.cc
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT default_conf.o -MD -MP -MF .deps/default_conf.Tpo -c -o default_conf.o default_conf.cc
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT fs.o -MD -MP -MF .deps/fs.Tpo -c -o fs.o fs.cc
cred.cc: In member function ‘void Credentials::make_effective() const’:
cred.cc:12:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
12 | seteuid(0);
| ~~~~~~~^~~
cred.cc: In member function ‘void Credentials::make_real() const’:
cred.cc:25:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
25 | seteuid(0);
| ~~~~~~~^~~
In file included from fs.h:6,
from fs.cc:12:
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
41 | write(2, msg.c_str(), msg.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
fs.cc: In function ‘Fd ensure_dir(int, const std::filesystem::__cxx11::path&, mode_t, FollowLinks, bool)’:
fs.cc:227:13: warning: ignoring return value of ‘int fchown(int, __uid_t, __gid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
227 | fchown(*fd, -1, 0);
| ~~~~~~^~~~~~~~~~~~
fs.cc: In function ‘void make_whiteout(int, const std::filesystem::__cxx11::path&)’:
fs.cc:253:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
253 | seteuid(0);
| ~~~~~~~^~~
fs.cc:257:12: warning: ignoring return value of ‘int seteuid(__uid_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
257 | seteuid(olduid);
| ~~~~~~~^~~~~~~~
mv -f .deps/cred.Tpo .deps/cred.Po
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT jai.o -MD -MP -MF .deps/jai.Tpo -c -o jai.o jai.cc
mv -f .deps/default_conf.Tpo .deps/default_conf.Po
g++ -DHAVE_CONFIG_H -I. -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT options.o -MD -MP -MF .deps/options.Tpo -c -o options.o options.cc
mv -f .deps/fs.Tpo .deps/fs.Po
mv -f .deps/complete.Tpo .deps/complete.Po
mv -f .deps/options.Tpo .deps/options.Po
In file included from cred.h:5,
from jai.h:6,
from jai.cc:1:
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {const char* const&, const char* const&}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
41 | write(2, msg.c_str(), msg.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {const char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const char (&)[1], long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const char* const&}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[1], long unsigned int}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const char (&)[12], char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
jai.cc: In member function ‘void Config::exec(int, char**)’:
jai.cc:801:9: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
801 | read(*stop_me[0], &c, 1);
| ~~~~^~~~~~~~~~~~~~~~~~~~
jai.cc: In static member function ‘static void Config::pid1(Fd)’:
jai.cc:939:10: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
939 | write(*stop_me, &sig, 1);
| ~~~~~^~~~~~~~~~~~~~~~~~~
err.h: In function ‘void warn(std::format_string<_Args ...>, Args&& ...) [with Args = {char*}]’:
err.h:41:8: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
41 | write(2, msg.c_str(), msg.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
jai.cc: In lambda function:
jai.cc:1168:14: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
1168 | write(1, jai_defaults.data(), jai_defaults.size());
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/jai.Tpo .deps/jai.Po
g++ -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai complete.o cred.o default_conf.o fs.o jai.o options.o -lmount -lacl
make[2]: Leaving directory '/builder/src/jai-0.2'
make[1]: Leaving directory '/builder/src/jai-0.2'
==> Starting check()...
Making check in tests
make[1]: Entering directory '/builder/src/jai-0.2/tests'
chmod +x ./setup-setuid.sh
make jai_test_probe jai_test_pty_driver options_test
make[2]: Entering directory '/builder/src/jai-0.2/tests'
depbase=`echo jai-test-probe.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT jai-test-probe.o -MD -MP -MF $depbase.Tpo -c -o jai-test-probe.o jai-test-probe.cc &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo jai-test-pty-driver.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT jai-test-pty-driver.o -MD -MP -MF $depbase.Tpo -c -o jai-test-pty-driver.o jai-test-pty-driver.cc &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo options_test.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT options_test.o -MD -MP -MF $depbase.Tpo -c -o options_test.o options_test.cc &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ../options.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I.. -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -MT ../options.o -MD -MP -MF $depbase.Tpo -c -o ../options.o ../options.cc &&\
mv -f $depbase.Tpo $depbase.Po
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai_test_probe jai-test-probe.o
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai_test_pty_driver jai-test-pty-driver.o
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o options_test options_test.o ../options.o
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make check-TESTS
make[2]: Entering directory '/builder/src/jai-0.2/tests'
PASS: options_test
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: basic.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: casual-overlay.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: config-dir-hidden.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: config-precedence.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: home-cwd-guard.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: jail-files.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control-same-pgrp-stop.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control-sigtstp-fallback.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: job-control-sigtstp-preserve.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: modes.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: mask.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: process-state.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: strict-home-grant.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: sudo-env.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: storage.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: storage-from-conf.sh
SKIP: need a root shell or a current /builder/src/jai-0.2/jai.suid; run tests/setup-setuid.sh or relink jai.suid manually
SKIP: teardown.sh
=======================
1 test passed
(18 tests were not run)
=======================
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Entering directory '/builder/src/jai-0.2'
g++ -I/usr/include/libmount -I/usr/include/blkid -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -std=gnu++23 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -o jai complete.o cred.o default_conf.o fs.o jai.o options.o -lmount -lacl
make[1]: Leaving directory '/builder/src/jai-0.2'
==> Entering fakeroot environment...
==> Starting package()...
Making install in tests
make[1]: Entering directory '/builder/src/jai-0.2/tests'
chmod +x ./setup-setuid.sh
make[2]: Entering directory '/builder/src/jai-0.2/tests'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Leaving directory '/builder/src/jai-0.2/tests'
make[1]: Entering directory '/builder/src/jai-0.2'
make[2]: Entering directory '/builder/src/jai-0.2'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/share/bash-completion/completions'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/share/man/man1'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/lib/sysusers.d'
/usr/sbin/mkdir -p '/builder/pkg/jai//usr/bin'
/usr/bin/install -c -m 644 bash-completion/jai '/builder/pkg/jai//usr/share/bash-completion/completions'
/usr/bin/install -c -m 644 jai.conf '/builder/pkg/jai//usr/lib/sysusers.d'
/usr/bin/install -c -m 644 jai.1 '/builder/pkg/jai//usr/share/man/man1'
make install-data-hook
/usr/bin/install -c jai '/builder/pkg/jai//usr/bin'
make[3]: Entering directory '/builder/src/jai-0.2'
make install-exec-hook
make[3]: Leaving directory '/builder/src/jai-0.2'
make[3]: Entering directory '/builder/src/jai-0.2'
chown root /builder/pkg/jai//usr/bin/jai
chmod 04511 /builder/pkg/jai//usr/bin/jai
make[3]: Leaving directory '/builder/src/jai-0.2'
make[2]: Leaving directory '/builder/src/jai-0.2'
make[1]: Leaving directory '/builder/src/jai-0.2'
==> Tidying install...
-> Removing libtool files...
-> Removing static library files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "jai"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: jai 0.2-1 (Sat Mar 28 12:16:20 2026)