xref: /freebsd/usr.sbin/config/configvers.h (revision 3df058ffaf72b8715c9a5a6a4cbaf1eac1910e43)
1 /*-
2  * This file is in the public domain
3  *
4  * $FreeBSD$
5  */
6 
7 /*
8  * 6 digits of version.  The most significant are branch indicators at the
9  * time when the last incompatible change was made (which is why it is
10  * presently 6 on 7-current).  The least significant digits are incremented
11  * as described below.  The format is similar to the __FreeBSD_version, but
12  * not tied to it.
13  *
14  * DO NOT CASUALLY BUMP THIS NUMBER!  The rules are not the same as shared
15  * libs or param.h/osreldate.
16  *
17  * It is the version number of the protocol between config(8) and the
18  * sys/conf/ Makefiles (the kernel build system).
19  *
20  * It is now also used to trap certain problems that the syntax parser cannot
21  * detect.
22  *
23  * Unfortunately, there is no version number for user supplied config files.
24  *
25  * Once, config(8) used to silently report errors and continue anyway.  This
26  * was a huge problem for 'make buildkernel' which was run with the installed
27  * /usr/sbin/config, not a cross built one.  We started bumping the version
28  * number as a way to trap cases where the previous installworld was not
29  * compatible with the new buildkernel.  The buildtools phase and much more
30  * comprehensive error code returns solved this original problem.
31  *
32  * Most end-users will use buildkernel and the build tools from buildworld.
33  * The people that are inconvenienced by gratuitous bumps are developers
34  * who run config by hand.  However, developers shouldn't gratuitously be
35  * inconvenienced.
36  *
37  * One should bump the CONFIGVERS in the following ways:
38  *
39  * (1) If you change config such that it won't read old config files,
40  *     then bump the major number.  You shouldn't be doing this unless
41  *     you are overhauling config.  Do not casually bump this number
42  *     and by implication do not make changes that would force a bump
43  *     of this number casually.  You should limit major bumps to once
44  *     per branch.
45  * (2) For each new feature added, bump the minor version of this file.
46  *     When a new feature is actually used by the build system, update the
47  *     %VERSREQ field in the Makefile.$ARCH of all the affected makefiles
48  *     (typically all of them).
49  *
50  * $FreeBSD$
51  */
52 #define	CONFIGVERS	600014
53 #define	MAJOR_VERS(x)	((x) / 100000)
54