Software packaging

Learn how to package your applications on Linux yourself

Our courses are offered in inter-company according to the proposed schedule below. We can also move within your entity. Do not hesitate to ask us for more information!

Training goals

One of the great strengths of Linux systems is software packaging. It facilitates the installation, use, maintenance and updating of software applications. Major distributions frequently offer their future packagers a mentoring system to understand all the technical and organizational aspects needed to integrate the official teams. .

The training in packaging proposes to address the fundamentals and more advanced concepts of packaging that is oriented deb or rpm.



The training is for a beginner audience who wants to understand the logic of software packaging under Linux, and implement.


  • Duration : 2 days
  • Level : beginner
  • goal : participants will be able to modify existing software packages, produce new packages and have the elements to set up a packaging policy within the company
  • Price : 1 300€ HT


The training will alternate theoretical contributions and implementation of each notion addressed. The training will also include a complete hands-on case that will rely on participant-provided software.

hupstream offers a package build infrastructure that will allow the execution of proposed school projects in practical cases. Participants will also be able to submit concrete cases and problems.

RPM Packaging

1Prequest and convention

  • The FHS standard: define the conventions related to the tree
  • RPM naming conventions
  • The importance of a defined build architecture
  • The libation or packaging of bookstores
  • Importance of Makefiles in packaging
  • The main differences in distributions
  • The different types of packaging: sources and binaries

2The large sections of the .spec file

  • headers: review of usable tags
  • The prep section
  • The build section
  • The install section
  • The files section: impact on updates and uninstallation
  • The changelog section: the importance of documentation
  • Pre and Post Installation Scripts

3 Build RPM

  • Orders available
  • Build optimization
  • Decoding errors: sources of information

4Advanced Packet Management

  • Packages and subpackages
  • Renaming a package

5 Going Further: Macros

  • Generic macros
  • Pre-defined macros for distribution
  • Add your own macros
  • The check section

6Use build options

  • Conditional build options
  • Rebuild a package using a specific option
  • Add options to a spec file
  • Beyond automatic dependency management

7Advanced Update Management

  • Impact on configuration and data
  • Backtrack management
  • Simultaneous installation of multiple versions

8RPM Command Advanced Options

  • Management of information requests
  • Installation option

9Packaging and security

  • Signature of packages
  • Checking the signature of a package
  • Add options to a spec file
  • Verifying the integrity of installed files

Packaging debian

1Prequest and convention

  • The FHS standard: define the conventions related to the tree
  • Deb package formats:
  • source package in 1.0 format (native and non-native)
  • source package in 1.0 format (native and non-native with quilt)
  • pre-releases
  • Naming conventions and package versioning
  • Preparation of the build environment

2The packaging of libraries

3The debian directory

  • Control
  • Copyright
  • Chantelog
  • compat
  • Source / Format
  • . * Install
  • Rules (targets, default values, customization)
  • Source and patches
  • Other files in the debian directory

4Construction of the package

  • Creating a new package with dh_make
  • Complete rebuild with dpkg-buildpackage
  • Automate with the debuild command
  • Build your own packages with pbuilder / cowbuilder
  • Test / debug his build

5Simplify packaging with dh or cdbs

  • The dh command
  • Common Debian Build System

6Check the build of a debian package

  • The devscripts scripts
  • Package Verification Tools: lintian
  • Test installation, upgrade and uninstall: piu-part
  • Packager checklist
  • Packager toolbox: debdiff, interdiff

7Edit source code

  • Set up and use quilt

8Using git to manage its source packages

  • Introduction to git-buildpackage
  • Create a git repository from the source package with git-import-dsc
  • Import a new .orig file with git-import-orig
  • Create the package with git-buildpackage

9Installing your own APT filing

  • Deposit structure
  • A simple tool: apt-ftarchives
  • Import a new .orig file with git-import-orig
  • Advanced deposit management with uploads with reprepro and dupload
For this, we offer training based on:

  • advanced knowledge of rpm packaging acquired within the official distribution teams an experience of open source projects of more than 10 years
  • Our trainers are experienced in packaging techniques as well as in training. They have several years of experience with a free software publisher.

Our next training dates

Debian ackaging

  • 11 and 12 march 2019, Paris
  • 23 and 24 may 2019, Paris
  • 30 september and 01 octobre 2019, Paris
  • 16 and 17 december 2019, Paris

RPM Packaging

  • 14 and 15 march 2019, Paris
  • 27 and 28 may 2019, Paris
  • 30 september and 01 october 2019, Paris
  • 19 and 20 december 2019, Paris

Ask for a quote


Choose a training