[meta-intel] [meta-dpdk][PATCH 2/2] dpdk: merge recipe and include

Cal Sullivan california.l.sullivan at intel.com
Wed Mar 28 11:34:42 PDT 2018


Is patch 1/2 good to merge?

It looks like in order for 18.02 and 17.11 to use the same .inc file we 
will need to move the LIC_FILES_CHKSUM out of it, but that can be done 
later. 17.11 seems to have upstreamed the same patch that was dropped in 
this upgrade, so we're good on that front as well.

Thanks,
Cal

On 03/28/2018 12:46 AM, Kevin Hao wrote:
> On Wed, Mar 28, 2018 at 12:27:48PM +0500, Awais Belal wrote:
>> Since we only have a single version supported at the
>> moment, which is the latest and the greatest. It is
>> best that the include and base recipe files are merged
>> to allow better maintainability and readability.
> Please don't do this because I plan to add the 17.11 (LTS) version to the Yocto.
>
> Thanks,
> Kevin
>
>> Signed-off-by: Awais Belal <awais_belal at mentor.com>
>> ---
>>   recipes-extended/dpdk/dpdk.inc      | 167 ----------------------------------
>>   recipes-extended/dpdk/dpdk_18.02.bb | 175 ++++++++++++++++++++++++++++++++++--
>>   2 files changed, 167 insertions(+), 175 deletions(-)
>>   delete mode 100644 recipes-extended/dpdk/dpdk.inc
>>
>> diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc
>> deleted file mode 100644
>> index ce4e8bc..0000000
>> --- a/recipes-extended/dpdk/dpdk.inc
>> +++ /dev/null
>> @@ -1,167 +0,0 @@
>> -DESCRIPTION = "Intel(r) Data Plane Development Kit"
>> -HOMEPAGE = "http://dpdk.org"
>> -LICENSE = "BSD & LGPLv2 & GPLv2"
>> -LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
>> -                    file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \
>> -                    file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444"
>> -
>> -SRC_URI = "http://fast.dpdk.org/rel/${BP}.tar.gz;name=dpdk \
>> -	   file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
>> -	   file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \
>> -	   file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \
>> -	   file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \
>> -	   file://dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch \
>> -	  "
>> -
>> -# A machine needs to enable this using:
>> -# COMPATIBLE_MACHINE_pn-dpdk-dev-libibverbs = "<machine name>"
>> -
>> -COMPATIBLE_MACHINE = "null"
>> -COMPATIBLE_HOST_libc-musl_class-target = "null"
>> -
>> -
>> -# dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat.
>> -# fuse is in meta-filesystems and qat is not yet upstreamed.
>> -# So adding mechanism to explicitly disable the use of fuse and qat.
>> -# To enable, uncomment the below line or include in .bbappend.
>> -# PACKAGECONFIG ?= " dpdk_qat vhost libvirt"
>> -
>> -PACKAGECONFIG[dpdk_qat] = ",,virtual/qat"
>> -PACKAGECONFIG[vhost] = ",,fuse"
>> -PACKAGECONFIG[libvirt] = ",,libvirt"
>> -
>> -export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}"
>> -export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}"
>> -export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}"
>> -
>> -RDEPENDS_${PN} += "python-subprocess virtual/libibverbs"
>> -DEPENDS = "virtual/kernel virtual/libibverbs"
>> -do_configure[depends] += "virtual/kernel:do_shared_workdir"
>> -
>> -inherit module
>> -
>> -export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
>> -export RTE_SDK = "${S}"
>> -export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "m64", "x86_64-native-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
>> -
>> -export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
>> -export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
>> -export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
>> -export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
>> -export INSTALL_PATH = "${prefix}/share"
>> -export RTE_OUTPUT = "${S}/${RTE_TARGET}"
>> -export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
>> -export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
>> -export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}"
>> -export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac"
>> -
>> -# The list of intel Comms platforms and their target machine
>> -# process mapping. The supported target machine is listed under
>> -# dpdk/mk/machine
>> -def get_dpdk_target_mach(bb, d):
>> -    target_arch = d.getVar('DPDK_TARGET_MACHINE', True)
>> -    if target_arch:
>> -            target_arch
>> -    return "default"
>> -
>> -do_configure () {
>> -	#############################################################
>> -	### default value for prefix is "usr", unsetting it, so it
>> -	### will not be concatenated in ${RTE_TARGET}/Makefile
>> -	### which will cause compilation failure
>> -	#############################################################
>> -	unset prefix
>> -
>> -	# Fix-up CONFIG_RTE_MACHINE based on target machine
>> -	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc
>> -	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc
>> -
>> -	# Fix-up vhost configs based on package config
>> -	sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
>> -	sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
>> -	sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
>> -
>> -	make O=$RTE_TARGET T=$RTE_TARGET config
>> -}
>> -
>> -do_compile () {
>> -	unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
>> -
>> -	cd ${S}/${RTE_TARGET}
>> -	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
>> -		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
>> -		   CROSS="${TARGET_PREFIX}" \
>> -		   prefix=""  LDFLAGS=""  WERROR_FLAGS="-w" V=1
>> -
>> -	cd ${S}/examples/
>> -	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
>> -		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
>> -		   CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
>> -
>> -	cd ${S}/test/
>> -	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
>> -		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
>> -		   CROSS="${TARGET_PREFIX}" O="${S}/test/$@/"
>> -}
>> -
>> -do_install () {
>> -	oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D}
>> -	oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR}
>> -	oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D}
>> -
>> -	# Install examples
>> -	for dirname in ${S}/examples/*
>> -	do
>> -		install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`
>> -
>> -		for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
>> -		do
>> -			install -m 755 ${appname}	${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
>> -		done
>> -	done
>> -
>> -	# Install test
>> -	for dirname in ${S}/test/app/*
>> -	do
>> -		install -m 0755 -d ${D}/${INSTALL_PATH}/test
>> -
>> -		for appname in `find ${dirname} -regex ".*test\/app\/[-0-9a-zA-Z0-9/_]*$"`
>> -		do
>> -			install -m 755 ${appname} ${D}/${INSTALL_PATH}/test
>> -		done
>> -	done
>> -}
>> -
>> -PACKAGES += "${PN}-examples ${PN}-test"
>> -
>> -FILES_${PN}-dbg += " \
>> -	${INSTALL_PATH}/.debug \
>> -	${INSTALL_PATH}/examples/*/.debug \
>> -	"
>> -
>> -FILES_${PN}-doc += "\
>> -	${INSTALL_PATH}/doc \
>> -	"
>> -
>> -FILES_${PN}-dev += " \
>> -	${INSTALL_PATH}/${RTE_TARGET}/.config \
>> -	${includedir} \
>> -	${includedir}/${ARCHDIR} \
>> -	${includedir}/exec-env \
>> -	${INSTALL_PATH}/buildtools/ \
>> -	${INSTALL_PATH}/${RTE_TARGET}/include \
>> -	${INSTALL_PATH}/${RTE_TARGET}/lib \
>> -	"
>> -
>> -FILES_${PN} += " ${INSTALL_PATH}/usertools/ \
>> -		 ${prefix}/sbin/ \
>> -		 ${prefix}/bin/ \
>> -		 ${libdir}/ \
>> -		 "
>> -FILES_${PN}-examples += " \
>> -	${INSTALL_PATH}/examples/* \
>> -	"
>> -
>> -FILES_${PN}-test += " \
>> -	${INSTALL_PATH}/test \
>> -	"
>> diff --git a/recipes-extended/dpdk/dpdk_18.02.bb b/recipes-extended/dpdk/dpdk_18.02.bb
>> index 537d615..4cce416 100644
>> --- a/recipes-extended/dpdk/dpdk_18.02.bb
>> +++ b/recipes-extended/dpdk/dpdk_18.02.bb
>> @@ -1,19 +1,178 @@
>> -include dpdk.inc
>> +DESCRIPTION = "Intel(r) Data Plane Development Kit"
>> +HOMEPAGE = "http://dpdk.org"
>> +LICENSE = "BSD & LGPLv2 & GPLv2"
>> +LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
>> +                    file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \
>> +                    file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444"
>>   
>> -SRC_URI += "\
>> -            file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \
>> -            file://0001-examples-Fix-maybe-uninitialized-warning.patch \
>> -            "
>> +SRC_URI = "http://fast.dpdk.org/rel/${BP}.tar.gz;name=dpdk \
>> +	   file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
>> +	   file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \
>> +	   file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \
>> +	   file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \
>> +	   file://dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch \
>> +	   file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \
>> +	   file://0001-examples-Fix-maybe-uninitialized-warning.patch \
>> +	  "
>>   
>>   SRC_URI[dpdk.md5sum] = "49d08ced0a978a71cc3942af5cf51b95"
>>   SRC_URI[dpdk.sha256sum] = "f1210310fd5f01a3babe3a09d9b3e5a9db791c2ec6ecfbf94ade9f893a0632b8"
>>   
>> +# A machine needs to enable this using:
>> +# COMPATIBLE_MACHINE_pn-dpdk-dev-libibverbs = "<machine name>"
>> +
>> +COMPATIBLE_MACHINE = "null"
>> +COMPATIBLE_HOST_libc-musl_class-target = "null"
>> +COMPATIBLE_HOST_linux-gnux32 = "null"
>> +
>> +# dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat.
>> +# fuse is in meta-filesystems and qat is not yet upstreamed.
>> +# So adding mechanism to explicitly disable the use of fuse and qat.
>> +# To enable, uncomment the below line or include in .bbappend.
>> +# PACKAGECONFIG ?= " dpdk_qat vhost libvirt"
>> +
>> +PACKAGECONFIG[dpdk_qat] = ",,virtual/qat"
>> +PACKAGECONFIG[vhost] = ",,fuse"
>> +PACKAGECONFIG[libvirt] = ",,libvirt"
>> +
>> +export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}"
>> +export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}"
>> +export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}"
>> +
>> +RDEPENDS_${PN} += "python-subprocess virtual/libibverbs"
>> +DEPENDS = "virtual/kernel virtual/libibverbs"
>> +do_configure[depends] += "virtual/kernel:do_shared_workdir"
>> +
>> +inherit module
>> +
>> +export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
>> +export RTE_SDK = "${S}"
>> +export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "m64", "x86_64-native-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
>> +
>> +export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
>> +export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
>> +export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
>> +export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
>> +export INSTALL_PATH = "${prefix}/share"
>> +export RTE_OUTPUT = "${S}/${RTE_TARGET}"
>> +export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
>> +export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
>> +export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}"
>> +export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac"
>> +
>>   export EXAMPLES_BUILD_DIR = "${RTE_TARGET}"
>>   export ARCHDIR = "generic"
>>   
>> -do_configure_prepend () {
>> +# The list of intel Comms platforms and their target machine
>> +# process mapping. The supported target machine is listed under
>> +# dpdk/mk/machine
>> +def get_dpdk_target_mach(bb, d):
>> +    target_arch = d.getVar('DPDK_TARGET_MACHINE', True)
>> +    if target_arch:
>> +            target_arch
>> +    return "default"
>> +
>> +do_configure () {
>> +	#############################################################
>> +	### default value for prefix is "usr", unsetting it, so it
>> +	### will not be concatenated in ${RTE_TARGET}/Makefile
>> +	### which will cause compilation failure
>> +	#############################################################
>> +	unset prefix
>> +
>> +	# Fix-up CONFIG_RTE_LIBRTE_POWER based on package config for libvirt
>>   	sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/common_linuxapp
>> +
>> +	# Fix-up CONFIG_RTE_MACHINE based on target machine
>> +	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc
>> +	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc
>> +
>> +	# Fix-up vhost configs based on package config
>> +	sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
>> +	sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
>> +	sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
>> +
>> +	make O=$RTE_TARGET T=$RTE_TARGET config
>>   }
>>   
>> -COMPATIBLE_HOST_linux-gnux32 = "null"
>> -COMPATIBLE_HOST_libc-musl_class-target = "null"
>> +do_compile () {
>> +	unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
>> +
>> +	cd ${S}/${RTE_TARGET}
>> +	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
>> +		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
>> +		   CROSS="${TARGET_PREFIX}" \
>> +		   prefix=""  LDFLAGS=""  WERROR_FLAGS="-w" V=1
>> +
>> +	cd ${S}/examples/
>> +	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
>> +		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
>> +		   CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
>> +
>> +	cd ${S}/test/
>> +	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
>> +		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
>> +		   CROSS="${TARGET_PREFIX}" O="${S}/test/$@/"
>> +}
>> +
>> +do_install () {
>> +	oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D}
>> +	oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR}
>> +	oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D}
>> +
>> +	# Install examples
>> +	for dirname in ${S}/examples/*
>> +	do
>> +		install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`
>> +
>> +		for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
>> +		do
>> +			install -m 755 ${appname}	${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
>> +		done
>> +	done
>> +
>> +	# Install test
>> +	for dirname in ${S}/test/app/*
>> +	do
>> +		install -m 0755 -d ${D}/${INSTALL_PATH}/test
>> +
>> +		for appname in `find ${dirname} -regex ".*test\/app\/[-0-9a-zA-Z0-9/_]*$"`
>> +		do
>> +			install -m 755 ${appname} ${D}/${INSTALL_PATH}/test
>> +		done
>> +	done
>> +}
>> +
>> +PACKAGES += "${PN}-examples ${PN}-test"
>> +
>> +FILES_${PN}-dbg += " \
>> +	${INSTALL_PATH}/.debug \
>> +	${INSTALL_PATH}/examples/*/.debug \
>> +	"
>> +
>> +FILES_${PN}-doc += "\
>> +	${INSTALL_PATH}/doc \
>> +	"
>> +
>> +FILES_${PN}-dev += " \
>> +	${INSTALL_PATH}/${RTE_TARGET}/.config \
>> +	${includedir} \
>> +	${includedir}/${ARCHDIR} \
>> +	${includedir}/exec-env \
>> +	${INSTALL_PATH}/buildtools/ \
>> +	${INSTALL_PATH}/${RTE_TARGET}/include \
>> +	${INSTALL_PATH}/${RTE_TARGET}/lib \
>> +	"
>> +
>> +FILES_${PN} += " ${INSTALL_PATH}/usertools/ \
>> +		 ${prefix}/sbin/ \
>> +		 ${prefix}/bin/ \
>> +		 ${libdir}/ \
>> +		 "
>> +FILES_${PN}-examples += " \
>> +	${INSTALL_PATH}/examples/* \
>> +	"
>> +
>> +FILES_${PN}-test += " \
>> +	${INSTALL_PATH}/test \
>> +	"
>> -- 
>> 2.11.1
>>
>> -- 
>> _______________________________________________
>> meta-intel mailing list
>> meta-intel at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/meta-intel
>>
>>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-intel/attachments/20180328/aa5bb315/attachment-0001.html>


More information about the meta-intel mailing list