The most requirements for packages are optional. The only mandatory rule is the naming convention for packages which use the selected version of Ada compiler. Each requirement has also included reason why it is here. If you disagree with any of them or want to add something here, feel free to contact with me. This list can change from time to time, thus before any submission, please look at it. Below you will find the list of changes to the document.
The package's name can have any name you want. Of course, if a package with the same name exists in the repository, you will be asked for change it.
Reason: It is technically impossible to have two or more packages with the same name. It also brings confusion to the users.
If the package requires exact version of Ada compiler, please append to
its name the desired version of the compiler with leading dash. For
example, if you want to add a package
gprbuild which requires GNAT in
version 11.x, name your package
Reason: A package which requires exact version of a compiler also often requires the whole set of libraries compiled with that compiler. If it delivers executable files, they can conflict with other executables built for different version of the compiler. The same problem can be with libraries, especially with development files.
Names and contents of the files used in creating the package, mostly
these which contain source code of package, should follow Debian naming
rules. For example, if you want to create package
gprbuild with version
21.1 the compressed file with the source code of package should be named
gprbuild_21.1.orig.tar.gz and contains the source code in directory
Reason: Debian packages probably as the only have requirements for naming convention of the source code files. Keeping with them will reduce the amount of work needed to create them. Also, it will remove double data from the repository.
If possible, the package should use to build and run available packages from a distribution repository.
Reason: It reduces the amount of packages needed to maintain in the repository. Also, it allows better integration with the selected distribution and causes fewer conflicts with existing packages.
Before submit package to the repository, please create testing repository for yourself and check if everything is working as expected. Also, enable creation of binary packages.
Reason: Before I will add the package to the repository, I want to be sure that it at least builds correctly. :) If you do this before submission, it will greatly speed up the process of adding the package to the repository.
Before submit a new version of package which you maintain into the repository also, please create a testing repository for yourself to check it.
Reason: Probably the most of us don't like to have broken updates in our systems. This requirement also reduces the amount of work which will server have. And generally, keep the repository clean.
It is recommended to overwrite default action
dh_auto_install with own
if you use
gprinstall to install the package.
Reason: The default installation for Ada creates very basic GNAT Project
Configuration file (with extension
.gpr). The modern version of
gprinstall creates a lot better file, for example with possibility to
select between static and relocatable version of the package.