Use new, daemon-less sysrepo for YANG management
Updating all dependencies so that we're using the new sysrepo. The easiest way
there was via bringing in the new buildroot as well, which meant:
- new RAUC, hence no patch needed anymore,
- newer systemd, hence an updated patch,
- New spdlog and fmt, which means that the version we ship in
submodules/dependencies no longer works. Fix that by just relying on
systemwide spdlog.
- uboot-tools needed a patch because there's no /var/lock,
- OpenSSH was previously started autmagically, now we're explicitly
adding that to the list of packages (I really like SSH, don't you?).
New sysrepo means that there's no `sysrepod` anymore, which required
changing a bunch of other units so that they are not marked as
`PartOf=sysrepod.service` anymore. Also, the command-line options for
`sysrepocfg` and `sysrepoctl` changed.
I had to patch buildroot so that it doesn't create SSH keys for the
NETCONF server at build time, and that all required modules are actually
installed. It turns out that new sysrepo doesn't really install
anything, and the fun only starts with Netopeer2. Their install scripts
a wee bit picky, but hey, we have bash, we can make it work.
On the other hand, installation of *our* YANG modules is a bit hairy.
There's just too much parallel activities going on, and therefore I have
no idea how robust our callout to `sysrepoctl --apply` really is. As a
cherry on top, `sysrepocfg` is particularly inconsistent when it comes
to how the **** one is supposed to provision the initial config, etc
etc. In the end, I ended up with a big hammer.
Installation of all non-netopeer2 YANG modules now happens from just a
single script, the previous way was very fragile and failed quite often
-- probably because that "wonderful" new way of installing a module and
possibly enabling a feature and also importing some data which might or
might not be the required initial data, so *THAT* thing, depended on
whether there already was or was not another SW connection. Wonderful.
If only there was a oneliner for that, then we could have avoided all
this stupid boilerplate. Oh well.
On the other hand, the `cla-sysrepod` is now properly signalling its
"up-and-running" status to systemd, *and* this up-and-running state is
only reached once the configuration has been propagated to the optical
HW. As a result, the HW watchdog will recover from an upload of a broken
FW (or, alternatively, it will keep rebooting if the optical HW is
FUBAR -- pick your poison, sir).
Change-Id: I4b65a8fb345bfe7907a331d0de16294af1c36a78
diff --git a/configs/czechlight_clearfog_defconfig b/configs/czechlight_clearfog_defconfig
index 1c75875..922287e 100644
--- a/configs/czechlight_clearfog_defconfig
+++ b/configs/czechlight_clearfog_defconfig
@@ -10,6 +10,7 @@
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_SSP_STRONG=y
BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y
BR2_TARGET_OPTIMIZATION="-Wno-psabi"
BR2_TARGET_GENERIC_HOSTNAME="czechlight"
@@ -43,24 +44,21 @@
BR2_PACKAGE_PICOCOM=y
BR2_PACKAGE_PMBUS_PEEK=y
BR2_PACKAGE_SPI_TOOLS=y
-BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_CA_CERTIFICATES=y
-BR2_PACKAGE_LIBSSH=y
-BR2_PACKAGE_LIBSSH_SERVER=y
BR2_PACKAGE_LIBGPIOD_TOOLS=y
BR2_PACKAGE_MSTPD=y
+BR2_PACKAGE_NETOPEER2_CLI=y
BR2_PACKAGE_NGHTTP2_CXX=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_NETCONF_CLI=y
-BR2_PACKAGE_NETOPEER2_CLI=y
+BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_TCPDUMP=y
BR2_PACKAGE_BASH=y
BR2_PACKAGE_INOTIFY_TOOLS=y
BR2_PACKAGE_DDRESCUE=y
BR2_PACKAGE_RAUC=y
BR2_PACKAGE_RAUC_NETWORK=y
-BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY=y
BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE=y
# BR2_PACKAGE_SYSTEMD_HWDB is not set
BR2_PACKAGE_SYSTEMD_RANDOMSEED=y
@@ -87,11 +85,11 @@
# BR2_TARGET_UBOOT_FORMAT_BIN is not set
BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-spl.kwb"
-BR2_TARGET_UBOOT_BOOT_SCRIPT=y
-BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/boot.scr.txt"
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_CZECHLIGHT_PATH)/board/czechlight/clearfog/boot.scr.txt"
CZECHLIGHT_CFG_FS_SIZE="256M"
CZECHLIGHT_CFG_FS_PERSIST_SYSREPO=y
CZECHLIGHT_CFG_FS_PERSIST_KEYS=y
@@ -103,6 +101,6 @@
CZECHLIGHT_RAUC_SLOT_B_ROOTFS_DEV="/dev/mmcblk0p3"
CZECHLIGHT_RAUC_SLOT_B_CFG_DEV="/dev/mmcblk0p4"
BR2_PACKAGE_GAMMARUS=y
-BR2_PACKAGE_VELIA=y
BR2_PACKAGE_LLDP_SYSTEMD_NETWORKD_SYSREPO=y
+BR2_PACKAGE_VELIA=y
CZECHLIGHT_NETCONF=y