Laszlo Kiraly 6b4aa2b7f4 build: generate debug info rpm packages for opensuse
Enabling debug info RPM creation in spec file.

Type: fix

Signed-off-by: Laszlo Kiraly <laszlo.kiraly@est.tech>
Change-Id: Id284b135ec4125905145f7902a6e1cf42ba65aa4
2023-07-06 14:46:41 +00:00
..

Build RPM for openSUSE

Introduction

This is to describe how to compile and create installable RPM packages for openSUSE leap. In general you should visit [Pulling, Building, Running, Hacking, Pushing](https://wiki.fd.io/view/VPP/Pulling,_Building,_Run ning,_Hacking_and_Pushing_VPP_Code) which provides full description for other type of system (Ubuntu,Centos or Redhat).

Get the VPP Sources

To get the VPP sources that are used to create the build, run the following commands:

# git clone https://gerrit.fd.io/r/vpp
# cd vpp

There are two ways to continue:

  • Build by docker
  • Build on your own openSUSE system

Build by Docker

Run the following docker command:

docker build -f extras/rpm/opensuse/Dockerfile .

The packages now can be copied from the docker image and can be installed on openSUSE. An example how to extend the Dockerfile to install vpp:

'''dockerfile FROM opensuse/leap:${SUSE_VERSION} as vppinstall COPY --from=vppbuild /vpp/build-root/rpm /rpms/ RUN VPP_INSTALL_SKIP_SYSCTL=false zypper install --allow-unsigned-rpm -y --no-recommends /rpms/.rpm;
... '''

Build on openSUSE

Build VPP Dependencies

Before building a VPP image, make sure there are no FD.io VPP or DPDK packages installed, by entering the following commands:

# rpm -ql vpp
package vpp is not installed
# rpm -ql dpdk
package dpdk is not installed

Run the following make command to install the dependencies for FD.io VPP.

make install-dep

Run the following make command to install the external dependencies for FD.io VPP.

ln -s /usr/bin/cmake /usr/bin/cmake3 # some thirdparty checking for cmake3 binary
make install-ext-dep

Build RPM Packages

Create packages for openSUSE by running:

make pkg-rpm

Once the packages are built they can be found in the build-root directory.

# ls *.rpm

If the packages are built correctly, then this should be the corresponding output:

build-root/libvpp0-21.10-rc0~200_gb89ae9670.x86_64.rpm	    build-root/vpp-api-python-21.10-rc0~200_gb89ae9670.x86_64.rpm
build-root/vpp-21.10-rc0~200_gb89ae9670.x86_64.rpm	    build-root/vpp-devel-21.10-rc0~200_gb89ae9670.x86_64.rpm
build-root/vpp-api-lua-21.10-rc0~200_gb89ae9670.x86_64.rpm  build-root/vpp-plugins-21.10-rc0~200_gb89ae9670.x86_64.rpm