On 05/13/2019 01:22 PM, Damjan Marion wrote:


On 13 May 2019, at 19:15, Billy <bmcf...@redhat.com <mailto:bmcf...@redhat.com>> wrote:



On Mon, May 13, 2019 at 10:18 AM Benoit Ganne (bganne) via Lists.Fd.Io <http://lists.fd.io/> <bganne=cisco....@lists.fd.io <mailto:cisco....@lists.fd.io>> wrote:

    Hi Thomas,

    > The external rdma driver includes parts of ib-verbs which are
    provided as
    > part of the fedora 30 such as /usr/include/rdma/ib_user_verbs.h.
    > This prevents installation of vpp on Fedora 30 and upgraded
    Fedora 29.

    I think I am trying to understand a similar issue with CentOS
    packaging.
    Just to make sure I understand correctly: what you see is
    vpp-deps RPM conflicting on installation with kernel-headers RPM
    because it is trying to install
    /usr/include/rdma/ib_user_verbs.h, which is already provided by
    kernel-headers. Correct?

I don't think this is a  problem in the rdma ext driver.
I think that stuff that used to be in rdma-devel rpm is now in kernel-headers as of Fed30. Let me research further.

    I think Fedora 30 has moved some headers that used to be in the
    rdma rpm into the kernel-devel package as the Mellanox drivers
    have been mainstreamed. I suspect that this same problem will
    appear with CentOS 8.


Yes, that is correct.

$ sudo rpm -i build-root/*.rpm
  file /usr/include/rdma from install of vpp-devel-19.08-rc0~196_g7fe470a54.x86_64 conflicts with file from package kernel-headers-5.0.9-200.fc29.x86_64   file /usr/include/rdma/ib_user_verbs.h from install of vpp-devel-19.08-rc0~196_g7fe470a54.x86_64 conflicts with file from package kernel-headers-5.0.9-200.fc29.x86_64

    If so, I am a little puzzled because packagecloud RPMs for CentOS
    do not include /usr/include/rdma/* files, and the same is true
    when I build those package myself.


Fedora packages are different (and newer) than CentOS. So the difference is not unusual.

    Could you document the steps to reproduce the issue in VPP jira:
    https://jira.fd.io/projects/VPP/

https://jira.fd.io/browse/VPP-1674

Right solution to this problem will be that VPP RPM packaging stops blindly packaging all *.h files into vpp-devel package and it starts using CMake components instead.

This particular section in extras/rpm/vpp.spec:

for dir in $(find %{_mu_build_dir}/%{_vpp_install_dir}/*/include/ -maxdepth 0 -type d -print | grep -v dpdk)
do
        for subdir in $(cd ${dir} && find . -type d -print)
        do
                mkdir -p -m755 %{buildroot}/usr/include/${subdir}
        done
        for file in $(cd ${dir} && find . -type f -print)
        do
                install -p -m 644 $dir/$file %{buildroot}%{_includedir}/$file
        done
done
I agree on this point. This is legacy code in the spec file that scrapes up all the header files is not the best way of doing things. Ideally, the RPM packaging the RPM packaging from the cmake files to build separate packages for exts and plugins each with its own devel rpm.
I think the solution to Ben's problem is above though.



--
*Thomas F Herbert*
NFV and Fast Data Planes
Networking Group Office of the CTO
*Red Hat*
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#13010): https://lists.fd.io/g/vpp-dev/message/13010
Mute This Topic: https://lists.fd.io/mt/31607407/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to