incus icon indicating copy to clipboard operation
incus copied to clipboard

Add a `nfs` storage driver

Open stgraber opened this issue 1 year ago • 21 comments

nfs would be a small shim storage driver on top of our dir driver that would handle mounting the NFS share as needed on all servers within the cluster.

This should be restricted to only custom volumes and only filesystem type volumes for those as storing block/loop files on top of NFS seems like a bad idea and most NFS servers aren't quite POSIX enough to properly handle full containers (locking is always a bit weird).

stgraber avatar Oct 16 '24 18:10 stgraber

Hello, I can try this task. Can you please direct me to the relevant directories and files? Thanks

vivekkoya avatar Oct 17 '24 10:10 vivekkoya

The relevant files are in internal/server/storage/drivers/.

We did something similar to that with the lvmcluster driver which is just a tiny shim around the lvm driver.

In the case of nfs we should do something a bit more complete, so it should get its own file and own struct, but that struct should inherit from the dir struct and just override behavior where needed.

stgraber avatar Oct 17 '24 20:10 stgraber

hey @vivekkoya, how are things going? Need any help?

stgraber avatar Oct 31 '24 15:10 stgraber

Yes, I need help. I am mainly a java programmer studying in university. I am new to Go network programming. Do you recommend any resources to learn Go?

vivekkoya avatar Oct 31 '24 18:10 vivekkoya

https://go.dev/learn/ has some useful resources, especially the online sandbox that lets you play with some of the concepts at https://go.dev/tour/welcome/1.

The syntax shouldn't be much of an issue coming from Java, but the usual things to learn for Go are going to be:

  • Synchronization (Go routines, channels, locking, ...)
  • Different handling for return values (multiple variables being returned)
  • Getting familiar with the Go standard library which has a LOT of common packages, types and functions

stgraber avatar Oct 31 '24 20:10 stgraber

Hi @stgraber can I please take a peek on this ?

toastsandwich avatar Mar 13 '25 15:03 toastsandwich

Yeah, go ahead. We haven't seen any movement on this one in a while :)

stgraber avatar Mar 13 '25 17:03 stgraber

What is expected here with the nfs storage driver, can i get some insights, also any doc to refer to get started with incus

toastsandwich avatar Mar 13 '25 17:03 toastsandwich

https://github.com/lxc/incus/issues/1311#issuecomment-2420541340 has the rough plan.

So first you should make sure that you can actually build Incus from source locally and that you can easily either replace your own incusd binary with the one you built or run it in a VM for testing. (I usually replace /opt/incus/bin/incusd with my freshly built one, then restart the incus unit)

Once you have that working, you can look at implementing a new storage driver.

Per the comment above, you're going to be looking at internal/server/storage/drivers and need to create a new driver_nfs.go which should have its driver struct embed/inherit from the dir one.

After that, all functions in the Driver interface that should not be supported on NFS, need to be implemented as a basic return fmt.Errorf("Not supported"), leaving the ones that we do want to be functional on NFS to be inherited from the dir driver.

The NFS driver should only implement what's needed for filesystem custom volumes. It should not support instance storage, or image storage, or storage buckets or block custom volumes, all actions related to those should fail with "Not supported".

After that, the NFS specific bits will be returning a different driver Info struct which correctly reports what the NFS driver supports. As well as implementing Mount() and Unmount() for NFS.

Basically up until that last piece (Mount/Unmount), you should be able to test everything by just setting the source to a good old fashion directory, same as with the dir backend. It's only when you implement Mount and Unmount that you'll need to have a NFS server to test against. That can be a NAS you may already have around or you can run a basic NFSv3 server in a VM.

stgraber avatar Mar 13 '25 19:03 stgraber

So much for being easy :) Is there some kind on deadline or i can work at my pace ??

PS : thank you for the detailed explaination

toastsandwich avatar Mar 13 '25 19:03 toastsandwich

No deadline. As you can see, we've already had that opened for a little while :) If something comes along that makes this more urgent, I'll comment in here.

stgraber avatar Mar 13 '25 19:03 stgraber

Hi, I made progress. Appreciate your patience @stgraber. I am running into a fatal error when running the make command. The make deps command works just fine. For context, I built Incus from the recent source release 6.11 on GitHub. When building I looked through the requirements installed go version go1.24.2 linux/amd64 on an Ubuntu 24.04.2 LTS KVM VM. I also installed apt packages on the VM for the make command to work.

Logs:

user@incus-client:~/incus-6.11$ go version
go version go1.24.2 linux/amd64
user@incus-client:~/incus-6.11$ make deps
cd "/home/user/incus-6.11/vendor/raft" && \
        autoreconf -i && \
        ./configure && \
        make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for UV... yes
checking for LZ4... no
checking whether to build with code coverage support... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for stdio.h... (cached) yes
checking for assert.h... yes
checking for unistd.h... (cached) yes
checking for linux/io_uring.h... yes
checking for linux/aio_abi.h... yes
checking for gcc options needed to detect all undeclared functions... none needed
checking whether RWF_NOWAIT is declared... yes
checking for zfs... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking if gcc supports flag -std=c11 in envvar CFLAGS... yes
checking if gcc supports flag -g in envvar CFLAGS... yes
checking if gcc supports flag -pipe in envvar CFLAGS... yes
checking if gcc supports flag -fcf-protection in envvar CFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-color in envvar CFLAGS... yes
checking if gcc supports flag -fexceptions in envvar CFLAGS... yes
checking if gcc supports flag -fstack-clash-protection in envvar CFLAGS... yes
checking if gcc supports flag -fstack-protector-strong in envvar CFLAGS... yes
checking if gcc supports flag -fasynchronous-unwind-tables in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc supports flag -Wall in envvar CFLAGS... yes
checking if gcc supports flag -Wextra in envvar CFLAGS... yes
checking if gcc supports flag -Wpedantic in envvar CFLAGS... yes
checking if gcc supports flag -Wimplicit-fallthrough=5 in envvar CFLAGS... yes
checking if gcc supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc supports flag -Wsuggest-attribute=noreturn in envvar CFLAGS... yes
checking if gcc supports flag -Wformat=2 in envvar CFLAGS... yes
checking if gcc supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc supports flag -Wdate-time in envvar CFLAGS... yes
checking if gcc supports flag -Wnested-externs in envvar CFLAGS... yes
checking if gcc supports flag -Wconversion in envvar CFLAGS... yes
checking if gcc supports flag -Werror=implicit-function-declaration in envvar CFLAGS... yes
checking if gcc supports flag -Wunused-but-set-variable in envvar CFLAGS... yes
checking if gcc supports flag -Werror=return-type in envvar CFLAGS... yes
checking if gcc supports flag -Werror=incompatible-pointer-types in envvar CFLAGS... yes
checking if gcc supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=overflow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=shift-count-overflow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=shift-overflow=2 in envvar CFLAGS... yes
checking if gcc supports flag -Warray-bounds in envvar CFLAGS... yes
checking if gcc supports flag -Wrestrict in envvar CFLAGS... yes
checking if gcc supports flag -Wreturn-local-addr in envvar CFLAGS... yes
checking if gcc supports flag -Wstringop-overflow in envvar CFLAGS... yes
checking if gcc supports flag -z in envvar LDFLAGS... no
checking if gcc supports flag relro in envvar LDFLAGS... no
checking if gcc supports flag -z in envvar LDFLAGS... (cached) no
checking if gcc supports flag now in envvar LDFLAGS... no
checking if gcc supports flag -fstack-protector-strong in envvar LDFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar LDFLAGS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating include/raft.h
config.status: creating raft.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Entering directory '/home/user/incus-6.11/vendor/raft'
  CC       src/libraft_la-client.lo
  CC       src/libraft_la-compress.lo
  CC       src/libraft_la-configuration.lo
  CC       src/libraft_la-convert.lo
  CC       src/libraft_la-election.lo
  CC       src/libraft_la-entry.lo
  CC       src/libraft_la-err.lo
  CC       src/libraft_la-heap.lo
  CC       src/libraft_la-membership.lo
  CC       src/libraft_la-message.lo
  CC       src/libraft_la-progress.lo
  CC       src/libraft_la-raft.lo
  CC       src/libraft_la-recv.lo
  CC       src/libraft_la-recv_append_entries.lo
  CC       src/libraft_la-recv_append_entries_result.lo
  CC       src/libraft_la-recv_request_vote.lo
  CC       src/libraft_la-recv_request_vote_result.lo
  CC       src/libraft_la-recv_install_snapshot.lo
  CC       src/libraft_la-recv_timeout_now.lo
  CC       src/libraft_la-restore.lo
  CC       src/libraft_la-replication.lo
  CC       src/libraft_la-state.lo
  CC       src/libraft_la-timeout.lo
  CC       src/libraft_la-tracing.lo
  CC       src/libraft_la-trail.lo
  CC       src/libraft_la-log.lo
  CC       src/libraft_la-legacy.lo
  CC       src/libraft_la-snapshot.lo
  CC       src/libraft_la-fixture.lo
  CC       src/libraft_la-uv.lo
  CC       src/libraft_la-uv_append.lo
  CC       src/libraft_la-uv_encoding.lo
  CC       src/libraft_la-uv_finalize.lo
  CC       src/libraft_la-uv_fs.lo
  CC       src/libraft_la-uv_ip.lo
  CC       src/libraft_la-uv_list.lo
  CC       src/libraft_la-uv_metadata.lo
  CC       src/libraft_la-uv_prepare.lo
  CC       src/libraft_la-uv_recv.lo
  CC       src/libraft_la-uv_segment.lo
  CC       src/libraft_la-uv_send.lo
  CC       src/libraft_la-uv_snapshot.lo
  CC       src/libraft_la-uv_tcp.lo
  CC       src/libraft_la-uv_tcp_listen.lo
  CC       src/libraft_la-uv_tcp_connect.lo
  CC       src/libraft_la-uv_truncate.lo
  CC       src/libraft_la-uv_writer.lo
  CCLD     libraft.la
make[1]: Leaving directory '/home/user/incus-6.11/vendor/raft'
# cowsql
cd "/home/user/incus-6.11/vendor/cowsql" && \
        autoreconf -i && \
        PKG_CONFIG_PATH="/home/user/incus-6.11/vendor/raft" ./configure && \
        make CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/" LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs/"
configure.ac:9: warning: The macro `AC_PROG_CC_STDC' is obsolete.
configure.ac:9: You should run autoupdate.
./lib/autoconf/c.m4:1666: AC_PROG_CC_STDC is expanded from...
configure.ac:9: the top level
configure.ac:12: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/ax_pthread.m4:89: AX_PTHREAD is expanded from...
configure.ac:12: the top level
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a sed that does not truncate output... /usr/bin/sed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc is Clang... no
checking whether pthreads work with "-pthread" and "-lpthread"... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether to build with code coverage support... no
checking for arpa/inet.h... yes
checking for fcntl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/socket.h... yes
checking for unistd.h... (cached) yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for SQLITE... yes
checking for UV... yes
checking for RAFT... yes
checking if gcc supports flag -std=c11 in envvar CFLAGS... yes
checking if gcc supports flag -g in envvar CFLAGS... yes
checking if gcc supports flag --mcet in envvar CFLAGS... no
checking if gcc supports flag -fcf-protection in envvar CFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc supports flag -pipe in envvar CFLAGS... yes
checking if gcc supports flag -fno-strict-aliasing in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-color in envvar CFLAGS... yes
checking if gcc supports flag -fexceptions in envvar CFLAGS... yes
checking if gcc supports flag -fstack-clash-protection in envvar CFLAGS... yes
checking if gcc supports flag -fstack-protector-strong in envvar CFLAGS... yes
checking if gcc supports flag -fasynchronous-unwind-tables in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc supports flag -Wall in envvar CFLAGS... yes
checking if gcc supports flag -Wextra in envvar CFLAGS... yes
checking if gcc supports flag -Wimplicit-fallthrough=5 in envvar CFLAGS... yes
checking if gcc supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc supports flag -Wsuggest-attribute=noreturn in envvar CFLAGS... yes
checking if gcc supports flag -Wformat=2 in envvar CFLAGS... yes
checking if gcc supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc supports flag -Wdate-time in envvar CFLAGS... yes
checking if gcc supports flag -Wnested-externs in envvar CFLAGS... yes
checking if gcc supports flag -Wconversion in envvar CFLAGS... yes
checking if gcc supports flag -Werror in envvar CFLAGS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating cowsql.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Entering directory '/home/user/incus-6.11/vendor/cowsql'
  CC       src/libcowsql_la-command.lo
  CC       src/libcowsql_la-conn.lo
  CC       src/libcowsql_la-db.lo
  CC       src/libcowsql_la-cowsql.lo
  CC       src/libcowsql_la-fsm.lo
  CC       src/libcowsql_la-gateway.lo
  CC       src/libcowsql_la-leader.lo
  CC       src/lib/libcowsql_la-transport.lo
  CC       src/libcowsql_la-logger.lo
  CC       src/libcowsql_la-config.lo
  CC       src/libcowsql_la-registry.lo
  CC       src/libcowsql_la-roles.lo
  CC       src/libcowsql_la-server.lo
  CC       src/libcowsql_la-transport.lo
  CC       src/libcowsql_la-translate.lo
  CC       src/libcowsql_la-vfs.lo
  CCLD     libcowsql.la
copying selected object files to avoid basename conflicts...
make[1]: Leaving directory '/home/user/incus-6.11/vendor/cowsql'
# environment

Please set the following in your environment (possibly ~/.bashrc)
export CGO_CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/ -I/home/user/incus-6.11/vendor/cowsql/include/"
export CGO_LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs -L/home/user/incus-6.11/vendor/cowsql/.libs/"
export LD_LIBRARY_PATH="/home/user/incus-6.11/vendor/raft/.libs/:/home/user/incus-6.11/vendor/cowsql/.libs/"
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
user@incus-client:~/incus-6.11$ export CGO_CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/ -I/home/user/incus-6.11/vendor/cowsql/include/"
user@incus-client:~/incus-6.11$ export CGO_LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs -L/home/user/incus-6.11/vendor/cowsql/.libs/"
user@incus-client:~/incus-6.11$ export LD_LIBRARY_PATH="/home/user/incus-6.11/vendor/raft/.libs/:/home/user/incus-6.11/vendor/cowsql/.libs/"
user@incus-client:~/incus-6.11$ export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
user@incus-client:~/incus-6.11$ make
CC="cc" CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" go install -v -tags "libsqlite3"  ./...
github.com/lxc/incus/v6/shared/idmap
# github.com/lxc/incus/v6/shared/idmap
shared/idmap/shift_linux.go:18:10: fatal error: sys/capability.h: No such file or directory
   18 | #include <sys/capability.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
github.com/lxc/go-lxc
# github.com/lxc/go-lxc
# [pkg-config --cflags  -- lxc]
Package lxc was not found in the pkg-config search path.
Perhaps you should add the directory containing `lxc.pc'
to the PKG_CONFIG_PATH environment variable
Package 'lxc', required by 'virtual:world', not found
github.com/jochenvg/go-udev
# github.com/jochenvg/go-udev
vendor/github.com/jochenvg/go-udev/util.go:7:12: fatal error: libudev.h: No such file or directory
    7 |   #include <libudev.h>
      |            ^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:37: build] Error 1
