@@ -70,22 +70,34 @@ define CONFD_INSTALL_YANG_MODULES_CONTAINERS
7070endef
7171endif
7272
73- define CONFD_PERMISSIONS
74- /etc/sysrepo/data/ r 660 root sys-cli - - - - -
75- /etc/sysrepo/data d 770 root sys-cli - - - - -
73+ # PER_PACKAGE_DIR
74+ # Since the last package in the dependency chain that runs sysrepoctl is confd, we need to
75+ # manually copy the *real* content here from host-sysrepo.
76+ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES ) ,y)
77+ define CONFD_INSTALL_IN_ROMFS
78+ cp -a $(PER_PACKAGE_DIR ) /host-sysrepo/target/etc/sysrepo/* $(PER_PACKAGE_DIR ) /confd/target/etc/sysrepo/
7679endef
80+ endif
7781
82+ # PER_PACKAGE_DIR
83+ # Need to do some special stuff if using per-packet (parallel) since sysrepo install the submodules in
84+ # $(PER_PACKAGE_DIR)/host-sysrepo/target/etc/sysrepo/ but $(PER_PACKAGE_DIR)/confd/target/etc/sysrepo/ contains remains
85+ # of other packets that have installed its models (netopeer2), we want the result in $(PER_PACKAGE_DIR)/host-sysrepo/target/etc/sysrepo/
7886define CONFD_EMPTY_SYSREPO
79- rm -rf $(TARGET_DIR ) /etc/sysrepo/data/
87+ rm -rf $(TARGET_DIR ) /etc/sysrepo/*
88+ if [ "$(BR2_PER_PACKAGE_DIRECTORIES ) " = "y" ]; then \
89+ rm -rf $(PER_PACKAGE_DIR ) /host-sysrepo/target/etc/sysrepo/* $(PER_PACKAGE_DIR ) /confd/target/etc/sysrepo/*; \
90+ fi
8091endef
8192define CONFD_CLEANUP
8293 rm -f /dev/shm/$(CONFD_SYSREPO_SHM_PREFIX ) *
8394endef
84- CONFD_PRE_INSTALL_TARGET_HOOKS += CONFD_EMPTY_SYSREPO
85- CONFD_PRE_INSTALL_TARGET_HOOKS += CONFD_CLEANUP
95+ CONFD_PRE_BUILD_HOOKS += CONFD_EMPTY_SYSREPO
96+ CONFD_PRE_BUILD_HOOKS += CONFD_CLEANUP
8697CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_EXTRA
8798CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES
8899CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES_CONTAINERS
89- CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_CLEANUP
100+ CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_IN_ROMFS
101+ CONFD_TARGET_FINALIZE_HOOKS += CONFD_CLEANUP
90102
91103$(eval $(autotools-package))
0 commit comments