diff options
-rw-r--r-- | debian/control | 63 | ||||
-rw-r--r-- | debian/libethdev4.links.in | 1 | ||||
-rw-r--r-- | debian/librte-cryptodev1.links.in | 1 | ||||
-rw-r--r-- | debian/librte-eal2.links.in | 1 | ||||
-rwxr-xr-x | debian/rules | 15 |
5 files changed, 81 insertions, 0 deletions
diff --git a/debian/control b/debian/control index 5160a70f..37c14d33 100644 --- a/debian/control +++ b/debian/control @@ -782,3 +782,66 @@ Description: Data Plane Development Kit (librte_pdump runtime library) in user-space and communicate directly with dedicated network interfaces. . This package contains the runtime libraries for librte_pdump. + +# 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 compatbility 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 compatbility link for an older version of the + 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 compatbility link for an older version of the + runtime libraries for librte_eal. + diff --git a/debian/libethdev4.links.in b/debian/libethdev4.links.in new file mode 100644 index 00000000..6f482f9a --- /dev/null +++ b/debian/libethdev4.links.in @@ -0,0 +1 @@ +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 new file mode 100644 index 00000000..ddde2520 --- /dev/null +++ b/debian/librte-cryptodev1.links.in @@ -0,0 +1 @@ +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 new file mode 100644 index 00000000..c6cd36a3 --- /dev/null +++ b/debian/librte-eal2.links.in @@ -0,0 +1 @@ +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 4033b17f..321f3681 100755 --- a/debian/rules +++ b/debian/rules @@ -126,6 +126,12 @@ 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))) @@ -264,6 +270,15 @@ ifneq (,$(KVERS)) debian/dpdk-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net 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) |