
There is an old Latin saying: ``*fabricando fit faber*'' (``practice makes perfect'').

It is highly recommended to practice and experiment with all the steps of Debian packaging with simple packages.  This chapter provides you with the many upstream cases for your practice.

This should also serve as introductory examples for many programing topics.

* Programing in the POSIX shell, Python3, and C.
* Method to create the desktop GUI program launcher with the icon graphics.
* Conversion of command from https://en.wikipedia.org/wiki/Command-line_interface[CLI] to https://en.wikipedia.org/wiki/Graphical_user_interface[GUI].
* Conversion of program to use *gettext* for http://en.wikipedia.org/wiki/Internationalization_and_localization[internationalization and localization]: POSIX shell, Python3, and C sources.
* Overview of many build systems: Makefile, Python distutils, Autotools, and CMake.

Please note Debian takes few things serious.

* Free software (a.k.a. Libre software)
* Stability and security of OS.
* Universal OS realized via:
** free choice for upstream sources,
** free choice of CPU architectures, and
** free choice of UI languages.

The typical packaging example presented in <<simple>> is the prerequisite for this chapter.

Some details are intentionally left vague in the following.  Please try to read the pertinent documentation and practice yourself to find them out.

TIP:  The best source of the packaging example is the current Debian archive itself.  Please use the ``https://codesearch.debian.net/[Debian Code Search]'' service to find pertinent examples.

