* [Buildroot] [git commit] rauc: select host-squashfs as a host dependency
@ 2017-11-29 21:11 Thomas Petazzoni
2017-11-29 21:30 ` Trent Piepho
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2017-11-29 21:11 UTC (permalink / raw)
To: buildroot
commit: https://git.buildroot.net/buildroot/commit/?id=9e8e3e0fd556aeb62a5426506262fb1f9fe8a5fd
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master
The rauc host tool (used to generate update bundles) runs mksquashfs so
host-squashfs is required for it to work at runtime.
Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/rauc/Config.in.host | 1 +
package/rauc/rauc.mk | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/package/rauc/Config.in.host b/package/rauc/Config.in.host
index a58685a..1bd9a79 100644
--- a/package/rauc/Config.in.host
+++ b/package/rauc/Config.in.host
@@ -1,5 +1,6 @@
config BR2_PACKAGE_HOST_RAUC
bool "host rauc"
+ select BR2_PACKAGE_HOST_SQUASHFS # run-time dependency
help
RAUC is the Robust Auto-Update Controller developed by
Pengutronix. Enable this option to build the rauc
diff --git a/package/rauc/rauc.mk b/package/rauc/rauc.mk
index 479a583..67ef155 100644
--- a/package/rauc/rauc.mk
+++ b/package/rauc/rauc.mk
@@ -29,7 +29,7 @@ ifeq ($(BR2_PACKAGE_SYSTEMD),y)
RAUC_DEPENDENCIES += systemd
endif
-HOST_RAUC_DEPENDENCIES = host-pkgconf host-openssl host-libglib2
+HOST_RAUC_DEPENDENCIES = host-pkgconf host-openssl host-libglib2 host-squashfs
HOST_RAUC_CONF_OPTS += --disable-network --disable-json --disable-service
$(eval $(autotools-package))
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [git commit] rauc: select host-squashfs as a host dependency
2017-11-29 21:11 [Buildroot] [git commit] rauc: select host-squashfs as a host dependency Thomas Petazzoni
@ 2017-11-29 21:30 ` Trent Piepho
2017-11-29 21:50 ` Thomas Petazzoni
0 siblings, 1 reply; 3+ messages in thread
From: Trent Piepho @ 2017-11-29 21:30 UTC (permalink / raw)
To: buildroot
On Wed, 2017-11-29 at 22:11 +0100, Thomas Petazzoni wrote:
>
> + select BR2_PACKAGE_HOST_SQUASHFS # run-time dependency
> help
> RAUC is the Robust Auto-Update Controller developed by
> Pengutronix. Enable this option to build the rauc
> diff --git a/package/rauc/rauc.mk b/package/rauc/rauc.mk
> index 479a583..67ef155 100644
> --- a/package/rauc/rauc.mk
> +++ b/package/rauc/rauc.mk
> @@ -29,7 +29,7 @@ ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> RAUC_DEPENDENCIES += systemd
> endif
>
> -HOST_RAUC_DEPENDENCIES = host-pkgconf host-openssl host-libglib2
> +HOST_RAUC_DEPENDENCIES = host-pkgconf host-openssl host-libglib2 host-squashfs
Would it work to not include the build dependency on host-sqaushfs?
Since squashfs is a command invoked at run time, rauc doesn't actually
need to be present when building. Minimize the dependency info, allow
greater parallelism if packages were built in parallel, etc. Or
perhaps it's easier to always match the config dep with a build dep
even if the latter isn't necessary in some cases?
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [git commit] rauc: select host-squashfs as a host dependency
2017-11-29 21:30 ` Trent Piepho
@ 2017-11-29 21:50 ` Thomas Petazzoni
0 siblings, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2017-11-29 21:50 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 29 Nov 2017 21:30:10 +0000, Trent Piepho wrote:
> > + select BR2_PACKAGE_HOST_SQUASHFS # run-time dependency
> > help
> > RAUC is the Robust Auto-Update Controller developed by
> > Pengutronix. Enable this option to build the rauc
> > diff --git a/package/rauc/rauc.mk b/package/rauc/rauc.mk
> > index 479a583..67ef155 100644
> > --- a/package/rauc/rauc.mk
> > +++ b/package/rauc/rauc.mk
> > @@ -29,7 +29,7 @@ ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> > RAUC_DEPENDENCIES += systemd
> > endif
> >
> > -HOST_RAUC_DEPENDENCIES = host-pkgconf host-openssl host-libglib2
> > +HOST_RAUC_DEPENDENCIES = host-pkgconf host-openssl host-libglib2 host-squashfs
>
> Would it work to not include the build dependency on host-sqaushfs?
> Since squashfs is a command invoked at run time, rauc doesn't actually
> need to be present when building. Minimize the dependency info, allow
> greater parallelism if packages were built in parallel, etc. Or
> perhaps it's easier to always match the config dep with a build dep
> even if the latter isn't necessary in some cases?
I already pointed out this during the review, and Baruch made a useful
comment: if a package A has host-foo in its dependencies, it expects
host-foo to be fully ready and working by the time package A's
configure step starts.
So, what you say about runtime dependencies is completely correct for
*target* packages, and we do that everywhere in Buildroot: select the
package at the Config.in level, but not depend on it at the
<pkg>_DEPENDENCIES level. All what matters for target packages is that
all runtime dependencies are part of the final root filesystem image.
However, for host packages, we expect them to be ready and operational
as soon as their build completes. Hence, runtime dependencies need to
be considered as runtime dependencies.
Technically, we wouldn't need host-rauc-configure to depend on
host-squashfs. Having host-rauc depend on host-squashfs would be
sufficient (some kind of "install dependency"). But we don't have this
concept in Buildroot, and for just the few cases of runtime
dependencies of host packages, I'm not sure it's worth adding such a
feature.
Does that make sense?
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-11-29 21:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-29 21:11 [Buildroot] [git commit] rauc: select host-squashfs as a host dependency Thomas Petazzoni
2017-11-29 21:30 ` Trent Piepho
2017-11-29 21:50 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox