Building RPMs Directly From SRPMs

Software Installation for Linux

product_line_custom
Intel® PAC
Napatech SmartNIC
category
Software Installation Guide

If you don't need to edit the spec files, you can build the Napatech driver and tools RPMs in one step (without first installing the SRPMs).

About this task

The package installer yum is used in this example. You can of course use your distributions preferred RPM package installer.

Before you begin

rpm-build is required for building RPMs from SRPMs.

Kernel headers for the running kernel, gcc and make are required for building the nt-driver-3gd-modules RPM from nt-driver-3gd-x.y.z.build-short-sha1.src.rpm.

Steps

To build the RPMs in one step:

Procedure

  1. Ensure that kernel headers for the running kernel and other prerequisites are installed:
    $ sudo yum install kernel-devel-$(uname -r) gcc make rpm-build
  2. If the Napatech driver or tools has previously been installed on this host, install log files owned by root may be left in TMPDIR, by default /tmp. Remove these log files before building the Napatech driver as non-root user:
    $ sudo rm -v /tmp/nt_driver_* /tmp/nt_tools_*
  3. To rebuild RPMs in one step from SRPMs:
    $ rpmbuild --rebuild nt-driver-3gd-x.y.z.build-short-sha1.src.rpm
    $ rpmbuild --rebuild nt-tools-3gd-x.y.z.build-short-sha1.src.rpm

Results

By default, the resulting RPMs are located in ~/rpmbuild/RPMS. For example:
rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
│   ├── noarch
│   │   ├── nt-driver-3gd-devel-3.8.0.302-f4d297.el7.centos.noarch.rpm
│   │   ├── nt-driver-3gd-docs-3.8.0.302-f4d297.el7.centos.noarch.rpm
│   │   ├── nt-driver-3gd-examples-3.8.0.302-f4d297.el7.centos.noarch.rpm
│   │   └── nt-tools-3gd-docs-3.8.0.302-f4d297.el7.centos.noarch.rpm
│   └── x86_64
│       ├── nt-driver-3gd-3.8.0.302-f4d297.el7.centos.x86_64.rpm
│       ├── nt-driver-3gd-modules-3.8.0.302-f4d297.el7.centos.x86_64.rpm
│       └── nt-tools-3gd-3.8.0.302-f4d297.el7.centos.x86_64.rpm
├── SOURCES
├── SPECS
└── SRPMS
In addition, the build process leaves some log files in TMPDIR, by default /tmp:
/tmp
├── nt_driver_3gd.log
├── nt_driver_3gd.log.clip
└── nt_tools_3gd.log