Skip to contentSkip to conversation

Add mini X for self-hosted

RFC PATCH In review [email protected] 4 participants 12 messages Dec 21, 2011 – Dec 22, 2011

lore
Share & tools
lore
#0 lore raw

cover Add mini X for self-hosted

From: Zhai Edwin <[email protected]>

All,
These patches add mini X, who will execute session files on behalf of file
owner without rootless X. By this way, a minimal X enviroment including matchbox-wm is availale for the "builder" user to start auto-run apps.

Pls. help to review.

Thanks,
Edwin

The following changes since commit 4648aadfe161d2e0ec51408f35fdf8996727bd22:

ui/crumbs/hobprefs: trigger a reparse after changing IMAGE_FSTYPES (2011-12-20 13:15:54 +0000)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib gzhai/build-appliance2
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=gzhai/build-appliance2

Zhai Edwin (4):
minix-session: Add this recipe as the session file for mini X Add mini X core tasks
Add "builder" user for specific purpose.
self-hosted-image: Add builder user and mini X

 meta/classes/core-image.bbclass                    |    2 +
 meta/recipes-core/images/self-hosted-image.bb      |    4 +-
 meta/recipes-core/tasks/task-self-hosted.bb        |    3 +-
 meta/recipes-graphics/builder/builder_0.1.bb       |   27 ++++++++++++
 meta/recipes-graphics/builder/files/auto_start.sh  |   11 +++++
 .../minix-session/files/minix-session              |   32 ++++++++++++++
 .../minix-session/minix-session_0.1.bb             |   24 ++++++++++
 meta/recipes-sato/tasks/task-core-x11-mini.bb      |   45 ++++++++++++++++++++
 8 files changed, 146 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-graphics/builder/builder_0.1.bb
 create mode 100644 meta/recipes-graphics/builder/files/auto_start.sh
 create mode 100644 meta/recipes-graphics/minix-session/files/minix-session
 create mode 100644 meta/recipes-graphics/minix-session/minix-session_0.1.bb
 create mode 100644 meta/recipes-sato/tasks/task-core-x11-mini.bb
#1 lore raw

PATCH 1/4 minix-session: Add this recipe as the session file for mini X

From: Zhai Edwin <[email protected]>

minix-session runs session files on behalf of file owner, so that no rootless X required.

---
 .../minix-session/files/minix-session              |   32 ++++++++++++++++++++
 .../minix-session/minix-session_0.1.bb             |   24 +++++++++++++++
 2 files changed, 56 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/minix-session/files/minix-session
 create mode 100644 meta/recipes-graphics/minix-session/minix-session_0.1.bb
