summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2009-05-27 11:45:22 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2009-05-27 11:45:22 +0100
commit6ed027a31fe3b400e8f7b1f0b418672f67acff24 (patch)
tree6ae14a90518eee1c1f98b171a141a266b4d27910
parent8f32595f6b8ed885a8291b1eb5cd671ece4b7d58 (diff)
downloadopenembedded-core-6ed027a31fe3b400e8f7b1f0b418672f67acff24.tar.gz
openembedded-core-6ed027a31fe3b400e8f7b1f0b418672f67acff24.tar.bz2
openembedded-core-6ed027a31fe3b400e8f7b1f0b418672f67acff24.zip
xserver-nodm-init: Add ability to run X as a non-root user
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/packages/x11-common/xserver-nodm-init.bb4
-rwxr-xr-xmeta/packages/x11-common/xserver-nodm-init/xserver-nodm9
2 files changed, 10 insertions, 3 deletions
diff --git a/meta/packages/x11-common/xserver-nodm-init.bb b/meta/packages/x11-common/xserver-nodm-init.bb
index 521f17c5f4..c9efb71b81 100644
--- a/meta/packages/x11-common/xserver-nodm-init.bb
+++ b/meta/packages/x11-common/xserver-nodm-init.bb
@@ -2,8 +2,8 @@ DESCRIPTION = "Simple Xserver Init Script (no dm)"
LICENSE = "GPL"
SECTION = "x11"
PRIORITY = "optional"
-PR = "r18"
-RDEPENDS = "dbus-wait"
+PR = "r21"
+RDEPENDS_${PN} = "dbus-wait sudo"
SRC_URI = "file://xserver-nodm"
S = ${WORKDIR}
diff --git a/meta/packages/x11-common/xserver-nodm-init/xserver-nodm b/meta/packages/x11-common/xserver-nodm-init/xserver-nodm
index f6399fc1fa..69ea949724 100755
--- a/meta/packages/x11-common/xserver-nodm-init/xserver-nodm
+++ b/meta/packages/x11-common/xserver-nodm-init/xserver-nodm
@@ -26,8 +26,15 @@ done
case "$1" in
start)
. /etc/profile
+ username=root
echo "Starting Xserver"
- /etc/X11/Xserver &
+ if [ -f /etc/X11/Xusername ]; then
+ username=`cat /etc/X11/Xusername`
+ fi
+ # Using sudo -i here has the nice side effect of making sire
+ # HOME, USER and other previously problematic variables
+ # are set correctly
+ sudo -b -i -u $username /etc/X11/Xserver
# Wait for the desktop to say its finished loading
dbus-wait org.matchbox_project.desktop Loaded
;;