External Interface Design for PP-384

Target releaseFuture release (14.101)
Epic


PP-384 - Getting issue details... STATUS

Document status
DRAFT
Document OwnerPrakash Varandani

Background -

Currently, PBS packaging is not supported on Debian/Ubuntu OS.

PP-384 would address this requirement whereby, changes needed to successfully compile, build and package PBS successfully on Debian/Ubuntu packages will be done and documented.

This document provides an explanation of the new interfaces that will be added to the source tree as part of this exercise.

Interface 1 - the debian directory

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - directory containing configuration files needed for packaging PBS.
  • Details -
    • Debian packaging commands like dpkg-buildpackage need a directory named "debian" in the root of the source tree.
    • This directory contains the configuration files like control, copyright, changelog, maintainer scripts etc.
    • These configuration files guide the build and packaging machinery as per the requirements.

Interface 2 - debian/control

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - used for package management.
  • Details - 
    • This file contains various values which dpkg, dselect, apt-get, apt-cache, aptitude, and other package management tools will use to manage the package.
    • A description of the source package is mandatory.
    • A description of the required binary packages is provided in this file.
    • Build-Depends section of the source package description must list the packages that are needed for building the software.
    • Depends section of the binary packages description must list the packages that are needed for installing the software.
    • For more details on various sections of this file, click here and here.

Interface 3 - debian/copyright

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - Licensing information.
  • Details -
    • This file contains information about the copyright and license of the upstream sources.
    • For details on the format of this file, click here and here.

Interface 3 - debian/changelog

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - brief explanation of the version change of the Debian package.
  • Details - 
    • This file is used by dpkg and other programs to obtain the version number, revision, distribution, and urgency of the package.
    • For details on the format of this file click here.

Interface 4 - debian/rules

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - Makefile.
  • Details -
    • This file contains the package-specific recipes for compiling the package and building binary package(s) from the source.
    • For details on the format of this file click here.

Interface 5 - debain/*.install

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - list of package files.
  • Details -
    • For each binary package that needs to be created, we list the files in this file.
    • For pbspro-server package, there will be a file pbspro-server.install.
    • These files are used by dh_install.

Interface 6 - debian/*.postinst

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - maintainer script.
  • Details -
    • It is an executable script that is run once just after the installation of the package is successful.
    • In PBS, we use this to call pbs_postinstall.

Interface 7 - debian/*.prerm

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - maintainer script.
  • Details -
    • It is an executable script that is run once just before the removal of the package.
    • In PBS, we use this to stop running pbs services.

Interface 8 - debian/*.postrm

  • Visibility - Public
  • Change Control - Stable
  • Synopsis - maintainer script.
  • Details -
    • It is an executable script that is run once just after the removal of the package.
    • In PBS, we use this to notify the user about manual removing of leftover files and directories.