Squashed 'yocto-poky/' content from commit ea562de
git-subtree-dir: yocto-poky
git-subtree-split: ea562de57590c966cd5a75fda8defecd397e6436
diff --git a/meta/recipes-graphics/builder/builder_0.1.bb b/meta/recipes-graphics/builder/builder_0.1.bb
new file mode 100644
index 0000000..bb729fc
--- /dev/null
+++ b/meta/recipes-graphics/builder/builder_0.1.bb
@@ -0,0 +1,33 @@
+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 = "r6"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://builder_hob_start.sh;endline=5;md5=84796c3c41785d86100fdabcbdade00e"
+
+SRC_URI = "file://builder_hob_start.sh \
+ file://please_wait_dialog.py \
+ "
+
+S = "${WORKDIR}"
+
+RDEPENDS_${PN} = "mini-x-session"
+
+inherit useradd
+
+# builder user password is "builder"
+BUILDER_PASSWORD ?= ".gLibiNXn0P12"
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --create-home \
+ --groups video,tty,audio \
+ --password ${BUILDER_PASSWORD} \
+ --user-group builder"
+
+do_install () {
+ install -d -m 755 ${D}${sysconfdir}/mini_x/session.d
+ install -p -m 755 builder_hob_start.sh ${D}${sysconfdir}/mini_x/session.d/
+
+ chown builder.builder ${D}${sysconfdir}/mini_x/session.d/builder_hob_start.sh
+ install -p -m 755 please_wait_dialog.py ${D}${sysconfdir}/mini_x
+}
+
diff --git a/meta/recipes-graphics/builder/files/builder_hob_start.sh b/meta/recipes-graphics/builder/files/builder_hob_start.sh
new file mode 100644
index 0000000..b394b09
--- /dev/null
+++ b/meta/recipes-graphics/builder/files/builder_hob_start.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+#This script will be called via mini X session on behalf of file owner, after
+#installed in /etc/mini_x/session.d/. Any auto start jobs including X apps can
+#be put here
+
+# start hob here
+export PSEUDO_PREFIX=/usr
+export PSEUDO_LOCALSTATEDIR=/home/builder/pseudo
+export PSEUDO_LIBDIR=/usr/lib/pseudo/lib64
+export GIT_PROXY_COMMAND=/home/builder/poky/scripts/oe-git-proxy
+
+#start pcmanfm in daemon mode to allow asynchronous launch
+pcmanfm -d&
+
+#register handlers for some file types
+if [ ! -d /home/builder/.local/share/applications ]; then
+ mkdir -p /home/builder/.local/share/applications/
+ #register folders to open with PCManFM filemanager
+ xdg-mime default pcmanfm.desktop inode/directory
+
+ #register html links and files with epiphany
+ xdg-mime default epiphany.desktop x-scheme-handler/http
+ xdg-mime default epiphany.desktop x-scheme-handler/https
+ xdg-mime default epiphany.desktop text/html
+
+ #register text files with leafpad text editor
+ xdg-mime default leafpad.desktop text/plain
+fi
+
+cd /home/builder/poky
+. ./oe-init-build-env
+
+hob &
+
+matchbox-terminal&
+
+/etc/mini_x/please_wait_dialog.py &
diff --git a/meta/recipes-graphics/builder/files/please_wait_dialog.py b/meta/recipes-graphics/builder/files/please_wait_dialog.py
new file mode 100644
index 0000000..fd2381b
--- /dev/null
+++ b/meta/recipes-graphics/builder/files/please_wait_dialog.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+import glib
+import gtk
+
+def destroy_window_cb(widget, event):
+ gtk.main_quit()
+
+def all_done_cb():
+ gtk.main_quit()
+
+def dialogue_ui():
+ window = gtk.Window()
+ window.set_title("Please wait...")
+ window.connect("delete-event", destroy_window_cb)
+ window.show()
+ window.set_border_width(12)
+
+ msg = "Please wait while BitBake initializes Hob"
+ label = gtk.Label(msg)
+ label.show()
+ window.add(label)
+
+ glib.timeout_add_seconds(10, all_done_cb)
+
+if __name__ == "__main__":
+ dialogue_ui()
+ gtk.main()
+