Skip to contentSkip to conversation

dbus: remove /var/run from package as it is created on startup

PATCH In review Jonathan Liu 2 participants 4 messages May 23, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dbus: remove /var/run from package as it is created on startup

/var/run is a tmpfs that is created on startup.
For sysvinit, /var/run/dbus is created by populate-volatiles.sh. For systemd, /var/run/dbus is created implicitly by dbus.socket when creating a listen stream socket at /var/run/dbus/system_bus_socket.

---
 meta/recipes-core/dbus/dbus.inc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
meta/recipes-core/dbus/dbus.inc +5 -2
index 2be5bda..8055824 100644
@@ -101,9 +101,9 @@ do_install() {
 	     > ${D}${sysconfdir}/default/volatiles/99_dbus
 
 
-	mkdir -p ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	mkdir -p ${D}${localstatedir}/lib/dbus
 
-	chown messagebus:messagebus ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	chown messagebus:messagebus ${D}${localstatedir}/lib/dbus
 
 	chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper
 	chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper
@@ -113,6 +113,9 @@ do_install() {
 
 	# Remove empty testexec directory as we don't build tests
 	rm -rf ${D}${libdir}/dbus-1.0/test
+
+	# Remove /var/run as it is created on startup
+	rm -rf ${D}${localstatedir}/run
 }
 
 do_install_class-native() {
Signature · 1 line
1.8.2.3
#1 lore raw
Quoted 15 lines · Jonathan Liu

/var/run is a tmpfs that is created on startup.
For sysvinit, /var/run/dbus is created by populate-volatiles.sh. For systemd, /var/run/dbus is created implicitly by dbus.socket when creating a listen stream socket at /var/run/dbus/system_bus_socket.

---
 meta/recipes-core/dbus/dbus.inc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
meta/recipes-core/dbus/dbus.inc +0 -0
index 2be5bda..8055824 100644

meta/recipes-core/dbus/dbus.inc do_install() { · line 106

Quoted 8 lines
meta/recipes-core/dbus/dbus.inc +2 -2
@@ -101,9 +101,9 @@ do_install() {
 	     > ${D}${sysconfdir}/default/volatiles/99_dbus
 
 
-	mkdir -p ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	mkdir -p ${D}${localstatedir}/lib/dbus
 
-	chown messagebus:messagebus ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	chown messagebus:messagebus ${D}${localstatedir}/lib/dbus

Is what populate-volatiles does truly equivalent? Does this directory need to be owned by messagebus (which is a user created by dbus) iirc?

Cheers,

Richard

#2 lore raw
Quoted 22 lines · Richard Purdie
Quoted 21 lines · Jonathan Liu

/var/run is a tmpfs that is created on startup.
For sysvinit, /var/run/dbus is created by populate-volatiles.sh. For systemd, /var/run/dbus is created implicitly by dbus.socket when creating a listen stream socket at /var/run/dbus/system_bus_socket.

---
  meta/recipes-core/dbus/dbus.inc | 7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)
meta/recipes-core/dbus/dbus.inc +1 -1
index 2be5bda..8055824 100644
@@ -101,9 +101,9 @@ do_install() {
  	     > ${D}${sysconfdir}/default/volatiles/99_dbus
 
 
-	mkdir -p ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	mkdir -p ${D}${localstatedir}/lib/dbus
 
Quoted 8 lines

meta/recipes-core/dbus/dbus.inc do_install() { · line 106

Quoted 2 lines
meta/recipes-core/dbus/dbus.inc +1 -1
-	chown messagebus:messagebus ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	chown messagebus:messagebus ${D}${localstatedir}/lib/dbus

Is what populate-volatiles does truly equivalent? Does this directory need to be owned by messagebus (which is a user created by dbus) iirc?

Cheers,

Richard

The dbus recipe writes /etc/default/volatiles/99_dbus.
For sysvinit case, this will cause populate-volatiles.sh to create /var/run/dbus owned by messagebus:messagebus with 0755 permissions so it is the same. The systemd init doesn't use populate-volatiles.sh and it's created implicitly so it is owned by root:root with 0755 permissions.

For distributions using sysvinit (e.g. Debian), /var/run/dbus is typically owned by messagebus:messagebus. There is no dbus user/group in /etc/passwd or /etc/group.
For distributions using systemd (e.g. Arch Linux and Fedora), /var/run/dbus (actually /run/dbus) is typically owned by root:root. There is no messagebus user/group in /etc/passwd or /etc/group, but there is dbus.

Regards,
Jonathan

#3 lore raw
Quoted 28 lines · Jonathan Liu
Quoted 27 lines · Richard Purdie
Quoted 15 lines · Jonathan Liu

/var/run is a tmpfs that is created on startup.
For sysvinit, /var/run/dbus is created by populate-volatiles.sh. For systemd, /var/run/dbus is created implicitly by dbus.socket when creating a listen stream socket at /var/run/dbus/system_bus_socket.

---
  meta/recipes-core/dbus/dbus.inc | 7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)
meta/recipes-core/dbus/dbus.inc +0 -0
index 2be5bda..8055824 100644

meta/recipes-core/dbus/dbus.inc do_install() { · line 106

Quoted 8 lines
meta/recipes-core/dbus/dbus.inc +2 -2
@@ -101,9 +101,9 @@ do_install() {
  	     > ${D}${sysconfdir}/default/volatiles/99_dbus
 
 
-	mkdir -p ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	mkdir -p ${D}${localstatedir}/lib/dbus
 
-	chown messagebus:messagebus ${D}${localstatedir}/run/dbus ${D}${localstatedir}/lib/dbus
+	chown messagebus:messagebus ${D}${localstatedir}/lib/dbus

Is what populate-volatiles does truly equivalent? Does this directory need to be owned by messagebus (which is a user created by dbus) iirc?

Quoted 4 lines
Quoted 3 lines

Cheers,

Richard

The dbus recipe writes /etc/default/volatiles/99_dbus.

That is the piece I'd missed, thanks :).

Cheers,

Richard