diff options
Diffstat (limited to 'meta/recipes-core/images/build-appliance-image_15.0.0.bb')
-rw-r--r-- | meta/recipes-core/images/build-appliance-image_15.0.0.bb | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/meta/recipes-core/images/build-appliance-image_15.0.0.bb new file mode 100644 index 0000000000..d6de67c8c8 --- /dev/null +++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb | |||
@@ -0,0 +1,120 @@ | |||
1 | SUMMARY = "An image containing the build system itself" | ||
2 | DESCRIPTION = "An image containing the build system that you can boot and run using either VMware Player or VMware Workstation." | ||
3 | HOMEPAGE = "http://www.yoctoproject.org/documentation/build-appliance" | ||
4 | |||
5 | LICENSE = "MIT" | ||
6 | LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ | ||
7 | file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" | ||
8 | |||
9 | IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegroup-self-hosted kernel-dev kernel-devsrc " | ||
10 | |||
11 | IMAGE_FEATURES += "x11-base package-management splash" | ||
12 | |||
13 | # Ensure there's enough space to do a core-image-sato build, with rm_work enabled | ||
14 | IMAGE_ROOTFS_EXTRA_SPACE = "41943040" | ||
15 | |||
16 | # Do a quiet boot with limited console messages | ||
17 | APPEND += "rootfstype=ext4 quiet" | ||
18 | |||
19 | DEPENDS = "zip-native" | ||
20 | IMAGE_FSTYPES = "vmdk" | ||
21 | |||
22 | inherit core-image module-base | ||
23 | |||
24 | SRCREV ?= "5f84d6545e6d7a2be8e603a1f4b1afae0dad0a9b" | ||
25 | SRC_URI = "git://git.yoctoproject.org/poky;branch=master \ | ||
26 | file://Yocto_Build_Appliance.vmx \ | ||
27 | file://Yocto_Build_Appliance.vmxf \ | ||
28 | file://README_VirtualBox_Guest_Additions.txt \ | ||
29 | " | ||
30 | BA_INCLUDE_SOURCES ??= "0" | ||
31 | |||
32 | IMAGE_CMD_ext4_append () { | ||
33 | # We don't need to reserve much space for root, 0.5% is more than enough | ||
34 | tune2fs -m 0.5 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4 | ||
35 | } | ||
36 | |||
37 | fakeroot do_populate_poky_src () { | ||
38 | # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo | ||
39 | # will become invalid in the target. | ||
40 | rm -rf ${WORKDIR}/git/.git | ||
41 | rm -f ${WORKDIR}/git/.gitignore | ||
42 | |||
43 | cp -R ${WORKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky | ||
44 | |||
45 | mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf | ||
46 | mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads | ||
47 | if [ ${BA_INCLUDE_SOURCES} != 0 ]; then | ||
48 | cp -RpL ${DL_DIR}/* ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/ | ||
49 | # Remove the git2_* tarballs -- this is ok since we still have the git2/. | ||
50 | rm -rf ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/git2_* | ||
51 | fi | ||
52 | |||
53 | # Place the README_VirtualBox_Guest_Additions file in builders home folder. | ||
54 | cp ${WORKDIR}/README_VirtualBox_Guest_Additions.txt ${IMAGE_ROOTFS}/home/builder/ | ||
55 | |||
56 | # Create a symlink, needed for out-of-tree kernel modules build | ||
57 | lnr ${IMAGE_ROOTFS}${KERNEL_SRC_PATH} ${IMAGE_ROOTFS}/lib/modules/${KERNEL_VERSION}/build | ||
58 | |||
59 | echo "/usr/bin" > ${IMAGE_ROOTFS}/home/builder/poky/build/pseudodone | ||
60 | echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf | ||
61 | mkdir -p ${IMAGE_ROOTFS}/home/builder/pseudo | ||
62 | echo "export PSEUDO_PREFIX=/usr" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
63 | echo "export PSEUDO_LOCALSTATEDIR=/home/builder/pseudo" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
64 | echo "export PSEUDO_LIBDIR=/usr/lib/pseudo/lib64" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
65 | |||
66 | # Also save (for reference only) the actual SRCREV used to create this image | ||
67 | echo "export BA_SRCREV=${SRCREV}" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
68 | echo "" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
69 | echo "# If working behind a proxy and using the provided oe-git-proxy script" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
70 | echo "# you need to set ALL_PROXY based on your proxy settings." >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
71 | echo "# Example ALL_PROXY values:" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
72 | echo "# export ALL_PROXY=https://proxy.example.com:8080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
73 | echo "# export ALL_PROXY=socks://socks.example.com:1080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc | ||
74 | |||
75 | chown builder.builder ${IMAGE_ROOTFS}/home/builder/pseudo | ||
76 | |||
77 | chown -R builder.builder ${IMAGE_ROOTFS}/home/builder/poky | ||
78 | chmod -R ug+rw ${IMAGE_ROOTFS}/home/builder/poky | ||
79 | |||
80 | # Assume we will need CDROM to install guest additions | ||
81 | mkdir -p ${IMAGE_ROOTFS}/media/cdrom | ||
82 | |||
83 | # Allow builder to use sudo | ||
84 | echo "builder ALL=(ALL) NOPASSWD: ALL" >> ${IMAGE_ROOTFS}/etc/sudoers | ||
85 | |||
86 | # Load tap/tun at startup | ||
87 | lnr ${IMAGE_ROOTFS}/usr/sbin/iptables ${IMAGE_ROOTFS}/sbin/iptables | ||
88 | echo "tun" >> ${IMAGE_ROOTFS}/etc/modules | ||
89 | |||
90 | # Use Clearlooks GTK+ theme | ||
91 | mkdir -p ${IMAGE_ROOTFS}/etc/gtk-2.0 | ||
92 | echo 'gtk-theme-name = "Clearlooks"' > ${IMAGE_ROOTFS}/etc/gtk-2.0/gtkrc | ||
93 | } | ||
94 | |||
95 | IMAGE_PREPROCESS_COMMAND += "do_populate_poky_src; " | ||
96 | |||
97 | addtask rootfs after do_unpack | ||
98 | |||
99 | python () { | ||
100 | # Ensure we run these usually noexec tasks | ||
101 | d.delVarFlag("do_fetch", "noexec") | ||
102 | d.delVarFlag("do_unpack", "noexec") | ||
103 | } | ||
104 | |||
105 | create_bundle_files () { | ||
106 | cd ${WORKDIR} | ||
107 | mkdir -p Yocto_Build_Appliance | ||
108 | cp *.vmx* Yocto_Build_Appliance | ||
109 | ln -sf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk | ||
110 | zip -r ${DEPLOY_DIR_IMAGE}/Yocto_Build_Appliance-${DATETIME}.zip Yocto_Build_Appliance | ||
111 | ln -sf Yocto_Build_Appliance-${DATETIME}.zip ${DEPLOY_DIR_IMAGE}/Yocto_Build_Appliance.zip | ||
112 | } | ||
113 | create_bundle_files[vardepsexclude] = "DATETIME" | ||
114 | |||
115 | python do_bundle_files() { | ||
116 | bb.build.exec_func('create_bundle_files', d) | ||
117 | } | ||
118 | |||
119 | addtask bundle_files after do_vmimg before do_build | ||
120 | do_bundle_files[nostamp] = "1" | ||