Commit dc672e78 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

doc: Add doc about building RPMs



Signed-off-by: default avatarMichal Berger <michalx.berger@intel.com>
Change-Id: I78c6a1f376a317bd88298f9d19034848790aa667
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7266


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
parent fe386940
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -119,6 +119,12 @@ I/O channel.
New RPC `bdev_nvme_get_transport_statistics` was added, it allows to get transport statistics
of nvme poll groups.

### rpm

Added support for new RPM spec, rpmbuild/spdk.spec, which can be used for packaging the
SPDK. The pkg/spdk.spec is considered to be deprecated and scheduled for removal. See
[RPM documentation](https://spdk.io/doc/rpm.html) for more details.

## v21.01:

### idxd
+1 −0
Original line number Diff line number Diff line
@@ -835,6 +835,7 @@ INPUT += \
                         peer_2_peer.md \
                         pkgconfig.md \
                         porting.md \
                         rpm.md \
                         scheduler.md \
                         shfmt.md \
                         spdkcli.md \

doc/rpm.md

0 → 100644
+49 −0
Original line number Diff line number Diff line
# RPMs {#rpms}

# In this document {#rpms_toc}

* @ref building_rpms

# Building SPDK RPMs {#building_rpms}

To build basic set of RPM packages out of the SPDK repo simply run:

~~~{.sh}
# rpmbuild/rpm.sh
~~~

Additional configuration options can be passed directly as arguments:

~~~{.sh}
# rpmbuild/rpm.sh --with-shared --with-dpdk=/path/to/dpdk/build
~~~

There are several options that may be passed via environment as well:

- DEPS          - Install all needed dependencies for building RPM packages.
                Default: "yes"
- MAKEFLAGS     - Flags passed to make
- RPM_RELEASE   - Target release version of the RPM packages. Default: 1
- REQUIREMENTS  - Extra set of RPM dependencies if deemed as needed
- SPDK_VERSION  - SPDK version. Default: currently checked out tag

~~~{.sh}
# DEPS=no MAKEFLAGS="-d -j1" rpmbuild/rpm.sh --with-shared
~~~

By default, all RPM packages should be created under $HOME directory of the
target user:

~~~{.sh}
# printf '%s\n' /root/rpmbuild/RPMS/x86_64/*
/root/rpmbuild/RPMS/x86_64/spdk-devel-v21.01-1.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/spdk-dpdk-libs-v21.01-1.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/spdk-libs-v21.01-1.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/spdk-v21.01-1.x86_64.rpm
#
~~~

- spdk            - provides all the binaries, common tooling, etc.
- spdk-devel      - provides development files
- spdk-libs       - provides target lib, .pc files (--with-shared)
- spdk-dpdk-libs  - provides dpdk lib files (--with-shared|--with-dpdk)

pkg/README

0 → 100644
+3 −0
Original line number Diff line number Diff line
pkg/spdk.spec is deprecated and not fully supported. Use of the
rpmbuild/spdk.spec together with provided script suite is advised.
The pkg/spdk.spec is going to be removed from future releases.