+scp, ssh (ssh), gmake (GNU's version of make), autoconf, cvs.
+
+-------------------------------------------------------------------------------
+
+6.1. Version numbers
+
+First you need to determine which version number the release will have. Privoxy
+version numbers consist of three numbers, separated by dots, like in X.Y.Z
+(e.g. 3.0.0), where:
+
+ * X, the version major, is rarely ever changed. It is increased by one if
+ turning a development branch into stable substantially changes the
+ functionality, user interface or configuration syntax. Majors 1 and 2 were
+ Junkbuster, and 3 will be the first stable Privoxy release.
+
+ * Y, the version minor, represents the branch within the major version. At
+ any point in time, there are two branches being maintained: The stable
+ branch, with an even minor, say, 2N, in which no functionality is being
+ added and only bug-fixes are made, and 2N+1, the development branch, in
+ which the further development of Privoxy takes place. This enables us to
+ turn the code upside down and inside out, while at the same time providing
+ and maintaining a stable version. The minor is reset to zero (and one) when
+ the major is incremented. When a development branch has matured to the
+ point where it can be turned into stable, the old stable branch 2N is given
+ up (i.e. no longer maintained), the former development branch 2N+1 becomes
+ the new stable branch 2N+2, and a new development branch 2N+3 is opened.
+
+ * Z, the point or sub version, represents a release of the software within a
+ branch. It is therefore incremented immediately before each code freeze. In
+ development branches, only the even point versions correspond to actual
+ releases, while the odd ones denote the evolving state of the sources on
+ CVS in between. It follows that Z is odd on CVS in development branches
+ most of the time. There, it gets increased to an even number immediately
+ before a code freeze, and is increased to an odd number again immediately
+ thereafter. This ensures that builds from CVS snapshots are easily
+ distinguished from released versions. The point version is reset to zero
+ when the minor changes.
+
+In summary, the main CVS trunk is the development branch where new features are
+being worked on for the next stable series. This should almost always be where
+the most activity takes place. There is always at least one stable branch from
+the trunk, e.g now it is 3.0, which is only used to release stable versions.
+Once the initial .0 release of the stable branch has been done, then as a rule,
+only bugfixes that have had prior testing should be committed to the stable
+branch. At that point, it is mostly "hands off". Once there are enough bugfixes
+to justify a new release, the version of this branch is again incremented
+Example: 3.0.0 -> 3.0.1 -> 3.0.2, etc are all stable releases from within the
+stable branch. 3.1.x is currently the main trunk, and where work on 3.2.x is
+taking place. If any questions, please post to the devel list before committing
+to a stable branch!