Chapter 1. Introduction

The RPM Packaging Guide documents:

How to prepare source code for packaging into an RPM.
This is for people with no background in software development. See Chapter 4, Preparing Software for Packaging.
How to package source code into an RPM.
This is for software developers who need to package software into RPMs. See Chapter 5, Packaging Software.
Advanced packaging scenarios.
This is a reference material for RPM packagers dealing with advanced RPM Packaging scenarios. See Chapter 6, Advanced Topics.

1.1. Document Conventions

The document uses the following conventions:

  • Command output and contents of text files, including source code, are placed in blocks:

    $ tree ~/rpmbuild/
    /home/user/rpmbuild/
    |-- BUILD
    |-- RPMS
    
    [command output trimmed]
    Name:           bello
    Version:
    Release:        1%{?dist}
    Summary:
    
    [file contents trimmed]
    #!/usr/bin/env python
    
    print("Hello World")
  • Topics of interest or vocabulary terms are referred to either as URLs to their respective documentation or website, in bold, or in italics.
  • Names of utilities, commands, and things normally found in code are written in monospace font.

1.2. Prerequisites

To follow this tutorial, you need these packages installed:

Note

Some of these packages are installed by default on RHEL. They are listed explicitly to show which tools are used in this guide.

$ yum install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools