aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/config/configvers.h
blob: 2a1a2387c86588f5c595d549b58b8cd43fe95c2a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
 * 6 digits of version.  The most significant are branch indicators
 * (eg: RELENG_2_2 = 22, -current presently = 70 etc).  The least
 * significant digits are incremented as needed.
 *
 * DO NOT CASUALLY BUMP THIS NUMBER!  The rules are not the same as shared
 * libs or param.h/osreldate.
 *
 * It is the version number of the protocol between config(8) and the
 * sys/conf/ Makefiles (the kernel build system).
 *
 * It is now also used to trap certain problems that the syntax parser cannot
 * detect.
 *
 * Unfortunately, there is no version number for user supplied config files.
 *
 * Once, config(8) used to silently report errors and continue anyway.  This
 * was a huge problem for 'make buildkernel' which was run with the installed
 * /usr/sbin/config, not a cross built one.  We started bumping the version
 * number as a way to trap cases where the previous installworld was not
 * compatable with the new buildkernel.  The buildtools phase and much more
 * comprehensive error code returns solved this original problem.
 *
 * Most end-users will use buildkenel and the build tools from buildworld.
 * The people that are inconvenienced by gratuitous bumps are developers
 * who run config by hand. 
 *
 * $FreeBSD$
 */
#define	CONFIGVERS	600004

/*
 * Examples of when there should NOT be a bump:
 * - Adding a new keyword
 * - Changing the syntax of a keyword such that old syntax will break config.
 * - Changing the syntax of a keyword such that new syntax will break old
 *   config binaries.
 *
 * Examples of when there should be a bump:
 * - When files generated in sys/$mach/compile/NAME are changed and the
 *   Makefile.$mach rules might not handle it correctly.
 * - When there are incompatable changes to the way sys/conf/files.* or the
 *   other associated files are parsed such that they will be interpreted
 *   incorrectly rather than fail outright.
 */