mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 20:59:41 +02:00

This brings us up to date with the latest upstream release. I suspect there will be an upcoming release to add compatibility with DPDK v18.05 (the DPDK release is due out any day now) but getting this fairly large release bump out of the way first will facilitate any upcoming uprev. We are able to drop they python3 patches as they have been merged upstream. Some scripts which needed to be updated to use python3 disappeared, new ones appeared so the 'use python3' patches are updated accordingly. Beyond this the biggest change is related to the systemd unit files, the ovsdb-server has been updated upstream to be generated on the fly via the spec file, we mimic this in the install_prepend. We also add the various configuration files which the unit files source before launching the services. As usual this was tested against out typical usecases including usage in meta-overc. As well the ptests have been run and the results are no better or worse. Previous version: ERROR: 2332 tests were run, 21 failed unexpectedly. 3 tests were skipped. New version: ERROR: 2527 tests were run, 29 failed unexpectedly. 3 tests were skipped. Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
172 lines
5.7 KiB
PHP
172 lines
5.7 KiB
PHP
SUMMARY = "OpenvSwitch"
|
|
DESCRIPTION = "\
|
|
Open vSwitch is a production quality, multilayer virtual switch \
|
|
licensed under the open source Apache 2.0 license. It is designed \
|
|
to enable massive network automation through programmatic extension, \
|
|
while still supporting standard management interfaces and protocols \
|
|
(e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag) \
|
|
"
|
|
|
|
HOMEPAGE = "http://openvswitch.org/"
|
|
SECTION = "networking"
|
|
LICENSE = "Apache-2"
|
|
|
|
DEPENDS += "bridge-utils openssl python3 perl python3-six-native coreutils-native"
|
|
|
|
RDEPENDS_${PN} += "util-linux-uuidgen util-linux-libuuid coreutils \
|
|
python3 perl perl-module-strict ${PN}-switch \
|
|
bash python3-twisted python3-six"
|
|
RDEPENDS_${PN}-testcontroller = "${PN} lsb ${PN}-pki"
|
|
RDEPENDS_${PN}-switch = "${PN} openssl procps util-linux-uuidgen"
|
|
RDEPENDS_${PN}-pki = "${PN}"
|
|
RDEPENDS_${PN}-brcompat = "${PN} ${PN}-switch"
|
|
|
|
# Some installers will fail because of an install order based on
|
|
# rdeps. E.g. ovs-pki calls sed in the postinstall. sed may be
|
|
# queued for install later.
|
|
RDEPENDS_${PN} += "sed gawk grep"
|
|
|
|
SRC_URI = "\
|
|
file://openvswitch-switch \
|
|
file://openvswitch-switch-setup \
|
|
file://openvswitch-testcontroller \
|
|
file://openvswitch-testcontroller-setup \
|
|
"
|
|
|
|
EXTRA_OECONF += "\
|
|
PYTHON=python3 \
|
|
PYTHON3=python3 \
|
|
PERL=${bindir}/perl \
|
|
"
|
|
CONFIGUREOPT_DEPTRACK = ""
|
|
|
|
# Don't compile kernel modules by default since it heavily depends on
|
|
# kernel version. Use the in-kernel module for now.
|
|
# distro layers can enable with EXTRA_OECONF_pn_openvswitch += ""
|
|
# EXTRA_OECONF = "--with-linux=${STAGING_KERNEL_DIR} KARCH=${TARGET_ARCH}"
|
|
|
|
ALLOW_EMPTY_${PN}-pki = "1"
|
|
PACKAGES =+ "${PN}-testcontroller ${PN}-switch ${PN}-brcompat ${PN}-pki"
|
|
|
|
FILES_${PN}-testcontroller = "\
|
|
${sysconfdir}/init.d/openvswitch-testcontroller \
|
|
${sysconfdir}/default/openvswitch-testcontroller \
|
|
${sysconfdir}/openvswitch-testcontroller \
|
|
${bindir}/ovs-testcontroller \
|
|
"
|
|
|
|
FILES_${PN}-brcompat = "${sbindir}/ovs-brcompatd"
|
|
|
|
FILES_${PN}-switch = "\
|
|
${sysconfdir}/init.d/openvswitch-switch \
|
|
${sysconfdir}/default/openvswitch-switch \
|
|
${systemd_unitdir}/system/ovs-vswitchd.service \
|
|
${systemd_unitdir}/system/openvswitch.service \
|
|
${systemd_unitdir}/system/ovsdb-server.service \
|
|
${sysconfdir}/sysconfig/openvswitch \
|
|
${sysconfdir}/openvswitch/default.conf \
|
|
"
|
|
|
|
# silence a warning
|
|
FILES_${PN} += "${datadir}/ovsdbmonitor"
|
|
FILES_${PN} += "/run"
|
|
|
|
FILES_${PN} += "${libdir}/python${PYTHON_BASEVERSION}/"
|
|
inherit autotools update-rc.d systemd python3native
|
|
|
|
SYSTEMD_PACKAGES = "${PN}-switch"
|
|
SYSTEMD_SERVICE_${PN}-switch = " \
|
|
ovsdb-server.service \
|
|
ovs-vswitchd.service \
|
|
openvswitch.service \
|
|
"
|
|
|
|
INITSCRIPT_PACKAGES = "${PN}-switch ${PN}-testcontroller"
|
|
INITSCRIPT_NAME_${PN}-switch = "openvswitch-switch"
|
|
INITSCRIPT_PARAMS_${PN}-switch = "defaults 71"
|
|
|
|
INITSCRIPT_NAME_${PN}-testcontroller = "openvswitch-testcontroller"
|
|
INITSCRIPT_PARAMS_${PN}-testcontroller = "defaults 72"
|
|
|
|
do_configure_prepend() {
|
|
# Work around the for Makefile CC=$(if ....) by swapping out any
|
|
# "-Wa," assembly directives with "-Xassembler
|
|
CC=`echo '${CC}' | sed 's/-Wa,/-Xassembler /g'`
|
|
}
|
|
|
|
do_install_prepend() {
|
|
SERVICE_FILE="${S}/rhel/usr_lib_systemd_system_ovs-vswitchd.service"
|
|
${S}/build-aux/dpdkstrip.py \
|
|
${@bb.utils.contains('PACKAGECONFIG','dpdk','--dpdk','--nodpdk',d)} \
|
|
< ${S}/rhel/usr_lib_systemd_system_ovs-vswitchd.service.in \
|
|
> ${SERVICE_FILE}
|
|
}
|
|
|
|
do_install_append() {
|
|
install -d ${D}/${sysconfdir}/default/
|
|
install -m 660 ${WORKDIR}/openvswitch-switch-setup ${D}/${sysconfdir}/default/openvswitch-switch
|
|
install -d ${D}/${sysconfdir}/openvswitch-testcontroller
|
|
install -m 660 ${WORKDIR}/openvswitch-testcontroller-setup ${D}/${sysconfdir}/default/openvswitch-testcontroller
|
|
|
|
install -d ${D}/${sysconfdir}/init.d/
|
|
install -m 755 ${WORKDIR}/openvswitch-testcontroller ${D}/${sysconfdir}/init.d/openvswitch-testcontroller
|
|
install -m 755 ${WORKDIR}/openvswitch-switch ${D}/${sysconfdir}/init.d/openvswitch-switch
|
|
true || rm -fr ${D}/${datadir}/${PN}/pki
|
|
|
|
install -d ${D}/${sysconfdir}/sysconfig
|
|
install -m 644 ${S}/rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
|
|
${D}/${sysconfdir}/sysconfig/openvswitch
|
|
|
|
install -d ${D}/${sysconfdir}/openvswitch
|
|
install -m 644 ${S}/rhel/etc_openvswitch_default.conf \
|
|
${D}/${sysconfdir}/openvswitch/default.conf
|
|
|
|
install -d ${D}/${systemd_unitdir}/system/
|
|
install -m 644 ${S}/rhel/usr_lib_systemd_system_ovs-vswitchd.service \
|
|
${D}/${systemd_unitdir}/system/ovs-vswitchd.service
|
|
install -m 644 ${S}/rhel/usr_lib_systemd_system_openvswitch.service \
|
|
${D}/${systemd_unitdir}/system/openvswitch.service
|
|
install -m 644 ${S}/rhel/usr_lib_systemd_system_ovsdb-server.service \
|
|
${D}/${systemd_unitdir}/system/ovsdb-server.service
|
|
|
|
oe_runmake modules_install INSTALL_MOD_PATH=${D}
|
|
install -d ${D}${libdir}/python${PYTHON_BASEVERSION}/site-packages
|
|
cp -r ${S}/python/ovstest/ ${D}${libdir}/python${PYTHON_BASEVERSION}/site-packages/
|
|
}
|
|
|
|
pkg_postinst_${PN}-pki () {
|
|
# can't do this offline
|
|
if [ "x$D" != "x" ]; then
|
|
exit 1
|
|
fi
|
|
if test ! -d $D/${datadir}/${PN}/pki; then
|
|
ovs-pki init --dir=$D/${datadir}/${PN}/pki
|
|
fi
|
|
}
|
|
|
|
pkg_postinst_${PN}-testcontroller () {
|
|
# can't do this offline
|
|
if [ "x$D" != "x" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
if test ! -d $D/${datadir}/${PN}/pki; then
|
|
ovs-pki init --dir=$D/${datadir}/${PN}/pki
|
|
fi
|
|
|
|
cd $D/${sysconfdir}/openvswitch-testcontroller
|
|
if ! test -e cacert.pem; then
|
|
ln -s $D/${datadir}/${PN}/pki/switchca/cacert.pem cacert.pem
|
|
fi
|
|
if ! test -e privkey.pem || ! test -e cert.pem; then
|
|
oldumask=$(umask)
|
|
umask 077
|
|
ovs-pki req+sign --dir=$D/${datadir}/${PN}/pki tmp controller >/dev/null
|
|
mv tmp-privkey.pem privkey.pem
|
|
mv tmp-cert.pem cert.pem
|
|
mv tmp-req.pem req.pem
|
|
chmod go+r cert.pem req.pem
|
|
umask $oldumask
|
|
fi
|
|
}
|