user@incus-client:~/incus-6.11$ go version
go version go1.24.2 linux/amd64
user@incus-client:~/incus-6.11$ hostnamectl
 Static hostname: incus-client
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: dbe71a2cea7647449d59baf41053e679
         Boot ID: e6493bffc2974fdfbb50f27855b04fcc
  Virtualization: kvm
Operating System: Ubuntu 24.04.2 LTS              
          Kernel: Linux 6.8.0-57-generic
    Architecture: x86-64
 Hardware Vendor: QEMU
  Hardware Model: Standard PC _Q35 + ICH9, 2009_
Firmware Version: 1.16.3-debian-1.16.3-2
   Firmware Date: Tue 2014-04-01
    Firmware Age: 11y 1w 3d

vivekkoya avatar Apr 11 '25 00:04 vivekkoya

With go 1.23.8 on the same VM

user@incus-client:~$ go version
go version go1.23.8 linux/amd64
user@incus-client:~$ cd incus-6.11/
user@incus-client:~/incus-6.11$ make deps
cd "/home/user/incus-6.11/vendor/raft" && \
        autoreconf -i && \
        ./configure && \
        make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for UV... yes
checking for LZ4... no
checking whether to build with code coverage support... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for stdio.h... (cached) yes
checking for assert.h... yes
checking for unistd.h... (cached) yes
checking for linux/io_uring.h... yes
checking for linux/aio_abi.h... yes
checking for gcc options needed to detect all undeclared functions... none needed
checking whether RWF_NOWAIT is declared... yes
checking for zfs... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking if gcc supports flag -std=c11 in envvar CFLAGS... yes
checking if gcc supports flag -g in envvar CFLAGS... yes
checking if gcc supports flag -pipe in envvar CFLAGS... yes
checking if gcc supports flag -fcf-protection in envvar CFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-color in envvar CFLAGS... yes
checking if gcc supports flag -fexceptions in envvar CFLAGS... yes
checking if gcc supports flag -fstack-clash-protection in envvar CFLAGS... yes
checking if gcc supports flag -fstack-protector-strong in envvar CFLAGS... yes
checking if gcc supports flag -fasynchronous-unwind-tables in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc supports flag -Wall in envvar CFLAGS... yes
checking if gcc supports flag -Wextra in envvar CFLAGS... yes
checking if gcc supports flag -Wpedantic in envvar CFLAGS... yes
checking if gcc supports flag -Wimplicit-fallthrough=5 in envvar CFLAGS... yes
checking if gcc supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc supports flag -Wsuggest-attribute=noreturn in envvar CFLAGS... yes
checking if gcc supports flag -Wformat=2 in envvar CFLAGS... yes
checking if gcc supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc supports flag -Wdate-time in envvar CFLAGS... yes
checking if gcc supports flag -Wnested-externs in envvar CFLAGS... yes
checking if gcc supports flag -Wconversion in envvar CFLAGS... yes
checking if gcc supports flag -Werror=implicit-function-declaration in envvar CFLAGS... yes
checking if gcc supports flag -Wunused-but-set-variable in envvar CFLAGS... yes
checking if gcc supports flag -Werror=return-type in envvar CFLAGS... yes
checking if gcc supports flag -Werror=incompatible-pointer-types in envvar CFLAGS... yes
checking if gcc supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=overflow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=shift-count-overflow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=shift-overflow=2 in envvar CFLAGS... yes
checking if gcc supports flag -Warray-bounds in envvar CFLAGS... yes
checking if gcc supports flag -Wrestrict in envvar CFLAGS... yes
checking if gcc supports flag -Wreturn-local-addr in envvar CFLAGS... yes
checking if gcc supports flag -Wstringop-overflow in envvar CFLAGS... yes
checking if gcc supports flag -z in envvar LDFLAGS... no
checking if gcc supports flag relro in envvar LDFLAGS... no
checking if gcc supports flag -z in envvar LDFLAGS... (cached) no
checking if gcc supports flag now in envvar LDFLAGS... no
checking if gcc supports flag -fstack-protector-strong in envvar LDFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar LDFLAGS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating include/raft.h
config.status: creating raft.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Entering directory '/home/user/incus-6.11/vendor/raft'
  CC       src/libraft_la-client.lo
  CC       src/libraft_la-compress.lo
  CC       src/libraft_la-configuration.lo
  CC       src/libraft_la-convert.lo
  CC       src/libraft_la-election.lo
  CC       src/libraft_la-entry.lo
  CC       src/libraft_la-err.lo
  CC       src/libraft_la-heap.lo
  CC       src/libraft_la-membership.lo
  CC       src/libraft_la-message.lo
  CC       src/libraft_la-progress.lo
  CC       src/libraft_la-raft.lo
  CC       src/libraft_la-recv.lo
  CC       src/libraft_la-recv_append_entries.lo
  CC       src/libraft_la-recv_append_entries_result.lo
  CC       src/libraft_la-recv_request_vote.lo
  CC       src/libraft_la-recv_request_vote_result.lo
  CC       src/libraft_la-recv_install_snapshot.lo
  CC       src/libraft_la-recv_timeout_now.lo
  CC       src/libraft_la-restore.lo
  CC       src/libraft_la-replication.lo
  CC       src/libraft_la-state.lo
  CC       src/libraft_la-timeout.lo
  CC       src/libraft_la-tracing.lo
  CC       src/libraft_la-trail.lo
  CC       src/libraft_la-log.lo
  CC       src/libraft_la-legacy.lo
  CC       src/libraft_la-snapshot.lo
  CC       src/libraft_la-fixture.lo
  CC       src/libraft_la-uv.lo
  CC       src/libraft_la-uv_append.lo
  CC       src/libraft_la-uv_encoding.lo
  CC       src/libraft_la-uv_finalize.lo
  CC       src/libraft_la-uv_fs.lo
  CC       src/libraft_la-uv_ip.lo
  CC       src/libraft_la-uv_list.lo
  CC       src/libraft_la-uv_metadata.lo
  CC       src/libraft_la-uv_prepare.lo
  CC       src/libraft_la-uv_recv.lo
  CC       src/libraft_la-uv_segment.lo
  CC       src/libraft_la-uv_send.lo
  CC       src/libraft_la-uv_snapshot.lo
  CC       src/libraft_la-uv_tcp.lo
  CC       src/libraft_la-uv_tcp_listen.lo
  CC       src/libraft_la-uv_tcp_connect.lo
  CC       src/libraft_la-uv_truncate.lo
  CC       src/libraft_la-uv_writer.lo
  CCLD     libraft.la
make[1]: Leaving directory '/home/user/incus-6.11/vendor/raft'
# cowsql
cd "/home/user/incus-6.11/vendor/cowsql" && \
        autoreconf -i && \
        PKG_CONFIG_PATH="/home/user/incus-6.11/vendor/raft" ./configure && \
        make CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/" LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs/"
