aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--COPYING.MIT17
-rw-r--r--README70
-rw-r--r--conf/layer.conf15
-rw-r--r--example-config/bblayers.conf32
-rw-r--r--example-config/local.conf22
-rw-r--r--example-config/overc-installer-examples/config-hd.sh69
-rw-r--r--example-config/overc-installer-examples/config-usb-arm.sh6
-rw-r--r--example-config/overc-installer-examples/config-usb-cube.sh20
-rw-r--r--example-config/overc-installer-examples/config-usb.sh112
-rw-r--r--recipes-autobuilder/images/cube-autobuilder-server.bb64
-rw-r--r--recipes-autobuilder/yocto-autobuilder/files/yocto-autobuilder.service12
-rw-r--r--recipes-autobuilder/yocto-autobuilder/yocto-autobuilder_2.0.bb57
12 files changed, 496 insertions, 0 deletions
diff --git a/COPYING.MIT b/COPYING.MIT
new file mode 100644
index 00000000000..fb950dc69fe
--- /dev/null
+++ b/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README b/README
new file mode 100644
index 00000000000..4e981f2cbcf
--- /dev/null
+++ b/README
@@ -0,0 +1,70 @@
+meta-autobuilder
+===================
+The goal of this layer is to create a yocto-autobuilder recipe and various image
+types, including a container image for the meta-overc/meta-cube layer
+
+Dependencies
+------------
+This layer depends on:
+
+URI: git://git.yoctoproject.org/poky
+branch: master
+revision: HEAD
+layers: meta-yocto-bsp
+prio: default
+
+URI: git://github.com/openembedded/meta-openembedded.git
+branch: master
+revision: HEAD
+layers: meta-oe
+ meta-networking
+ meta-filesystems
+ meta-python
+ meta-gnome
+ meta-xfce
+ meta-multimedia
+
+URI: git://git.yoctoproject.org/meta-virtualization
+branch: master
+revision: HEAD
+prio: default
+
+URI: git://github.com/OSSystems/meta-browser.git
+branch: master
+revision: HEAD
+prio: default
+
+URI: git://git.yoctoproject.org/meta-cloud-services
+branch: master
+revision: HEAD
+prio: default
+
+URI: git://git.yoctoproject.org/meta-qt4
+branch: master
+revision: HEAD
+prio: default
+
+URI: git://github.com/errordeveloper/oe-meta-go.git
+branch: master
+revision: HEAD
+prio: default
+
+URI: git://git.yoctoproject.org/meta-autobuilder
+branch: master
+revision: HEAD
+prio: default
+
+
+Maintenance
+-----------
+
+Send pull requests, patches, comments or questions to bruce.ashfield@windriver.com
+
+Maintainers: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
+
+License
+-------
+
+All metadata is MIT licensed unless otherwise stated. Source code included
+in tree for individual recipes is under the LICENSE stated in each recipe
+(.bb file) unless otherwise stated.
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 00000000000..99c26d10372
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,15 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "autobuilder"
+BBFILE_PATTERN_autobuilder = "^${LAYERDIR}/"
+BBFILE_PRIORITY_autobuilder = "1"
+
+# This should only be incremented on significant changes that will
+# cause compatibility issues with other layers
+LAYERVERSION_autobuilder = "1"
+
+LAYERDEPENDS_autobuilder = "core"
diff --git a/example-config/bblayers.conf b/example-config/bblayers.conf
new file mode 100644
index 00000000000..88f3e606107
--- /dev/null
+++ b/example-config/bblayers.conf
@@ -0,0 +1,32 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "6"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ /home/pidge/overc-demo/meta \
+ /home/pidge/overc-demo/meta-yocto \
+ /home/pidge/overc-demo/meta-yocto-bsp \
+ /home/pidge/overc-demo/meta-qt4 \
+ /home/pidge/overc-demo/meta-browser \
+ /home/pidge/overc-demo/meta-openembedded/meta-oe \
+ /home/pidge/overc-demo/meta-openembedded/meta-networking \
+ /home/pidge/overc-demo/meta-openembedded/meta-filesystems \
+ /home/pidge/overc-demo/meta-openembedded/meta-python \
+ /home/pidge/overc-demo/meta-openembedded/meta-gnome \
+ /home/pidge/overc-demo/meta-openembedded/meta-xfce \
+ /home/pidge/overc-demo/meta-openembedded/meta-multimedia \
+ /home/pidge/overc-demo/oe-meta-go \
+ /home/pidge/overc-demo/meta-virtualization \
+ /home/pidge/overc-demo/meta-overc \
+ /home/pidge/overc-demo/meta-overc/meta-cube \
+ /home/pidge/overc-demo/meta-cloud-services \
+ /home/pidge/overc-demo/meta-autobuilder \
+"
+
+BBLAYERS_NON_REMOVABLE ?= " \
+ /home/pidge/overc-demo/meta \
+ /home/pidge/overc-demo/meta-yocto \
+ "
diff --git a/example-config/local.conf b/example-config/local.conf
new file mode 100644
index 00000000000..d32c52b6bff
--- /dev/null
+++ b/example-config/local.conf
@@ -0,0 +1,22 @@
+DL_DIR ?= "/home/pidge/poky/build/downloads"
+DISTRO ?= "overc"
+MACHINE = "genericx86-64"
+KMACHINE_genericx86-64 ?= "common-pc-64"
+USER_CLASSES ?= "buildstats"
+PACKAGE_CLASSES ?= "package_rpm"
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+PATCHRESOLVE = "noop"
+BB_DISKMON_DIRS = "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+PACKAGECONFIG_append_pn-qemu-native = " sdl"
+PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
+CONF_VERSION = "1"
+
+
diff --git a/example-config/overc-installer-examples/config-hd.sh b/example-config/overc-installer-examples/config-hd.sh
new file mode 100644
index 00000000000..021ba61e470
--- /dev/null
+++ b/example-config/overc-installer-examples/config-hd.sh
@@ -0,0 +1,69 @@
+######################################################################
+# Define some configuration variables
+
+## Installer file locations
+INSTALLER_FILES_DIR="/inst/images/"
+INSTALLER_SBIN_DIR="/inst/installer/sbin"
+
+INSTALL_KERNEL="${INSTALLER_FILES_DIR}/bzImage"
+INSTALL_ROOTFS="${INSTALLER_FILES_DIR}/op3-graphical-builder-genericx86-64.tar.bz2"
+INSTALL_MODULES=""
+
+INSTALL_GRUBHDCFG="${INSTALLER_FILES_DIR}/grub-hd.cfg"
+INSTALL_GRUBUSBCFG="${INSTALLER_FILES_DIR}/grub-usb.cfg"
+INSTALL_GRUBCFG="${INSTALL_GRUBHDCFG}"
+
+INSTALL_FILES="${INSTALL_KERNEL} ${INSTALL_ROOTFS} ${INSTALL_MODULES} ${INSTALL_GRUBCFG}"
+
+## List of prerequisite files for the installer to check
+PREREQ_FILES="${INSTALL_FILES}"
+
+BOARD_NAME="genericx86"
+EVAL_NAME="Nucleo-T Evaluation"
+
+HARDDRIVE_DEVICE="/sys/class/scsi_disk/0:0:0:0/device"
+HARDDRIVE_MODEL="ST9120822SB "
+
+BOOTPART_START="0"
+BOOTPART_END="250M"
+BOOTPART_FSTYPE="fat32"
+BOOTPART_LABEL="boot"
+
+ROOTFS_START="250M"
+ROOTFS_END="-1" # Specify -1 to use the rest of drive
+ROOTFS_FSTYPE="ext2"
+ROOTFS_LABEL="rootfs"
+
+HARDDRIVE_BANNER="Wind River Hard Drive Installer
+--------------------------------------------------------------------------------
+$EVAL_NAME
+--------------------------------------------------------------------------------"
+
+HARDDRIVE_INTRODUCTION="
+This installer will erase all data on your hard drive and configure it to boot
+a working Nucleo-T
+"
+
+INSTALLER_COMPLETE="Installation is now complete"
+
+CONFIRM_REBOOT=1
+
+CMD_GRUB_INSTALL="/bin/bash /sbin/grub-install"
+
+######################################################################
+# Define some debug output variables
+
+# Debug Levels - fixed values
+DEBUG_SILENT=0
+DEBUG_CRIT=1
+DEBUG_WARN=2
+DEBUG_INFO=4
+DEBUG_VERBOSE=7
+
+# Set your default debug level
+: ${DEBUG_DEFAULT:=${DEBUG_INFO}}
+
+# Dynamic debug level
+DEBUG_LEVEL=${DEBUG_DEFAULT}
+
+: ${TRACE:=0}
diff --git a/example-config/overc-installer-examples/config-usb-arm.sh b/example-config/overc-installer-examples/config-usb-arm.sh
new file mode 100644
index 00000000000..ddda0979768
--- /dev/null
+++ b/example-config/overc-installer-examples/config-usb-arm.sh
@@ -0,0 +1,6 @@
+# For ARM boards
+INSTALL_DTB="${ARTIFACTS_DIR}/dtb"
+INSTALL_BOOTLOADER="${ARTIFACTS_DIR}/uboot.bin"
+
+# fsl-ls10xx or xilinx-zynq
+BOARD_NAME="fsl-ls10xx"
diff --git a/example-config/overc-installer-examples/config-usb-cube.sh b/example-config/overc-installer-examples/config-usb-cube.sh
new file mode 100644
index 00000000000..7793ebbde04
--- /dev/null
+++ b/example-config/overc-installer-examples/config-usb-cube.sh
@@ -0,0 +1,20 @@
+source config-usb.sh
+
+HDINSTALL_ROOTFS="${ARTIFACTS_DIR}/cube-essential-genericx86-64.tar.bz2"
+
+HDINSTALL_CONTAINERS="${ARTIFACTS_DIR}/cube-dom0-genericx86-64.tar.bz2:vty=2 \
+ ${ARTIFACTS_DIR}/cube-domE-genericx86-64.tar.bz2:vty=3"
+
+
+HDINSTALL_CONTAINERS_STRIP="${ARTIFACTS_DIR}/cube-dom0-genericx86-64.tar.bz2 \
+ ${ARTIFACTS_DIR}/cube-domE-genericx86-64.tar.bz2"
+
+## Uncomment for grub legacy
+#INSTALL_GRUBUSBCFG="menu.lst.initramfs-installer"
+#INSTALL_GRUBCFG="${INSTALLER_FILES_DIR}/${INSTALL_GRUBUSBCFG}"
+
+# Recalculate PREREQ_FILES
+calc_prereq_files
+
+# Add to the list of PREREQ_FILES
+PREREQ_FILES="${PREREQ_FILES} ${HDINSTALL_ROOTFS} ${HDINSTALL_CONTAINERS_STRIP}"
diff --git a/example-config/overc-installer-examples/config-usb.sh b/example-config/overc-installer-examples/config-usb.sh
new file mode 100644
index 00000000000..85785827ba0
--- /dev/null
+++ b/example-config/overc-installer-examples/config-usb.sh
@@ -0,0 +1,112 @@
+######################################################################
+# Define some configuration variables
+
+# set this variable
+INITRAMFS_EXTRAS=""
+
+# set artifacts dir to the location of the kernel, image, etc.
+if [ -z "${ARTIFACTS_DIR}" ]; then
+ ARTIFACTS_DIR="/home/pidge/overc-demo/build/tmp/deploy/images/genericx86-64/"
+fi
+
+### Included in PREREQ_FILES.
+INSTALL_KERNEL="${ARTIFACTS_DIR}/bzImage"
+INSTALL_ROOTFS="${ARTIFACTS_DIR}/cube-essential-genericx86-64.tar.bz2"
+INSTALL_INITRAMFS="${ARTIFACTS_DIR}/cube-builder-initramfs-genericx86-64.cpio.gz"
+INSTALL_MODULES="${ARTIFACTS_DIR}/modules-genericx86-64.tgz"
+
+INSTALL_GRUBHDCFG="grub-hd.cfg"
+INSTALL_GRUBUSBCFG="grub-usb.cfg"
+INSTALL_GRUBCFG="${INSTALLER_FILES_DIR}/${INSTALL_GRUBUSBCFG}"
+### End included in PREREQ_FILES.
+
+## List of prerequisite files for the installer to check. If you overwrite any
+# of the variables in the previous section after sourcing this config be sure
+# to run calc_prereq_files() again to recalculate PREREQ_FILES.
+calc_prereq_files() {
+ INSTALL_FILES="${INSTALL_KERNEL} ${INSTALL_ROOTFS} ${INSTALL_MODULES} ${INSTALL_GRUBCFG}"
+ PREREQ_FILES="${INSTALL_FILES}"
+}
+calc_prereq_files
+
+INSTALL_INITRAMFS="${ARTIFACTS_DIR}/cube-builder-initramfs-genericx86-64.cpio.gz"
+INSTALL_EFIBOOT="${ARTIFACTS_DIR}/bootx64.efi"
+
+#the smart config file which has been set the smart channels.
+INSTALL_SMARTCONFIG="${ARTIFACTS_DIR}/config"
+
+HDINSTALL_ROOTFS="${ARTIFACTS_DIR}/cube-graphical-builder-genericx86-64.tar.bz2 \
+ ${ARTIFACTS_DIR}/cube-builder-genericx86-64.tar.bz2"
+
+
+# Uncomment to specify path to init.pp
+#INSTALL_PUPPET_DIR="puppet"
+
+## List of prerequisite files for the installer to check
+BOARD_NAME="Generic x86"
+EVAL_NAME="Evaluation - OverC"
+DISTRIBUTION="OverC"
+
+BOOTPART_START="63s"
+BOOTPART_END="250M"
+BOOTPART_FSTYPE="fat32"
+BOOTPART_LABEL="boot"
+
+ROOTFS_START="250M"
+ROOTFS_END="-1" # Specify -1 to use the rest of drive
+ROOTFS_FSTYPE="ext2"
+ROOTFS_LABEL="rootfs"
+
+USBSTORAGE_BANNER="USB Creator for the Hard Drive Installer
+--------------------------------------------------------------------------------
+$EVAL_NAME
+--------------------------------------------------------------------------------"
+
+USBSTORAGE_INTRODUCTION="
+This script will erase all data on your USB flash drive and configure it to boot
+the Wind River Hard Drive Installer. This installer will then allow you to
+install a working system configuration on to your internal hard drive.
+"
+
+INSTALLER_COMPLETE="Installation is now complete"
+
+CONFIRM_INSTALL=1
+CONFIRM_REBOOT=0
+
+CMD_GRUB_INSTALL="/usr/sbin/grub-install"
+
+######################################################################
+# Define some debug output variables
+
+# Debug Levels - fixed values
+DEBUG_SILENT=0
+DEBUG_CRIT=1
+DEBUG_WARN=2
+DEBUG_INFO=4
+DEBUG_VERBOSE=7
+
+# Set your default debug level
+: ${DEBUG_DEFAULT:=${DEBUG_INFO}}
+
+# Dynamic debug level
+DEBUG_LEVEL=${DEBUG_DEFAULT}
+
+: ${TRACE:=0}
+
+CONFIG_FILE_ARM="config-usb-arm.sh"
+export X86_ARCH=true
+#get the target's architecture, x86 or not x86?
+file -L $INSTALL_KERNEL | grep -i x86 >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ export X86_ARCH=false
+fi
+
+if ! $X86_ARCH; then
+ if ! [ -e "$CONFIG_FILE_ARM" ]; then
+ echo "ERROR: Could not find confgiration file (${CONFIG_FILE_ARM}) for ARM architecture."
+ exit 1
+ else
+ source $CONFIG_FILE_ARM
+ fi
+fi
+
diff --git a/recipes-autobuilder/images/cube-autobuilder-server.bb b/recipes-autobuilder/images/cube-autobuilder-server.bb
new file mode 100644
index 00000000000..d48a36bb383
--- /dev/null
+++ b/recipes-autobuilder/images/cube-autobuilder-server.bb
@@ -0,0 +1,64 @@
+dSUMMARY = "A container image for the yocto-autobuilder which can build itself"
+DESCRIPTION = "Launched from the essential image, this is a container image \
+ which provides a working yocto-autobuilder that can produce and
+ deploy itself. \
+ "
+HOMEPAGE = "http://www.yoctoproject.org"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+IMAGE_FEATURES += "package-management doc-pkgs x11-base"
+IMAGE_FSTYPES = "tar.bz2"
+
+PACKAGE_EXCLUDE = "busybox*"
+
+# Exclude documention packages, which can be installed later
+PACKAGE_EXCLUDE_COMPLEMENTARY = "ruby|ruby-shadow|puppet|hiera|facter"
+
+CUBE_AUTOBUILDER_SERVER_EXTRA_INSTALL ?= ""
+
+IMAGE_INSTALL += "packagegroup-core-boot \
+ packagegroup-dom0 \
+ packagegroup-util-linux \
+ packagegroup-core-ssh-openssh \
+ packagegroup-core-full-cmdline \
+ packagegroup-builder \
+ packagegroup-xfce \
+ packagegroup-container \
+ packagegroup-container \
+ packagegroup-self-hosted \
+ ntp \
+ ntpdate \
+ ntp-utils \
+ yocto-autobuilder \
+ ${CUBE_AUTOBUILDER_SERVER_EXTRA_INSTALL} \
+ "
+
+XSERVER_append = "xserver-xorg \
+ xserver-xorg-extension-dri \
+ xserver-xorg-extension-dri2 \
+ xserver-xorg-extension-glx \
+ xserver-xorg-extension-extmod \
+ xserver-xorg-extension-dbe \
+ xserver-xorg-module-libint10 \
+ xf86-input-evdev \
+ xf86-input-keyboard \
+ xf86-input-mouse \
+ xf86-input-synaptics \
+ xf86-input-vmmouse \
+ xf86-video-ati \
+ xf86-video-fbdev \
+ xf86-video-intel \
+ xf86-video-mga \
+ xf86-video-modesetting \
+ xf86-video-nouveau \
+ xf86-video-vesa \
+ xf86-video-vmware \
+ "
+
+ALTERNATIVE_PRIORITY_xfce4-session[x-session-manager] = "60"
+
+inherit core-image
+inherit builder-base
diff --git a/recipes-autobuilder/yocto-autobuilder/files/yocto-autobuilder.service b/recipes-autobuilder/yocto-autobuilder/files/yocto-autobuilder.service
new file mode 100644
index 00000000000..941f2d0307e
--- /dev/null
+++ b/recipes-autobuilder/yocto-autobuilder/files/yocto-autobuilder.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Yocto Autobuilder Server
+After=local-fs.target
+
+[Service]
+Type=simple
+ExecStart=cd /root/yocto-autobuilder; . ./yocto-autobuilder-setup; ./yocto-start-autobuilder both
+ExecStop=/bin/true
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-autobuilder/yocto-autobuilder/yocto-autobuilder_2.0.bb b/recipes-autobuilder/yocto-autobuilder/yocto-autobuilder_2.0.bb
new file mode 100644
index 00000000000..ec933124f03
--- /dev/null
+++ b/recipes-autobuilder/yocto-autobuilder/yocto-autobuilder_2.0.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Yocto Autobuilder"
+DESCRIPTION = ""
+HOMEPAGE = "http://www.yoctoproject.org"
+BUGTRACKER = "https://bugzilla.yoctoproject.org"
+
+SECTION = "autobuilder"
+
+LICENSE = "GPLv2 & BSD-3-Clause & ZPL-2.1 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
+ file://COPYING.buildbot;md5=f1a88a7286502fa751ec5bc81daee0da \
+ file://COPYING.decorator;md5=9bb5e7e205a2a051d17add355516fcc5 \
+ file://COPYING.htpasswd;md5=73a6429faf1e8e58dacd3a750c7d63c6 \
+ file://COPYING.jinja2;md5=7baa781602629654eb2f98ebd8487d8c \
+ file://COPYING.setuptools;md5=ad5967baf477a8cdca716556a0ec6e58 \
+ file://COPYING.sqlalchemy;md5=3da9cfbcb788c80a0384361b4de20420 \
+ file://COPYING.tempita;md5=a204069a7fc773c781ba65ecba3b2d6b \
+ file://COPYING.twisted;md5=3da9cfbcb788c80a0384361b4de20420"
+
+S = "${WORKDIR}/git"
+
+AB_PASSWORD = "foobar"
+AB_USER_PASSWORD = "foobar"
+
+SRCREV = "060896ae4af50392f1cf0ec4f6e3300f30308c12"
+SRC_URI = "git://git.yoctoproject.org/yocto-autobuilder.git;branch=release/2.0 \
+ file://yocto-autobuilder.service"
+
+SRC_URI[md5sum] = "5bb3b0ff2674e29378c31ad3411170ad"
+SRC_URI[sha256sum] = "fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63"
+
+FILES_${PN} = "root/.htpasswd root/* lib/systemd/system/yocto-autobuilder.service"
+
+do_install() {
+ # We don't do a full install here. Most of this will occur during
+ # yocto-autobuilder-setup first run.
+
+ install -m 0644 ${S}/yocto-controller/buildbot.tac.example ${S}/yocto-controller/buildbot.tac
+ install -m 0644 ${S}/yocto-worker/buildbot.tac.example ${S}/yocto-worker/buildbot.tac
+ install -m 0644 ${S}/yocto-controller/controller.cfg.example ${S}/yocto-controller/controller.cfg
+ install -m 0644 ${S}/config/autobuilder.conf.example ${S}/config/autobuilder.conf
+ install -d ${S}/buildset-config.controller ${S}/buildset-config
+
+ sed -i "s/<PASS>/${AB_PASSWORD}/g" ${S}/yocto-controller/controller.cfg
+ sed -i "s/<PASS>/${AB_PASSWORD}/g" ${S}/yocto-controller/buildbot.tac
+ sed -i "s/<PASS>/${AB_PASSWORD}/g" ${S}/yocto-worker/buildbot.tac
+ sed -i "s/<HOST_ADDR>/${TARGETNAME}/" ${S}/bin/worker-init
+ sed -i "s/<PASS>/${AB_PASSWORD}/" ${S}/bin/worker-init
+
+ install -d ${D}/root/yocto-autobuilder
+ touch ${D}/root/.htpasswd
+ ${S}/bin/htpasswd -b ${D}/root/.htpasswd root ${AB_USER_PASSWORD}
+ sed -i "s?<HTPASSWDPATH>?/root/yocto-autobuilder/.htpasswd?g" ${S}/yocto-controller/controller.cfg
+ cp -r ${S}/* ${D}/root/yocto-autobuilder
+
+ install -d ${D}/lib/systemd/system/
+ install -m 0644 ${WORKDIR}/yocto-autobuilder.service ${D}/lib/systemd/system/
+}