Skip to contentSkip to conversation

Pull request for branch for-2011.11/pkg-device

GIT PULL New Maxime Ripard 6 participants 16 messages Sep 2, 2011 – Sep 8, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello,

Here is a minor set of improvement on how the devices are declared in buildroot. For now, All the devices to be created were in two files generic to every compilation. This was fine for most usage, but was a bit problematic when packages needed to create files or use specific permissions.

This set of patches are addressing this issue by creating a new $(PKG)_DEVICES variable, containing the package specific devices, using the makedevs syntax.

The following changes since commit facd602dcad54df769ac759886f48f248b61e692:

Update for 2011.08 (2011-08-31 13:44:55 +0200)

are available in the git repository at:
http://free-electrons.com/~maxime/git/buildroot.git for-2011.11/pkg-device

Maxime Ripard (2):
Add support for package-declared devices Convert busybox to the device declaration method

 Makefile                        |    4 ++++
 fs/common.mk                    |    1 +
 package/Makefile.package.in     |    1 +
 package/busybox/busybox.mk      |    5 +++++
 target/generic/device_table.txt |    2 --
 5 files changed, 11 insertions(+), 2 deletions(-)

Thanks,

Signature · 1 line
Maxime Ripard
#1 lore raw

PATCH 1/2 Add support for package-declared devices

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.

---
 Makefile                    |    4 ++++
 fs/common.mk                |    1 +
 package/Makefile.package.in |    1 +
 3 files changed, 6 insertions(+), 0 deletions(-)