configure.ac:9: warning: The macro `AC_PROG_CC_STDC' is obsolete.
configure.ac:9: You should run autoupdate.
./lib/autoconf/c.m4:1666: AC_PROG_CC_STDC is expanded from...
configure.ac:9: the top level
configure.ac:12: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/ax_pthread.m4:89: AX_PTHREAD is expanded from...
configure.ac:12: the top level
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a sed that does not truncate output... /usr/bin/sed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc is Clang... no
checking whether pthreads work with "-pthread" and "-lpthread"... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether to build with code coverage support... no
checking for arpa/inet.h... yes
checking for fcntl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/socket.h... yes
checking for unistd.h... (cached) yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for SQLITE... yes
checking for UV... yes
checking for RAFT... yes
checking if gcc supports flag -std=c11 in envvar CFLAGS... yes
checking if gcc supports flag -g in envvar CFLAGS... yes
checking if gcc supports flag --mcet in envvar CFLAGS... no
checking if gcc supports flag -fcf-protection in envvar CFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc supports flag -pipe in envvar CFLAGS... yes
checking if gcc supports flag -fno-strict-aliasing in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-color in envvar CFLAGS... yes
checking if gcc supports flag -fexceptions in envvar CFLAGS... yes
checking if gcc supports flag -fstack-clash-protection in envvar CFLAGS... yes
checking if gcc supports flag -fstack-protector-strong in envvar CFLAGS... yes
checking if gcc supports flag -fasynchronous-unwind-tables in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc supports flag -Wall in envvar CFLAGS... yes
checking if gcc supports flag -Wextra in envvar CFLAGS... yes
checking if gcc supports flag -Wimplicit-fallthrough=5 in envvar CFLAGS... yes
checking if gcc supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc supports flag -Wsuggest-attribute=noreturn in envvar CFLAGS... yes
checking if gcc supports flag -Wformat=2 in envvar CFLAGS... yes
checking if gcc supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc supports flag -Wdate-time in envvar CFLAGS... yes
checking if gcc supports flag -Wnested-externs in envvar CFLAGS... yes
checking if gcc supports flag -Wconversion in envvar CFLAGS... yes
checking if gcc supports flag -Werror in envvar CFLAGS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating cowsql.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Entering directory '/home/user/incus-6.11/vendor/cowsql'
  CC       src/libcowsql_la-command.lo
  CC       src/libcowsql_la-conn.lo
  CC       src/libcowsql_la-db.lo
  CC       src/libcowsql_la-cowsql.lo
  CC       src/libcowsql_la-fsm.lo
  CC       src/libcowsql_la-gateway.lo
  CC       src/libcowsql_la-leader.lo
  CC       src/lib/libcowsql_la-transport.lo
  CC       src/libcowsql_la-logger.lo
  CC       src/libcowsql_la-config.lo
  CC       src/libcowsql_la-registry.lo
  CC       src/libcowsql_la-roles.lo
  CC       src/libcowsql_la-server.lo
  CC       src/libcowsql_la-transport.lo
  CC       src/libcowsql_la-translate.lo
  CC       src/libcowsql_la-vfs.lo
  CCLD     libcowsql.la
copying selected object files to avoid basename conflicts...
make[1]: Leaving directory '/home/user/incus-6.11/vendor/cowsql'
# environment

Please set the following in your environment (possibly ~/.bashrc)
export CGO_CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/ -I/home/user/incus-6.11/vendor/cowsql/include/"
export CGO_LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs -L/home/user/incus-6.11/vendor/cowsql/.libs/"
export LD_LIBRARY_PATH="/home/user/incus-6.11/vendor/raft/.libs/:/home/user/incus-6.11/vendor/cowsql/.libs/"
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
user@incus-client:~/incus-6.11$ export CGO_CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/ -I/home/user/incus-6.11/vendor/cowsql/include/"
user@incus-client:~/incus-6.11$ export CGO_LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs -L/home/user/incus-6.11/vendor/cowsql/.libs/"
user@incus-client:~/incus-6.11$ export LD_LIBRARY_PATH="/home/user/incus-6.11/vendor/raft/.libs/:/home/user/incus-6.11/vendor/cowsql/.libs/"
user@incus-client:~/incus-6.11$ export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
user@incus-client:~/incus-6.11$ make
CC="cc" CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" go install -v -tags "libsqlite3"  ./...
internal/goarch
internal/unsafeheader
internal/cpu
internal/byteorder
internal/abi
internal/chacha8rand
internal/coverage/rtcov
internal/bytealg
internal/godebugs
internal/goexperiment
internal/goos
internal/profilerecord
internal/runtime/atomic
internal/runtime/syscall
internal/runtime/exithook
internal/stringslite
runtime/internal/math
runtime/internal/sys
internal/race
sync/atomic
unicode
runtime
unicode/utf8
cmp
internal/itoa
math/bits
math
internal/asan
internal/msan
crypto/internal/alias
crypto/subtle
crypto/internal/boring/sig
container/list
unicode/utf16
vendor/golang.org/x/crypto/cryptobyte/asn1
vendor/golang.org/x/crypto/internal/alias
internal/nettrace
encoding
log/internal
golang.org/x/crypto/internal/alias
log/slog/internal
go.opentelemetry.io/otel/internal
go.opentelemetry.io/otel/trace/embedded
go.opentelemetry.io/otel/metric/embedded
github.com/zitadel/oidc/v3/pkg/oidc/grants/tokenexchange
github.com/lxc/incus/v6/internal/ports
github.com/lxc/incus/v6/shared/cgo
github.com/lxc/incus/v6/shared/revert
hash/maphash
github.com/lxc/incus/v6/internal/server/auth/common
github.com/lxc/incus/v6/internal/server/db/warningtype
internal/gover
internal/goversion
internal/platform
golang.org/x/tools/internal/packagesinternal
github.com/fvbommel/sortorder
github.com/rivo/uniseg
github.com/lxc/incus/v6/internal/sql
github.com/lxc/incus/v6/internal/server/daemon
google.golang.org/protobuf/internal/flags
google.golang.org/grpc/serviceconfig
google.golang.org/protobuf/internal/set
github.com/eapache/queue
golang.org/x/text/encoding/internal/identifier
golang.org/x/text/internal/utf8internal
github.com/pelletier/go-toml/v2/internal/characters
github.com/spf13/viper/internal/features
golang.org/x/net/internal/iana
github.com/LINBIT/golinstor/clonestatus
github.com/LINBIT/golinstor/devicelayerkind
github.com/LINBIT/golinstor/snapshotshipstatus
github.com/lxc/incus/v6/shared/api/agent
github.com/lxc/incus/v6/shared/api/guest
github.com/pierrec/lz4/v4/internal/lz4errors
github.com/klauspost/compress/internal/le
github.com/klauspost/compress/internal/race
github.com/lxc/incus/v6/internal/server/cluster/request
github.com/lxc/incus/v6/internal/server/instance/drivers/qemudefault
github.com/checkpoint-restore/go-criu/v6/magic
github.com/lxc/incus/v6/internal/server/instance/drivers/cfg
github.com/digitalocean/go-libvirt/internal/constants
golang.org/x/exp/slog/internal
internal/reflectlite
iter
sync
slices
internal/weak
maps
runtime/metrics
internal/bisect
internal/testlog
errors
sort
io
strconv
bytes
strings
reflect
internal/oserror
path
internal/godebug
bufio
syscall
hash
hash/crc32
crypto
crypto/cipher
crypto/internal/boring
crypto/internal/randutil
math/rand
crypto/sha256
time
internal/syscall/unix
internal/syscall/execenv
crypto/aes
crypto/des
crypto/internal/edwards25519/field
crypto/internal/nistec/fiat
internal/fmtsort
encoding/binary
io/fs
internal/filepathlite
internal/poll
context
embed
crypto/sha512
crypto/internal/nistec
os
crypto/internal/edwards25519
crypto/hmac
vendor/golang.org/x/crypto/chacha20
crypto/ecdh
vendor/golang.org/x/crypto/internal/poly1305
vendor/golang.org/x/crypto/hkdf
crypto/md5
crypto/rc4
crypto/sha1
encoding/base64
encoding/pem
fmt
vendor/golang.org/x/sys/cpu
vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/crypto/sha3
vendor/golang.org/x/net/dns/dnsmessage
internal/singleflight
math/rand/v2
internal/concurrent
compress/flate
math/big
encoding/hex
compress/gzip
unique
runtime/cgo
net/netip
net/url
crypto/rand
crypto/elliptic
crypto/internal/bigmod
crypto/internal/boring/bbig
encoding/asn1
crypto/ed25519
crypto/internal/hpke
crypto/internal/mlkem768
crypto/rsa
crypto/dsa
vendor/golang.org/x/crypto/cryptobyte
crypto/x509/pkix
net
path/filepath
crypto/ecdsa
encoding/json
io/ioutil
vendor/golang.org/x/text/transform
log
vendor/golang.org/x/text/unicode/bidi
vendor/golang.org/x/text/unicode/norm
vendor/golang.org/x/text/secure/bidirule
vendor/golang.org/x/net/http2/hpack
mime
vendor/golang.org/x/net/idna
mime/quotedprintable
net/http/internal
net/http/internal/ascii
github.com/lxc/incus/v6/shared/ioprogress
golang.org/x/sys/unix
internal/saferio
encoding/gob
github.com/lxc/incus/v6/shared/units
os/exec
regexp/syntax
github.com/lxc/incus/v6/shared/termios
github.com/sirupsen/logrus
regexp
crypto/x509
net/textproto
vendor/golang.org/x/net/http/httpguts
vendor/golang.org/x/net/http/httpproxy
mime/multipart
log/syslog
github.com/sirupsen/logrus/hooks/syslog
github.com/sirupsen/logrus/hooks/writer
gopkg.in/yaml.v2
github.com/lxc/incus/v6/shared/logger
os/user
crypto/tls
github.com/kr/fs
github.com/pkg/sftp/internal/encoding/ssh/filexfer
golang.org/x/crypto/chacha20
golang.org/x/crypto/curve25519
golang.org/x/crypto/internal/poly1305
golang.org/x/crypto/blowfish
github.com/pkg/sftp/internal/encoding/ssh/filexfer/openssh
golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
golang.org/x/crypto/ssh
github.com/go-jose/go-jose/v4/cipher
github.com/go-jose/go-jose/v4/json
golang.org/x/crypto/pbkdf2
github.com/go-jose/go-jose/v4
net/http/httptrace
net/http
github.com/lxc/incus/v6/shared/tcp
database/sql/driver
github.com/google/uuid
github.com/pkg/sftp
log/slog/internal/buffer
log/slog
github.com/zitadel/oidc/v3/pkg/crypto
github.com/gorilla/securecookie
github.com/muhlemmer/gu
github.com/zitadel/schema
golang.org/x/text/internal/tag
golang.org/x/text/internal/language
github.com/go-logr/logr
golang.org/x/text/internal/language/compact
golang.org/x/text/language
github.com/go-logr/logr/funcr
github.com/go-logr/stdr
go.opentelemetry.io/auto/sdk/internal/telemetry
go.opentelemetry.io/otel/internal/attribute
go.opentelemetry.io/otel/attribute
go.opentelemetry.io/otel/codes
go.opentelemetry.io/otel/trace/internal/telemetry
go.opentelemetry.io/otel/semconv/v1.26.0
go.opentelemetry.io/otel/metric
go.opentelemetry.io/otel/internal/baggage
go.opentelemetry.io/otel/trace
go.opentelemetry.io/otel/baggage
os/signal
github.com/lxc/incus/v6/internal/io
go.opentelemetry.io/otel/trace/noop
github.com/pkg/xattr
go.opentelemetry.io/auto/sdk
golang.org/x/text/internal
golang.org/x/text/transform
encoding/csv
golang.org/x/text/unicode/norm
github.com/gorilla/websocket
github.com/lxc/incus/v6/shared/api
github.com/lxc/incus/v6/shared/cancel
github.com/lxc/incus/v6/shared/util
github.com/lxc/incus/v6/shared/proxy
github.com/lxc/incus/v6/shared/ws
github.com/zitadel/logging
golang.org/x/oauth2/internal
github.com/lxc/incus/v6/shared/osarch
github.com/lxc/incus/v6/shared/subprocess
github.com/lxc/incus/v6/shared/simplestreams
github.com/lxc/incus/v6/shared/tls
golang.org/x/oauth2
go.opentelemetry.io/otel/propagation
github.com/flosch/pongo2/v6
go.opentelemetry.io/otel/internal/global
github.com/zitadel/oidc/v3/pkg/oidc
go.opentelemetry.io/otel
golang.org/x/oauth2/clientcredentials
github.com/zitadel/oidc/v3/pkg/http
golang.org/x/text/cases
github.com/zitadel/oidc/v3/pkg/client
github.com/zitadel/oidc/v3/pkg/client/rp
github.com/lxc/incus/v6/shared/idmap
github.com/lxc/incus/v6/client
# github.com/lxc/incus/v6/shared/idmap
shared/idmap/shift_linux.go:18:10: fatal error: sys/capability.h: No such file or directory
   18 | #include <sys/capability.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
flag
github.com/lxc/incus/v6/internal/util
github.com/lxc/incus/v6/internal/linux
github.com/spf13/pflag
text/template/parse
text/template
go/token
github.com/lxc/incus/v6/internal/version
go/build/constraint
go/scanner
github.com/lxc/incus/v6/cmd/generate-database/lex
go/ast
github.com/spf13/cobra
go/doc/comment
text/tabwriter
database/sql
go/internal/typeparams
go/parser
go/printer
github.com/Rican7/retry/backoff
github.com/Rican7/retry/jitter
github.com/Rican7/retry/strategy
github.com/Rican7/retry
internal/sysinfo
runtime/debug
github.com/lxc/incus/v6/cmd/generate-config
go/format
github.com/lxc/incus/v6/cmd/generate-database/file
runtime/trace
github.com/pkg/errors
testing
github.com/google/renameio
github.com/mattn/go-sqlite3
go.starlark.net/internal/spell
github.com/cowsql/go-cowsql/logging
go.starlark.net/syntax
github.com/cowsql/go-cowsql/internal/protocol
github.com/kballard/go-shellquote
github.com/robfig/cron/v3
go.starlark.net/resolve
github.com/lxc/incus/v6/shared/validate
go.starlark.net/internal/compile
github.com/lxc/incus/v6/internal/server/certificate
github.com/gorilla/mux
go.starlark.net/starlark
github.com/lxc/incus/v6/internal/server/request
encoding/xml
github.com/openfga/go-sdk/internal/utils
github.com/openfga/go-sdk/telemetry
github.com/openfga/go-sdk/oauth2/internal
github.com/openfga/go-sdk/oauth2
github.com/openfga/go-sdk/oauth2/clientcredentials
github.com/openfga/go-sdk/credentials
net/http/httputil
github.com/openfga/go-sdk
github.com/lxc/incus/v6/internal/server/scriptlet/load
github.com/lxc/incus/v6/internal/instance
github.com/lxc/incus/v6/internal/server/scriptlet/log
github.com/lxc/incus/v6/internal/server/scriptlet/marshal
github.com/lxc/incus/v6/internal/server/scriptlet/auth
golang.org/x/sync/errgroup
github.com/lxc/incus/v6/internal/server/device/config
github.com/lxc/incus/v6/internal/server/instance/instancetype
github.com/golang-jwt/jwt/v5
hash/fnv
github.com/lxc/incus/v6/internal/server/util
container/heap
go/constant
go/version
internal/buildcfg
internal/types/errors
go/types
github.com/openfga/go-sdk/client
github.com/lxc/incus/v6/internal/server/auth
github.com/cowsql/go-cowsql/client
github.com/lxc/incus/v6/internal/server/db/operationtype
github.com/cowsql/go-cowsql/driver
internal/lazyregexp
go/doc
github.com/lxc/incus/v6/internal/server/db/query
github.com/lxc/incus/v6/internal/server/db/schema
github.com/lxc/incus/v6/internal/server/db/cluster
github.com/lxc/incus/v6/internal/server/db/node
internal/goroot
go/build
golang.org/x/tools/internal/stdlib
golang.org/x/tools/internal/pkgbits
golang.org/x/tools/internal/aliases
golang.org/x/tools/internal/typeparams
golang.org/x/tools/internal/versions
golang.org/x/mod/semver
golang.org/x/tools/internal/event/label
golang.org/x/tools/go/types/typeutil
github.com/lxc/incus/v6/cmd/generate-database/file/boilerplate
golang.org/x/tools/internal/event/keys
github.com/gosexy/gettext
golang.org/x/tools/internal/typesinternal
golang.org/x/tools/internal/event/core
golang.org/x/tools/internal/event
golang.org/x/tools/internal/gocommand
golang.org/x/tools/go/types/objectpath
github.com/mattn/go-runewidth
golang.org/x/tools/internal/gcimporter
github.com/olekukonko/tablewriter
github.com/lxc/incus/v6/internal/recover
archive/tar
github.com/lxc/incus/v6/internal/i18n
github.com/lxc/incus/v6/internal/cmd
golang.org/x/tools/go/gcexportdata
golang.org/x/term
github.com/lxc/incus/v6/shared/archive
golang.org/x/tools/go/packages
github.com/lxc/incus/v6/shared/ask
github.com/lxc/incus/v6/shared/cliconfig
github.com/mitchellh/mapstructure
html
github.com/russross/blackfriday/v2
github.com/lxc/incus/v6/cmd/generate-database/db
gopkg.in/yaml.v3
github.com/cpuguy83/go-md2man/v2/md2man
github.com/lxc/incus/v6/internal/jmap
github.com/lxc/incus/v6/internal/server/storage/memorypipe
github.com/lxc/incus/v6/internal/server/events
github.com/lxc/incus/v6/cmd/generate-database
github.com/vishvananda/netns
github.com/spf13/cobra/doc
github.com/vishvananda/netlink/nl
github.com/lxc/incus/v6/cmd/incus
github.com/vishvananda/netlink
github.com/lxc/incus/v6/internal/server/ip
github.com/lxc/incus/v6/internal/server/metrics
github.com/cowsql/go-cowsql/internal/bindings
github.com/davecgh/go-spew/spew
github.com/pmezard/go-difflib/difflib
github.com/stretchr/testify/assert/yaml
net/http/internal/testcert
net/http/httptest
github.com/stretchr/testify/assert
github.com/stretchr/testify/require
github.com/cowsql/go-cowsql
golang.org/x/net/internal/timeseries
html/template
github.com/lxc/incus/v6/internal/server/db
golang.org/x/net/trace
google.golang.org/grpc/backoff
google.golang.org/grpc/grpclog/internal
google.golang.org/grpc/grpclog
google.golang.org/grpc/connectivity
google.golang.org/grpc/attributes
google.golang.org/grpc/internal/credentials
google.golang.org/grpc/internal/envconfig
google.golang.org/protobuf/internal/detrand
google.golang.org/protobuf/internal/errors
google.golang.org/protobuf/encoding/protowire
google.golang.org/protobuf/internal/pragma
google.golang.org/protobuf/reflect/protoreflect
github.com/lxc/incus/v6/internal/server/response
google.golang.org/protobuf/internal/encoding/messageset
google.golang.org/protobuf/internal/order
google.golang.org/protobuf/internal/genid
google.golang.org/protobuf/internal/strs
google.golang.org/protobuf/reflect/protoregistry
google.golang.org/protobuf/runtime/protoiface
google.golang.org/grpc/internal
google.golang.org/grpc/metadata
google.golang.org/protobuf/proto
google.golang.org/grpc/stats
google.golang.org/grpc/experimental/stats
google.golang.org/grpc/balancer/pickfirst/internal
google.golang.org/grpc/internal/grpclog
google.golang.org/protobuf/internal/encoding/json
google.golang.org/grpc/credentials
google.golang.org/protobuf/internal/descfmt
google.golang.org/grpc/internal/channelz
google.golang.org/grpc/resolver
google.golang.org/protobuf/internal/descopts
google.golang.org/protobuf/internal/editiondefaults
google.golang.org/protobuf/internal/encoding/text
google.golang.org/grpc/channelz
google.golang.org/grpc/balancer
google.golang.org/grpc/balancer/base
google.golang.org/protobuf/internal/protolazy
google.golang.org/protobuf/internal/encoding/defval
google.golang.org/protobuf/internal/filedesc
google.golang.org/protobuf/encoding/prototext
google.golang.org/protobuf/internal/version
google.golang.org/grpc/balancer/endpointsharding
google.golang.org/grpc/codes
google.golang.org/grpc/credentials/insecure
google.golang.org/grpc/internal/grpcutil
google.golang.org/grpc/mem
google.golang.org/grpc/internal/backoff
google.golang.org/grpc/internal/balancer/gracefulswitch
google.golang.org/grpc/encoding
google.golang.org/grpc/internal/balancerload
google.golang.org/grpc/internal/buffer
google.golang.org/grpc/internal/idle
google.golang.org/grpc/internal/grpcsync
google.golang.org/grpc/internal/metadata
google.golang.org/protobuf/encoding/protojson
google.golang.org/protobuf/internal/encoding/tag
google.golang.org/grpc/internal/serviceconfig
google.golang.org/protobuf/internal/impl
google.golang.org/grpc/internal/resolver
google.golang.org/grpc/internal/proxyattributes
google.golang.org/grpc/internal/resolver/delegatingresolver
google.golang.org/grpc/internal/resolver/passthrough
google.golang.org/grpc/internal/transport/networktype
google.golang.org/grpc/internal/resolver/unix
google.golang.org/grpc/internal/stats
golang.org/x/text/unicode/bidi
golang.org/x/net/http2/hpack
google.golang.org/grpc/internal/syscall
google.golang.org/grpc/keepalive
google.golang.org/grpc/peer
google.golang.org/grpc/tap
golang.org/x/text/secure/bidirule
google.golang.org/grpc/balancer/grpclb/state
google.golang.org/grpc/internal/resolver/dns/internal
google.golang.org/grpc/internal/resolver/dns
golang.org/x/net/idna
google.golang.org/grpc/resolver/dns
github.com/osrg/gobgp/v3/pkg/log
github.com/osrg/gobgp/v3/pkg/packet/bgp
golang.org/x/net/http/httpguts
golang.org/x/net/internal/httpcommon
golang.org/x/net/http2
google.golang.org/protobuf/internal/filetype
google.golang.org/protobuf/runtime/protoimpl
google.golang.org/protobuf/protoadapt
google.golang.org/grpc/internal/pretty
google.golang.org/grpc/balancer/pickfirst/pickfirstleaf
google.golang.org/grpc/balancer/pickfirst
google.golang.org/grpc/balancer/roundrobin
google.golang.org/grpc/encoding/proto
google.golang.org/protobuf/types/known/durationpb
google.golang.org/protobuf/types/known/timestamppb
google.golang.org/protobuf/types/known/anypb
google.golang.org/grpc/binarylog/grpc_binarylog_v1
google.golang.org/genproto/googleapis/rpc/status
google.golang.org/grpc/internal/status
google.golang.org/protobuf/types/known/emptypb
github.com/dgryski/go-farm
google.golang.org/grpc/status
google.golang.org/grpc/internal/binarylog
google.golang.org/grpc/internal/transport
github.com/eapache/channels
github.com/k-sone/critbitgo
github.com/fsnotify/fsnotify/internal
github.com/fsnotify/fsnotify
github.com/osrg/gobgp/v3/internal/pkg/version
github.com/osrg/gobgp/v3/pkg/packet/bmp
github.com/osrg/gobgp/v3/pkg/packet/rtr
github.com/osrg/gobgp/v3/pkg/zebra
github.com/go-viper/mapstructure/v2/internal/errors
github.com/go-viper/mapstructure/v2
google.golang.org/grpc
github.com/sourcegraph/conc/panics
github.com/sourcegraph/conc
github.com/sourcegraph/conc/internal/multierror
github.com/spf13/afero/internal/common
github.com/sourcegraph/conc/iter
golang.org/x/text/runes
github.com/spf13/afero/mem
github.com/spf13/cast
github.com/spf13/afero
golang.org/x/text/encoding
golang.org/x/text/encoding/internal
golang.org/x/text/encoding/unicode
github.com/subosito/gotenv
github.com/spf13/viper/internal/encoding/dotenv
github.com/spf13/viper/internal/encoding/json
github.com/pelletier/go-toml/v2/internal/danger
github.com/pelletier/go-toml/v2/unstable
github.com/sagikazarmark/locafero
github.com/spf13/viper/internal/encoding/yaml
github.com/osrg/gobgp/v3/pkg/packet/mrt
github.com/pelletier/go-toml/v2/internal/tracker
github.com/osrg/gobgp/v3/api
github.com/pelletier/go-toml/v2
github.com/lxc/incus/v6/internal/server/config
github.com/lxc/incus/v6/internal/server/cluster/config
encoding/base32
golang.org/x/net/bpf
golang.org/x/net/internal/socket
github.com/spf13/viper/internal/encoding/toml
github.com/spf13/viper
golang.org/x/net/ipv4
golang.org/x/net/ipv6
github.com/armon/go-proxyproto
github.com/lxc/incus/v6/internal/server/endpoints/listeners
github.com/mdlayher/socket
github.com/miekg/dns
github.com/mdlayher/vsock
gopkg.in/tomb.v2
internal/profile
runtime/pprof
github.com/osrg/gobgp/v3/pkg/apiutil
net/http/pprof
github.com/lxc/incus/v6/internal/server/endpoints
github.com/osrg/gobgp/v3/pkg/config/oc
k8s.io/utils/inotify
github.com/lxc/incus/v6/internal/server/fsmonitor/drivers
github.com/lxc/incus/v6/internal/server/fsmonitor
github.com/cenkalti/backoff/v4
github.com/lxc/incus/v6/internal/iprange
github.com/ovn-org/libovsdb/ovsdb
github.com/osrg/gobgp/v3/internal/pkg/table
github.com/ovn-org/libovsdb/mapper
github.com/ovn-org/libovsdb/model
github.com/lxc/incus/v6/internal/server/dns
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-ic-nb
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-ic-sb
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-nb
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-sb
github.com/ovn-org/libovsdb/database
github.com/cenkalti/hub
github.com/ovn-org/libovsdb/updates
github.com/cenkalti/rpc2
github.com/cenkalti/rpc2/jsonrpc
github.com/ovn-org/libovsdb/ovsdb/serverdb
github.com/ovn-org/libovsdb/cache
expvar
github.com/beorn7/perks/quantile
github.com/cespare/xxhash/v2
github.com/prometheus/client_model/go
github.com/munnerz/goautoneg
google.golang.org/protobuf/encoding/protodelim
github.com/prometheus/procfs/internal/fs
github.com/prometheus/procfs/internal/util
github.com/prometheus/common/model
github.com/prometheus/procfs
github.com/osrg/gobgp/v3/pkg/server
github.com/prometheus/client_golang/prometheus/internal
github.com/prometheus/common/expfmt
github.com/lxc/incus/v6/internal/server/network/ovs/schema/ovs
github.com/lxc/incus/v6/internal/server/node
github.com/donovanhide/eventsource
github.com/google/go-querystring/query
golang.org/x/time/rate
github.com/prometheus/client_golang/prometheus
moul.io/http2curl/v2
github.com/LINBIT/golinstor/client
github.com/lxc/incus/v6/internal/server/storage/linstor
github.com/lxc/incus/v6/internal/server/cgroup
github.com/syndtr/gocapability/capability
github.com/lxc/incus/v6/internal/server/vsock
github.com/lxc/incus/v6/cmd/incus-benchmark
github.com/ovn-org/libovsdb/client
github.com/lxc/incus/v6/internal/server/bgp
github.com/lxc/incus/v6/internal/eagain
github.com/lxc/incus/v6/internal/migration
github.com/lxc/incus/v6/internal/server/network/ovn
github.com/lxc/incus/v6/internal/server/network/ovs
github.com/lxc/incus/v6/internal/rsync
github.com/lxc/incus/v6/cmd/incus-migrate
github.com/lxc/incus/v6/cmd/incus-simplestreams
github.com/dustinkirkland/golang-petname
github.com/pierrec/lz4/v4/internal/lz4block
github.com/pierrec/lz4/v4/internal/xxh32
github.com/pierrec/lz4/v4/internal/lz4stream
github.com/pierrec/lz4/v4
github.com/u-root/uio/uio
github.com/insomniacslk/dhcp/iana
github.com/insomniacslk/dhcp/interfaces
github.com/insomniacslk/dhcp/rfc1035label
github.com/u-root/uio/rand
github.com/insomniacslk/dhcp/dhcpv4
github.com/josharian/native
github.com/mdlayher/packet
github.com/lxc/go-lxc
# github.com/lxc/go-lxc
# [pkg-config --cflags  -- lxc]
Package lxc was not found in the pkg-config search path.
Perhaps you should add the directory containing `lxc.pc'
to the PKG_CONFIG_PATH environment variable
Package 'lxc', required by 'virtual:world', not found
github.com/lxc/incus/v6/internal/filter
github.com/insomniacslk/dhcp/dhcpv4/nclient4
github.com/lxc/incus/v6/internal/netutils
github.com/lxc/incus/v6/internal/server/instance/drivers/edk2
github.com/lxc/incus/v6/internal/server/backup/config
github.com/lxc/incus/v6/internal/server/locking
github.com/lxc/incus/v6/internal/server/refcount
github.com/lxc/incus/v6/internal/server/storage/quota
github.com/goccy/go-json/internal/errors
github.com/goccy/go-json/internal/runtime
github.com/goccy/go-json/internal/decoder
github.com/goccy/go-json/internal/encoder
github.com/klauspost/compress/s2
github.com/goccy/go-json/internal/encoder/vm_color_indent
github.com/klauspost/cpuid/v2
github.com/minio/crc64nvme
github.com/minio/md5-simd
github.com/dustin/go-humanize
github.com/go-ini/ini
github.com/minio/minio-go/v7/pkg/cors
github.com/minio/minio-go/v7/pkg/s3utils
github.com/minio/minio-go/v7/pkg/signer
golang.org/x/sys/cpu
golang.org/x/crypto/blake2b
github.com/minio/minio-go/v7/pkg/lifecycle
golang.org/x/crypto/argon2
github.com/rs/xid
github.com/minio/minio-go/v7/pkg/sse
github.com/minio/minio-go/v7/pkg/tags
github.com/minio/minio-go/v7/pkg/replication
net/http/cookiejar
hash/crc64
github.com/bmatcuk/doublestar/v4
golang.org/x/net/publicsuffix
github.com/go-chi/chi/v5
github.com/muhlemmer/httpforwarded
github.com/rs/cors/internal
github.com/rs/cors
golang.org/x/sync/semaphore
github.com/cowsql/go-cowsql/app
github.com/zitadel/oidc/v3/pkg/op
archive/zip
github.com/digitalocean/go-smbios/smbios
github.com/mitchellh/go-homedir
github.com/jaypipes/pcidb
github.com/lxc/incus/v6/internal/usbid
github.com/lxc/incus/v6/internal/server/resources
github.com/goccy/go-json/internal/encoder/vm_color
github.com/lxc/incus/v6/internal/server/auth/oidc
github.com/lxc/incus/v6/internal/server/task
github.com/lxc/incus/v6/internal/server/warnings
github.com/google/gopacket
github.com/j-keck/arping
github.com/jkeiser/iter
github.com/jochenvg/go-udev
# github.com/jochenvg/go-udev
vendor/github.com/jochenvg/go-udev/device.go:7:12: fatal error: libudev.h: No such file or directory
    7 |   #include <libudev.h>
      |            ^~~~~~~~~~~
