mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:50:22 +02:00

Openvswitch has been created to search for and use both py2 and py3, with a preference for py2. There is no configure option to force the use of py3 only, and many of the scripts only use the value of PYTHON and not PYTHON3 (again there is a general preference for py2). In order to force this issue we set PYTHON to 'python3'. This isn't ideal but allows for the desired outcome without us having to carry changes against upstream OVS. During our py3 work with OVS this change was identified but for some reason was not included as part of the already merged changes. Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
148 lines
4.9 KiB
PHP
148 lines
4.9 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 \
|
|
"
|
|
|
|
# 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_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}/${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
|
|
}
|