[Buildroot] [PATCH 1/1] package/sysrepo: fix host/staging install steps

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Nov 11 13:53:04 UTC 2019


Hello Heiko,

On Sun, 10 Nov 2019 17:00:14 +0100
Heiko Thiery <heiko.thiery at gmail.com> wrote:

> > Do you have a minimal/simple defconfig that allows to reproduce the problem?
> >
> > When I build this simple configuration:
> >
> > BR2_arm=y
> > BR2_TOOLCHAIN_EXTERNAL=y
> > BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
> > BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> > BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2019.05.1.tar.bz2"
> > BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
> > BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y
> > BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
> > # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
> > BR2_TOOLCHAIN_EXTERNAL_CXX=y
> > BR2_INIT_NONE=y
> > BR2_SYSTEM_BIN_SH_NONE=y
> > # BR2_PACKAGE_BUSYBOX is not set
> > BR2_PACKAGE_SYSREPO=y
> > # BR2_TARGET_ROOTFS_TAR is not set
> >
> > It builds just fine, with no problem. What is the thing that triggers
> > the issue ?  
> 
> Your defconfig shows the problem not while building rather in the install step.

Hu? When I said "build", it of course means a Buildroot build, so it
does both the build and installation of all packages.

The autobuilder failures happens at Buildroot build time, and I was not
able to reproduce it, and therefore not able to check that your patch
solves it.

> the main problem is that the sysrepo cmake build system has a config
> option REPOSITORY_LOC. This folder is used to set the target of the
> sysrepo database. Since we want to create this database during the
> build in the target we have to set this variable to the target
> directory (currently still a bug in the last applied package). But
> when setting this directory to the target the host install step also
> installs stuff (yang models) in this directory. That means host
> install touches the target directory. I think this is not correct.

True.

> Is there a way to check that the steps only installs/touchs files in
> the directories they are responsible? With this the problem above
> could be shown easier.

Not easily no, and there are some packages that violate this rule.
While not nice, some packages are quite complicated and cannot be
fixed. An example is the qt5base package, which mainly builds/installs
Qt5 libraries for the target, but as a side effect also installs some
host tools in $(HOST_DIR).

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list