compilation terminated.
github.com/lxc/incus/v6/internal/server/device/pci
github.com/mdlayher/netx/eui64
golang.org/x/net/icmp
github.com/google/gopacket/layers
github.com/mdlayher/ndp
google.golang.org/protobuf/types/descriptorpb
github.com/checkpoint-restore/go-criu/v6/crit/images
github.com/checkpoint-restore/go-criu/v6/crit
github.com/digitalocean/go-libvirt/internal/event
github.com/digitalocean/go-libvirt/internal/go-xdr/xdr2
github.com/digitalocean/go-libvirt/socket
golang.org/x/crypto/ssh/agent
golang.org/x/crypto/ssh/knownhosts
github.com/lxc/incus/v6/shared/api/scriptlet
github.com/lxc/incus/v6/internal/server/template
github.com/digitalocean/go-libvirt/socket/dialers
github.com/opencontainers/runtime-spec/specs-go
github.com/lxc/incus/v6/internal/server/loki
github.com/goccy/go-json/internal/encoder/vm_indent
github.com/lxc/incus/v6/internal/server/metadata
github.com/digitalocean/go-libvirt
github.com/lxc/incus/v6/internal/server/syslog
github.com/lxc/incus/v6/internal/server/ucred
github.com/lxc/incus/v6/cmd/lxd-to-incus
github.com/digitalocean/go-qemu/qmp
github.com/lxc/incus/v6/internal/server/instance/drivers/qmp
github.com/lxc/incus/v6/internal/dnsutil
github.com/lxc/incus/v6/test/dev_incus-client
golang.org/x/exp/slices
golang.org/x/exp/slog/internal/buffer
golang.org/x/exp/slog
github.com/lxc/incus/v6/test/mini-oidc/storage
github.com/lxc/incus/v6/test/syscall/sysinfo
github.com/lxc/incus/v6/test/mini-oidc
github.com/lxc/incus/v6/test/tls2jwt
github.com/goccy/go-json/internal/encoder/vm
github.com/goccy/go-json
github.com/minio/minio-go/v7/pkg/encrypt
github.com/minio/minio-go/v7/pkg/set
github.com/minio/minio-go/v7/pkg/credentials
github.com/minio/minio-go/v7/pkg/notification
github.com/minio/minio-go/v7
make: *** [Makefile:37: build] Error 1

