Start building rousette

Also, given that the CI-built images were already peaking at 395 MB used
in rootfs, add some breathing space.

Change-Id: Ia1b3485364ba0f3fa23b77c867ff51a9d8cefacc
diff --git a/.gitmodules b/.gitmodules
index 669c57f..599aae4 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,3 +16,6 @@
 [submodule "submodules/lldp-systemd-networkd-sysrepo"]
 	path = submodules/lldp-systemd-networkd-sysrepo
 	url = ../lldp-systemd-networkd-sysrepo
+[submodule "submodules/rousette"]
+	path = submodules/rousette
+	url = ../rousette
diff --git a/.zuul.yaml b/.zuul.yaml
index 71a4ff2..51df62a 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -14,6 +14,7 @@
       - CzechLight/netconf-cli
       - CzechLight/velia
       - CzechLight/lldp-systemd-networkd-sysrepo
+      - CzechLight/rousette
       - github/CESNET/libyang
       - github/sysrepo/sysrepo
       - github/CESNET/libnetconf2
diff --git a/board/czechlight/common/os-release.sh b/board/czechlight/common/os-release.sh
index e753ad7..f9f9f13 100755
--- a/board/czechlight/common/os-release.sh
+++ b/board/czechlight/common/os-release.sh
@@ -14,6 +14,7 @@
 CLA_CPP_DEPENDENCIES_REV=$(czechlight_describe_git $(czechlight_query_local_make_var CLA_SYSREPO_OVERRIDE_SRCDIR)/submodules/dependencies)
 GAMMARUS_REV=$(czechlight_describe_git $(czechlight_query_local_make_var GAMMARUS_OVERRIDE_SRCDIR))
 VELIA_REV=$(czechlight_describe_git $(czechlight_query_local_make_var VELIA_OVERRIDE_SRCDIR))
+ROUSETTE_REV=$(czechlight_describe_git $(czechlight_query_local_make_var VELIA_OVERRIDE_SRCDIR))
 
 sed -i \
 	-e 's/^VERSION_ID=/BUILDROOT_VERSION_ID=/' \
@@ -33,5 +34,5 @@
 NETCONF_CLI_VERSION=${NETCONF_CLI_REV}
 CPP_DEPENDENCIES_VERSION=${CLA_CPP_DEPENDENCIES_REV}
 GAMMARUS_VERSION=${GAMMARUS_REV}
-VELIA_VERSION=${VELIA_REV}
+ROUSETTE_VERSION=${ROUSETTE_REV}
 EOF
diff --git a/ci/build.sh b/ci/build.sh
index 3577561..8672849 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -61,7 +61,7 @@
     # We don't use gating, so there's a risk that there's no prebuilt artifact, so don't die if we cannot download that file
     curl ${ARTIFACT_URL} | unzstd --stdout | tar -xf - || echo "No Buildroot prebuilt tarball found, will build from scratch"
 
-    for PROJECT in cla-sysrepo netconf-cli gammarus velia lldp-systemd-networkd-sysrepo; do
+    for PROJECT in cla-sysrepo netconf-cli gammarus velia rousette lldp-systemd-networkd-sysrepo; do
         # If there's a change for ${PROJECT} queued ahead, ensure it gets used.
         # This means that if our submodules still pin, say, `cla-sysrepo` to some ancient version and we're testing a `netconf-cli` change,
         # then we will keep using that ancient `cla-sysrepo`. Hopefully this reduces the number of false alerts.
diff --git a/configs/czechlight_clearfog_defconfig b/configs/czechlight_clearfog_defconfig
index 316a7ab..d6bec49 100644
--- a/configs/czechlight_clearfog_defconfig
+++ b/configs/czechlight_clearfog_defconfig
@@ -4,7 +4,7 @@
 BR2_ARM_ENABLE_VFP=y
 BR2_ARM_FPU_NEON=y
 BR2_ENABLE_DEBUG=y
-BR2_STRIP_EXCLUDE_FILES="cla-* netopeer* *sysrepo* libSysrepo* *netconf* *yang* velia* lldp-systemd-networkd-sysrepod"
+BR2_STRIP_EXCLUDE_FILES="cla-* netopeer* *sysrepo* libSysrepo* *netconf* *yang* velia* lldp-systemd-networkd-sysrepod rousette*"
 BR2_STRIP_EXCLUDE_DIRS="/usr/lib/libyang /usr/lib/sysrepo"
 BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/common/patches"
 BR2_PER_PACKAGE_DIRECTORIES=y
@@ -54,7 +54,6 @@
 BR2_PACKAGE_MSTPD=y
 BR2_PACKAGE_NETOPEER2=y
 BR2_PACKAGE_NETOPEER2_CLI=y
