I'm trying to build a snap for the server cert provider. I've attached my snapcraft.yaml. When I run 'snapcraft stage', the staging fails while trying to build plainbox-provider-snappy. The following are the console messages encountered:
'plainbox-provider-snappy-resource' has prerequisites that need to be staged: plainbox-provider-snappy
Preparing to build plainbox-provider-snappy
Building plainbox-provider-snappy
python3 manage.py build
cc -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -Wall -D_POSIX_C_SOURCE=199309L -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/lib -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/lib -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/lib/x86_64-linux-gnu -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/lib/x86_64-linux-gnu -L/home/bladernr/development/snappy/ccs/stage/lib -L/home/bladernr/development/snappy/ccs/stage/usr/lib -L/home/bladernr/development/snappy/ccs/stage/lib/x86_64-linux-gnu -L/home/bladernr/development/snappy/ccs/stage/usr/lib/x86_64-linux-gnu ../../src/clocktest.c -lrt -o clocktest
cc -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -Wall -pthread -Wno-unused-but-set-variable -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/lib -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/lib -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/lib/x86_64-linux-gnu -L/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/lib/x86_64-linux-gnu -L/home/bladernr/development/snappy/ccs/stage/lib -L/home/bladernr/development/snappy/ccs/stage/usr/lib -L/home/bladernr/development/snappy/ccs/stage/lib/x86_64-linux-gnu -L/home/bladernr/development/snappy/ccs/stage/usr/lib/x86_64-linux-gnu ../../src/threaded_memtest.c -o threaded_memtest
cp -r ../../src/kernel-security .
make -C kernel-security
make[1]: Entering directory '/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/build/plainbox-provider-snappy/build/bin/kernel-security'
set -e && for dir in aslr guard-page mem min-addr nx proc-maps ptrace seccomp seccomp_filter userns smep ; do \
make -C ${dir} ; \
done
make[2]: Entering directory '/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/build/plainbox-provider-snappy/build/bin/kernel-security/aslr'
cc -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -Wall -Wall -Wformat-security -D_FORTIFY_SOURCE=2 -O2 -fPIC -pie -o aslr aslr.c -ldl
aslr.c: In function ‘area_pointer’:
aslr.c:144:22: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘uintptr_t {aka long unsigned int}’ [-Wformat=]
fprintf(stderr, "[pie] AREA_MMAP: %p\tAREA_TEXT: %p\n", area_pointer(AREA_MMAP),
^
aslr.c:144:22: warning: format ‘%p’ expects argument of type ‘void *’, but argument 4 has type ‘uintptr_t {aka long unsigned int}’ [-Wformat=]
cc -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -Wall -Wall -Wformat-security -D_FORTIFY_SOURCE=2 -O2 -fPIC -pie -o mmap-growth-direction mmap-growth-direction.c
cc -I/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/install/usr/include -Wall -Wall -Wformat-security -D_FORTIFY_SOURCE=2 -O2 -m32 -fPIC -pie -o aslr32 aslr.c -ldl
In file included from /usr/include/stdio.h:27:0,
from aslr.c:13:
/usr/include/features.h:367:25: fatal error: sys/cdefs.h: No such file or directory
compilation terminated.
Makefile:32: recipe for target 'aslr32' failed
make[2]: *** [aslr32] Error 1
make[2]: Leaving directory '/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/build/plainbox-provider-snappy/build/bin/kernel-security/aslr'
Makefile:4: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/bladernr/development/snappy/ccs/parts/plainbox-provider-snappy/build/plainbox-provider-snappy/build/bin/kernel-security'
../../src/Makefile:10: recipe for target 'kernel-security' failed
make: *** [kernel-security] Error 2
Command '['/bin/sh', '/tmp/tmpget0l39t', 'python3', 'manage.py', 'build']' returned non-zero exit status 2
And there the build fails and stops.
Try 'snapcraft update' first, then try rebuilding. Otherwise, it looks like you are missing 'gcc-multilib' in your build-packages somewhere. That should get pulled in by plainbox- provider- snappy though, so I think running snapcraft update should work.