meta/recipes-graphics/minix-session/files/minix-session new file +32 -0
new file mode 100644
index 0000000..c28d537
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# Very simple session manager for Mini X
+#
+
+# Uncomment below to enable parsing of debian menu entrys
+# export MB_USE_DEB_MENUS=1 
+
+if [ -e $HOME/.minix/session ]
+then
+exec $HOME/.minix/session
+fi
+
+if [ -e /etc/minix/session ]
+then
+exec /etc/minix/session
+fi
+
+MINIX_SESSION_DIR=/etc/minix/session.d
+
+# Execute session file on behalf of file owner
+for SESSIONFILE in $MINIX_SESSION_DIR/*; do
+    set +e
+    USERNAME=`stat -c %U $SESSIONFILE`
+    sudo -b -i -u $USERNAME $SESSIONFILE& 
+    set -e
+done
+# Default files to run if $HOME/.minix/session or /etc/minix/session
+# dont exist. 
+
+matchbox-terminal&
+exec matchbox-window-manager
meta/recipes-graphics/minix-session/minix-session_0.1.bb new file +24 -0
new file mode 100644
index 0000000..2e912c6
@@ -0,0 +1,24 @@
+DESCRIPTION = "Mini X session files for poky"
+HOMEPAGE = "http://www.yoctoproject.org"
+BUGTRACKER = "http://bugzilla.pokylinux.org"
+
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://minix-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487"
+
+SECTION = "x11"
+RCONFLICTS = "matchbox-common"
+
+SRC_URI = "file://minix-session"
+S = "${WORKDIR}"
+
+inherit update-alternatives
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/minix-session"
+ALTERNATIVE_PRIORITY = "10"
+
+do_install() {
+	install -d ${D}/${bindir}
+	install -m 0755 ${S}/minix-session ${D}/${bindir}
+}
Signature · 1 line
1.7.1
#2 lore raw

Re: [PATCH 1/4] minix-session: Add this recipe as the session file for mini X

Hi Edwin,

Quoted 4 lines · On Wednesday 21 December 2011 16:18:05 [email protected] wrote:

From: Zhai Edwin <[email protected]>

minix-session runs session files on behalf of file owner, so that no rootless X required.

A bit of a minor nitpick I know, but since "minix" is already the name of a well-known operating system I would suggest changing this to mini-x-session or similar.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#3 lore raw

Re: [PATCH 1/4] minix-session: Add this recipe as the session file for mini X

Quoted 5 lines · Paul Eggleton

Hi Edwin,

Quoted 2 lines · On Wednesday 21 December 2011 16:18:05 [email protected] wrote:

From: Zhai Edwin <[email protected]>

Quoted 8 lines
Quoted 2 lines

minix-session runs session files on behalf of file owner, so that no rootless X required.

A bit of a minor nitpick I know, but since "minix" is already the name of a well-known operating system I would suggest changing this to mini-x-session or
similar.

Agreed; minix is too confusing for this context.

Signature · 3 lines
Otavio Salvador                             O.S. Systems
E-mail: [email protected]  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
#4 lore raw

Re: [PATCH 1/4] minix-session: Add this recipe as the session file for mini X

In reply to Paul Eggleton
Quoted 11 lines · Paul Eggleton

Hi Edwin,

Quoted 4 lines · On Wednesday 21 December 2011 16:18:05 [email protected] wrote:

From: Zhai Edwin<[email protected]>

minix-session runs session files on behalf of file owner, so that no rootless X required.

A bit of a minor nitpick I know, but since "minix" is already the name of a well-known operating system I would suggest changing this to mini-x-session or similar.

Good point! I'll change it.
Thanks,

Quoted 4 lines

Cheers,
Paul

#5 lore raw

Re: [PATCH 1/4] minix-session: Add this recipe as the session file for mini X

In reply to [email protected]
Quoted 57 lines · On 12/21/2011 12:18 AM, [email protected] wrote:

From: Zhai Edwin<[email protected]>

minix-session runs session files on behalf of file owner, so that no rootless X required.

---
  .../minix-session/files/minix-session              |   32 ++++++++++++++++++++
  .../minix-session/minix-session_0.1.bb             |   24 +++++++++++++++
  2 files changed, 56 insertions(+), 0 deletions(-)

create mode 100644 meta/recipes-graphics/minix-session/files/minix-session create mode 100644 meta/recipes-graphics/minix-session/minix-session_0.1.bb

meta/recipes-graphics/minix-session/files/minix-session new file +32 -0
new file mode 100644
index 0000000..c28d537
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# Very simple session manager for Mini X
+#
+
+# Uncomment below to enable parsing of debian menu entrys
+# export MB_USE_DEB_MENUS=1
+
+if [ -e $HOME/.minix/session ]
+then
+exec $HOME/.minix/session
+fi
+
+if [ -e /etc/minix/session ]
+then
+exec /etc/minix/session
+fi
+
+MINIX_SESSION_DIR=/etc/minix/session.d
+
+# Execute session file on behalf of file owner
+for SESSIONFILE in $MINIX_SESSION_DIR/*; do
+    set +e
+    USERNAME=`stat -c %U $SESSIONFILE`
+    sudo -b -i -u $USERNAME $SESSIONFILE&
+    set -e
+done
+# Default files to run if $HOME/.minix/session or /etc/minix/session
+# dont exist.
+
+matchbox-terminal&
+exec matchbox-window-manager
meta/recipes-graphics/minix-session/minix-session_0.1.bb new file +0 -0
new file mode 100644
index 0000000..2e912c6

meta/recipes-graphics/minix-session/minix-session_0.1.bb line 7

Quoted 7 lines
meta/recipes-graphics/minix-session/minix-session_0.1.bb new file +7 -0
@@ -0,0 +1,24 @@
+DESCRIPTION = "Mini X session files for poky"
+HOMEPAGE = "http://www.yoctoproject.org"
+BUGTRACKER = "http://bugzilla.pokylinux.org"
+
+LICENSE = "GPL"
+LIC_FILES_CHKSUM = "file://minix-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487"
+

Is this really GPL? MIT maybe?

And if it is GPL then what version?

Sau!

Quoted 17 lines
meta/recipes-graphics/minix-session/minix-session_0.1.bb new file +17 -0
+SECTION = "x11"
+RCONFLICTS = "matchbox-common"
+
+SRC_URI = "file://minix-session"
+S = "${WORKDIR}"
+
+inherit update-alternatives
+
+ALTERNATIVE_NAME = "x-session-manager"
+ALTERNATIVE_LINK = "${bindir}/x-session-manager"
+ALTERNATIVE_PATH = "${bindir}/minix-session"
+ALTERNATIVE_PRIORITY = "10"
+
+do_install() {
+	install -d ${D}/${bindir}
+	install -m 0755 ${S}/minix-session ${D}/${bindir}
+}
#6 lore raw

Re: [PATCH 1/4] minix-session: Add this recipe as the session file for mini X

Quoted 13 lines · Saul Wold
Quoted 5 lines
meta/recipes-graphics/minix-session/minix-session_0.1.bb +0 -0
Quoted 4 lines

new file mode 100644
index 0000000..2e912c6
--- /dev/null
+++ b/meta/recipes-graphics/minix-session/minix-session_0.1.bb

Quoted 8 lines
Quoted 8 lines

@@ -0,0 +1,24 @@
+DESCRIPTION = "Mini X session files for poky"
+HOMEPAGE ="http://www.yoctoproject.org"
+BUGTRACKER ="http://bugzilla.pokylinux.org"
+
+LICENSE = "GPL"
+LIC_FILES_CHKSUM ="file://minix-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487" +

Quoted 3 lines

Is this really GPL? MIT maybe?

And if it is GPL then what version?

I derived it from matchbox-session and inherited "GPL". Maybe GPLv2 is more reasonable?

Thanks,
Edwin

Quoted 3 lines

Sau!

#7 lore raw

Re: [PATCH 1/4] minix-session: Add this recipe as the session file for mini X

Quoted 15 lines · Edwin
Quoted 14 lines · Saul Wold
Quoted 14 lines
meta/recipes-graphics/minix-session/minix-session_0.1.bb +0 -0

meta/recipes-graphics/minix-session/minix-session_0.1.bb line 6

Quoted 11 lines

new file mode 100644
index 0000000..2e912c6

meta/recipes-graphics/minix-session/minix-session_0.1.bb new file +6 -0
@@ -0,0 +1,24 @@
+DESCRIPTION = "Mini X session files for poky"
+HOMEPAGE ="http://www.yoctoproject.org"
+BUGTRACKER ="http://bugzilla.pokylinux.org"
+
+LICENSE = "GPL"
+LIC_FILES_CHKSUM

="file://minix-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487"

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

meta/recipes-graphics/minix-session/minix-session_0.1.bb line 7

Quoted 1 line
meta/recipes-graphics/minix-session/minix-session_0.1.bb new file +1 -0
+

Is this really GPL? MIT maybe?

And if it is GPL then what version?

I derived it from matchbox-session and inherited "GPL". Maybe GPLv2 is more reasonable?

Yes

Quoted 8 lines

Thanks,
Edwin

Quoted 3 lines

Sau!

#8 lore raw

PATCH 2/4 Add mini X core tasks

In reply to [email protected]

From: Zhai Edwin <[email protected]>

---
 meta/classes/core-image.bbclass               |    2 +
 meta/recipes-sato/tasks/task-core-x11-mini.bb |   45 +++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-sato/tasks/task-core-x11-mini.bb
meta/classes/core-image.bbclass +2 -0
index 8e83d4a..c08895f 100644
@@ -13,6 +13,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3
 # Available IMAGE_FEATURES:
 #
 # - apps-console-core
+# - x11-mini            - minimal environment for X11 server 
 # - x11-base            - X11 server + minimal desktop	
 # - x11-sato            - OpenedHand Sato environment
 # - x11-netbook         - Metacity based environment for netbooks
@@ -29,6 +30,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3
 # - debug-tweaks        - makes an image suitable for development
 #
 PACKAGE_GROUP_apps-console-core = "task-core-apps-console"
+PACKAGE_GROUP_x11-mini = "task-core-x11-mini"
 PACKAGE_GROUP_x11-base = "task-core-x11-base"
 PACKAGE_GROUP_x11-sato = "task-core-x11-sato"
 PACKAGE_GROUP_x11-netbook = "task-core-x11-netbook"
meta/recipes-sato/tasks/task-core-x11-mini.bb new file +45 -0

45 lines not on this page · raw message

Signature · 1 line
1.7.1
#9 lore raw

PATCH 3/4 Add "builder" user for specific purpose.

In reply to [email protected]

From: Zhai Edwin <[email protected]>

"builder" can start some auto stuff by mini X session.

---
 meta/recipes-graphics/builder/builder_0.1.bb      |   27 +++++++++++++++++++++
 meta/recipes-graphics/builder/files/auto_start.sh |   11 ++++++++
 2 files changed, 38 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/builder/builder_0.1.bb
 create mode 100644 meta/recipes-graphics/builder/files/auto_start.sh
meta/recipes-graphics/builder/builder_0.1.bb new file +27 -0
new file mode 100644
index 0000000..abe329f
@@ -0,0 +1,27 @@
+SUMMARY = "New user to do specific job"
+DESCRIPTION = "This recipe create a new user named ${PN}, who is used for specific jobs like building. The task can be auto started via mini X"
+SECTION = "x11"
+PR = "r0"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://auto_start.sh;endline=5;md5=66d6c43a8b2583e3bd70c6b020f679a4"
+
+SRC_URI = "file://auto_start.sh"
+
+S = "${WORKDIR}"
+
+RDEPENDS_${PN} = "minix-session"
+
+inherit useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --create-home \
+                       --groups video,tty,audio \
+                       --user-group ${PN}"
+
+do_install () {
+	install -d -m 755 ${D}/etc/minix/session.d
+	install -p -m 755 auto_start.sh ${D}/etc/minix/session.d/
+
+	chown  ${PN}.${PN} ${D}/etc/minix/session.d/auto_start.sh
+}
+
meta/recipes-graphics/builder/files/auto_start.sh new file +11 -0
new file mode 100644
index 0000000..7247d1c
@@ -0,0 +1,11 @@
+#!/bin/sh
+#This script will be called via minix X session on behalf of file owner, after
+#installed in /etc/minix/session.d/. Any auto start jobs including X apps can
+#be put here
+
+# start hob here
+#cd /intel/poky/poky
+#. ./oe-init-build-env
+#../scripts/hob
+
+matchbox-terminal&
Signature · 1 line
1.7.1
#10 lore raw

Re: [PATCH 3/4] Add "builder" user for specific purpose.

Quoted 8 lines · On 12/21/2011 12:18 AM, [email protected] wrote:

From: Zhai Edwin<[email protected]>

"builder" can start some auto stuff by mini X session.

---
  meta/recipes-graphics/builder/builder_0.1.bb      |   27 +++++++++++++++++++++
  meta/recipes-graphics/builder/files/auto_start.sh |   11 ++++++++

auto_start is a pretty generic script name, might be better to call it soemthing like builder_hob_start.sh or something more unique.

Sau!

Quoted 54 lines
  2 files changed, 38 insertions(+), 0 deletions(-)

create mode 100644 meta/recipes-graphics/builder/builder_0.1.bb create mode 100644 meta/recipes-graphics/builder/files/auto_start.sh

meta/recipes-graphics/builder/builder_0.1.bb new file +27 -0
new file mode 100644
index 0000000..abe329f
@@ -0,0 +1,27 @@
+SUMMARY = "New user to do specific job"
+DESCRIPTION = "This recipe create a new user named ${PN}, who is used for specific jobs like building. The task can be auto started via mini X"
+SECTION = "x11"
+PR = "r0"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://auto_start.sh;endline=5;md5=66d6c43a8b2583e3bd70c6b020f679a4"
+
+SRC_URI = "file://auto_start.sh"
+
+S = "${WORKDIR}"
+
+RDEPENDS_${PN} = "minix-session"
+
+inherit useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --create-home \
+                       --groups video,tty,audio \
+                       --user-group ${PN}"
+
+do_install () {
+	install -d -m 755 ${D}/etc/minix/session.d
+	install -p -m 755 auto_start.sh ${D}/etc/minix/session.d/
+
+	chown  ${PN}.${PN} ${D}/etc/minix/session.d/auto_start.sh
+}
+
meta/recipes-graphics/builder/files/auto_start.sh new file +11 -0
new file mode 100644
index 0000000..7247d1c
@@ -0,0 +1,11 @@
+#!/bin/sh
+#This script will be called via minix X session on behalf of file owner, after
+#installed in /etc/minix/session.d/. Any auto start jobs including X apps can
+#be put here
+
+# start hob here
+#cd /intel/poky/poky
+#. ./oe-init-build-env
+#../scripts/hob
+
+matchbox-terminal&
#11 lore raw

PATCH 4/4 self-hosted-image: Add builder user and mini X

In reply to [email protected]

From: Zhai Edwin <[email protected]>

---
 meta/recipes-core/images/self-hosted-image.bb |    4 +++-
 meta/recipes-core/tasks/task-self-hosted.bb   |    3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)
meta/recipes-core/images/self-hosted-image.bb +3 -1
index 53bd989..111c057 100644
@@ -4,6 +4,8 @@ POKY_EXTRA_INSTALL = "\
     task-self-hosted \
     "
 
+IMAGE_FEATURES += "x11-mini"
+
 inherit core-image
 
-PR = "r1"
+PR = "r2"
meta/recipes-core/tasks/task-self-hosted.bb +2 -1
index 077193b..ebf8a01 100644
@@ -3,7 +3,7 @@
 #
 
 DESCRIPTION = "Create Basic Image Tasks"
-PR = "r2"
+PR = "r3"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
@@ -190,4 +190,5 @@ RDEPENDS_task-self-hosted-graphics = "\
     libsdl \
     libsdl-dev \
     libx11-dev \
+    builder \
     "
Signature · 1 line
1.7.1