On Tue, 2018-07-31 at 09:03 +0200, Christian Ehrhardt wrote: > Fortunately this is currently only in experimental. > > This is actually a generated list of dependencies: > 103 Package: libdpdk-dev > > 104 Section: libdevel > > 105 Architecture: amd64 arm64 i386 ppc64el > > 106 Multi-Arch: same > > 107 Pre-Depends: ${misc:Pre-Depends} > > 108 Depends: libpcap-dev, > > 109 zlib1g-dev, > > 110 ${librte:Depends}, > > 111 ${misc:Depends} > > With ${librte:Depends} being the one missing the entry. > > Buildlog of 18.05 > > # 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'`" > dpkg-gencontrol -plibdpdk-dev -ldebian/changelog > -Tdebian/libdpdk-dev.substvars -Pdebian/libdpdk-dev > "-Vlibrte:Depends=librte-acl18.05 (= 18.05-1), librte-bbdev18.05 (= > 18.05-1), librte-bitratestats18.05 (= 18.05-1), librte-bpf18.05 (= > 18.05-1), librte-bus-dpaa18.05 (= 18.05-1), librte-bus-fslmc18.05 (= > 18.05-1), librte-bus-ifpga18.05 (= 18.05-1), librte-bus-pci18.05 (= > 18.05-1), librte-bus-vdev18.05 (= 18.05-1), librte-cfgfile18.05 (= > 18.05-1), librte-cmdline18.05 (= 18.05-1), librte-common- > octeontx18.05 > (= 18.05-1), librte-compressdev18.05 (= 18.05-1), > librte-cryptodev18.05 (= 18.05-1), librte-distributor18.05 (= > 18.05-1), librte-eal18.05 (= 18.05-1), librte-efd18.05 (= 18.05-1), > librte-ethdev18.05 (= 18.05-1), librte-eventdev18.05 (= 18.05-1), > librte-flow-classify18.05 (= 18.05-1), librte-gro18.05 (= 18.05-1), > librte-gso18.05 (= 18.05-1), librte-hash18.05 (= 18.05-1), > librte-ifcvf-vdpa18.05 (= 18.05-1), librte-ip-frag18.05 (= 18.05-1), > librte-jobstats18.05 (= 18.05-1), librte-kvargs18.05 (= 18.05-1), > librte-latencystats18.05 (= 18.05-1), librte-lpm18.05 (= 18.05-1), > librte-mbuf18.05 (= 18.05-1), librte-member18.05 (= 18.05-1), > librte-mempool-bucket18.05 (= 18.05-1), librte-mempool-dpaa18.05 (= > 18.05-1), librte-mempool-dpaa2-18.05 (= 18.05-1), > librte-mempool-octeontx18.05 (= 18.05-1), librte-mempool-ring18.05 (= > 18.05-1), librte-mempool-stack18.05 (= 18.05-1), librte-mempool18.05 > (= 18.05-1), librte-meter18.05 (= 18.05-1), librte-metrics18.05 (= > 18.05-1), librte-net18.05 (= 18.05-1), librte-pci18.05 (= 18.05-1), > librte-pdump18.05 (= 18.05-1), librte-pipeline18.05 (= 18.05-1), > librte-pmd-af-packet18.05 (= 18.05-1), librte-pmd-ark18.05 (= > 18.05-1), librte-pmd-axgbe18.05 (= 18.05-1), > librte-pmd-bbdev-null18.05 (= 18.05-1), librte-pmd-bnxt18.05 (= > 18.05-1), librte-pmd-bond18.05 (= 18.05-1), > librte-pmd-crypto-scheduler18.05 (= 18.05-1), librte-pmd-cxgbe18.05 > (= > 18.05-1), librte-pmd-dpaa-event18.05 (= 18.05-1), > librte-pmd-dpaa-sec18.05 (= 18.05-1), librte-pmd-dpaa18.05 (= > 18.05-1), librte-pmd-dpaa2-18.05 (= 18.05-1), > librte-pmd-dpaa2-cmdif18.05 (= 18.05-1), librte-pmd-dpaa2-event18.05 > (= 18.05-1), librte-pmd-dpaa2-qdma18.05 (= 18.05-1), > librte-pmd-dpaa2-sec18.05 (= 18.05-1), librte-pmd-e1000-18.05 (= > 18.05-1), librte-pmd-ena18.05 (= 18.05-1), librte-pmd-enic18.05 (= > 18.05-1), librte-pmd-failsafe18.05 (= 18.05-1), librte-pmd-fm10k18.05 > (= 18.05-1), librte-pmd-i40e18.05 (= 18.05-1), > librte-pmd-ifpga-rawdev18.05 (= 18.05-1), librte-pmd-ixgbe18.05 (= > 18.05-1), librte-pmd-lio18.05 (= 18.05-1), librte-pmd-mlx4-18.05 (= > 18.05-1), librte-pmd-mlx5-18.05 (= 18.05-1), librte-pmd-nfp18.05 (= > 18.05-1), librte-pmd-null-crypto18.05 (= 18.05-1), > librte-pmd-null18.05 (= 18.05-1), librte-pmd-octeontx-ssovf18.05 (= > 18.05-1), librte-pmd-octeontx18.05 (= 18.05-1), > librte-pmd-opdl-event18.05 (= 18.05-1), librte-pmd-openssl18.05 (= > 18.05-1), librte-pmd-pcap18.05 (= 18.05-1), librte-pmd-qede18.05 (= > 18.05-1), librte-pmd-ring18.05 (= 18.05-1), > librte-pmd-skeleton-event18.05 (= 18.05-1), > librte-pmd-skeleton-rawdev18.05 (= 18.05-1), librte-pmd-softnic18.05 > (= 18.05-1), librte-pmd-sw-event18.05 (= 18.05-1), librte-pmd- > tap18.05 > (= 18.05-1), librte-pmd-thunderx-nicvf18.05 (= 18.05-1), > librte-pmd-vdev-netvsc18.05 (= 18.05-1), librte-pmd-vhost18.05 (= > 18.05-1), librte-pmd-virtio-crypto18.05 (= 18.05-1), > librte-pmd-virtio18.05 (= 18.05-1), librte-pmd-vmxnet3-uio18.05 (= > 18.05-1), librte-port18.05 (= 18.05-1), librte-power18.05 (= 18.05- > 1), > librte-rawdev18.05 (= 18.05-1), librte-reorder18.05 (= 18.05-1), > librte-ring18.05 (= 18.05-1), librte-sched18.05 (= 18.05-1), > librte-security18.05 (= 18.05-1), librte-table18.05 (= 18.05-1), > librte-timer18.05 (= 18.05-1), librte-vhost18.05 (= 18.05-1)" > > > This could be a typo or something like it to miss it. > > If you search the build log for those two: > librte_pmd_ark.so.18.05 > librte_pmd_avf.so.18.05 > You will see the difference. > > Actually I think librte_pmd_avp.so.18.05 is affected as well. > > dhlink section has > rm -f debian/libdpdk-dev/usr/lib/i386-linux-gnu/librte_pmd_ark.so > ln -s librte_pmd_ark.so.18.05 > debian/libdpdk-dev/usr/lib/i386-linux-gnu/librte_pmd_ark.so > rm -f > debian/librte-pmd-ark18.05/usr/lib/i386-linux-gnu/dpdk-18.05- > drivers/librte_pmd_ark.so.18.05 > ln -s ../librte_pmd_ark.so.18.05 > debian/librte-pmd-ark18.05/usr/lib/i386-linux-gnu/dpdk-18.05- > drivers/librte_pmd_ark.so.18.05 > vs: > rm -f debian/libdpdk-dev/usr/lib/i386-linux-gnu/librte_pmd_avf.so > ln -s librte_pmd_avf.so.18.05 > debian/libdpdk-dev/usr/lib/i386-linux-gnu/librte_pmd_avf.so > > I think all steps afterwards further steps fail to pick it up due to > that. > > But I currently fail to see why, checked d/control and d/rules - but > can't > find avp/avf/ark differ like the "-" vs "_" we had in the past. > Umm no actually I do see it, avf/avp is listed as "Architecture: > amd64" > And I was looking at the i386 buildlog as amd64 was not reachable. > It would be correct for the i386 libdpdk-dev to not have the > dependency. > > Unfortunately > https://buildd.debian.org/status/logs.php?pkg=dpdk&ver=18.05-1&arch=a > md64 > is empty atm :-/ > > Luca, do you see the issue right away - or do we need to rebuild to > see > what happened?
So the problem is that I mistakenly set the AVF PMD architecture as amd64-only, but the shared library is being built everywhere. Since we generate the symlinks that are shipped by libdpdk-dev based on what libraries are actually built, rather than what packages are shipped, the symlink was present in libdpdk-dev and broken as correctly reported by Andreas' piuparts test, given the package with the actual library was amd64-only. PR is open to fix the error. -- Kind regards, Luca Boccassi
signature.asc
Description: This is a digitally signed message part