[Buildroot] [PATCH 1/2] Add support for package-declared devices

Michael S. Zick minimod at morethan.org
Mon Sep 5 10:08:25 UTC 2011


On Sun September 4 2011, Arnout Vandecappelle wrote:
> 
> On Friday 02 September 2011 14:08:59, Maxime Ripard wrote:
> > Add a way for packages to declare files they need instead of relying
> > only on device tables, which creates files no matter if the package is
> > indeed enabled, as we can see for busybox.
> 
>  Good idea!  This will also make it possible to create setuid executables.
> 
> > Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> > ---
> >  Makefile                    |    4 ++++
> >  fs/common.mk                |    1 +
> >  package/Makefile.package.in |    1 +
> >  3 files changed, 6 insertions(+), 0 deletions(-)
> > 
> > diff --git a/Makefile b/Makefile
> > index 9ed46fc..b293d2f 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -52,6 +52,10 @@ qstrip=$(strip $(subst ",,$(1)))
> >  comma:=,
> >  empty:=
> >  space:=$(empty) $(empty)
> > +define newline
> > +
> > +
> > +endef
> > 
> >  ifneq ("$(origin O)", "command line")
> >  O:=output
> > diff --git a/fs/common.mk b/fs/common.mk
> > index f793ff9..46d191b 100644
> > --- a/fs/common.mk
> > +++ b/fs/common.mk
> > @@ -50,6 +50,7 @@ $(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES)
> >  	echo "chown -R 0:0 $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
> >  ifneq ($(ROOTFS_DEVICE_TABLES),)
> >  	cat $(ROOTFS_DEVICE_TABLES) > $(FULL_DEVICE_TABLE)
> > +	echo -e '$(subst $(newline),\n,$(PACKAGES_DEVICE_TABLE))' >>
> > $(FULL_DEVICE_TABLE) echo "$(HOST_DIR)/usr/bin/makedevs -d
> > $(FULL_DEVICE_TABLE) $(TARGET_DIR)" >> $(FAKEROOT_SCRIPT) endif
> >  	echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT)
> > diff --git a/package/Makefile.package.in b/package/Makefile.package.in
> > index 868bf28..d8d435e 100644
> > --- a/package/Makefile.package.in
> > +++ b/package/Makefile.package.in
> > @@ -541,6 +541,7 @@ endif
> >  ifeq ($$($$($(2)_KCONFIG_VAR)),y)
> > 
> >  TARGETS += $(1)
> > +PACKAGES_DEVICE_TABLE += $$($(2)_DEVICES)$$(newline)
> 
>  Since it anyway will be echo -e'd, why not just use the following?
> 
> +PACKAGES_DEVICE_TABLE += \n$$($(2)_DEVICES)
> 
> (I haven't tried it, but I expect the terminating space and the initial empty 
> line are not a problem.)
>

Couldn't the initial empty line be avoided by a fixed device declaration
that initializes PACKAGES_DEVICE_TABLE with something either harmless or
required?
Such as: /dev/console or /dev/null?

Mike 
> 
>  Regards,
>  Arnout
> 
> 
> > 
> >  ifeq ($$($(2)_SITE_METHOD),svn)
> >  DL_TOOLS_DEPENDENCIES += svn
> 





More information about the buildroot mailing list