[OE-core] [PATCH v2] matchbox-keyboard: daemonize launch

Alexandre Belloni alexandre.belloni at free-electrons.com
Sun Feb 16 14:13:51 UTC 2014


On 16/02/2014 at 14:46:12 +0100, Bernhard Reutner-Fischer wrote :
> On 15 February 2014 17:34:57 Alexandre Belloni
> <alexandre.belloni at free-electrons.com> wrote:
> 
> >The .shbg extension is not properly supported by the Xsession script
> >provided by xserver-common.
> >
> >Make the matchbox-keyboard startup script wait for matchbox desktop and
> >start the matchbox-keyboard daemon in its own shell, in the background.
> 
> Maybe you could remove obsolescent test(1) usage while you touch it?
> 

Hum, which usage is obsolete ?

> Also, why do you need another shell instance, out of curiosity. ISTM
> that only wastes RAM..

We create a shell and start in the background to wait for
matchbox-desktop to start. This allows X continue to start and run the
next Xsession scripts. And matchbox-desktop has to be the last started
program si we don't have any other way. Anyway, once the
matchbox-keyboard daemon starts, the shell will exit and not use ram
anymore.

> Thanks,
> >
> >See discussion here:
> >https://lists.yoctoproject.org/pipermail/poky/2013-December/009463.html
> >
> >Bug here:
> >https://bugzilla.yoctoproject.org/show_bug.cgi?id=5546
> >
> >Signed-off-by: Alexandre Belloni <alexandre.belloni at free-electrons.com>
> >---
> >
> >Changes since v1:
> > - stop using another script to start in the background and spawn a
> >   background shell from the startup script
> >
> > .../matchbox-keyboard/files/80matchboxkeyboard.sh  | 21 ++++++++++++++++++++
> > .../files/80matchboxkeyboard.shbg                  | 23 ----------------------
> > .../matchbox-keyboard/matchbox-keyboard_git.bb     |  4 ++--
> > 3 files changed, 23 insertions(+), 25 deletions(-)
> > create mode 100755
> >meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh
> > delete mode 100755
> >meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.shbg
> >
> >diff --git
> >a/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh
> >b/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh
> >new file mode 100755
> >index 000000000000..d822efa6e70c
> >--- /dev/null
> >+++ b/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.sh
> >@@ -0,0 +1,21 @@
> >+#!/bin/sh
> >+
> >+. /etc/formfactor/config
> >+
> >+CMD=""
> >+
> >+if [ "$HAVE_KEYBOARD" = "0" ]; then
> >+    CMD="matchbox-keyboard -d"
> >+elif [ "$DISPLAY_CAN_ROTATE" = "1" ]; then
> >+    if [ "$HAVE_KEYBOARD_PORTRAIT" = "1" -a
> >"$HAVE_KEYBOARD_LANDSCAPE" = "0" ]; then
> >+        CMD="matchbox-keyboard -d -o landscape"
> >+    elif [ "$HAVE_KEYBOARD_LANDSCAPE" = "1" -a
> >"$HAVE_KEYBOARD_PORTRAIT" = "0" ]; then
> >+        CMD="matchbox-keyboard -d -o portrait"
> >+    fi
> >+fi
> >+
> >+if [ "$CMD" ]; then
> >+    # Delay to make sure the window manager is active
> >+    # by waiting for the desktop to say its finished loading
> >+	( dbus-wait org.matchbox_project.desktop Loaded && $CMD ) &
> >+fi
> >diff --git
> >a/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.shbg
> >b/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.shbg
> >deleted file mode 100755
> >index 43c5d3ed6a32..000000000000
> >--- a/meta/recipes-sato/matchbox-keyboard/files/80matchboxkeyboard.shbg
> >+++ /dev/null
> >@@ -1,23 +0,0 @@
> >-#!/bin/sh
> >-
> >-. /etc/formfactor/config
> >-
> >-CMD=""
> >-
> >-if [ "$HAVE_KEYBOARD" = "0" ]; then
> >-    CMD="matchbox-keyboard -d"
> >-elif [ "$DISPLAY_CAN_ROTATE" = "1" ]; then
> >-    if [ "$HAVE_KEYBOARD_PORTRAIT" = "1" -a
> >"$HAVE_KEYBOARD_LANDSCAPE" = "0" ]; then
> >-        CMD="matchbox-keyboard -d -o landscape"
> >-    elif [ "$HAVE_KEYBOARD_LANDSCAPE" = "1" -a
> >"$HAVE_KEYBOARD_PORTRAIT" = "0" ]; then
> >-        CMD="matchbox-keyboard -d -o portrait"
> >-    fi
> >-fi
> >-					
> >-
> >-if [ "$CMD" ]; then
> >-    # Delay to make sure the window manager is active
> >-    # by waiting for the desktop to say its finished loading
> >-    dbus-wait org.matchbox_project.desktop Loaded
> >-    exec $CMD
> >-fi
> >diff --git
> >a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
> >b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
> >index ffcabcad2215..70caf6fc0222 100644
> >--- a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
> >+++ b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
> >@@ -17,7 +17,7 @@ PR = "r4"
> > SRC_URI = "git://git.yoctoproject.org/${BPN} \
> >            file://configure_fix.patch;maxrev=1819 \
> >            file://single-instance.patch \
> >-           file://80matchboxkeyboard.shbg \
> >+           file://80matchboxkeyboard.sh \
> >            file://png-fix.patch"
> >
> > S = "${WORKDIR}/git"
> >@@ -43,7 +43,7 @@ FILES_${PN}-applet = "${libdir}/matchbox-panel/*.so"
> >
> > do_install_append () {
> > 	install -d ${D}/${sysconfdir}/X11/Xsession.d/
> >-	install -m 755 ${WORKDIR}/80matchboxkeyboard.shbg
> >${D}/${sysconfdir}/X11/Xsession.d/
> >+	install -m 755 ${WORKDIR}/80matchboxkeyboard.sh
> >${D}/${sysconfdir}/X11/Xsession.d/
> >
> > 	rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la
> > 	rm -f ${D}${libdir}/matchbox-panel/*.la
> >--
> >1.8.3.2
> >
> >_______________________________________________
> >Openembedded-core mailing list
> >Openembedded-core at lists.openembedded.org
> >http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 
> 
> 
> Sent with AquaMail for Android
> http://www.aqua-mail.com
> 
> 

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the Openembedded-core mailing list