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

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to