Makefile +4 -0
index 9ed46fc..b293d2f 100644
@@ -52,6 +52,10 @@ qstrip=$(strip $(subst ",,$(1)))
 comma:=,
 empty:=
 space:=$(empty) $(empty)
+define newline
+
+
+endef
 
 ifneq ("$(origin O)", "command line")
 O:=output
fs/common.mk +1 -0
index f793ff9..46d191b 100644
@@ -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)
package/Makefile.package.in +1 -0
index 868bf28..d8d435e 100644
@@ -541,6 +541,7 @@ endif
 ifeq ($$($$($(2)_KCONFIG_VAR)),y)
 
 TARGETS += $(1)
+PACKAGES_DEVICE_TABLE += $$($(2)_DEVICES)$$(newline)
 
 ifeq ($$($(2)_SITE_METHOD),svn)
 DL_TOOLS_DEPENDENCIES += svn
Signature · 1 line
1.7.4.1
#2 lore raw

PATCH 1/2 Add support for package-declared devices

Quoted 3 lines · Maxime Ripard

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.

Quoted 39 lines
---
 Makefile                    |    4 ++++
 fs/common.mk                |    1 +
 package/Makefile.package.in |    1 +
 3 files changed, 6 insertions(+), 0 deletions(-)
Makefile +4 -0
index 9ed46fc..b293d2f 100644
@@ -52,6 +52,10 @@ qstrip=$(strip $(subst ",,$(1)))
 comma:=,
 empty:=
 space:=$(empty) $(empty)
+define newline
+
+
+endef
 
 ifneq ("$(origin O)", "command line")
 O:=output
fs/common.mk +1 -0
index f793ff9..46d191b 100644
@@ -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

fs/common.mk +0 -0
 	echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT)
package/Makefile.package.in +0 -0
index 868bf28..d8d435e 100644

package/Makefile.package.in endif · line 544

Quoted 4 lines
package/Makefile.package.in +1 -0
@@ -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.)

Regards,
Arnout

Quoted 3 lines
package/Makefile.package.in +0 -0
 ifeq ($$($(2)_SITE_METHOD),svn)
 DL_TOOLS_DEPENDENCIES += svn
Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
#3 lore raw

PATCH 1/2 Add support for package-declared devices

Hello,

Le Sun, 4 Sep 2011 23:36:43 +0200,
Arnout Vandecappelle <[email protected]> a ?crit :

Quoted 2 lines

Good idea! This will also make it possible to create setuid
executables.

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#4 lore raw

PATCH 1/2 Add support for package-declared devices

Hi,

Quoted 5 lines · Thomas Petazzoni

Hello,

Le Sun, 4 Sep 2011 23:36:43 +0200,
Arnout Vandecappelle <[email protected]> a ?crit :

Quoted 7 lines
Quoted 2 lines

Good idea! This will also make it possible to create setuid
executables.

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

I agree, I don't like it neither, but I have no idea on what could be better...

Files, maybe, but I find it way too generic.

Maxime

Signature · 4 lines
Maxime Ripard, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#5 lore raw

PATCH 1/2 Add support for package-declared devices

Quoted 16 lines · Maxime Ripard

Hi,

Quoted 4 lines · Thomas Petazzoni

Hello,

Le Sun, 4 Sep 2011 23:36:43 +0200,

Quoted 8 lines

Arnout Vandecappelle <[email protected]> a ?crit :

Quoted 2 lines

Good idea! This will also make it possible to create setuid
executables.

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

Quoted 4 lines

I agree, I don't like it neither, but I have no idea on what could be better...

Files, maybe, but I find it way too generic.

How about _FILE_MOD_TABLE (cfr. chmod)?

BTW, BR2_ROOTFS_DEVICE_TABLE the device_table.txt files should change in the
same way.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
#6 lore raw

PATCH 1/2 Add support for package-declared devices

Quoted 7 lines · Arnout Vandecappelle
Quoted 6 lines · Maxime Ripard
Quoted 4 lines · Thomas Petazzoni

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

Quoted 6 lines
Quoted 4 lines

I agree, I don't like it neither, but I have no idea on what could be better...

Files, maybe, but I find it way too generic.

How about _FILE_MOD_TABLE (cfr. chmod)?

Hmm, I'm not quite sure, it is more than just mod. Maybe reuse the "skeleton" term already in use in buildroot.

Quoted 2 lines

BTW, BR2_ROOTFS_DEVICE_TABLE the device_table.txt files should change in the
same way.

Of course, and in the menuconfig too.

Maxime

Signature · 4 lines
Maxime Ripard, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#7 lore raw

PATCH 1/2 Add support for package-declared devices

Quoted 11 lines · Maxime Ripard
Quoted 10 lines · Arnout Vandecappelle
Quoted 9 lines · Maxime Ripard
Quoted 4 lines · Thomas Petazzoni

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

I agree, I don't like it neither, but I have no idea on what could be better...

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

Files, maybe, but I find it way too generic.

How about _FILE_MOD_TABLE (cfr. chmod)?

Hmm, I'm not quite sure, it is more than just mod. Maybe reuse the "skeleton" term already in use in buildroot.

AFAICS it does three things:
- make device nodes (mknod)
- change permissions (chmod)
- set ownership (chown)

So skeleton is not really the right term, as it only refers to the mknod
function again. (Although not-yet-existing files and directories are created, that's not usually the main purpose for files and directories.)

FILE is also not a good idea since it also applies to directories and device
nodes which are not really files.

A complete name would be _NOD_MOD_OWN_TABLE, but that's too long and too
cryptic :-) Plus, we might want to add things like setting the utimes etc. in the future.

The functionality is in fact comparable to install - copy files and set
attributes (except for the copy part). So we could use _ATTRIBUTE_TABLE. Unfortunately, 'attributes' could also refer to the e2fs file attributes, which are a different thing entirely (cfr. man chattr). Or _FILE_INSTALL_TABLE.

We could also consider that it sets most of the content of struct stat. But
_STAT_TABLE is again a bit cryptic.

Enough possibilities...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
#8 lore raw

PATCH 1/2 Add support for package-declared devices

Quoted 21 lines · Arnout Vandecappelle
Quoted 11 lines · Maxime Ripard
Quoted 10 lines · Arnout Vandecappelle
Quoted 9 lines · Maxime Ripard
Quoted 4 lines · Thomas Petazzoni

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

I agree, I don't like it neither, but I have no idea on what could be better...

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

Files, maybe, but I find it way too generic.

How about _FILE_MOD_TABLE (cfr. chmod)?

Hmm, I'm not quite sure, it is more than just mod. Maybe reuse the "skeleton" term already in use in buildroot.

Quoted 8 lines

AFAICS it does three things:
- make device nodes (mknod)
- change permissions (chmod)
- set ownership (chown)

So skeleton is not really the right term, as it only refers to the mknod
function again. (Although not-yet-existing files and directories are created, that's not usually the main purpose for files and directories.)

In device_table.txt, it also creates the whole basic filesystem hierarchy, with folders (such as /dev) and files (such as /etc/shadow). So you will have to add mkdir and touch to your list. That is why is was going for skeleton,

Quoted 2 lines

FILE is also not a good idea since it also applies to directories and device
nodes which are not really files.

Heresy! :)
More seriously, I was speaking about files with the Unix meaning in mind, but it is true it can cause confusion.

Quoted 3 lines

A complete name would be _NOD_MOD_OWN_TABLE, but that's too long and too
cryptic :-) Plus, we might want to add things like setting the utimes etc. in the future.

I agree.

Quoted 5 lines

The functionality is in fact comparable to install - copy files and set
attributes (except for the copy part). So we could use _ATTRIBUTE_TABLE. Unfortunately, 'attributes' could also refer to the e2fs file attributes, which are a different thing entirely (cfr. man chattr). Or _FILE_INSTALL_TABLE.

This one seems good to me. Peter ?

Signature · 4 lines
Maxime Ripard, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#9 lore raw

PATCH 1/2 Add support for package-declared devices

