diff options
Diffstat (limited to 'yocto-poky/meta/recipes-graphics/builder')
3 files changed, 98 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-graphics/builder/builder_0.1.bb b/yocto-poky/meta/recipes-graphics/builder/builder_0.1.bb new file mode 100644 index 000000000..bb729fce2 --- /dev/null +++ b/yocto-poky/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/yocto-poky/meta/recipes-graphics/builder/files/builder_hob_start.sh b/yocto-poky/meta/recipes-graphics/builder/files/builder_hob_start.sh new file mode 100644 index 000000000..b394b0905 --- /dev/null +++ b/yocto-poky/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/yocto-poky/meta/recipes-graphics/builder/files/please_wait_dialog.py b/yocto-poky/meta/recipes-graphics/builder/files/please_wait_dialog.py new file mode 100644 index 000000000..fd2381bc8 --- /dev/null +++ b/yocto-poky/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() + |