vivekkoya avatar Apr 11 '25 00:04 vivekkoya

Let me try Ubuntu 22: I observe the same behaviour

user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ make deps
cd "/home/user/incus-6.11/vendor/raft" && \
        autoreconf -i && \
        ./configure && \
        make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for UV... yes
checking for LZ4... no
checking whether to build with code coverage support... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for stdio.h... (cached) yes
checking for assert.h... yes
checking for unistd.h... (cached) yes
checking for linux/io_uring.h... yes
checking for linux/aio_abi.h... yes
checking for gcc options needed to detect all undeclared functions... none needed
checking whether RWF_NOWAIT is declared... yes
checking for zfs... no
checking for size_t... yes
checking for ssize_t... yes
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking if gcc supports flag -std=c11 in envvar CFLAGS... yes
checking if gcc supports flag -g in envvar CFLAGS... yes
checking if gcc supports flag -pipe in envvar CFLAGS... yes
checking if gcc supports flag -fcf-protection in envvar CFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-color in envvar CFLAGS... yes
checking if gcc supports flag -fexceptions in envvar CFLAGS... yes
checking if gcc supports flag -fstack-clash-protection in envvar CFLAGS... yes
checking if gcc supports flag -fstack-protector-strong in envvar CFLAGS... yes
checking if gcc supports flag -fasynchronous-unwind-tables in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc supports flag -Wall in envvar CFLAGS... yes
checking if gcc supports flag -Wextra in envvar CFLAGS... yes
checking if gcc supports flag -Wpedantic in envvar CFLAGS... yes
checking if gcc supports flag -Wimplicit-fallthrough=5 in envvar CFLAGS... yes
checking if gcc supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc supports flag -Wsuggest-attribute=noreturn in envvar CFLAGS... yes
checking if gcc supports flag -Wformat=2 in envvar CFLAGS... yes
checking if gcc supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc supports flag -Wdate-time in envvar CFLAGS... yes
checking if gcc supports flag -Wnested-externs in envvar CFLAGS... yes
checking if gcc supports flag -Wconversion in envvar CFLAGS... yes
checking if gcc supports flag -Werror=implicit-function-declaration in envvar CFLAGS... yes
checking if gcc supports flag -Wunused-but-set-variable in envvar CFLAGS... yes
checking if gcc supports flag -Werror=return-type in envvar CFLAGS... yes
checking if gcc supports flag -Werror=incompatible-pointer-types in envvar CFLAGS... yes
checking if gcc supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=overflow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=shift-count-overflow in envvar CFLAGS... yes
checking if gcc supports flag -Werror=shift-overflow=2 in envvar CFLAGS... yes
checking if gcc supports flag -Warray-bounds in envvar CFLAGS... yes
checking if gcc supports flag -Wrestrict in envvar CFLAGS... yes
checking if gcc supports flag -Wreturn-local-addr in envvar CFLAGS... yes
checking if gcc supports flag -Wstringop-overflow in envvar CFLAGS... yes
checking if gcc supports flag -z in envvar LDFLAGS... no
checking if gcc supports flag relro in envvar LDFLAGS... no
checking if gcc supports flag -z in envvar LDFLAGS... (cached) no
checking if gcc supports flag now in envvar LDFLAGS... no
checking if gcc supports flag -fstack-protector-strong in envvar LDFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar LDFLAGS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating include/raft.h
config.status: creating raft.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Entering directory '/home/user/incus-6.11/vendor/raft'
  CC       src/libraft_la-client.lo
  CC       src/libraft_la-compress.lo
  CC       src/libraft_la-configuration.lo
  CC       src/libraft_la-convert.lo
  CC       src/libraft_la-election.lo
  CC       src/libraft_la-entry.lo
  CC       src/libraft_la-err.lo
  CC       src/libraft_la-heap.lo
  CC       src/libraft_la-membership.lo
  CC       src/libraft_la-message.lo
  CC       src/libraft_la-progress.lo
  CC       src/libraft_la-raft.lo
  CC       src/libraft_la-recv.lo
  CC       src/libraft_la-recv_append_entries.lo
  CC       src/libraft_la-recv_append_entries_result.lo
  CC       src/libraft_la-recv_request_vote.lo
  CC       src/libraft_la-recv_request_vote_result.lo
  CC       src/libraft_la-recv_install_snapshot.lo
  CC       src/libraft_la-recv_timeout_now.lo
  CC       src/libraft_la-restore.lo
  CC       src/libraft_la-replication.lo
  CC       src/libraft_la-state.lo
  CC       src/libraft_la-timeout.lo
  CC       src/libraft_la-tracing.lo
  CC       src/libraft_la-trail.lo
  CC       src/libraft_la-log.lo
  CC       src/libraft_la-legacy.lo
  CC       src/libraft_la-snapshot.lo
  CC       src/libraft_la-fixture.lo
  CC       src/libraft_la-uv.lo
  CC       src/libraft_la-uv_append.lo
  CC       src/libraft_la-uv_encoding.lo
  CC       src/libraft_la-uv_finalize.lo
  CC       src/libraft_la-uv_fs.lo
  CC       src/libraft_la-uv_ip.lo
  CC       src/libraft_la-uv_list.lo
  CC       src/libraft_la-uv_metadata.lo
  CC       src/libraft_la-uv_os.lo
  CC       src/libraft_la-uv_prepare.lo
  CC       src/libraft_la-uv_recv.lo
  CC       src/libraft_la-uv_segment.lo
  CC       src/libraft_la-uv_send.lo
  CC       src/libraft_la-uv_snapshot.lo
  CC       src/libraft_la-uv_tcp.lo
  CC       src/libraft_la-uv_tcp_listen.lo
  CC       src/libraft_la-uv_tcp_connect.lo
  CC       src/libraft_la-uv_truncate.lo
  CC       src/libraft_la-uv_writer.lo
  CCLD     libraft.la
make[1]: Leaving directory '/home/user/incus-6.11/vendor/raft'
# cowsql
cd "/home/user/incus-6.11/vendor/cowsql" && \
        autoreconf -i && \
        PKG_CONFIG_PATH="/home/user/incus-6.11/vendor/raft" ./configure && \
        make CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/" LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs/"
