How to create SILC distributions ================================ This document describes how to prepare SILC distributions in SILC source tree and how to package distributions for releasing. This also defines the procedure what one should do when distribution is created for releasing. The distdir/ directory contains all distributions that can be created from the source tree. The distdir/default cannot be packaged, it must be used only for development. Preparing distribution ====================== To prepare a specific distribution with specific version for packaging, give command: autodist Where the is the distribution name. It is one of the distributions that was defined in distdir/ directory. The is the version of the distribution that will be prepared. The version format is major.minor.build, for example 0.9.10. Example: autodist client 0.9.15 This prepares 'client' distribution of version 0.9.15. The package will have the version 0.9.15 automatically. NOTE: Those distribution that have RPM spec files you should specify the RPM release version to autodist also by doing the following: autodist toolkit 1.1.2 0.fc7 where the "0.fc7" will become the RPM release version. If you omit the release version the default currently is "0.fc7". Creating ChangeLog and Tagging ============================== Before packaging the distribution the ChangeLog must be created and the release must be tagged. A ready made script for this purpose is the scripts/release. It has the following syntax: sh scripts/release The tag format is as follows: silc.name.version Where is the distribution name and is the version of the distribution in following format: major.minor.build, for example 1.1.16. Example: silc.server.1.1.6 When you run the script it also generates the ChangeLog file automatically. All the changes between the and the from the Git are included in the ChangeLog. Since the same repo is used to make packages (client, server and toolkit) the ChangeLog will usually include changes that are not part of the release you are making. You will need to manually remove the commits that are not part of the distribution you are releasing. Later, after the release has been made the tag needs to be pushed to the public repository. git push --tags Configuring and compiling the distribution ========================================== When you prepare the distribution for releasing you should configure the distribution without any specific configuration options, hence just give the command: ./configure NOTE: If you have SILC Toolkit installed to your system you must use the following command to configure the distribution, so that the Toolkit from the system is not used: PKG_CONFIG=. ./configure To compile the distribution, give command: make If you want you can clear the environment first with make clean command, but this is not necessary. Packaging the distribution ========================== After the distribution is prepared, configured and compiled it can be packaged with the following commands: makedist --bzip2 The 'makedist --bzip2' creates the default 'tar.gz' and 'tar.bz2' distribution. It also creates the sha256 checksum files automatically. NOTE: Before giving this command, make sure that you do not have any of the tests in the SILC source tree compiled. If they are the binaries will be included in the distribution which is not allowed. The tests are always located in the tests/ directory, for example lib/silccore/tests/. The tests are not compiled by default, but if you compiled them by yourself make sure you make clean them before creating the distribution. NOTE: Same thing must be assured for tutorial/ sub directory. Make sure it is not compiled and does not include any extra files.