[I really should stop replying to this thread ;-)]

Quoted 9 lines · Maxime Ripard
Quoted 9 lines

AFAICS it does three things:
- make device nodes (mknod)
- change permissions (chmod)
- set ownership (chown)

So skeleton is not really the right term, as it only refers to the
mknod

Quoted 8 lines
Quoted 3 lines

function again. (Although not-yet-existing files and directories are created, that's not usually the main purpose for files and directories.)

In device_table.txt, it also creates the whole basic filesystem hierarchy, with folders (such as /dev) and files (such as /etc/shadow). So you will have to add mkdir and touch to your list. That is why is was going for skeleton,

Both /dev and /etc/shadow are (usually) copied from fs/skeleton,
device_table.txt only updates the permissions. I guess the /dev and /etc lines in device_table.txt are a bit redundant...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
#10 lore raw

PATCH 1/2 Add support for package-declared devices

In reply to Maxime Ripard

Ar D?ar, 2011-09-08 ag 10:18 +0200, scr?obh Maxime Ripard:

Quoted 49 lines · Arnout Vandecappelle
Quoted 21 lines · Maxime Ripard
Quoted 11 lines · Arnout Vandecappelle
Quoted 10 lines · Maxime Ripard
Quoted 9 lines · Thomas Petazzoni
Quoted 4 lines

Yes, exactly. However, I don't really like the name <pkg>_DEVICE_TABLE because, it might be for other purposes as well (setting setuid bit, giving specific owner/group or permissions, etc.). Does anyone has an idea for a better name?

I agree, I don't like it neither, but I have no idea on what could be better...

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

Files, maybe, but I find it way too generic.

How about _FILE_MOD_TABLE (cfr. chmod)?

Hmm, I'm not quite sure, it is more than just mod. Maybe reuse the "skeleton" term already in use in buildroot.

Quoted 8 lines

AFAICS it does three things:
- make device nodes (mknod)
- change permissions (chmod)
- set ownership (chown)

So skeleton is not really the right term, as it only refers to the mknod
function again. (Although not-yet-existing files and directories are created, that's not usually the main purpose for files and directories.)

In device_table.txt, it also creates the whole basic filesystem hierarchy, with folders (such as /dev) and files (such as /etc/shadow). So you will have to add mkdir and touch to your list. That is why is was going for skeleton,

Quoted 2 lines

FILE is also not a good idea since it also applies to directories and device
nodes which are not really files.

Heresy! :)
More seriously, I was speaking about files with the Unix meaning in mind, but it is true it can cause confusion.

Quoted 3 lines

A complete name would be _NOD_MOD_OWN_TABLE, but that's too long and too
cryptic :-) Plus, we might want to add things like setting the utimes etc. in the future.

I agree.

Quoted 7 lines
Quoted 5 lines

The functionality is in fact comparable to install - copy files and set
attributes (except for the copy part). So we could use _ATTRIBUTE_TABLE. Unfortunately, 'attributes' could also refer to the e2fs file attributes, which are a different thing entirely (cfr. man chattr). Or _FILE_INSTALL_TABLE.

This one seems good to me. Peter ?

They're all operations (create or change) on file-system entries so maybe like ..._EXTRA_FS_OPERATIONS or similar?

#11 lore raw

PATCH 1/2 Add support for package-declared devices

Let me add my two cents to this irresistible, brainstorming-like, non-violent flamewar. :)

Quoted 6 lines · Quotient Remainder
Quoted 3 lines
Quoted 1 line

_FILE_INSTALL_TABLE.

This one seems good to me. Peter ?

They're all operations (create or change) on file-system entries so maybe like ..._EXTRA_FS_OPERATIONS or similar?

inodes_table?
nodes_table?
fsnodes_table?

Luca

#12 lore raw

PATCH 1/2 Add support for package-declared devices

Quoted 6 lines · Luca Ceresoli

Let me add my two cents to this irresistible, brainstorming-like, non-violent flamewar. :)

Quoted 2 lines · Quotient Remainder
Quoted 2 lines
Quoted 1 line

_FILE_INSTALL_TABLE.

Quoted 9 lines
Quoted 4 lines
Quoted 1 line

This one seems good to me. Peter ?

They're all operations (create or change) on file-system entries so maybe like ..._EXTRA_FS_OPERATIONS or similar?

inodes_table?
nodes_table?
fsnodes_table?

The action being accomplished is to "provision" the generated image.
So a name based on the action might be a better choice.

Just avoid anything that implies "provisional", which can be misunderstood to have a similar meaning as "conditional".

Mike

Quoted 7 lines

Luca
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#13 lore raw

PATCH 1/2 Add support for package-declared devices

In reply to Arnout Vandecappelle
Quoted 53 lines · Arnout Vandecappelle
Quoted 3 lines · Maxime Ripard

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.

