External Interface Design for PP-384
Target release | Future release (14.101) |
---|---|
Epic | |
Document status | DRAFT |
Document Owner | Prakash 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 -
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.