-BR2_PACKAGE_NGHTTP2_CXX=y
 BR2_PACKAGE_ELFUTILS=y
 BR2_PACKAGE_LIBUNWIND=y
 BR2_PACKAGE_ETHTOOL=y
@@ -81,7 +80,7 @@
 BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
-BR2_TARGET_ROOTFS_EXT2_SIZE="400M"
+BR2_TARGET_ROOTFS_EXT2_SIZE="450M"
 BR2_TARGET_ROOTFS_TAR_XZ=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
@@ -116,3 +115,4 @@
 BR2_PACKAGE_LLDP_SYSTEMD_NETWORKD_SYSREPO=y
 BR2_PACKAGE_VELIA=y
 BR2_PACKAGE_RESET_SYSREPO=y
+BR2_PACKAGE_ROUSETTE=y
diff --git a/dev-setup-git.sh b/dev-setup-git.sh
index 6a98dca..510e157 100755
--- a/dev-setup-git.sh
+++ b/dev-setup-git.sh
@@ -24,6 +24,7 @@
 GAMMARUS_OVERRIDE_SRCDIR = ${CZECHLIGHT_BR2_EXT_LOC}/submodules/gammarus
 VELIA_OVERRIDE_SRCDIR = ${CZECHLIGHT_BR2_EXT_LOC}/submodules/velia
 LLDP_SYSTEMD_NETWORKD_SYSREPO_OVERRIDE_SRCDIR = ${CZECHLIGHT_BR2_EXT_LOC}/submodules/lldp-systemd-networkd-sysrepo
+ROUSETTE_OVERRIDE_SRCDIR = ${CZECHLIGHT_BR2_EXT_LOC}/submodules/rousette
 
 define CZECHLIGHT_GIT_FIX_GITDIR
 	echo "gitdir: \$\$(git rev-parse --resolve-git-dir \$(SRCDIR)/.git)" > \$(@D)/.git
@@ -33,6 +34,7 @@
 GAMMARUS_POST_RSYNC_HOOKS += CZECHLIGHT_GIT_FIX_GITDIR
 VELIA_POST_RSYNC_HOOKS += CZECHLIGHT_GIT_FIX_GITDIR
 LLDP_SYSTEMD_NETWORKD_SYSREPO_POST_RSYNC_HOOKS += CZECHLIGHT_GIT_FIX_GITDIR
+ROUSETTE_POST_RSYNC_HOOKS += CZECHLIGHT_GIT_FIX_GITDIR
 
 EOF
 
diff --git a/package/Config.in b/package/Config.in
index 4d73ced..95d41c6 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -8,3 +8,4 @@
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/velia/Config.in"
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/grub2-tools/Config.in"
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/reset-sysrepo/Config.in"
+source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/rousette/Config.in"
diff --git a/package/rousette/Config.in b/package/rousette/Config.in
new file mode 100644
index 0000000..423709f
--- /dev/null
+++ b/package/rousette/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_ROUSETTE
+	bool "rousette"
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_DOCOPT_CPP
+	select BR2_PACKAGE_LIBYANG
+	select BR2_PACKAGE_LIBYANG_CPP
+	select BR2_PACKAGE_NGHTTP2
+	select BR2_PACKAGE_NGHTTP2_CXX
+	select BR2_PACKAGE_SPDLOG
+	select BR2_PACKAGE_SYSTEMD
+	select BR2_PACKAGE_SYSREPO
+	select BR2_PACKAGE_SYSREPO_CPP
+	help
+	  RESTCONF-ish server on top of sysrepo
+
+	  https://gerrit.cesnet.cz/q/project:CzechLight/rousette
diff --git a/package/rousette/rousette.mk b/package/rousette/rousette.mk
new file mode 100644
index 0000000..b51983d
--- /dev/null
+++ b/package/rousette/rousette.mk
@@ -0,0 +1,12 @@
+ROUSETTE_VERSION = master
+ROUSETTE_SITE = https://gerrit.cesnet.cz/CzechLight/rousette
+ROUSETTE_SITE_METHOD = git
+ROUSETTE_INSTALL_STAGING = NO
+ROUSETTE_DEPENDENCIES = boost docopt-cpp nghttp2 spdlog systemd sysrepo
+ROUSETTE_LICENSE = Apache-2.0
+ROUSETTE_LICENSE_FILES = LICENSE.md
+
+ROUSETTE_CONF_OPTS = \
+	-DTHREADS_PTHREAD_ARG:STRING=-pthread
+
+$(eval $(cmake-package))
diff --git a/submodules/rousette b/submodules/rousette
new file mode 160000
index 0000000..30f3b3e
--- /dev/null
+++ b/submodules/rousette
@@ -0,0 +1 @@
+Subproject commit 30f3b3e954d456792988322b148b22ec6c302f92