[Buildroot] [PATCH 5/7] sysrepo: Use a common repository location
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Sun Dec 8 22:03:20 UTC 2019
On Wed, 4 Dec 2019 10:37:37 +0100
Jan Kundrát <jan.kundrat at cesnet.cz> wrote:
> diff --git a/package/sysrepo/sysrepo.mk b/package/sysrepo/sysrepo.mk
> index 113ed7a929..2ef64d13e2 100644
> --- a/package/sysrepo/sysrepo.mk
> +++ b/package/sysrepo/sysrepo.mk
> @@ -58,7 +58,7 @@ HOST_SYSREPO_CONF_OPTS = \
> -DCALL_TARGET_BINS_DIRECTLY=OFF \
> -DBUILD_EXAMPLES=OFF \
> -DBUILD_CPP_EXAMPLES=OFF \
> - -DREPOSITORY_LOC=$(HOST_DIR)/etc/sysrepo \
> + -DREPOSITORY_LOC=$(BASE_TARGET_DIR)/etc/sysrepo \
I suppose you're using $(BASE_TARGET_DIR) here instead of $(TARGET_DIR)
to work around issues with per-package directory support ?
Unfortunately, using $(BASE_TARGET_DIR) is not really a good option.
Indeed, if any host-sysrepo tool gets used during the build, it will
point to $(BASE_TARGET_DIR), which is with per-package directory
support enabled, is completely empty during the build. It only gets
populated at the very end of the build, in target-finalize.
With per-package directory, we cannot have a hardcoded path to the
target, it really needs to be dynamic. Can the sysrepoctl tool use an
environment variable for example ?
> +# There's no point in keeping the logs around
> +define SYSREPO_REMOVE_NOTIFICATION_LOG
> + rm -rf $(BASE_TARGET_DIR)/etc/sysrepo/data/notifications/
Here, you can definitely use $(TARGET_DIR), because when the
target-finalize hooks are executed, TARGET_DIR is defined to
BASE_TARGET_DIR.
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list