configure.ac:9: warning: The macro `AC_PROG_CC_STDC' is obsolete.
configure.ac:9: You should run autoupdate.
./lib/autoconf/c.m4:1666: AC_PROG_CC_STDC is expanded from...
configure.ac:9: the top level
configure.ac:12: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/ax_pthread.m4:89: AX_PTHREAD is expanded from...
configure.ac:12: the top level
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a sed that does not truncate output... /usr/bin/sed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc is Clang... no
checking whether pthreads work with "-pthread" and "-lpthread"... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether to build with code coverage support... no
checking for arpa/inet.h... yes
checking for fcntl.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/socket.h... yes
checking for unistd.h... (cached) yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for SQLITE... yes
checking for UV... yes
checking for RAFT... yes
checking if gcc supports flag -std=c11 in envvar CFLAGS... yes
checking if gcc supports flag -g in envvar CFLAGS... yes
checking if gcc supports flag --mcet in envvar CFLAGS... no
checking if gcc supports flag -fcf-protection in envvar CFLAGS... yes
checking if gcc supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc supports flag -pipe in envvar CFLAGS... yes
checking if gcc supports flag -fno-strict-aliasing in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-color in envvar CFLAGS... yes
checking if gcc supports flag -fexceptions in envvar CFLAGS... yes
checking if gcc supports flag -fstack-clash-protection in envvar CFLAGS... yes
checking if gcc supports flag -fstack-protector-strong in envvar CFLAGS... yes
checking if gcc supports flag -fasynchronous-unwind-tables in envvar CFLAGS... yes
checking if gcc supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc supports flag -Wall in envvar CFLAGS... yes
checking if gcc supports flag -Wextra in envvar CFLAGS... yes
checking if gcc supports flag -Wimplicit-fallthrough=5 in envvar CFLAGS... yes
checking if gcc supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc supports flag -Wsuggest-attribute=noreturn in envvar CFLAGS... yes
checking if gcc supports flag -Wformat=2 in envvar CFLAGS... yes
checking if gcc supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc supports flag -Wdate-time in envvar CFLAGS... yes
checking if gcc supports flag -Wnested-externs in envvar CFLAGS... yes
checking if gcc supports flag -Wconversion in envvar CFLAGS... yes
checking if gcc supports flag -Werror in envvar CFLAGS... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating cowsql.pc
config.status: creating Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
make[1]: Entering directory '/home/user/incus-6.11/vendor/cowsql'
  CC       src/libcowsql_la-bind.lo
  CC       src/client/libcowsql_la-protocol.lo
  CC       src/libcowsql_la-command.lo
  CC       src/libcowsql_la-conn.lo
  CC       src/libcowsql_la-db.lo
  CC       src/libcowsql_la-cowsql.lo
  CC       src/libcowsql_la-error.lo
  CC       src/libcowsql_la-format.lo
  CC       src/libcowsql_la-fsm.lo
  CC       src/libcowsql_la-gateway.lo
  CC       src/libcowsql_la-id.lo
  CC       src/libcowsql_la-leader.lo
  CC       src/lib/libcowsql_la-addr.lo
  CC       src/lib/libcowsql_la-buffer.lo
  CC       src/lib/libcowsql_la-transport.lo
  CC       src/libcowsql_la-logger.lo
  CC       src/libcowsql_la-message.lo
  CC       src/libcowsql_la-metrics.lo
  CC       src/libcowsql_la-config.lo
  CC       src/libcowsql_la-query.lo
  CC       src/libcowsql_la-registry.lo
  CC       src/libcowsql_la-request.lo
  CC       src/libcowsql_la-response.lo
  CC       src/libcowsql_la-roles.lo
  CC       src/libcowsql_la-server.lo
  CC       src/libcowsql_la-stmt.lo
  CC       src/libcowsql_la-tracing.lo
  CC       src/libcowsql_la-transport.lo
  CC       src/libcowsql_la-translate.lo
  CC       src/libcowsql_la-tuple.lo
  CC       src/libcowsql_la-vfs.lo
  CCLD     libcowsql.la
copying selected object files to avoid basename conflicts...
make[1]: Leaving directory '/home/user/incus-6.11/vendor/cowsql'
# environment

Please set the following in your environment (possibly ~/.bashrc)
export CGO_CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/ -I/home/user/incus-6.11/vendor/cowsql/include/"
export CGO_LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs -L/home/user/incus-6.11/vendor/cowsql/.libs/"
export LD_LIBRARY_PATH="/home/user/incus-6.11/vendor/raft/.libs/:/home/user/incus-6.11/vendor/cowsql/.libs/"
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ export CGO_CFLAGS="-I/home/user/incus-6.11/vendor/raft/include/ -I/home/user/incus-6.11/vendor/cowsql/include/"
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ export CGO_LDFLAGS="-L/home/user/incus-6.11/vendor/raft/.libs -L/home/user/incus-6.11/vendor/cowsql/.libs/"
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ export LD_LIBRARY_PATH="/home/user/incus-6.11/vendor/raft/.libs/:/home/user/incus-6.11/vendor/cowsql/.libs/"
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ make
CC="cc" CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" go install -v -tags "libsqlite3"  ./...
internal/goarch
internal/unsafeheader
internal/abi
internal/cpu
internal/bytealg
internal/byteorder
internal/chacha8rand
internal/coverage/rtcov
internal/godebugs
internal/goexperiment
internal/goos
internal/profilerecord
internal/runtime/atomic
internal/runtime/syscall
internal/stringslite
internal/runtime/exithook
runtime/internal/math
runtime/internal/sys
internal/race
sync/atomic
runtime
unicode
unicode/utf8
cmp
internal/itoa
math/bits
math
internal/asan
internal/msan
crypto/internal/alias
crypto/subtle
crypto/internal/boring/sig
container/list
unicode/utf16
vendor/golang.org/x/crypto/cryptobyte/asn1
vendor/golang.org/x/crypto/internal/alias
internal/nettrace
encoding
log/internal
golang.org/x/crypto/internal/alias
log/slog/internal
go.opentelemetry.io/otel/internal
go.opentelemetry.io/otel/trace/embedded
go.opentelemetry.io/otel/metric/embedded
github.com/zitadel/oidc/v3/pkg/oidc/grants/tokenexchange
github.com/lxc/incus/v6/internal/ports
github.com/lxc/incus/v6/shared/cgo
github.com/lxc/incus/v6/shared/revert
hash/maphash
github.com/lxc/incus/v6/internal/server/auth/common
github.com/lxc/incus/v6/internal/server/db/warningtype
internal/gover
internal/goversion
internal/platform
golang.org/x/tools/internal/packagesinternal
github.com/fvbommel/sortorder
github.com/rivo/uniseg
github.com/lxc/incus/v6/internal/sql
github.com/lxc/incus/v6/internal/server/daemon
google.golang.org/protobuf/internal/flags
google.golang.org/grpc/serviceconfig
google.golang.org/protobuf/internal/set
github.com/eapache/queue
golang.org/x/text/encoding/internal/identifier
golang.org/x/text/internal/utf8internal
github.com/pelletier/go-toml/v2/internal/characters
github.com/spf13/viper/internal/features
golang.org/x/net/internal/iana
github.com/LINBIT/golinstor/clonestatus
github.com/LINBIT/golinstor/devicelayerkind
github.com/LINBIT/golinstor/snapshotshipstatus
github.com/lxc/incus/v6/shared/api/agent
github.com/lxc/incus/v6/shared/api/guest
github.com/pierrec/lz4/v4/internal/lz4errors
github.com/klauspost/compress/internal/le
github.com/klauspost/compress/internal/race
github.com/lxc/incus/v6/internal/server/cluster/request
github.com/lxc/incus/v6/internal/server/instance/drivers/qemudefault
github.com/checkpoint-restore/go-criu/v6/magic
github.com/lxc/incus/v6/internal/server/instance/drivers/cfg
github.com/digitalocean/go-libvirt/internal/constants
golang.org/x/exp/slog/internal
internal/reflectlite
sync
errors
iter
slices
io
strconv
bytes
strings
reflect
bufio
internal/oserror
path
internal/bisect
internal/godebug
syscall
internal/fmtsort
internal/testlog
sort
time
internal/syscall/unix
internal/syscall/execenv
encoding/binary
hash
hash/crc32
crypto
crypto/cipher
io/fs
internal/poll
internal/filepathlite
context
os
crypto/internal/boring
crypto/internal/randutil
math/rand
crypto/sha256
crypto/aes
crypto/des
fmt
crypto/internal/edwards25519/field
crypto/internal/nistec/fiat
compress/flate
math/big
compress/gzip
embed
crypto/internal/nistec
crypto/ecdh
crypto/sha512
crypto/internal/edwards25519
crypto/rand
crypto/elliptic
crypto/internal/bigmod
crypto/internal/boring/bbig
encoding/asn1
crypto/ed25519
crypto/hmac
vendor/golang.org/x/crypto/chacha20
vendor/golang.org/x/crypto/internal/poly1305
vendor/golang.org/x/sys/cpu
vendor/golang.org/x/crypto/cryptobyte
vendor/golang.org/x/crypto/chacha20poly1305
crypto/ecdsa
vendor/golang.org/x/crypto/hkdf
crypto/internal/hpke
vendor/golang.org/x/crypto/sha3
crypto/internal/mlkem768
crypto/md5
crypto/rc4
crypto/rsa
crypto/sha1
crypto/dsa
encoding/hex
encoding/base64
crypto/x509/pkix
encoding/pem
vendor/golang.org/x/net/dns/dnsmessage
internal/singleflight
math/rand/v2
internal/concurrent
internal/weak
unique
runtime/cgo
net/netip
net/url
path/filepath
encoding/json
net
io/ioutil
vendor/golang.org/x/text/transform
log
vendor/golang.org/x/text/unicode/bidi
vendor/golang.org/x/text/secure/bidirule
vendor/golang.org/x/text/unicode/norm
vendor/golang.org/x/net/idna
vendor/golang.org/x/net/http2/hpack
maps
mime
mime/quotedprintable
net/http/internal
net/http/internal/ascii
github.com/lxc/incus/v6/shared/ioprogress
golang.org/x/sys/unix
crypto/x509
net/textproto
crypto/tls
vendor/golang.org/x/net/http/httpguts
vendor/golang.org/x/net/http/httpproxy
mime/multipart
github.com/lxc/incus/v6/shared/termios
github.com/sirupsen/logrus
log/syslog
github.com/sirupsen/logrus/hooks/syslog
github.com/sirupsen/logrus/hooks/writer
github.com/lxc/incus/v6/shared/logger
internal/saferio
encoding/gob
github.com/lxc/incus/v6/shared/units
os/exec
net/http/httptrace
net/http
regexp/syntax
regexp
gopkg.in/yaml.v2
github.com/lxc/incus/v6/shared/tcp
os/user
github.com/kr/fs
github.com/pkg/sftp/internal/encoding/ssh/filexfer
github.com/pkg/sftp/internal/encoding/ssh/filexfer/openssh
golang.org/x/crypto/chacha20
golang.org/x/crypto/curve25519
golang.org/x/crypto/internal/poly1305
golang.org/x/crypto/blowfish
golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
golang.org/x/crypto/ssh
github.com/gorilla/websocket
github.com/lxc/incus/v6/shared/api
github.com/lxc/incus/v6/shared/cancel
github.com/lxc/incus/v6/shared/util
github.com/lxc/incus/v6/shared/osarch
github.com/lxc/incus/v6/shared/proxy
github.com/lxc/incus/v6/shared/simplestreams
github.com/lxc/incus/v6/shared/subprocess
github.com/lxc/incus/v6/shared/tls
github.com/lxc/incus/v6/shared/ws
github.com/pkg/sftp
github.com/go-jose/go-jose/v4/cipher
github.com/go-jose/go-jose/v4/json
golang.org/x/crypto/pbkdf2
github.com/go-jose/go-jose/v4
database/sql/driver
log/slog/internal/buffer
github.com/google/uuid
log/slog
github.com/zitadel/oidc/v3/pkg/crypto
github.com/gorilla/securecookie
github.com/muhlemmer/gu
github.com/zitadel/schema
github.com/zitadel/logging
golang.org/x/oauth2/internal
golang.org/x/oauth2
golang.org/x/text/internal/tag
golang.org/x/text/internal/language
github.com/go-logr/logr
github.com/go-logr/logr/funcr
github.com/go-logr/stdr
go.opentelemetry.io/auto/sdk/internal/telemetry
golang.org/x/text/internal/language/compact
golang.org/x/text/language
go.opentelemetry.io/otel/internal/attribute
go.opentelemetry.io/otel/attribute
github.com/zitadel/oidc/v3/pkg/oidc
go.opentelemetry.io/otel/codes
go.opentelemetry.io/otel/semconv/v1.26.0
github.com/zitadel/oidc/v3/pkg/http
go.opentelemetry.io/otel/trace/internal/telemetry
go.opentelemetry.io/otel/metric
go.opentelemetry.io/otel/trace
go.opentelemetry.io/otel/internal/baggage
go.opentelemetry.io/otel/baggage
golang.org/x/oauth2/clientcredentials
os/signal
github.com/flosch/pongo2/v6
go.opentelemetry.io/otel/trace/noop
go.opentelemetry.io/auto/sdk
go.opentelemetry.io/otel/propagation
go.opentelemetry.io/otel/internal/global
go.opentelemetry.io/otel
github.com/zitadel/oidc/v3/pkg/client
github.com/lxc/incus/v6/internal/io
github.com/zitadel/oidc/v3/pkg/client/rp
github.com/lxc/incus/v6/internal/util
github.com/pkg/xattr
github.com/lxc/incus/v6/client
github.com/lxc/incus/v6/internal/linux
golang.org/x/text/internal
golang.org/x/text/transform
golang.org/x/text/unicode/norm
github.com/lxc/incus/v6/shared/idmap
# github.com/lxc/incus/v6/shared/idmap
shared/idmap/shift_linux.go:18:10: fatal error: sys/capability.h: No such file or directory
   18 | #include <sys/capability.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
encoding/csv
flag
golang.org/x/text/cases
github.com/spf13/pflag
github.com/lxc/incus/v6/internal/version
text/template/parse
text/template
go/token
go/scanner
go/ast
github.com/spf13/cobra
go/build/constraint
go/internal/typeparams
github.com/lxc/incus/v6/cmd/generate-database/lex
go/parser
go/doc/comment
text/tabwriter
go/printer
github.com/lxc/incus/v6/cmd/generate-config
go/format
github.com/lxc/incus/v6/cmd/generate-database/file
database/sql
github.com/Rican7/retry/backoff
github.com/Rican7/retry/jitter
github.com/Rican7/retry/strategy
github.com/Rican7/retry
internal/sysinfo
runtime/debug
runtime/trace
testing
github.com/pkg/errors
github.com/google/renameio
github.com/mattn/go-sqlite3
github.com/cowsql/go-cowsql/logging
github.com/cowsql/go-cowsql/internal/protocol
go.starlark.net/internal/spell
go.starlark.net/syntax
go.starlark.net/resolve
go.starlark.net/internal/compile
go.starlark.net/starlark
github.com/lxc/incus/v6/internal/server/scriptlet/load
github.com/kballard/go-shellquote
github.com/robfig/cron/v3
github.com/lxc/incus/v6/shared/validate
github.com/lxc/incus/v6/internal/instance
github.com/lxc/incus/v6/internal/server/certificate
github.com/gorilla/mux
github.com/lxc/incus/v6/internal/server/request
github.com/lxc/incus/v6/internal/server/scriptlet/log
github.com/lxc/incus/v6/internal/server/scriptlet/marshal
github.com/lxc/incus/v6/internal/server/scriptlet/auth
encoding/xml
github.com/openfga/go-sdk/internal/utils
github.com/openfga/go-sdk/telemetry
github.com/openfga/go-sdk/oauth2/internal
github.com/openfga/go-sdk/oauth2
github.com/cowsql/go-cowsql/client
github.com/openfga/go-sdk/oauth2/clientcredentials
github.com/openfga/go-sdk/credentials
github.com/cowsql/go-cowsql/driver
net/http/httputil
golang.org/x/sync/errgroup
github.com/lxc/incus/v6/internal/server/db/query
github.com/lxc/incus/v6/internal/server/db/schema
github.com/openfga/go-sdk
github.com/lxc/incus/v6/internal/server/device/config
github.com/lxc/incus/v6/internal/server/instance/instancetype
github.com/golang-jwt/jwt/v5
hash/fnv
github.com/lxc/incus/v6/internal/server/util
github.com/lxc/incus/v6/internal/server/db/node
container/heap
go/constant
go/version
internal/buildcfg
internal/types/errors
go/types
github.com/openfga/go-sdk/client
github.com/lxc/incus/v6/internal/server/auth
github.com/lxc/incus/v6/internal/server/db/operationtype
github.com/lxc/incus/v6/internal/server/db/cluster
internal/lazyregexp
go/doc
internal/goroot
go/build
golang.org/x/tools/internal/aliases
golang.org/x/tools/internal/typeparams
golang.org/x/tools/go/types/typeutil
golang.org/x/tools/internal/stdlib
golang.org/x/tools/internal/versions
golang.org/x/tools/internal/pkgbits
golang.org/x/mod/semver
golang.org/x/tools/internal/event/label
golang.org/x/tools/internal/event/keys
golang.org/x/tools/internal/event/core
golang.org/x/tools/internal/event
golang.org/x/tools/internal/gocommand
golang.org/x/tools/internal/typesinternal
github.com/lxc/incus/v6/cmd/generate-database/file/boilerplate
github.com/gosexy/gettext
golang.org/x/tools/go/types/objectpath
golang.org/x/tools/internal/gcimporter
github.com/lxc/incus/v6/internal/i18n
github.com/mattn/go-runewidth
github.com/olekukonko/tablewriter
github.com/lxc/incus/v6/internal/cmd
golang.org/x/tools/go/gcexportdata
github.com/lxc/incus/v6/internal/recover
archive/tar
golang.org/x/tools/go/packages
github.com/lxc/incus/v6/cmd/generate-database/db
github.com/lxc/incus/v6/shared/archive
golang.org/x/term
github.com/lxc/incus/v6/shared/ask
github.com/lxc/incus/v6/shared/cliconfig
github.com/mitchellh/mapstructure
github.com/lxc/incus/v6/cmd/generate-database
html
github.com/russross/blackfriday/v2
github.com/cpuguy83/go-md2man/v2/md2man
gopkg.in/yaml.v3
github.com/spf13/cobra/doc
github.com/lxc/incus/v6/cmd/incus
github.com/lxc/incus/v6/internal/jmap
github.com/lxc/incus/v6/internal/server/storage/memorypipe
github.com/lxc/incus/v6/internal/server/events
github.com/vishvananda/netns
github.com/vishvananda/netlink/nl
github.com/vishvananda/netlink
github.com/lxc/incus/v6/internal/server/ip
github.com/lxc/incus/v6/internal/server/metrics
github.com/cowsql/go-cowsql/internal/bindings
github.com/cowsql/go-cowsql
github.com/davecgh/go-spew/spew
github.com/pmezard/go-difflib/difflib
github.com/stretchr/testify/assert/yaml
net/http/internal/testcert
net/http/httptest
github.com/stretchr/testify/assert
github.com/stretchr/testify/require
github.com/lxc/incus/v6/internal/server/db
golang.org/x/net/internal/timeseries
html/template
golang.org/x/net/trace
google.golang.org/grpc/backoff
google.golang.org/grpc/grpclog/internal
github.com/lxc/incus/v6/internal/server/response
google.golang.org/grpc/grpclog
google.golang.org/grpc/connectivity
google.golang.org/grpc/attributes
google.golang.org/grpc/internal/credentials
google.golang.org/grpc/internal/envconfig
google.golang.org/protobuf/internal/detrand
google.golang.org/protobuf/internal/pragma
google.golang.org/grpc/internal
google.golang.org/protobuf/internal/errors
google.golang.org/protobuf/encoding/protowire
google.golang.org/grpc/metadata
google.golang.org/protobuf/reflect/protoreflect
google.golang.org/grpc/stats
google.golang.org/grpc/experimental/stats
google.golang.org/grpc/balancer/pickfirst/internal
google.golang.org/grpc/internal/grpclog
google.golang.org/protobuf/internal/editiondefaults
google.golang.org/protobuf/internal/version
google.golang.org/grpc/codes
google.golang.org/grpc/internal/grpcutil
google.golang.org/protobuf/internal/encoding/messageset
google.golang.org/protobuf/internal/genid
google.golang.org/protobuf/internal/order
google.golang.org/protobuf/internal/strs
google.golang.org/protobuf/reflect/protoregistry
google.golang.org/protobuf/runtime/protoiface
google.golang.org/protobuf/internal/encoding/json
google.golang.org/protobuf/proto
google.golang.org/protobuf/internal/descfmt
google.golang.org/protobuf/internal/descopts
google.golang.org/protobuf/internal/encoding/text
google.golang.org/grpc/credentials
google.golang.org/grpc/internal/channelz
google.golang.org/grpc/resolver
google.golang.org/protobuf/internal/encoding/defval
google.golang.org/grpc/channelz
google.golang.org/grpc/balancer
google.golang.org/protobuf/internal/filedesc
google.golang.org/grpc/balancer/base
google.golang.org/protobuf/encoding/prototext
google.golang.org/protobuf/internal/protolazy
google.golang.org/grpc/balancer/endpointsharding
google.golang.org/grpc/credentials/insecure
google.golang.org/grpc/mem
google.golang.org/grpc/encoding
google.golang.org/grpc/internal/backoff
google.golang.org/grpc/internal/balancer/gracefulswitch
google.golang.org/protobuf/encoding/protojson
google.golang.org/protobuf/internal/encoding/tag
google.golang.org/protobuf/internal/impl
google.golang.org/grpc/internal/balancerload
google.golang.org/grpc/internal/buffer
google.golang.org/grpc/internal/grpcsync
google.golang.org/grpc/internal/idle
google.golang.org/grpc/internal/metadata
google.golang.org/grpc/internal/serviceconfig
google.golang.org/grpc/internal/resolver
google.golang.org/grpc/internal/proxyattributes
google.golang.org/grpc/internal/resolver/delegatingresolver
google.golang.org/grpc/internal/resolver/passthrough
google.golang.org/grpc/internal/transport/networktype
google.golang.org/grpc/internal/resolver/unix
google.golang.org/grpc/internal/stats
golang.org/x/text/unicode/bidi
golang.org/x/text/secure/bidirule
golang.org/x/net/idna
golang.org/x/net/http/httpguts
golang.org/x/net/http2/hpack
golang.org/x/net/internal/httpcommon
golang.org/x/net/http2
google.golang.org/protobuf/internal/filetype
google.golang.org/protobuf/runtime/protoimpl
google.golang.org/protobuf/protoadapt
google.golang.org/grpc/internal/pretty
google.golang.org/grpc/balancer/pickfirst/pickfirstleaf
google.golang.org/grpc/balancer/pickfirst
google.golang.org/grpc/balancer/roundrobin
google.golang.org/grpc/encoding/proto
google.golang.org/protobuf/types/known/durationpb
google.golang.org/protobuf/types/known/timestamppb
google.golang.org/protobuf/types/known/anypb
google.golang.org/grpc/binarylog/grpc_binarylog_v1
google.golang.org/genproto/googleapis/rpc/status
google.golang.org/grpc/internal/status
google.golang.org/grpc/internal/syscall
google.golang.org/grpc/status
google.golang.org/grpc/keepalive
google.golang.org/grpc/peer
google.golang.org/grpc/internal/binarylog
google.golang.org/grpc/tap
google.golang.org/grpc/internal/transport
google.golang.org/grpc/balancer/grpclb/state
google.golang.org/grpc/internal/resolver/dns/internal
google.golang.org/grpc/internal/resolver/dns
google.golang.org/grpc/resolver/dns
google.golang.org/protobuf/types/known/emptypb
github.com/osrg/gobgp/v3/pkg/log
github.com/osrg/gobgp/v3/pkg/packet/bgp
google.golang.org/grpc
github.com/osrg/gobgp/v3/api
github.com/dgryski/go-farm
github.com/eapache/channels
github.com/k-sone/critbitgo
github.com/fsnotify/fsnotify/internal
github.com/fsnotify/fsnotify
github.com/osrg/gobgp/v3/internal/pkg/version
github.com/osrg/gobgp/v3/pkg/packet/bmp
github.com/osrg/gobgp/v3/pkg/packet/rtr
github.com/osrg/gobgp/v3/pkg/zebra
github.com/osrg/gobgp/v3/pkg/apiutil
github.com/go-viper/mapstructure/v2/internal/errors
github.com/go-viper/mapstructure/v2
github.com/sourcegraph/conc/panics
github.com/sourcegraph/conc
github.com/sourcegraph/conc/internal/multierror
github.com/sourcegraph/conc/iter
github.com/spf13/afero/internal/common
github.com/spf13/afero/mem
golang.org/x/text/runes
github.com/spf13/cast
github.com/spf13/afero
golang.org/x/text/encoding
golang.org/x/text/encoding/internal
golang.org/x/text/encoding/unicode
github.com/subosito/gotenv
github.com/sagikazarmark/locafero
github.com/spf13/viper/internal/encoding/dotenv
github.com/spf13/viper/internal/encoding/json
github.com/pelletier/go-toml/v2/internal/danger
github.com/spf13/viper/internal/encoding/yaml
github.com/osrg/gobgp/v3/pkg/packet/mrt
github.com/pelletier/go-toml/v2/unstable
github.com/lxc/incus/v6/internal/server/config
github.com/pelletier/go-toml/v2/internal/tracker
github.com/lxc/incus/v6/internal/server/cluster/config
github.com/pelletier/go-toml/v2
encoding/base32
golang.org/x/net/bpf
golang.org/x/net/internal/socket
golang.org/x/net/ipv4
github.com/spf13/viper/internal/encoding/toml
github.com/spf13/viper
golang.org/x/net/ipv6
github.com/osrg/gobgp/v3/pkg/config/oc
github.com/miekg/dns
github.com/osrg/gobgp/v3/internal/pkg/table
github.com/osrg/gobgp/v3/pkg/server
github.com/lxc/incus/v6/internal/server/dns
github.com/armon/go-proxyproto
github.com/lxc/incus/v6/internal/server/endpoints/listeners
github.com/mdlayher/socket
github.com/mdlayher/vsock
gopkg.in/tomb.v2
internal/profile
runtime/pprof
net/http/pprof
github.com/lxc/incus/v6/internal/server/bgp
github.com/lxc/incus/v6/internal/server/endpoints
k8s.io/utils/inotify
github.com/cenkalti/backoff/v4
github.com/lxc/incus/v6/internal/server/fsmonitor/drivers
github.com/lxc/incus/v6/internal/iprange
github.com/ovn-org/libovsdb/ovsdb
github.com/lxc/incus/v6/internal/server/fsmonitor
github.com/cenkalti/hub
github.com/cenkalti/rpc2
github.com/cenkalti/rpc2/jsonrpc
expvar
github.com/beorn7/perks/quantile
github.com/ovn-org/libovsdb/mapper
github.com/cespare/xxhash/v2
github.com/prometheus/client_model/go
github.com/ovn-org/libovsdb/model
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-ic-nb
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-ic-sb
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-nb
github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-sb
github.com/ovn-org/libovsdb/database
github.com/ovn-org/libovsdb/ovsdb/serverdb
github.com/ovn-org/libovsdb/updates
github.com/prometheus/common/model
github.com/ovn-org/libovsdb/cache
runtime/metrics
github.com/prometheus/client_golang/prometheus/internal
github.com/munnerz/goautoneg
google.golang.org/protobuf/encoding/protodelim
github.com/prometheus/procfs/internal/fs
github.com/prometheus/procfs/internal/util
github.com/prometheus/procfs
github.com/prometheus/common/expfmt
github.com/lxc/incus/v6/internal/server/network/ovs/schema/ovs
github.com/lxc/incus/v6/internal/server/node
github.com/donovanhide/eventsource
github.com/google/go-querystring/query
golang.org/x/time/rate
moul.io/http2curl/v2
github.com/LINBIT/golinstor/client
github.com/prometheus/client_golang/prometheus
github.com/lxc/incus/v6/internal/server/storage/linstor
github.com/lxc/incus/v6/internal/server/cgroup
github.com/syndtr/gocapability/capability
github.com/ovn-org/libovsdb/client
github.com/lxc/incus/v6/internal/server/vsock
github.com/lxc/incus/v6/cmd/incus-benchmark
github.com/lxc/incus/v6/internal/server/network/ovn
github.com/lxc/incus/v6/internal/server/network/ovs
github.com/lxc/incus/v6/internal/eagain
github.com/lxc/incus/v6/internal/migration
github.com/lxc/incus/v6/internal/rsync
github.com/lxc/incus/v6/cmd/incus-migrate
github.com/lxc/incus/v6/cmd/incus-simplestreams
github.com/dustinkirkland/golang-petname
github.com/pierrec/lz4/v4/internal/lz4block
github.com/pierrec/lz4/v4/internal/xxh32
github.com/pierrec/lz4/v4/internal/lz4stream
github.com/pierrec/lz4/v4
github.com/insomniacslk/dhcp/interfaces
github.com/insomniacslk/dhcp/rfc1035label
github.com/u-root/uio/rand
github.com/u-root/uio/uio
github.com/josharian/native
github.com/mdlayher/packet
github.com/lxc/go-lxc
# github.com/lxc/go-lxc
# [pkg-config --cflags  -- lxc]
Package lxc was not found in the pkg-config search path.
Perhaps you should add the directory containing `lxc.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lxc' found
github.com/lxc/incus/v6/internal/filter
github.com/insomniacslk/dhcp/iana
github.com/insomniacslk/dhcp/dhcpv4
github.com/lxc/incus/v6/internal/netutils
github.com/insomniacslk/dhcp/dhcpv4/nclient4
github.com/lxc/incus/v6/internal/server/instance/drivers/edk2
github.com/lxc/incus/v6/internal/server/backup/config
github.com/lxc/incus/v6/internal/server/locking
github.com/lxc/incus/v6/internal/server/refcount
github.com/lxc/incus/v6/internal/server/storage/quota
github.com/goccy/go-json/internal/errors
github.com/goccy/go-json/internal/runtime
github.com/klauspost/compress/s2
github.com/goccy/go-json/internal/decoder
github.com/goccy/go-json/internal/encoder
github.com/klauspost/cpuid/v2
github.com/minio/crc64nvme
github.com/minio/md5-simd
github.com/dustin/go-humanize
github.com/goccy/go-json/internal/encoder/vm_color_indent
github.com/minio/minio-go/v7/pkg/cors
github.com/go-ini/ini
github.com/minio/minio-go/v7/pkg/s3utils
github.com/minio/minio-go/v7/pkg/signer
golang.org/x/sys/cpu
golang.org/x/crypto/blake2b
golang.org/x/crypto/argon2
github.com/minio/minio-go/v7/pkg/lifecycle
github.com/rs/xid
github.com/minio/minio-go/v7/pkg/replication
github.com/minio/minio-go/v7/pkg/sse
github.com/minio/minio-go/v7/pkg/tags
net/http/cookiejar
golang.org/x/net/publicsuffix
hash/crc64
github.com/bmatcuk/doublestar/v4
github.com/go-chi/chi/v5
github.com/muhlemmer/httpforwarded
github.com/rs/cors/internal
github.com/rs/cors
github.com/zitadel/oidc/v3/pkg/op
github.com/goccy/go-json/internal/encoder/vm_color
github.com/lxc/incus/v6/internal/server/auth/oidc
golang.org/x/sync/semaphore
github.com/cowsql/go-cowsql/app
archive/zip
github.com/digitalocean/go-smbios/smbios
github.com/mitchellh/go-homedir
github.com/jaypipes/pcidb
github.com/lxc/incus/v6/internal/usbid
github.com/lxc/incus/v6/internal/server/resources
github.com/lxc/incus/v6/internal/server/task
github.com/lxc/incus/v6/internal/server/warnings
github.com/google/gopacket
github.com/google/gopacket/layers
github.com/goccy/go-json/internal/encoder/vm_indent
github.com/j-keck/arping
github.com/jkeiser/iter
github.com/jochenvg/go-udev
# github.com/jochenvg/go-udev
vendor/github.com/jochenvg/go-udev/device.go:7:12: fatal error: libudev.h: No such file or directory
    7 |   #include <libudev.h>
      |            ^~~~~~~~~~~
