| 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 python perl" | 
 |  | 
 | RDEPENDS_${PN} += "util-linux-uuidgen util-linux-libuuid coreutils \ | 
 | 	python perl perl-module-strict ${PN}-switch \ | 
 |         bash" | 
 | 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 \ | 
 | 	file://openvswitch-add-target-python-handling.patch \ | 
 | 	file://openvswitch-add-target-perl-handling.patch \ | 
 | 	" | 
 |  | 
 | EXTRA_OECONF += "\ | 
 | 	TARGET_PYTHON=${bindir}/python \ | 
 | 	TARGET_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/openvswitch.service \ | 
 | 	${systemd_unitdir}/system/openvswitch-nonetwork.service \ | 
 | 	" | 
 |  | 
 | # silence a warning | 
 | FILES_${PN} += "${datadir}/ovsdbmonitor" | 
 | FILES_${PN} += "/run" | 
 |  | 
 | inherit autotools update-rc.d systemd | 
 |  | 
 | SYSTEMD_PACKAGES = "${PN}-switch" | 
 | SYSTEMD_SERVICE_${PN}-switch = " \ | 
 |     openvswitch-nonetwork.service \ | 
 |     openvswitch-switch.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_openvswitch.service \ | 
 | 		${D}/${systemd_unitdir}/system/openvswitch-switch.service | 
 | 	install -m 644 ${S}/rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \ | 
 | 		${D}/${systemd_unitdir}/system/openvswitch-nonetwork.service | 
 |  | 
 | 	oe_runmake modules_install INSTALL_MOD_PATH=${D} | 
 | } | 
 |  | 
 | 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 | 
 | } |