xref: /freebsd/usr.sbin/config/configvers.h (revision 262e143bd46171a6415a5b28af260a5efa2a3db8)
1 /*
2  * 6 digits of version.  The most significant are branch indicators
3  * (eg: RELENG_2_2 = 22, -current presently = 70 etc).  The least
4  * significant digits are incremented as needed.
5  *
6  * DO NOT CASUALLY BUMP THIS NUMBER!  The rules are not the same as shared
7  * libs or param.h/osreldate.
8  *
9  * It is the version number of the protocol between config(8) and the
10  * sys/conf/ Makefiles (the kernel build system).
11  *
12  * It is now also used to trap certain problems that the syntax parser cannot
13  * detect.
14  *
15  * Unfortunately, there is no version number for user supplied config files.
16  *
17  * Once, config(8) used to silently report errors and continue anyway.  This
18  * was a huge problem for 'make buildkernel' which was run with the installed
19  * /usr/sbin/config, not a cross built one.  We started bumping the version
20  * number as a way to trap cases where the previous installworld was not
21  * compatable with the new buildkernel.  The buildtools phase and much more
22  * comprehensive error code returns solved this original problem.
23  *
24  * Most end-users will use buildkenel and the build tools from buildworld.
25  * The people that are inconvenienced by gratuitous bumps are developers
26  * who run config by hand.
27  *
28  * $FreeBSD$
29  */
30 #define	CONFIGVERS	600004
31 
32 /*
33  * Examples of when there should NOT be a bump:
34  * - Adding a new keyword
35  * - Changing the syntax of a keyword such that old syntax will break config.
36  * - Changing the syntax of a keyword such that new syntax will break old
37  *   config binaries.
38  *
39  * Examples of when there should be a bump:
40  * - When files generated in sys/$mach/compile/NAME are changed and the
41  *   Makefile.$mach rules might not handle it correctly.
42  * - When there are incompatable changes to the way sys/conf/files.* or the
43  *   other associated files are parsed such that they will be interpreted
44  *   incorrectly rather than fail outright.
45  */
46