summaryrefslogtreecommitdiffstats
path: root/external/meta-virtualization/recipes-core
diff options
context:
space:
mode:
Diffstat (limited to 'external/meta-virtualization/recipes-core')
-rw-r--r--external/meta-virtualization/recipes-core/busybox/busybox/static.cfg4
-rw-r--r--external/meta-virtualization/recipes-core/busybox/busybox_%.bbappend2
-rw-r--r--external/meta-virtualization/recipes-core/busybox/busybox_vmsep.inc9
-rw-r--r--external/meta-virtualization/recipes-core/initscripts/initscripts_1.%.bbappend16
-rw-r--r--external/meta-virtualization/recipes-core/initscripts/initscripts_virtualization.inc16
-rw-r--r--external/meta-virtualization/recipes-core/libxcrypt/libxcrypt_%.bbappend4
-rw-r--r--external/meta-virtualization/recipes-core/runv/runv_git.bb1
-rw-r--r--external/meta-virtualization/recipes-core/runx/runx/0001-make-initrd-cross-install-tweaks.patch42
-rw-r--r--external/meta-virtualization/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch86
-rw-r--r--external/meta-virtualization/recipes-core/runx/runx_git.bb104
-rw-r--r--external/meta-virtualization/recipes-core/sysvinit/files/getty-wrapper8
-rw-r--r--external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_2.%.bbappend10
-rw-r--r--external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_xen.inc2
13 files changed, 287 insertions, 17 deletions
diff --git a/external/meta-virtualization/recipes-core/busybox/busybox/static.cfg b/external/meta-virtualization/recipes-core/busybox/busybox/static.cfg
new file mode 100644
index 00000000..72079a1c
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/busybox/busybox/static.cfg
@@ -0,0 +1,4 @@
+CONFIG_STATIC=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALLER=y
+
diff --git a/external/meta-virtualization/recipes-core/busybox/busybox_%.bbappend b/external/meta-virtualization/recipes-core/busybox/busybox_%.bbappend
index 617caccb..3d39bba3 100644
--- a/external/meta-virtualization/recipes-core/busybox/busybox_%.bbappend
+++ b/external/meta-virtualization/recipes-core/busybox/busybox_%.bbappend
@@ -1 +1,3 @@
require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}_virtualization.inc', '', d)}
+require ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', '${BPN}_vmsep.inc', '', d)}
+
diff --git a/external/meta-virtualization/recipes-core/busybox/busybox_vmsep.inc b/external/meta-virtualization/recipes-core/busybox/busybox_vmsep.inc
new file mode 100644
index 00000000..d4b1e6cc
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/busybox/busybox_vmsep.inc
@@ -0,0 +1,9 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/busybox:"
+SRC_URI += " \
+ file://static.cfg \
+ "
+
+# we do this to get the target binary available to recipes that
+# depend on busybox
+SYSROOT_DIRS += "/bin"
+BUSYBOX_SPLIT_SUID = "0"
diff --git a/external/meta-virtualization/recipes-core/initscripts/initscripts_1.%.bbappend b/external/meta-virtualization/recipes-core/initscripts/initscripts_1.%.bbappend
index 0600ab2a..96b4ac57 100644
--- a/external/meta-virtualization/recipes-core/initscripts/initscripts_1.%.bbappend
+++ b/external/meta-virtualization/recipes-core/initscripts/initscripts_1.%.bbappend
@@ -1,16 +1,2 @@
-do_install_append() {
+require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', '${BPN}_virtualization.inc', '', d)}
- echo >> ${D}${sysconfdir}/init.d/functions
- echo success \(\) \{ >> ${D}${sysconfdir}/init.d/functions
- echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
- echo \} >> ${D}${sysconfdir}/init.d/functions
- echo failure \(\) \{ >> ${D}${sysconfdir}/init.d/functions
- echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
- echo \} >> ${D}${sysconfdir}/init.d/functions
- echo warning \(\) \{ >> ${D}${sysconfdir}/init.d/functions
- echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
- echo \} >> ${D}${sysconfdir}/init.d/functions
- echo begin \(\) \{ >> ${D}${sysconfdir}/init.d/functions
- echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
- echo \} >> ${D}${sysconfdir}/init.d/functions
-}
diff --git a/external/meta-virtualization/recipes-core/initscripts/initscripts_virtualization.inc b/external/meta-virtualization/recipes-core/initscripts/initscripts_virtualization.inc
new file mode 100644
index 00000000..0600ab2a
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/initscripts/initscripts_virtualization.inc
@@ -0,0 +1,16 @@
+do_install_append() {
+
+ echo >> ${D}${sysconfdir}/init.d/functions
+ echo success \(\) \{ >> ${D}${sysconfdir}/init.d/functions
+ echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
+ echo \} >> ${D}${sysconfdir}/init.d/functions
+ echo failure \(\) \{ >> ${D}${sysconfdir}/init.d/functions
+ echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
+ echo \} >> ${D}${sysconfdir}/init.d/functions
+ echo warning \(\) \{ >> ${D}${sysconfdir}/init.d/functions
+ echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
+ echo \} >> ${D}${sysconfdir}/init.d/functions
+ echo begin \(\) \{ >> ${D}${sysconfdir}/init.d/functions
+ echo \ \ \ \ echo \$* >> ${D}${sysconfdir}/init.d/functions
+ echo \} >> ${D}${sysconfdir}/init.d/functions
+}
diff --git a/external/meta-virtualization/recipes-core/libxcrypt/libxcrypt_%.bbappend b/external/meta-virtualization/recipes-core/libxcrypt/libxcrypt_%.bbappend
new file mode 100644
index 00000000..0b4fbb3d
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/libxcrypt/libxcrypt_%.bbappend
@@ -0,0 +1,4 @@
+# if vmsep is in distro features, we need a static libxycryp, so we can build
+# a static busybox. The end result of this is:
+# EXTRA_OECONF_remove = "--disable-static"
+EXTRA_OECONF_remove = "${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', '--disable-static', '', d)}"
diff --git a/external/meta-virtualization/recipes-core/runv/runv_git.bb b/external/meta-virtualization/recipes-core/runv/runv_git.bb
index 0301dd28..ef94f096 100644
--- a/external/meta-virtualization/recipes-core/runv/runv_git.bb
+++ b/external/meta-virtualization/recipes-core/runv/runv_git.bb
@@ -78,5 +78,4 @@ deltask compile_ptest_base
FILES_${PN} += "/usr/local/bin/*"
-INHIBIT_PACKAGE_STRIP = "1"
INSANE_SKIP_${PN} += "ldflags already-stripped"
diff --git a/external/meta-virtualization/recipes-core/runx/runx/0001-make-initrd-cross-install-tweaks.patch b/external/meta-virtualization/recipes-core/runx/runx/0001-make-initrd-cross-install-tweaks.patch
new file mode 100644
index 00000000..c9fdc5d6
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/runx/runx/0001-make-initrd-cross-install-tweaks.patch
@@ -0,0 +1,42 @@
+From d8bd5749e6fc6e0c86a8720044ec78167bab3569 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@xilinx.com>
+Date: Mon, 16 Dec 2019 22:03:14 -0800
+Subject: [PATCH] make-initrd: cross install tweaks
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
+---
+ kernel/make-initrd | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/make-initrd b/kernel/make-initrd
+index 4c299dc..9ef386f 100755
+--- a/kernel/make-initrd
++++ b/kernel/make-initrd
+@@ -16,8 +16,22 @@ mkdir -p $tmpdir/sys
+ mkdir -p $tmpdir/lib
+ mkdir -p $tmpdir/var
+ mkdir -p $tmpdir/mnt
+-cp `which busybox` $tmpdir/bin
+-$tmpdir/bin/busybox --install $tmpdir/bin
++
++
++if [ -z "$BUSYBOX" ]; then
++ BUSYBOX=`which busybox`
++fi
++cp $BUSYBOX $tmpdir/bin
++if [ -n "$CROSS_COMPILE" ]; then
++ echo "cross compiling, busybox --install emulation"
++ if [ -n "$QEMU_USER" ]; then
++ $QEMU_USER $tmpdir/bin/busybox --install $tmpdir/bin
++ else
++ echo "QEMU_USER is not defined, no binary symlinks will be available"
++ fi
++else
++ $tmpdir/bin/busybox --install $tmpdir/bin
++fi
+
+ cp $init $tmpdir/init
+ chmod +x $tmpdir/init
+--
+2.17.1
+
diff --git a/external/meta-virtualization/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch b/external/meta-virtualization/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch
new file mode 100644
index 00000000..7d66f421
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/runx/runx/0001-make-kernel-cross-compilation-tweaks.patch
@@ -0,0 +1,86 @@
+From 7e3498ab7c375bd545de501920acffa77eb24120 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@xilinx.com>
+Date: Mon, 16 Dec 2019 20:42:04 -0800
+Subject: [PATCH] make-kernel: cross-compilation tweaks
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
+---
+ kernel/make-kernel | 41 +++++++++++++++++++++++++++++++++--------
+ 1 file changed, 33 insertions(+), 8 deletions(-)
+
+diff --git a/kernel/make-kernel b/kernel/make-kernel
+index 33b7150..c684669 100755
+--- a/kernel/make-kernel
++++ b/kernel/make-kernel
+@@ -13,6 +13,7 @@ fi
+
+ kernel_stuffdir=`readlink -f kernel`
+ kernel_outpath=$kernel_stuffdir/out
++kernel_srcdir=$kernel_stuffdir/src
+ kernel_builddir=$kernel_stuffdir/build
+ kernel_out=$kernel_outpath/kernel
+
+@@ -22,28 +23,52 @@ kernel_tarball="$kernel_name".tar.xz
+ kernel_url=https://www.kernel.org/pub/linux/kernel/v4.x/"$kernel_tarball"
+ kernel_src_config="$kernel_stuffdir"/cutdown-config.$ARCH
+ kernel_patchesdir="$kernel_stuffdir"/patches
+-kernel_image="$kernel_builddir"/"$kernel_name"/arch/"$ARCH"/boot/"$image"
++kernel_image="$kernel_builddir"/arch/"$ARCH"/boot/"$image"
+
++echo "#########################"
++echo "kernel build summary:"
++echo " version: $kernel_version"
++echo " url: $kernel_url"
++echo " src dir: $kernel_srcdir"
++echo " out dir: $kernel_builddir"
++echo " artifacts: $kernel_out"
++echo " image: $image"
++echo " build vars: $build_vars"
++echo "#########################"
+
+-rm -rf $kernel_outpath
++if [ ! -e "$kernel_builddir/.config" ];
++then
++ rm -rf $kernel_buildir
++fi
+ mkdir -p $kernel_outpath
+ mkdir -p $kernel_builddir
++mkdir -p $kernel_srcdir
+
+ if [[ ! -f $kernel_builddir/$kernel_tarball ]]
+ then
++ echo "fetching the kernel .."
+ wget -O $kernel_builddir/$kernel_tarball --tries=20 $kernel_url
+ fi
+-if [[ ! -d $kernel_builddir/$kernel_name ]]
++
++if [[ ! -d $kernel_srcdir/$kernel_name ]]
+ then
+- tar --extract --xz --touch --file="$kernel_builddir/$kernel_tarball" --directory="$kernel_builddir"
+- cd $kernel_builddir/$kernel_name
++ echo "extracting the kernel ..."
++ echo " tar --extract --xz --touch --file=\"$kernel_builddir/$kernel_tarball\" --directory=\"$kernel_srcdir\""
++ tar --extract --xz --touch --file="$kernel_builddir/$kernel_tarball" --directory="$kernel_srcdir"
++ cd $kernel_srcdir/$kernel_name
+ for i in $kernel_patchesdir/*
+ do
+ patch -p1 < $i
+ done
+- cp $kernel_src_config .config
+ fi
+-cd $kernel_builddir/$kernel_name
+-make -j4 $image
++if [[ ! -f $kernel_builddir/.config ]]
++then
++ cp $kernel_src_config $kernel_builddir/.config
++fi
++cd $kernel_srcdir/$kernel_name
++
++echo "building the kernel ..."
++eval make O=$kernel_builddir $build_vars oldconfig
++eval make -j4 O=$kernel_builddir $build_vars $image
+
+ cp $kernel_image $kernel_out
+--
+2.17.1
+
diff --git a/external/meta-virtualization/recipes-core/runx/runx_git.bb b/external/meta-virtualization/recipes-core/runx/runx_git.bb
new file mode 100644
index 00000000..3b4cd335
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/runx/runx_git.bb
@@ -0,0 +1,104 @@
+HOMEPAGE = "https://github.com/lf-edge/runx"
+SUMMARY = "runx stuff"
+DESCRIPTION = "Xen Runtime for OCI"
+
+SRCREV_runx = "da0c75c58ae5232d19b1791c33545db3225e1ea9"
+SRC_URI = "\
+ git://github.com/lf-edge/runx;nobranch=1;name=runx \
+ https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.xz;destsuffix=git/kernel/build \
+ file://0001-make-kernel-cross-compilation-tweaks.patch \
+ file://0001-make-initrd-cross-install-tweaks.patch \
+ "
+SRC_URI[md5sum] = "0d701ac1e2a67d47ce7127432df2c32b"
+SRC_URI[sha256sum] = "5a26478906d5005f4f809402e981518d2b8844949199f60c4b6e1f986ca2a769"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=945fc9aa694796a6337395cc291ddd8c"
+
+S = "${WORKDIR}/git"
+PV = "0.1-git${SRCREV_runx}"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "vmsep"
+
+inherit pkgconfig
+# for the kernel build
+inherit kernel-arch
+
+# we have a busybox bbappend that makes /bin available to the
+# sysroot, and hence gets us the target binary that we need
+DEPENDS = "busybox go-build"
+
+# for the kernel build phase
+DEPENDS += "openssl-native coreutils-native util-linux-native xz-native bc-native"
+DEPENDS += "qemu-native"
+
+RDEPENDS_${PN} += " jq bash"
+RDEPENDS_${PN} += " xen-tools-xl go-build socat daemonize"
+
+do_compile() {
+ # we'll need this for the initrd later, so lets error if it isn't what
+ # we expect (statically linked)
+ file ${STAGING_DIR_HOST}/bin/busybox.nosuid
+
+ # prep steps to short circuit some of make-kernel's fetching and
+ # building.
+ mkdir -p ${S}/kernel/build
+ mkdir -p ${S}/kernel/src
+ cp ${DL_DIR}/linux-4.15.tar.xz ${S}/kernel/build/
+
+ # In the future, we might want to link the extracted kernel source (if
+ # we move patches to recipe space, but for now, we need make-kernel to
+ # extract a copy and possibly patch it.
+ # ln -sf ${WORKDIR}/linux-4.15 ${S}/kernel/src/
+
+ # build the kernel
+ echo "[INFO]: runx: building the kernel"
+
+ export KERNEL_CC="${KERNEL_CC}"
+ export KERNEL_LD="${KERNEL_LD}"
+ export ARCH="${ARCH}"
+ export HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
+ export HOSTCPP="${BUILD_CPP}"
+ export CROSS_COMPILE="${CROSS_COMPILE}"
+ export build_vars="HOSTCC='$HOSTCC' STRIP='$STRIP' OBJCOPY='$OBJCOPY' ARCH=$ARCH CC='$KERNEL_CC' LD='$KERNEL_LD'"
+
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+
+ # We want make-kernel, to have the following build lines:
+ # make O=$kernel_builddir HOSTCC="${HOSTCC}" ARCH=$ARCH oldconfig
+ # make -j4 O=$kernel_builddir HOSTCC="${HOSTCC}" STRIP="$STRIP" OBJCOPY="$OBJCOPY" ARCH=$ARCH CC="$KERNEL_CC" LD="$KERNEL_LD" $image
+ ${S}/kernel/make-kernel
+
+ # construct the initrd
+ echo "[INFO]: runx: constructing the initrd"
+
+ cp ${STAGING_DIR_HOST}/bin/busybox.nosuid ${WORKDIR}/busybox
+ export QEMU_USER=`which qemu-${HOST_ARCH}`
+ export BUSYBOX="${WORKDIR}/busybox"
+ export CROSS_COMPILE="t"
+ ${S}/kernel/make-initrd
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/runX ${D}${bindir}
+
+ install -d ${D}${datadir}/runX
+ install -m 755 ${S}/kernel/out/kernel ${D}/${datadir}/runX
+ install -m 755 ${S}/kernel/out/initrd ${D}/${datadir}/runX
+ install -m 755 ${S}/files/start ${D}/${datadir}/runX
+ install -m 755 ${S}/files/state ${D}/${datadir}/runX
+ install -m 755 ${S}/files/delete ${D}/${datadir}/runX
+ install -m 755 ${S}/files/serial_bridge ${D}/${datadir}/runX
+ install -m 755 ${S}/files/serial_start ${D}/${datadir}/runX
+
+
+}
+
+deltask compile_ptest_base
+
+FILES_${PN} += "${bindir}/* ${datadir}/runX/*"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INSANE_SKIP_${PN} += "ldflags already-stripped"
diff --git a/external/meta-virtualization/recipes-core/sysvinit/files/getty-wrapper b/external/meta-virtualization/recipes-core/sysvinit/files/getty-wrapper
new file mode 100644
index 00000000..236e29e7
--- /dev/null
+++ b/external/meta-virtualization/recipes-core/sysvinit/files/getty-wrapper
@@ -0,0 +1,8 @@
+#!/bin/sh
+if test -c /dev/"$2"
+then
+ exec /sbin/getty $*
+else
+ exec sleep 3600d
+fi
+
diff --git a/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_2.%.bbappend b/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_2.%.bbappend
index 8c088325..4b3c020b 100644
--- a/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_2.%.bbappend
+++ b/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_2.%.bbappend
@@ -1 +1,11 @@
require ${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'sysvinit-inittab_xen.inc', '', d)}
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://getty-wrapper"
+
+do_install_append() {
+ install -d ${D}${base_sbindir}
+ install -m 0755 ${WORKDIR}/getty-wrapper ${D}${base_sbindir}/getty-wrapper
+}
+FILES_${PN} += "${base_sbindir}/getty-wrapper"
diff --git a/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_xen.inc b/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_xen.inc
index 9d0589ce..de0af20b 100644
--- a/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_xen.inc
+++ b/external/meta-virtualization/recipes-core/sysvinit/sysvinit-inittab_xen.inc
@@ -1,4 +1,4 @@
do_install_append() {
echo "" >> ${D}${sysconfdir}/inittab
- echo "X0:12345:respawn:/sbin/getty 115200 hvc0" >> ${D}${sysconfdir}/inittab
+ echo "X0:12345:respawn:${base_sbindir}/getty-wrapper 115200 hvc0" >> ${D}${sysconfdir}/inittab
}