mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-05 05:15:25 +02:00

fetched files should be referenced via UNPACKDIR instead of WORKDIR. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
165 lines
5.7 KiB
PHP
165 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.0"
|
|
|
|
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} ${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 pkgconfig 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 ${UNPACKDIR}/openvswitch-switch-setup ${D}/${sysconfdir}/default/openvswitch-switch
|
|
install -d ${D}/${sysconfdir}/openvswitch-testcontroller
|
|
install -m 660 ${UNPACKDIR}/openvswitch-testcontroller-setup ${D}/${sysconfdir}/default/openvswitch-testcontroller
|
|
|
|
install -d ${D}/${sysconfdir}/init.d/
|
|
install -m 755 ${UNPACKDIR}/openvswitch-testcontroller ${D}/${sysconfdir}/init.d/openvswitch-testcontroller
|
|
install -m 755 ${UNPACKDIR}/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
|
|
|
|
install -d ${D}/usr/share/openvswitch/scripts/
|
|
install -m 755 ${S}/rhel/usr_share_openvswitch_scripts_ovs-systemd-reload ${D}/usr/share/openvswitch/scripts/ovs-systemd-reload
|
|
|
|
install -d ${D}${libdir}/python${PYTHON_BASEVERSION}/site-packages
|
|
cp -r ${S}/python/ovstest/ ${D}${libdir}/python${PYTHON_BASEVERSION}/site-packages/
|
|
}
|
|
|
|
pkg_postinst_ontarget:${PN}-pki () {
|
|
if test ! -d $D/${datadir}/${PN}/pki; then
|
|
ovs-pki init --dir=$D/${datadir}/${PN}/pki
|
|
fi
|
|
}
|
|
|
|
pkg_postinst_ontarget:${PN}-testcontroller () {
|
|
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
|
|
}
|