compilation terminated.
github.com/lxc/incus/v6/internal/server/device/pci
github.com/mdlayher/netx/eui64
golang.org/x/net/icmp
github.com/mdlayher/ndp
google.golang.org/protobuf/types/descriptorpb
github.com/checkpoint-restore/go-criu/v6/crit/images
github.com/goccy/go-json/internal/encoder/vm
github.com/checkpoint-restore/go-criu/v6/crit
github.com/digitalocean/go-libvirt/internal/event
github.com/digitalocean/go-libvirt/internal/go-xdr/xdr2
github.com/digitalocean/go-libvirt/socket
golang.org/x/crypto/ssh/agent
golang.org/x/crypto/ssh/knownhosts
github.com/digitalocean/go-libvirt/socket/dialers
github.com/digitalocean/go-libvirt
github.com/digitalocean/go-qemu/qmp
github.com/lxc/incus/v6/internal/server/instance/drivers/qmp
github.com/lxc/incus/v6/shared/api/scriptlet
github.com/lxc/incus/v6/internal/server/template
github.com/opencontainers/runtime-spec/specs-go
github.com/lxc/incus/v6/internal/server/loki
github.com/lxc/incus/v6/internal/server/metadata
github.com/lxc/incus/v6/internal/server/syslog
github.com/lxc/incus/v6/internal/server/ucred
github.com/lxc/incus/v6/cmd/lxd-to-incus
github.com/lxc/incus/v6/internal/dnsutil
github.com/lxc/incus/v6/test/dev_incus-client
golang.org/x/exp/slices
golang.org/x/exp/slog/internal/buffer
golang.org/x/exp/slog
github.com/lxc/incus/v6/test/mini-oidc/storage
github.com/lxc/incus/v6/test/mini-oidc
github.com/lxc/incus/v6/test/syscall/sysinfo
github.com/lxc/incus/v6/test/tls2jwt
github.com/goccy/go-json
github.com/minio/minio-go/v7/pkg/encrypt
github.com/minio/minio-go/v7/pkg/credentials
github.com/minio/minio-go/v7/pkg/set
github.com/minio/minio-go/v7/pkg/notification
github.com/minio/minio-go/v7
make: *** [Makefile:37: build] Error 1
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ go version
go version go1.23.8 linux/amd64
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ hostnamectl
 Static hostname: user-Standard-PC-Q35-ICH9-2009
       Icon name: computer-vm
         Chassis: vm
      Machine ID: f90edd158451465185f03c45d6de8890
         Boot ID: 98cbb6fda90148338b451b464be19110
  Virtualization: kvm
