From 155e2da43497ec305ae7e716a0f34056ea708855 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Thu, 18 May 2017 19:21:38 +0100 Subject: Add option to disable docs build Takes some good time to build the documentation, so add a DEB_BUILD_OPTIONS nodocs variable to let users disable it. Change-Id: I8cb44d31329367784d2987ecba008143be089376 Signed-off-by: Luca Boccassi --- debian/rules | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index 9e272aa6..5d2f1590 100755 --- a/debian/rules +++ b/debian/rules @@ -75,6 +75,12 @@ else PAR := "1" endif +ifneq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS))) +BUILD_DOCS=n +else +BUILD_DOCS=y +endif + # kernel_modules can be passed via DEB_BUILD_OPTIONS to enable building the # optional binary kernel modules package. By default it will be built against # the current kernel, or ksrc can be passed with a path to the target kernel @@ -159,14 +165,18 @@ endif dh_auto_configure override_dh_auto_build-indep: +ifeq (y,$(BUILD_DOCS)) $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html \ doc-guides-man +endif override_dh_auto_install-indep: # Package: dpdk-doc # All files based on the install-doc rule (includes examples) +ifeq (y,$(BUILD_DOCS)) $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \ DESTDIR=debian/dpdk-doc install-doc +endif override_dh_auto_build-arch: $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build -- cgit 1.2.3-korg From 5608358c4fb189d7991cd7f5a2e615ac8e558b36 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Thu, 18 May 2017 19:24:45 +0100 Subject: Add option to disable static libraries build Upstream's build system requires a complete rebuild to have both static and shared libraries, which takes time. Add a DEB_BUILD_OPTIONS nostatic variable to let users disable it. Change-Id: If33884e0b85f8fb00c8293bae3e1668db6c74e4c Signed-off-by: Luca Boccassi --- debian/rules | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index 5d2f1590..3a4b3197 100755 --- a/debian/rules +++ b/debian/rules @@ -81,6 +81,12 @@ else BUILD_DOCS=y endif +ifneq (,$(findstring nostatic,$(DEB_BUILD_OPTIONS))) +BUILD_STATIC_LIB=n +else +BUILD_STATIC_LIB=y +endif + # kernel_modules can be passed via DEB_BUILD_OPTIONS to enable building the # optional binary kernel modules package. By default it will be built against # the current kernel, or ksrc can be passed with a path to the target kernel @@ -179,7 +185,9 @@ ifeq (y,$(BUILD_DOCS)) endif override_dh_auto_build-arch: +ifeq (y,$(BUILD_STATIC_LIB)) $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build +endif # Unfortunately the decision about having static or shared libraries is # made for the whole build, which then produces only .a or .so files # (but not both). @@ -197,8 +205,10 @@ override_dh_auto_build-arch: override_dh_auto_install-arch: LIBDIR=/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) override_dh_auto_install-arch: # Package: dpdk (runtime) +ifeq (y,$(BUILD_STATIC_LIB)) $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr libdir=$(LIBDIR) \ DESTDIR=debian/dpdk install-runtime +endif $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr libdir=$(LIBDIR) \ DESTDIR=debian/dpdk install-runtime mkdir -p debian/dpdk/etc/dpdk @@ -234,7 +244,9 @@ override_dh_auto_install-arch: mkdir -p debian/libdpdk-dev/usr/include mv debian/dpdk-dev/usr/include/dpdk debian/libdpdk-dev/usr/include/ # all static libs are in the dev package +ifeq (y,$(BUILD_STATIC_LIB)) mv debian/dpdk/$(LIBDIR)/lib*.a debian/libdpdk-dev/$(LIBDIR)/ +endif # symlinks to last .so's are in the non versioned libdpdk-dev as well # this allows multiple libdpdk- at different VER concurrently # libdpdk-dev depends on all sublibs so symlinks are never broken -- cgit 1.2.3-korg From 784bf02aa60bcb6db6cdc57af06a0ec4e6c8add8 Mon Sep 17 00:00:00 2001 From: Christian Ehrhardt Date: Fri, 19 May 2017 10:48:43 +0200 Subject: debian/rules: fix man pages on non-x86 These were built only in the arch indep, and therefore usually x86 only. Due to that dh:_installman only picked it up there. Move the make target to the binary section, so that the man pages will be packaged along the executables. Update in v2 - keep it in the BUILD_DOC wrapper to be able to skip it with nodoc build option. Change-Id: I6aa6f2d78014de7764b6a8804711570b0194f66d Signed-off-by: Christian Ehrhardt --- debian/rules | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index 3a4b3197..b2a059ad 100755 --- a/debian/rules +++ b/debian/rules @@ -172,8 +172,7 @@ endif override_dh_auto_build-indep: ifeq (y,$(BUILD_DOCS)) - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html \ - doc-guides-man + $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html endif override_dh_auto_install-indep: @@ -201,6 +200,10 @@ endif sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \ $(DPDK_SHARED_DIR)/.config $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build +ifeq (y,$(BUILD_DOCS)) + # need to be around for dh_installman to be picked up + $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) doc-guides-man +endif override_dh_auto_install-arch: LIBDIR=/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) override_dh_auto_install-arch: -- cgit 1.2.3-korg From ed7798327d28889f6b6e08c6eb2966c9d92c9cfa Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Tue, 30 May 2017 14:05:13 +0100 Subject: Change DEB_BUILD_OPTIONS nodocs to nodoc Debian Policy version 4.0.0 was just released and nodoc is officially recommended and recognised. Rename the option to comply. Change-Id: If80282f5e47b05065dd427d067f6e37c0f349517 Signed-off-by: Luca Boccassi --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index b2a059ad..5c14b37c 100755 --- a/debian/rules +++ b/debian/rules @@ -75,7 +75,7 @@ else PAR := "1" endif -ifneq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS))) +ifneq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS))) BUILD_DOCS=n else BUILD_DOCS=y -- cgit 1.2.3-korg From a3362a8a9236fd59949fb86b4079423b22dde3ce Mon Sep 17 00:00:00 2001 From: Jan Blunck Date: Tue, 4 Apr 2017 12:12:22 +0200 Subject: Pass jobs argument via MAKEFLAGS variable Change-Id: I23f329a3116563d70b318f6c4c9ad9159a48e997 Signed-off-by: Luca Boccassi --- debian/rules | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index 5c14b37c..bc593fa2 100755 --- a/debian/rules +++ b/debian/rules @@ -71,8 +71,7 @@ DPDK_SHARED_DIR = "debian/build/shared-root" # now stable with parallel comilation, so support -j ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) PAR := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) -else - PAR := "1" + MAKEFLAGS += -j$(PAR) endif ifneq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS))) @@ -172,7 +171,7 @@ endif override_dh_auto_build-indep: ifeq (y,$(BUILD_DOCS)) - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html endif override_dh_auto_install-indep: @@ -185,7 +184,7 @@ endif override_dh_auto_build-arch: ifeq (y,$(BUILD_STATIC_LIB)) - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build endif # Unfortunately the decision about having static or shared libraries is # made for the whole build, which then produces only .a or .so files @@ -199,10 +198,10 @@ endif cp -a $(DPDK_STATIC_DIR) $(DPDK_SHARED_DIR) sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \ $(DPDK_SHARED_DIR)/.config - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build ifeq (y,$(BUILD_DOCS)) # need to be around for dh_installman to be picked up - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) doc-guides-man + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) doc-guides-man endif override_dh_auto_install-arch: LIBDIR=/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -- cgit 1.2.3-korg From b121ff27dbb03c1da9afd078d0ab3818440519ca Mon Sep 17 00:00:00 2001 From: "Charles (Chas) Williams" Date: Mon, 12 Jun 2017 13:00:50 +0100 Subject: Add support for building mempool packages Change-Id: Ia7e55570cdc8aa93c82fbd2d7403331ecee95030 Signed-off-by: Luca Boccassi --- debian/rules | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index bc593fa2..f6e7ccd4 100755 --- a/debian/rules +++ b/debian/rules @@ -273,6 +273,11 @@ endif echo "PMD: linking $${LIBF} into RTE_EAL_PMD_PATH at $${LIBD}/dpdk-pmds/"; \ ln -s --relative --target-directory=$${LIBD}/dpdk-pmds/ $${LIBD}/$${LIBF}; \ fi; \ + if [ "$${LIBF#librte_mempool_}x" != "$${LIBF}x" ]; then \ + mkdir -p $${LIBD}/dpdk-pmds; \ + echo "MEMPOOL: linking $${LIBF} into RTE_EAL_PMD_PATH at $${LIBD}/dpdk-pmds/"; \ + ln -s --relative --target-directory=$${LIBD}/dpdk-pmds/ $${LIBD}/$${LIBF}; \ + fi; \ if [ "$${LIBF#librte_eal}x" != "$${LIBF}x" ]; then \ mkdir -p $${LIBD}/dpdk-pmds; \ fi; \ -- cgit 1.2.3-korg From 84fc024c38dc0277dd25776fdc99670ef00b39cb Mon Sep 17 00:00:00 2001 From: Jan Blunck Date: Tue, 11 Apr 2017 10:19:53 +0200 Subject: Add dbgsym meta-package This adds a meta-package to install all generated -dbgsym packages. Change-Id: If2d802317628d5858ce2a60add445da39ab980e8 Signed-off-by: Luca Boccassi --- debian/dh-dbgsym-metapkg | 24 ++++++++++++++++++++++++ debian/rules | 6 ++++++ 2 files changed, 30 insertions(+) create mode 100755 debian/dh-dbgsym-metapkg (limited to 'debian/rules') diff --git a/debian/dh-dbgsym-metapkg b/debian/dh-dbgsym-metapkg new file mode 100755 index 00000000..fecbed18 --- /dev/null +++ b/debian/dh-dbgsym-metapkg @@ -0,0 +1,24 @@ +#!/bin/sh -e + +PACKAGE=${1:?Missing parameter} + +dh_installdocs -p${PACKAGE} +dh_installchangelogs -p${PACKAGE} +dh_compress -p${PACKAGE} + +install -d debian/${PACKAGE}/DEBIAN + +echo -n 'misc:Depends=' > debian/${PACKAGE}.substvars +grep -E 'lib.*-dbgsym' debian/files | tr '_' ' ' | \ + awk '{ print $1,"(=",$2 ")" }' | paste -sd ',' - | \ + sed -e 's/,/, /g' >> debian/${PACKAGE}.substvars + +dh_gencontrol -p libdpdk-dev -- \ + -Pdebian/${PACKAGE} \ + -Tdebian/${PACKAGE}.substvars \ + -UPre-Depends -URecommends -USuggests -UEnhances -UProvides \ + -UEssential -UConflicts -UReplaces -UBreaks \ + -DSection=debug -DPriority=extra \ + -DAuto-Built-Package=debug-symbols \ + -DPackage=${PACKAGE} "-DDepends=\${misc:Depends}" \ + "-DDescription=Debug symbols for libdpdk-dev (meta-package)" diff --git a/debian/rules b/debian/rules index f6e7ccd4..bd5ec0b5 100755 --- a/debian/rules +++ b/debian/rules @@ -5,6 +5,7 @@ export DH_VERBOSE=1 export DH_OPTIONS=-v VERSION := $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: (.*:)?(.*)-(.*)/\2/p') +DPDK_ABI := $(shell echo $(VERSION) | cut -d '.' -f1-2) # see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* include /usr/share/dpkg/default.mk @@ -117,6 +118,11 @@ override_dh_gencontrol: dh_gencontrol -p dpdk-modules-$(KVERS) -- \ -v`cat debian/VERSION` \ -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' + ./debian/dh-dbgsym-metapkg libdpdk$(DPDK_ABI)-dbgsym + +override_dh_builddeb: + dh_builddeb + dh_builddeb -plibdpdk$(DPDK_ABI)-dbgsym build: @if [ x"$(KVERS)" = x ] ; then \ -- cgit 1.2.3-korg From 864973804fe71a7a00292fdb15777cddf87716ca Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 12 Jun 2017 13:54:44 +0100 Subject: Hide dbgsym metapackage behind DEB_BUILD_OPTIONS dbgsym packages go in the -debug section of the archive, and various DDs and FTP Masters have strongly recommended to avoid uploading any such metapackage to Main for this reason. It can be still very useful for users and rebuilders, so leave it disabled behind a dbgsym_meta DEB_BUILD_OPTIONS flag. Change-Id: I112f3195755cc6bafef3167b39d3d47273572377 Signed-off-by: Luca Boccassi --- debian/rules | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index bd5ec0b5..33b98b5a 100755 --- a/debian/rules +++ b/debian/rules @@ -113,17 +113,6 @@ DPDK_CONFIG_BUILD_KMOD=y # dpkg-genchanges, and also would require a lot of overrides for debhelpers. get_built_using ?= $(filter-out (=),$(shell dpkg-query -f='$${source:Package} (=$${source:Version})' -W $1)) -override_dh_gencontrol: - dh_gencontrol - dh_gencontrol -p dpdk-modules-$(KVERS) -- \ - -v`cat debian/VERSION` \ - -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' - ./debian/dh-dbgsym-metapkg libdpdk$(DPDK_ABI)-dbgsym - -override_dh_builddeb: - dh_builddeb - dh_builddeb -plibdpdk$(DPDK_ABI)-dbgsym - build: @if [ x"$(KVERS)" = x ] ; then \ echo 'No version in $(KSRC)/include/linux/version.h' >&2; \ @@ -137,6 +126,29 @@ endif %: dh $@ --with python2,dkms +override_dh_gencontrol: + dh_gencontrol +ifneq (,$(findstring kernel_modules,$(DEB_BUILD_OPTIONS))) + dh_gencontrol -p dpdk-modules-$(KVERS) -- \ + -v`cat debian/VERSION` \ + -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' +endif +ifneq (,$(findstring dbgsym_meta,$(DEB_BUILD_OPTIONS))) + ./debian/dh-dbgsym-metapkg libdpdk$(DPDK_ABI)-dbgsym +endif + +# dbgsym_meta can be passed via DEB_BUILD_OPTIONS to enable building the +# optional dbgsym meta package libdpdk-dbgsym. +# This is not built by default as it would go in main but depend on +# packages in the debian-debug archive. +# Debian Developers and FTP masters strongly discourage this. +# We provide this optional flag as a convenience for rebuilders. +ifneq (,$(findstring dbgsym_meta,$(DEB_BUILD_OPTIONS))) +override_dh_builddeb: + dh_builddeb + dh_builddeb -plibdpdk$(DPDK_ABI)-dbgsym +endif + override_dh_auto_clean: rm -rf debian/build debian/tmp debian/dpdk-modules-* \ debian/control.modules debian/VERSION -- cgit 1.2.3-korg From 6e1ca2647e3582e41dc33757c49f628f8c740388 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 12 Jun 2017 13:57:06 +0100 Subject: Generate libdpdk-dev dependencies and dpdk recommends There are many, many binary packages in DPDK, and they constantly change. To avoid having to manually maintain the list of dependencies of libdpdk-dev and recommends of dpdk, generate them at build time depending on what is actually built for each architecture. Change-Id: I19f5f037c41dc4b1d61fb5b2c00e0f005431d8f0 Signed-off-by: Luca Boccassi --- debian/control | 69 ++-------------------------------------------------------- debian/rules | 7 ++++++ 2 files changed, 9 insertions(+), 67 deletions(-) (limited to 'debian/rules') diff --git a/debian/control b/debian/control index db3c12eb..57f41d78 100644 --- a/debian/control +++ b/debian/control @@ -35,26 +35,7 @@ Depends: hwdata, ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} -Recommends: librte-pmd-af-packet1 (= ${binary:Version}), - librte-pmd-bnxt1 (= ${binary:Version}), - librte-pmd-bond1 (= ${binary:Version}), - librte-pmd-cxgbe1 (= ${binary:Version}), - librte-pmd-e1000-1 (= ${binary:Version}), - librte-pmd-ena1 (= ${binary:Version}), - librte-pmd-enic1 (= ${binary:Version}) [amd64 arm64 i386], - librte-pmd-fm10k1 (= ${binary:Version}) [amd64 i386], - librte-pmd-i40e1 (= ${binary:Version}), - librte-pmd-ixgbe1 (= ${binary:Version}) [amd64 arm64 i386], - librte-pmd-null-crypto1 (= ${binary:Version}), - librte-pmd-null1 (= ${binary:Version}), - librte-pmd-pcap1 (= ${binary:Version}), - librte-pmd-qede1 (= ${binary:Version}), - librte-pmd-ring2 (= ${binary:Version}), - librte-pmd-thunderx-nicvf1 (= ${binary:Version}), - librte-pmd-vhost1 (= ${binary:Version}), - librte-pmd-virtio1 (= ${binary:Version}), - librte-pmd-vmxnet3-uio1 (= ${binary:Version}) [amd64 arm64 i386], - librte-pmd-xenvirt1 (= ${binary:Version}) [amd64 arm64 i386] +Recommends: ${librte:Recommends}, Suggests: dpdk-doc, dpdk-igb-uio-dkms (= ${binary:Version}), dpdk-rte-kni-dkms (= ${binary:Version}), @@ -124,53 +105,7 @@ Architecture: amd64 arm64 i386 ppc64el Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: libpcap-dev, - librte-acl2 (= ${binary:Version}), - librte-cfgfile2 (= ${binary:Version}), - librte-cmdline2 (= ${binary:Version}), - librte-cryptodev2 (= ${binary:Version}), - librte-distributor1 (= ${binary:Version}), - librte-eal3 (= ${binary:Version}), - librte-ethdev5 (= ${binary:Version}), - librte-hash2 (= ${binary:Version}), - librte-ip-frag1 (= ${binary:Version}), - librte-jobstats1 (= ${binary:Version}), - librte-kni2 (= ${binary:Version}) [amd64 arm64 ppc64el], - librte-kvargs1 (= ${binary:Version}), - librte-lpm2 (= ${binary:Version}), - librte-mbuf2 (= ${binary:Version}), - librte-mempool2 (= ${binary:Version}), - librte-meter1 (= ${binary:Version}), - librte-net1 (= ${binary:Version}), - librte-pdump1 (= ${binary:Version}), - librte-pipeline3 (= ${binary:Version}), - librte-pmd-af-packet1 (= ${binary:Version}), - librte-pmd-bnxt1 (= ${binary:Version}), - librte-pmd-bond1 (= ${binary:Version}), - librte-pmd-cxgbe1 (= ${binary:Version}), - librte-pmd-e1000-1 (= ${binary:Version}), - librte-pmd-ena1 (= ${binary:Version}), - librte-pmd-enic1 (= ${binary:Version}) [amd64 arm64 i386], - librte-pmd-fm10k1 (= ${binary:Version}) [amd64 i386], - librte-pmd-i40e1 (= ${binary:Version}), - librte-pmd-ixgbe1 (= ${binary:Version}) [amd64 arm64 i386], - librte-pmd-null-crypto1 (= ${binary:Version}), - librte-pmd-null1 (= ${binary:Version}), - librte-pmd-pcap1 (= ${binary:Version}), - librte-pmd-qede1 (= ${binary:Version}), - librte-pmd-ring2 (= ${binary:Version}), - librte-pmd-thunderx-nicvf1 (= ${binary:Version}), - librte-pmd-vhost1 (= ${binary:Version}), - librte-pmd-virtio1 (= ${binary:Version}), - librte-pmd-vmxnet3-uio1 (= ${binary:Version}) [amd64 arm64 i386], - librte-pmd-xenvirt1 (= ${binary:Version}) [amd64 arm64 i386], - librte-port3 (= ${binary:Version}), - librte-power1 (= ${binary:Version}), - librte-reorder1 (= ${binary:Version}), - librte-ring1 (= ${binary:Version}), - librte-sched1 (= ${binary:Version}), - librte-table2 (= ${binary:Version}), - librte-timer1 (= ${binary:Version}), - librte-vhost3 (= ${binary:Version}), + ${librte:Depends}, ${misc:Depends} Description: Data Plane Development Kit (basic development files) DPDK is a set of libraries for fast packet processing. Applications run diff --git a/debian/rules b/debian/rules index 33b98b5a..82eb417b 100755 --- a/debian/rules +++ b/debian/rules @@ -128,6 +128,13 @@ endif override_dh_gencontrol: dh_gencontrol + # debian/files will not exist until dh_gencontrol has ran at least once, + # so we need to run gencontrol for libdpdk-dev and libdpdk-dbgsym after. + # The list of libraries and PMDs is everchanging, so generate the dependency + # list for libdpdk-dev to avoid having to maintain it manually. + # Same for the recommends list for dpdk, were we want the PMDs and the mempools. + dh_gencontrol -p libdpdk-dev -- -V"librte:Depends=`grep -E 'librte-*' ./debian/files | grep -v dbgsym | tr '_' ' ' | awk '{ print $$1,"(=",$$2 ")" }' | paste -sd ',' - | sed -e 's/,/, /g'`" + dh_gencontrol -p dpdk -- -V"librte:Recommends=`grep -E 'librte-(pmd|mempool).*' ./debian/files | grep -v dbgsym | tr '_' ' ' | awk '{ print $$1,"(=",$$2 ")" }' | paste -sd ',' - | sed -e 's/,/, /g'`" ifneq (,$(findstring kernel_modules,$(DEB_BUILD_OPTIONS))) dh_gencontrol -p dpdk-modules-$(KVERS) -- \ -v`cat debian/VERSION` \ -- cgit 1.2.3-korg From 6d0f627c533ccaeac81f11b8ea5639fd873caf61 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Tue, 13 Jun 2017 11:20:41 +0100 Subject: Remove old compatibility transitional packages Change-Id: I64ea0708cacbb657895ba2548bd3b02fac9a0c0c Signed-off-by: Luca Boccassi --- debian/control | 62 --------------------------------------- debian/libethdev4.links.in | 1 - debian/librte-cryptodev1.links.in | 1 - debian/librte-eal2.links.in | 1 - debian/rules | 15 ---------- 5 files changed, 80 deletions(-) delete mode 100644 debian/libethdev4.links.in delete mode 100644 debian/librte-cryptodev1.links.in delete mode 100644 debian/librte-eal2.links.in (limited to 'debian/rules') diff --git a/debian/control b/debian/control index 57f41d78..7863adc6 100644 --- a/debian/control +++ b/debian/control @@ -730,65 +730,3 @@ Description: Data Plane Development Kit (librte_pmd_thunderx_nicvf runtime libra . This package contains the runtime libraries for librte_pmd_thunderx_nicvf. -# All following packages are for ABI compatibility to older releases. -# Newer DPDK versions are ABI compatible to older ones for at least one release -# and more if maintainable. -# -# The cross dependencies in DPDK libraries would otherwise force us to conflict -# with older ABI versions to avoid double ld.so resolution -# (https://lists.ubuntu.com/archives/ubuntu-devel/2017-February/039659.html). -# -# But the conflicts in debian/control would make the old versions and thereby -# the dependent applications non-installable until there is a rebuild (as other -# updates would do). -# But for our case that would deny most benefits of version named libraries -# (e.g. the ability to have both). -# -# Instead of adding conflicts fields - whenever possible - provide a backward -# compatible wrapper symlinking to the new (ABI compatible) implementation. -# -# Still as soon as (all) dependendent packages are rebuilt these compat -# wrappers can be autoremoved (apt will take care of that) - -Package: libethdev4 -Architecture: amd64 arm64 i386 ppc64el -Multi-Arch: same -Homepage: http://dpdk.org/doc/api/rte__ethdev_8h.html -Pre-Depends: ${misc:Pre-Depends} -Depends: librte-ethdev5, ${misc:Depends}, ${shlibs:Depends} -Conflicts: libdpdk0 -Description: Data Plane Development Kit (libethdev runtime library) - DPDK is a set of libraries for fast packet processing. Applications run - in user-space and communicate directly with dedicated network interfaces. - . - This package contains an ABI compatibility link for an older version of the - runtime libraries for libethdev. - -Package: librte-cryptodev1 -Architecture: amd64 arm64 i386 ppc64el -Multi-Arch: same -Homepage: http://dpdk.org/doc/api/rte__cryptodev_8h.html -Pre-Depends: ${misc:Pre-Depends} -Depends: librte-cryptodev2, ${misc:Depends}, ${shlibs:Depends} -Conflicts: libdpdk0 -Description: Data Plane Development Kit (librte-cryptodev runtime library) - DPDK is a set of libraries for fast packet processing. Applications run - in user-space and communicate directly with dedicated network interfaces. - . - This package contains an ABI compatibility link for an older version of the - runtime libraries for librte_cryptodev. - -Package: librte-eal2 -Architecture: amd64 arm64 i386 ppc64el -Multi-Arch: same -Homepage: http://dpdk.org/doc/api/rte__eal_8h.html -Pre-Depends: ${misc:Pre-Depends} -Depends: librte-eal3, ${misc:Depends}, ${shlibs:Depends} -Conflicts: libdpdk0 -Description: Data Plane Development Kit (librte-eal runtime library) - DPDK is a set of libraries for fast packet processing. Applications run - in user-space and communicate directly with dedicated network interfaces. - . - This package contains an ABI compatibility link for an older version of the - runtime libraries for librte_eal. - diff --git a/debian/libethdev4.links.in b/debian/libethdev4.links.in deleted file mode 100644 index 6f482f9a..00000000 --- a/debian/libethdev4.links.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/librte_ethdev.so.5 usr/lib/@DEB_HOST_MULTIARCH@/libethdev.so.4 diff --git a/debian/librte-cryptodev1.links.in b/debian/librte-cryptodev1.links.in deleted file mode 100644 index ddde2520..00000000 --- a/debian/librte-cryptodev1.links.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/librte_cryptodev.so.2 usr/lib/@DEB_HOST_MULTIARCH@/librte_cryptodev.so.1 diff --git a/debian/librte-eal2.links.in b/debian/librte-eal2.links.in deleted file mode 100644 index c6cd36a3..00000000 --- a/debian/librte-eal2.links.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/librte_eal.so.3 usr/lib/@DEB_HOST_MULTIARCH@/librte_eal.so.2 diff --git a/debian/rules b/debian/rules index 82eb417b..59569b9c 100755 --- a/debian/rules +++ b/debian/rules @@ -162,12 +162,6 @@ override_dh_auto_clean: sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control test -L config/defconfig_$(DPDK_CONFIG) && rm -f config/defconfig_$(DPDK_CONFIG) || true -override_dh_clean: - dh_clean - rm -f debian/libethdev4.links - rm -f debian/librte-cryptodev1.links - rm -f debian/librte-eal2.links - override_dh_auto_configure: # Add support for a custom defconfig file in the debian directory. ifneq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS))) @@ -329,15 +323,6 @@ ifneq (,$(KVERS)) DESTDIR=debian/dpdk-modules-$(KVERS) install-kmod endif -debian/libethdev4.links: debian/libethdev4.links.in - sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' < $< > $@ -debian/librte-cryptodev1.links: debian/librte-cryptodev1.links.in - sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' < $< > $@ -debian/librte-eal2.links: debian/librte-eal2.links.in - sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' < $< > $@ -override_dh_link: debian/libethdev4.links debian/librte-cryptodev1.links debian/librte-eal2.links - dh_link - override_dh_dkms: dh_dkms -V $(VERSION) -- cgit 1.2.3-korg From 820abfcb99344f78974562a723d15d871fb9200e Mon Sep 17 00:00:00 2001 From: "Charles (Chas) Williams" Date: Wed, 14 Jun 2017 15:42:30 +0100 Subject: Pass -g via EXTRA_CFLAGS Change-Id: Ieddf137bcb8ed68417b61ac7f66969d20231b4ed Signed-off-by: Luca Boccassi --- debian/rules | 1 + 1 file changed, 1 insertion(+) (limited to 'debian/rules') diff --git a/debian/rules b/debian/rules index 59569b9c..9d2d3b91 100755 --- a/debian/rules +++ b/debian/rules @@ -38,6 +38,7 @@ ifeq (yes, $(dpkg_version_lt)) endif export RTE_DEVEL_BUILD=n +export EXTRA_CFLAGS+=-g # People rebuilding this package can overwrite DPDK_CONFIG, RTE_MACHINE and # RTE_TARGET via DEB_BUILD_OPTIONS if they like -- cgit 1.2.3-korg