Information for Pike package maintainers
========================================

This file contains information for people who develops any kind of
Pike distribution. It is both intended as information to assist Pike
package creation as well as requests and demands to ensure high
quality Pike installations.


  Legal Matters

The product name Pike is a trademark owned by Linköping University and
as such we gets to decide what is to be called Pike and what is not.
If you have made extensive alterations to Pike we might request (and
later demand) that you do not call it Pike, to avoid confusion. We
would however much prefer to be contacted early, since we might
approve the changes to be part of Pike.

Pike is released as GPL, LGPL and MPL. Pick any combination for your
distribution and provide your alterations accordingly. Make sure to
keep the file COPYING up to date. The files COPYING and COPYRIGHT must
be included in all distributions of Pike.


  Version Numbering

The build number of Pike, to be found in src/version.h, is updated
either manually or automatically. It is updated manually when eg. the
format for dumped files changes, thus invalidating previously dumped
files and preventing Pike from crashing should it try to read one. It
is updated automatically whenever someone makes a source export by
invoking export.pike with the right arguments. This is typically done
with the "export" target in the make file.

When a the build number is automatically updated, first the build
number is incremented by one and the whole CVS tree is tagged with the
new version number, eg. "v7_3_12". The another increment and another
tagging is commited right after, so that there are no CVS commits done
to the tree during the first build number "life span". Hence that
build number maps one to one to the file versions in the CVS tree and
eliminates any version confusion.

We would like only these "unambigous" builds to be exported as
packages to the world. That means that you as a package builder has
two choices, either use the latest build tag in the tree or create a
new one. We would prefer that the build number is not incremented on
an otherwise unaltered CVS tree, but if you alter your build process
so that the Pike in your package is a different one we would like you
to increment the build number. Though an manual increment by one is
sufficient on an otherwise unaltered tree, we recommend using the
export make target.


  Dependencies

We would like all Pike installations in the world to be as "feature
complete" as possible and support as many of the modules that are
bundled with Pike in the CVS as possible. The goal is of course that a
Pike program should be able to run on any installed Pike. Since this
is an impossible goal we have prioritized the modules with exernal
dependencies according to their usefulness, or in other words, which
modules we would like all Pike installations to have. In order:
 Gmp, Gz, Mysql, _Image_JPEG, _Image_FreeType

If modules or functionality residing in the standard Pike repository
is missing in your package, the package documentation should clearly
state so and provide a description for how to aquire a complete Pike
installation.