Operating System: Ubuntu 22.04.5 LTS              
          Kernel: Linux 6.8.0-49-generic
    Architecture: x86-64
 Hardware Vendor: QEMU
  Hardware Model: Standard PC _Q35 + ICH9, 2009_
user@user-Standard-PC-Q35-ICH9-2009:~/incus-6.11$ 

vivekkoya avatar Apr 11 '25 00:04 vivekkoya

Your errors suggest that you have some of the development packages missing on your system, libudev-dev shows up a couple of times in your logs as something that you're missing, but there are no doubt others.

The documentation says to run:

sudo apt install acl attr autoconf automake dnsmasq-base git golang-go libacl1-dev libcap-dev liblxc1 lxc-dev libsqlite3-dev libtool libudev-dev liblz4-dev libuv1-dev make pkg-config rsync squashfs-tools tar tcl xz-utils ebtables

This would have installed both libudev-dev and libcap-dev which are the cause of the errors you're showing.

stgraber avatar Apr 11 '25 06:04 stgraber

Hi,

[Corrected: I was able to run incus admin init in a separate shell after running sudo ./incusd] Should I work on creating an outline for the driver_nfs.go file? Thanks

Thanks, I got the Incus binary built and available in ~/go/bin/. I received this error: ./incusd: error while loading shared libraries: libcowsql.so.0: cannot open shared object file: No such file or directory. I tried to solve this issue by copying the shared libraries with cp /home/user/incus-6.11/vendor/cowsql/.libs/* /usr/lib/x86_64-linux-gnu/.

~~Now when I run sudo ./incusd I don't receive any response from the terminal~~

Setup Logs:

user@incus-client:~/go/bin$ sudo ./incus admin init
Would you like to use clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: 
Name of the new storage pool [default=default]: 
Name of the storage backend to use (lvm, lvmcluster, btrfs, ceph, zfs, dir) [default=zfs]: 
Create a new ZFS pool? (yes/no) [default=yes]: 
Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]: 
Size in GiB of the new loop device (1GiB minimum) [default=5GiB]: 
Would you like to create a new local network bridge? (yes/no) [default=yes]: 
What should the new bridge be called? [default=incusbr0]: 
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
Would you like the server to be available over the network? (yes/no) [default=no]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: 
Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]: yes
config: {}
networks:
- config:
    ipv4.address: auto
    ipv6.address: auto
  description: ""
  name: incusbr0
  type: ""
  project: default
storage_pools:
- config:
    size: 5GiB
  description: ""
  name: default
  driver: zfs
storage_volumes: []
profiles:
- config: {}
  description: ""
  devices:
    eth0:
      name: eth0
      network: incusbr0
      type: nic
    root:
      path: /
      pool: default
      type: disk
  name: default
  project: default
projects: []
cluster: null

user@incus-client:~/go/bin$ sudo ./incus ls
+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+

vivekkoya avatar Apr 11 '25 21:04 vivekkoya

Yep, driver_nfs.go would be what I'd work on next.

stgraber avatar Apr 11 '25 23:04 stgraber

This is what I have so far for driver_nfs.go. Should I call the methods in driver_dir.go inside the respective functions? Also, I have been studying the implementation in https://docs.kernel.org/admin-guide/nfs/nfs-client.html and https://www.ietf.org/rfc/rfc3530.txt to understand what needs to be implemented. Please let me know if I am on the right track. Appreciate the support.

package drivers


import (
        "errors"
        "fmt"
        "io/fs"
        "net/http"
        "os"
        "os/exec"
        "path/filepath"
        "slices"
        "strconv"
        "strings"
        "sync"
        "time"

        "github.com/lxc/incus/v6/internal/linux"
        deviceConfig "github.com/lxc/incus/v6/internal/server/device/config"
        "github.com/lxc/incus/v6/internal/server/operations"
        "github.com/lxc/incus/v6/internal/server/state"
        "github.com/lxc/incus/v6/shared/api"
        "github.com/lxc/incus/v6/shared/logger"
        "github.com/lxc/incus/v6/shared/revert"
        "github.com/lxc/incus/v6/shared/subprocess"
        "github.com/lxc/incus/v6/shared/units"
        "github.com/lxc/incus/v6/shared/util"
        "github.com/lxc/incus/v6/shared/validate"
)

type nfs struct {

}

func (d *nfs) load() error {


}

func (d *nfs) Info() Info {
        return Info{
        }
}

func (d *nfs) FillConfig() error {


}

func (d *nfs) Create() error {


}

func (d *nfs) Delete(op *operations.Operation) error {


}

func (d *nfs) Validate(config map[string]string) error {

}

func (d *nfs) Update(changedConfig map[string]string) error {

}


func (d *nfs) Mount() (bool, error) {



}

func (d *nfs) Unmount() (bool, error) {

}

func (d *nfs) GetResources() (*api.ResourcesStoragePool, error) {

}

vivekkoya avatar Apr 13 '25 06:04 vivekkoya

You should be able to just do:

type nfs struct {
    dir
}

Which would then have the nfs struct inherit everything from dir. That way you only need to re-define the functions that need to behave differently and the rest will just be inherited from dir.

stgraber avatar Apr 13 '25 17:04 stgraber

@vivekkoya I've written up a minimal implementation of a nfs storage pool. Please do help me test :)

https://github.com/lxc/incus/pull/2025

Foxboron avatar May 01 '25 11:05 Foxboron

@vivekkoya I've written up a minimal implementation of a nfs storage pool. Please do help me test :)

https://github.com/lxc/incus/pull/2025

Yes, will test shortly

vivekkoya avatar May 07 '25 15:05 vivekkoya