Author: Andy Green Date: Mon Oct 26 06:56:59 2020 +0000 docs: nspawn update and fix env change diff --git a/READMEs/README-systemd-nspawn.md b/READMEs/README-systemd-nspawn.md index 1e54ca6..739c7f1 100644 --- a/READMEs/README-systemd-nspawn.md +++ b/READMEs/README-systemd-nspawn.md @@ -110,6 +110,14 @@ root@myhost:~# useradd -u883 -gnogroup sai -d/home/sai -m -r For redhat type systems, use `-gnobody` instead +### Specific to Debian Buster / Sid + +If a 32-bit install, leave out libc6-i386 + +``` +Container # apt install sudo make git gcc cmake net-tools libssl-dev vim libc6-i386 dbus systemd-container libmbedtls-dev libev4 libev-dev libuv1 libuv1-dev libmount-dev libsqlite0-dev libgit2-dev inetutils-ping psmisc libgit2-27 libmbedcrypto3 libmbedtls12 libmbedx509-0 libmbedtls-dev libevent-2.1-6 libevent-dev libglib2.0-0 libsqlite3-0 libsqlite3-dev pkg-config libglib2.0-dev libglib2.0-0 libdbus-1-dev libdbus-1-3 g++ +``` + ### Specific to Ubuntu We have to enable the "universe" packageset to get normal things. @@ -137,13 +145,13 @@ Container # apt install sudo make git gcc cmake net-tools libssl-dev vim libc6-i ### Specific to Bionic ``` -apt install sudo make git gcc cmake net-tools libssl-dev vim libc6-i386 dbus systemd-container libmbedtls-dev libev4 libev-dev libuv1 libuv1-dev libmount-dev libsqlite0-dev libgit2-dev inetutils-ping psmisc libgit2-26 libmbedcrypto1 libmbedtls10 libmbedx509-0 libmbedtls-dev libevent-2.1-6 libevent-dev libglib2.0-0 libsqlite3-0 libsqlite3-dev pkg-config libglib2.0-dev libglib2.0-0 libdbus-1-dev libdbus-1-3 +Container # apt install sudo make git gcc cmake net-tools libssl-dev vim libc6-i386 dbus systemd-container libmbedtls-dev libev4 libev-dev libuv1 libuv1-dev libmount-dev libsqlite0-dev libgit2-dev inetutils-ping psmisc libgit2-26 libmbedcrypto1 libmbedtls10 libmbedx509-0 libmbedtls-dev libevent-2.1-6 libevent-dev libglib2.0-0 libsqlite3-0 libsqlite3-dev pkg-config libglib2.0-dev libglib2.0-0 libdbus-1-dev libdbus-1-3 ``` ### Specific to Focal ``` -apt install sudo make git gcc cmake net-tools libssl-dev vim libc6-i386 dbus systemd-container libmbedtls-dev libevent-2.1-7 libev4 libev-dev libuv1 libuv1-dev libmount-dev libsqlite0-dev libgit2-dev inetutils-ping psmisc libgit2-28 libmbedcrypto3 libmbedtls12 libmbedx509-0 libmbedtls-dev libev4 libev-dev libevent-2.1-7 libevent-dev libglib2.0-0 libsqlite3-0 libsqlite3-dev pkg-config libglib2.0-dev libglib2.0-0 +Container # apt install sudo make git gcc cmake net-tools libssl-dev vim libc6-i386 dbus systemd-container libmbedtls-dev libevent-2.1-7 libev4 libev-dev libuv1 libuv1-dev libmount-dev libsqlite0-dev libgit2-dev inetutils-ping psmisc libgit2-28 libmbedcrypto3 libmbedtls12 libmbedx509-0 libmbedtls-dev libev4 libev-dev libevent-2.1-7 libevent-dev libglib2.0-0 libsqlite3-0 libsqlite3-dev pkg-config libglib2.0-dev libglib2.0-0 ``` ### Specific to Fedora @@ -243,12 +251,12 @@ will get networking services cleanly. We will call the related NetworkManager connection `nm-...` ``` -Host # nmcli c add type ethernet autoconnect no con-name nm-ve-xenial ifname ve-xenial-amd64 -Host # nmcli c m nm-ve-xenial ipv4.method shared -Host # nmcli c m nm-ve-xenial ipv4.addresses 192.168.80.1/24 -Host # nmcli c m nm-ve-xenial connection.zone vm -Host # nmcli c m nm-ve-xenial connection.autoconnect true -Host # nmcli c down nm-ve-xenial ; nmcli c up nm-ve-xenial +Host # export NMNAME=ve-xenial ; nmcli c add type ethernet autoconnect no con-name nm-$NMNAME ifname $NMNAME ;\ + nmcli c m nm-$NMNAME ipv4.method shared ; \ + nmcli c m nm-$NMNAME ipv4.addresses 192.168.80.1/24 ; \ + nmcli c m nm-$NMNAME connection.zone vm ; \ + nmcli c m nm-$NMNAME connection.autoconnect true ; \ + nmcli c down nm-$NMNAME ; nmcli c up nm-$NMNAME ``` ## Step 6: Restart the container @@ -313,7 +321,7 @@ Container # git clone https://libwebsockets.org/repo/libwebsockets Container # cd libwebsockets && mkdir build && cd build && \ cmake .. -DLWS_UNIX_SOCK=1 -DLWS_WITH_STRUCT_JSON=1 \ -DLWS_WITH_STRUCT_SQLITE3=1 -DLWS_WITH_GENCRYPTO=1 -DLWS_WITH_SPAWN=1 \ - -DLWS_WITH_SECURE_STREAMS=1 -DLWS_WITH_THREADPOOL=1 + -DLWS_WITH_SECURE_STREAMS=1 -DLWS_WITH_THREADPOOL=1 -DLWS_WITH_JOSE=1 Container # make -j && make -j install && ldconfig ``` diff --git a/assets/arch-x86-amd.svg b/assets/arch-x86-amd.svg new file mode 100644 index 0000000..baf1a5d --- /dev/null +++ b/assets/arch-x86-amd.svg @@ -0,0 +1 @@ +32 \ No newline at end of file diff --git a/assets/linux-debian-buster.svg b/assets/linux-debian-buster.svg new file mode 100644 index 0000000..2c06689 --- /dev/null +++ b/assets/linux-debian-buster.svg @@ -0,0 +1,34 @@ + + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + +10 + + diff --git a/assets/linux-debian-sid.svg b/assets/linux-debian-sid.svg new file mode 100644 index 0000000..b327508 --- /dev/null +++ b/assets/linux-debian-sid.svg @@ -0,0 +1,53 @@ + + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +sid + + diff --git a/assets/linux-debian-sid32.svg b/assets/linux-debian-sid32.svg new file mode 100644 index 0000000..d55bc71 --- /dev/null +++ b/assets/linux-debian-sid32.svg @@ -0,0 +1 @@ +sid32 \ No newline at end of file diff --git a/assets/tc-noptmsvc.svg b/assets/tc-noptmsvc.svg new file mode 100644 index 0000000..dd47f12 --- /dev/null +++ b/assets/tc-noptmsvc.svg @@ -0,0 +1 @@ + diff --git a/cmake/sai_config_private.h.in b/cmake/sai_config_private.h.in new file mode 100644 index 0000000..4cb0c69 --- /dev/null +++ b/cmake/sai_config_private.h.in @@ -0,0 +1 @@ +%cmakedefine LIBGIT2_HAVE_GIT_PROXY_OPTIONS_INIT diff --git a/scripts/builder-conf b/scripts/builder-conf index eea8f3c..ae69ffc 100644 --- a/scripts/builder-conf +++ b/scripts/builder-conf @@ -8,7 +8,7 @@ "platforms": [ { - "name": "linux-ubuntu-xenial-amd64", + "name": "linux-debian-buster/x86_64-amd/gcc", "instances": 1, "masters": [ "wss://warmcat.com/sai/builder" ] } diff --git a/src/builder/CMakeLists.txt b/src/builder/CMakeLists.txt index 62d9b30..f8cfae0 100644 --- a/src/builder/CMakeLists.txt +++ b/src/builder/CMakeLists.txt @@ -55,7 +55,25 @@ if (requirements) if (SAI_HAVE_LIBGIT2_GIT_ERROR) set(CMAKE_C_FLAGS "-DSAI_HAVE_LIBGIT2_GIT_ERROR ${CMAKE_C_FLAGS}") endif() - + + CHECK_C_SOURCE_COMPILES(" + #include + int main(int argc, char **argv) { + git_proxy_options o; + git_proxy_options_init(&o, GIT_PROXY_OPTIONS_VERSION); + return 0; + }" LIBGIT2_HAVE_GIT_PROXY_OPTIONS_INIT) + + if (LIBGIT2_HAVE_GIT_PROXY_OPTIONS_INIT) + set(CMAKE_C_FLAGS "-DLIBGIT2_HAVE_GIT_PROXY_OPTIONS_INIT ${CMAKE_C_FLAGS}") + endif() + + #configure_file("${PROJECT_SOURCE_DIR}/cmake/sai_config_private.h.in" + # "${PROJECT_BINARY_DIR}/sai_config_private.h") + # + #target_include_directories("sai-builder" PRIVATE "${PROJECT_BINARY_DIR}") + + if (SAI_LWS_INC_PATH) target_include_directories("sai-builder" PRIVATE ${SAI_LWS_INC_PATH}) diff --git a/src/builder/b-mirror.c b/src/builder/b-mirror.c index b2ce43e..02c0df7 100644 --- a/src/builder/b-mirror.c +++ b/src/builder/b-mirror.c @@ -137,6 +137,10 @@ sai_mirror_local_checkout(struct sai_nspawn *ns) * This may take an open-ended amount of time */ +#if defined(LIBGIT2_HAVE_GIT_PROXY_OPTIONS_INIT) + git_proxy_options_init(&opts.proxy_opts, GIT_PROXY_OPTIONS_VERSION); +#endif + n = git_remote_fetch(remote, &rfs, &opts, "fetch"); git_remote_free(remote); if (n) { diff --git a/src/builder/b-nspawn.c b/src/builder/b-nspawn.c index 308c7a2..e55542e 100644 --- a/src/builder/b-nspawn.c +++ b/src/builder/b-nspawn.c @@ -300,7 +300,7 @@ saib_spawn(struct sai_nspawn *ns) memset(&info, 0, sizeof(info)); info.vh = builder.vhost; - info.env_array = env; + info.env_array = (const char **)env; info.exec_array = cmd; info.protocol_name = "sai-stdxxx"; info.max_log_lines = 10000; diff --git a/src/common/include/private.h b/src/common/include/private.h index f4ec979..09e1ff7 100644 --- a/src/common/include/private.h +++ b/src/common/include/private.h @@ -21,6 +21,8 @@ * structs common to builder and master */ +//#include + #if defined(__linux__) #define UDS_PATHNAME_LOGPROXY "@com.warmcat.com.saib.logproxy" #else