Build lldp-systemd-networkd-sysrepod

Change-Id: I2c1efc2729d4a84fad4d38dd7048801e39423cde
Depends-on: https://cesnet-gerrit-czechlight/c/CzechLight/lldp-systemd-networkd-sysrepo/+/3117
Depends-on: https://cesnet-gerrit-public/c/CzechLight/lldp-systemd-networkd-sysrepo/+/3117
Depends-on: https://gerrit.cesnet.cz/c/CzechLight/lldp-systemd-networkd-sysrepo/+/3117
diff --git a/package/Config.in b/package/Config.in
index 13a2666..d09116f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -4,5 +4,6 @@
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/czechlight-rauc/Config.in"
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/czechlight-separate-boot/Config.in"
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/gammarus/Config.in"
+source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/lldp-systemd-networkd-sysrepo/Config.in"
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/velia/Config.in"
 source "$BR2_EXTERNAL_CZECHLIGHT_PATH/package/grub2-tools/Config.in"
diff --git a/package/lldp-systemd-networkd-sysrepo/Config.in b/package/lldp-systemd-networkd-sysrepo/Config.in
new file mode 100644
index 0000000..4b9e418
--- /dev/null
+++ b/package/lldp-systemd-networkd-sysrepo/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_LLDP_SYSTEMD_NETWORKD_SYSREPO
+	bool "lldp-systemd-networkd-sysrepo"
+	select BR2_PACKAGE_SPDLOG
+	select BR2_PACKAGE_SDBUS_CPP
+	select BR2_PACKAGE_SYSTEMD
+	select BR2_PACKAGE_DOCOPT_CPP
+	select BR2_PACKAGE_SYSREPO
+	select BR2_PACKAGE_SYSREPO_CPP
+	help
+	  lldp-systemd-networkd-sysrepo is a sysrepo application announcing LLDP neighbours from systemd-networkd.
+
+	  https://gerrit.cesnet.cz/q/project:CzechLight/lldp-systemd-networkd-sysrepo
diff --git a/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo-install-yang.service b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo-install-yang.service
new file mode 100644
index 0000000..003f7e2
--- /dev/null
+++ b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo-install-yang.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Install YANG and initial data for lldp-systemd-networkd-sysrepo
+Requires=sysrepod.service
+Before=sysrepod.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/sysrepoctl --install --yang /usr/share/lldp-systemd-networkd-sysrepo/yang/czechlight-lldp.yang
+ExecStart=/usr/bin/sysrepoctl --install --yang /usr/share/lldp-systemd-networkd-sysrepo/yang/iana-afn-safi@2013-07-04.yang
+ExecStart=/usr/bin/sysrepoctl --install --yang /usr/share/lldp-systemd-networkd-sysrepo/yang/ietf-inet-types@2013-07-15.yang
+ExecStart=/bin/cp -a /etc/sysrepo /cfg/etc/
+
+[Install]
+WantedBy=multi-user.target
diff --git a/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.hash b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.hash
new file mode 100644
index 0000000..075e53a
--- /dev/null
+++ b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.hash
@@ -0,0 +1 @@
+none xxx
diff --git a/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.mk b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.mk
new file mode 100644
index 0000000..84f6252
--- /dev/null
+++ b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.mk
@@ -0,0 +1,20 @@
+LLDP_SYSTEMD_NETWORKD_SYSREPO_VERSION = master
+LLDP_SYSTEMD_NETWORKD_SYSREPO_SITE = https://gerrit.cesnet.cz/CzechLight/lldp-systemd-networkd-sysrepo
+LLDP_SYSTEMD_NETWORKD_SYSREPO_SITE_METHOD = git
+LLDP_SYSTEMD_NETWORKD_SYSREPO_INSTALL_STAGING = NO
+LLDP_SYSTEMD_NETWORKD_SYSREPO_DEPENDENCIES = spdlog sdbus-cpp systemd docopt-cpp sysrepo
+LLDP_SYSTEMD_NETWORKD_SYSREPO_CONF_OPTS = -DTHREADS_PTHREAD_ARG:STRING=-pthread
+LLDP_SYSTEMD_NETWORKD_SYSREPO_LICENSE = Apache-2.0
+LLDP_SYSTEMD_NETWORKD_SYSREPO_LICENSE_FILES = LICENSE.md
+
+define LLDP_SYSTEMD_NETWORKD_SYSREPO_INSTALL_INIT_SYSTEMD
+        mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
+        $(INSTALL) -D -m 0644 \
+                $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.service \
+                $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo-install-yang.service \
+                $(TARGET_DIR)/usr/lib/systemd/system/
+        ln -sf ../lldp-systemd-networkd-sysrepo.service $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
+        ln -sf ../lldp-systemd-networkd-sysrepo-install-yang.service $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
+endef
+
+$(eval $(cmake-package))
diff --git a/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.service b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.service
new file mode 100644
index 0000000..94c7f62
--- /dev/null
+++ b/package/lldp-systemd-networkd-sysrepo/lldp-systemd-networkd-sysrepo.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=lldp-systemd-networkd-sysrepo is a sysrepo application announcing LLDP neighbours from systemd-networkd.
+After=syslog.target network.target sysrepod.service
+Requires=sysrepod.service
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/lldp-systemd-networkd-sysrepod
+PrivateTmp=yes
+PrivateDevices=no
+ProtectSystem=yes
+ProtectHome=yes
+Restart=always
+LogRateLimitIntervalSec=10
+LogRateLimitBurst=30000
+SyslogLevel=alert
+
+[Install]
+WantedBy=multi-user.target