Quoted 39 lines
---
 Makefile                    |    4 ++++
 fs/common.mk                |    1 +
 package/Makefile.package.in |    1 +
 3 files changed, 6 insertions(+), 0 deletions(-)
Makefile +4 -0
index 9ed46fc..b293d2f 100644
@@ -52,6 +52,10 @@ qstrip=$(strip $(subst ",,$(1)))
 comma:=,
 empty:=
 space:=$(empty) $(empty)
+define newline
+
+
+endef
 
 ifneq ("$(origin O)", "command line")
 O:=output
fs/common.mk +1 -0
index f793ff9..46d191b 100644
@@ -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

fs/common.mk +0 -0
 	echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT)
package/Makefile.package.in +0 -0
index 868bf28..d8d435e 100644

package/Makefile.package.in endif · line 544

Quoted 4 lines
package/Makefile.package.in +1 -0
@@ -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?

Quoted 4 lines

+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.)

Well, this will work, but we still have to keep the call to subst to replace the new lines coming from packages defining several devices by \n. So maybe this is better to stay consistent and use the newline constant everywhere.

Signature · 4 lines
Maxime Ripard, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#14 lore raw

PATCH 1/2 Add support for package-declared devices

In reply to Arnout Vandecappelle
Quoted 54 lines · Arnout Vandecappelle
Quoted 3 lines · Maxime Ripard

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.

Quoted 39 lines
---
 Makefile                    |    4 ++++
 fs/common.mk                |    1 +
 package/Makefile.package.in |    1 +
 3 files changed, 6 insertions(+), 0 deletions(-)
Makefile +4 -0
index 9ed46fc..b293d2f 100644
@@ -52,6 +52,10 @@ qstrip=$(strip $(subst ",,$(1)))
 comma:=,
 empty:=
 space:=$(empty) $(empty)
+define newline
+
+
+endef
 
 ifneq ("$(origin O)", "command line")
 O:=output
fs/common.mk +1 -0
index f793ff9..46d191b 100644
@@ -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

fs/common.mk +0 -0
 	echo "$(ROOTFS_$(2)_CMD)" >> $(FAKEROOT_SCRIPT)
package/Makefile.package.in +0 -0
index 868bf28..d8d435e 100644

package/Makefile.package.in endif · line 544

Quoted 4 lines
package/Makefile.package.in +1 -0
@@ -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?

Quoted 5 lines

+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

Quoted 9 lines

Regards,
Arnout

Quoted 3 lines
package/Makefile.package.in +0 -0
 ifeq ($$($(2)_SITE_METHOD),svn)
 DL_TOOLS_DEPENDENCIES += svn
#15 lore raw

PATCH 2/2 Convert busybox to the device declaration method

In reply to Maxime Ripard

Busybox used to declare and create files even if the package was not enabled through the device table. Remove the entries for busybox in the device table and move them to the package declaration.

---
 package/busybox/busybox.mk      |    5 +++++
 target/generic/device_table.txt |    2 --
 2 files changed, 5 insertions(+), 2 deletions(-)
package/busybox/busybox.mk +5 -0
index 1782a73..719f679 100644
@@ -28,6 +28,11 @@ ifndef BUSYBOX_CONFIG_FILE
 	BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
 endif
 
+define BUSYBOX_DEVICES
+/bin/busybox			 f 4755	0 0 - - - - -
+/usr/share/udhcpc/default.script f 755  0 0 - - - - -
+endef
+
 # If mdev will be used for device creation enable it and copy S10mdev to /etc/init.d
 ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV),y)
 define BUSYBOX_INSTALL_MDEV_SCRIPT
target/generic/device_table.txt +0 -2
index 12f35b2..d3e394b 100644
@@ -10,13 +10,11 @@
 /tmp					d	1777	0	0	-	-	-	-	-
 /etc					d	755	0	0	-	-	-	-	-
 /home/default				d	2755	1000	1000	-	-	-	-	-
-/bin/busybox				f	4755	0	0	-	-	-	-	-
 /etc/shadow				f	600	0	0	-	-	-	-	-
 /etc/passwd				f	644	0	0	-	-	-	-	-
 /etc/network/if-up.d			d	755	0	0	-	-	-	-	-
 /etc/network/if-pre-up.d		d	755	0	0	-	-	-	-	-
 /etc/network/if-down.d			d	755	0	0	-	-	-	-	-
 /etc/network/if-post-down.d		d	755	0	0	-	-	-	-	-
-/usr/share/udhcpc/default.script	f	755	0	0	-	-	-	-	-
 # uncomment this to allow starting x as non-root
 #/usr/X11R6/bin/Xfbdev		     	f	4755	0	0	-	-	-	-	-
Signature · 1 line
1.7.4.1