All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe
@ 2020-01-23 22:31 Jason Wessel
  2020-01-23 22:31 ` [meta-oe][RFC PATCH 2/2] vboxguestdrivers: Add vboxguestclient package Jason Wessel
  2020-01-24  0:28 ` [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe Khem Raj
  0 siblings, 2 replies; 3+ messages in thread
From: Jason Wessel @ 2020-01-23 22:31 UTC (permalink / raw)
  To: openembedded-devel

The change to the vboxguestdrivers requires the xorriso-native tool
which is only available in the meta-filesystems layer.  This keeps
meta-oe from requiring additional dependencies.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 .../recipes-utils/xorriso/xorriso_1.5.3.bb                        | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {meta-filesystems => meta-oe}/recipes-utils/xorriso/xorriso_1.5.3.bb (100%)

diff --git a/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb b/meta-oe/recipes-utils/xorriso/xorriso_1.5.3.bb
similarity index 100%
rename from meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb
rename to meta-oe/recipes-utils/xorriso/xorriso_1.5.3.bb
-- 
2.23.0



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [meta-oe][RFC PATCH 2/2] vboxguestdrivers: Add vboxguestclient package
  2020-01-23 22:31 [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe Jason Wessel
@ 2020-01-23 22:31 ` Jason Wessel
  2020-01-24  0:28 ` [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe Khem Raj
  1 sibling, 0 replies; 3+ messages in thread
From: Jason Wessel @ 2020-01-23 22:31 UTC (permalink / raw)
  To: openembedded-devel

This patch adds the vboxguestclient package, which installs all the
VirtualBox services that you would normally get if you inserted the
guest additions ISO and and attempted to run the shell script which
requires kernel module compilation etc...

The VirtualBox guest clients allows for the Xserver to be resized, cut
and paste integration as well as automated focus capture to all work
properly.

By installing the binaries from the ISO, the booted VM doesn't need a
compiler or the kernel headers in order to run the typical guest
additional install process.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 .../vboxguestdrivers/vboxadd-service.service  | 21 ++++++
 .../vboxguestdrivers/vboxadd.service          | 21 ++++++
 .../vboxguestdrivers_6.1.2.bb                 | 66 +++++++++++++++----
 3 files changed, 95 insertions(+), 13 deletions(-)
 create mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd-service.service
 create mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd.service

diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd-service.service b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd-service.service
new file mode 100644
index 000000000..5949b2ec0
--- /dev/null
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd-service.service
@@ -0,0 +1,21 @@
+[Unit]
+SourcePath=/usr/share/vbox/init/vboxadd-service
+Description=
+Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
+After=vboxadd.service
+Conflicts=shutdown.target systemd-timesyncd.service
+
+[Service]
+Environment="INSTALL_NO_MODULE_BUILDS=1"
+Type=forking
+Restart=no
+TimeoutSec=5min
+IgnoreSIGPIPE=no
+KillMode=process
+GuessMainPID=no
+RemainAfterExit=yes
+ExecStart=/usr/share/vbox/init/vboxadd-service start
+ExecStop=/usr/share/vbox/init/vboxadd-service stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd.service b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd.service
new file mode 100644
index 000000000..47ee92c6b
--- /dev/null
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/vboxadd.service
@@ -0,0 +1,21 @@
+[Unit]
+SourcePath=/usr/share/vbox/init/vboxadd
+Description=
+Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target display-manager.service
+After=
+Conflicts=shutdown.target
+
+[Service]
+Environment="INSTALL_NO_MODULE_BUILDS=1"
+Type=oneshot
+Restart=no
+TimeoutSec=5min
+IgnoreSIGPIPE=no
+KillMode=process
+GuessMainPID=no
+RemainAfterExit=yes
+ExecStart=/usr/share/vbox/init/vboxadd start
+ExecStop=/usr/share/vbox/init/vboxadd stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb
index 62c2b509f..0895b8cde 100644
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.2.bb
@@ -3,36 +3,52 @@ SECTION = "core"
 LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
 
-DEPENDS = "virtual/kernel"
+DEPENDS = "virtual/kernel xorriso-native"
 
-inherit module kernel-module-split
+inherit module kernel-module-split systemd
+
+INSANE_SKIP_${PN}_append = " already-stripped"
+INSANE_SKIP_vboxguestclient_append = " ldflags"
 
 COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
 
 VBOX_NAME = "VirtualBox-${PV}"
 
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
+    http://download.virtualbox.org/virtualbox/${PV}/VBoxGuestAdditions_${PV}.iso;name=iso \
     file://Makefile.utils \
+    file://vboxadd.service \
+    file://vboxadd-service.service \
 "
 SRC_URI[md5sum] = "f4f42fd09857556b04b803fb99cc6905"
 SRC_URI[sha256sum] = "4326576e8428ea3626194fc82646347576e94c61f11d412a669fc8a10c2a1e67"
 
+SRC_URI[iso.md5sum] = "85a1ecad6dade9f22ea0b94556b96898"
+SRC_URI[iso.sha256sum] = "d1238cf34b0083264215ccdccfbca3adbbcf6ce7f30e33e04efed17c9260f068"
+
 S = "${WORKDIR}/vbox_module"
 
 export BUILD_TARGET_ARCH="${ARCH}"
 export BUILD_TARGET_ARCH_x86-64="amd64"
 
-EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1"
+EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
 
-# otherwise 5.2.22 builds just vboxguest
+# otherwise 6.1.x builds just vboxguest
 MAKE_TARGETS = "all"
 
-addtask export_sources after do_patch before do_configure
+addtask export_sources before do_patch after do_unpack
+
+do_export_sources[depends] = "xorriso-native:do_populate_sysroot"
 
 do_export_sources() {
-    mkdir -p "${S}"
-    ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
-    tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
+    # allow this to re-run with the rm -rf
+    rm -rf ${WORKDIR}/iso ${WORKDIR}/iso.ex ${S} ${S}.tmp
+    mkdir -p "${S}" "${S}.tmp"
+    xorriso -osirrox on -indev ${WORKDIR}/VBoxGuestAdditions_${PV}.iso -extract / ${WORKDIR}/iso
+    chmod -R u+w ${WORKDIR}/iso
+    ${WORKDIR}/iso/VBoxLinuxAdditions.run --noexec --target ${WORKDIR}/iso.ex
+    tar -C ${S}.tmp -xf ${WORKDIR}/iso.ex/VBoxGuestAdditions-amd64.tar.bz2
+    mv ${S}.tmp/src/vboxguest*/* ${S}
 
     # add a mount utility to use shared folder from VBox Addition Source Code
     mkdir -p "${S}/utils"
@@ -49,9 +65,8 @@ do_configure_prepend() {
     ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
 }
 
-# compile and install mount utility
-do_compile() {
-    oe_runmake all
+# compile and install mount utility and VBoxClient
+do_compile_append() {
     oe_runmake 'LD=${CC}' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
     if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
         echo "ERROR: One of vbox*.ko modules wasn't built"
@@ -70,12 +85,37 @@ module_do_install() {
 do_install_append() {
     install -d ${D}${base_sbindir}
     install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
+
+    install -d ${D}${base_bindir}
+    install -d ${D}${datadir}/vbox/init/
+    install -d ${D}${datadir}/vbox/other/
+    install -d ${D}${systemd_unitdir}/system
+    install -m 755 ${S}.tmp/bin/VBoxClient ${D}${base_bindir}
+    install -m 755 ${S}.tmp/bin/VBoxControl ${D}${base_bindir}
+    install -m 755 ${S}.tmp/sbin/VBoxService ${D}${base_sbindir}
+    install -m 755 ${S}.tmp/init/vboxadd ${D}${datadir}/vbox/init/
+    install -m 755 ${S}.tmp/init/vboxadd-service ${D}${datadir}/vbox/init/
+    install -m 755 ${S}.tmp/init/vboxadd-x11 ${D}${datadir}/vbox/init/
+    install -m 644 ${WORKDIR}/vboxadd.service ${D}${systemd_unitdir}/system/
+    install -m 644 ${WORKDIR}/vboxadd-service.service ${D}${systemd_unitdir}/system/
+    cp ${S}.tmp/other/* ${D}${datadir}/vbox/other/
+    install -d ${D}/var/lib/VBoxGuestAdditions
+    echo "INSTALL_VER='${PV}'" > ${D}/var/lib/VBoxGuestAdditions/config
+    echo "INSTALL_DIR='${datadir}/vbox/'" >> ${D}/var/lib/VBoxGuestAdditions/config
 }
 
-PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo vboxguestclient"
 RRECOMMENDS_${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
 
-FILES_${PN} = "${base_sbindir}"
+RDEPENDS_vboxguestclient = "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+
+FILES_vboxguestclient = "${base_bindir}/VBoxClient ${base_bindir}/VBoxControl \
+  ${base_sbindir}/vbox-greeter ${base_sbindir}/VBoxService ${datadir}/vbox \
+  ${systemd_unitdir}/system \
+  /var/lib/VBoxGuestAdditions"
+FILES_${PN} = "${base_sbindir}/mount.vboxsf"
+
+SYSTEMD_SERVICE_${PN} = "vboxadd-service.service vboxadd.service"
 
 # autoload if installed
 KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
-- 
2.23.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe
  2020-01-23 22:31 [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe Jason Wessel
  2020-01-23 22:31 ` [meta-oe][RFC PATCH 2/2] vboxguestdrivers: Add vboxguestclient package Jason Wessel
@ 2020-01-24  0:28 ` Khem Raj
  1 sibling, 0 replies; 3+ messages in thread
From: Khem Raj @ 2020-01-24  0:28 UTC (permalink / raw)
  To: openembedded-devel

On 1/23/20 2:31 PM, Jason Wessel wrote:
> The change to the vboxguestdrivers requires the xorriso-native tool
> which is only available in the meta-filesystems layer.  This keeps
> meta-oe from requiring additional dependencies.
> 

I am fine with this move.

> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
> ---
>   .../recipes-utils/xorriso/xorriso_1.5.3.bb                        | 0
>   1 file changed, 0 insertions(+), 0 deletions(-)
>   rename {meta-filesystems => meta-oe}/recipes-utils/xorriso/xorriso_1.5.3.bb (100%)
> 
> diff --git a/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb b/meta-oe/recipes-utils/xorriso/xorriso_1.5.3.bb
> similarity index 100%
> rename from meta-filesystems/recipes-utils/xorriso/xorriso_1.5.3.bb
> rename to meta-oe/recipes-utils/xorriso/xorriso_1.5.3.bb
> 



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-01-24  0:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-23 22:31 [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe Jason Wessel
2020-01-23 22:31 ` [meta-oe][RFC PATCH 2/2] vboxguestdrivers: Add vboxguestclient package Jason Wessel
2020-01-24  0:28 ` [meta-oe][RFC PATCH 1/2] xorriso: Move from meta-filesystems to meta-oe Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.