Subject: CVS commit: src/usr.bin/config
To: None <>
From: Quentin Garnier <>
List: source-changes
Date: 10/12/2005 01:17:43
Module Name:	src
Committed By:	cube
Date:		Wed Oct 12 01:17:43 UTC 2005

Modified Files:
	src/usr.bin/config: defs.h gram.y scan.l sem.c sem.h

Log Message:
Introduce versioning to config(1).  This will allow us to provide a way to
error out in a bit more friendly way when the user is trying to use
config(1) on a too old or too recent source tree.

To achieve that, introduce the "version NUMBER" statement which can be use
about anywhere in the config files.  Also, use two defines, CONFIG_VERSION
(which is the actual version of binary), and CONFIG_MINVERSION, which is
the minimum version the binary supports.

Allowing a range of versions serves several purposes:  first it allows me
to introduce the versioning without requiring it to be used right away in
the kernel tree, which means it will be possible to introduce new features
of config(1) rather progressively in the future.  E.g., using 'no pci' in
a config file could only require the new version in that config file, so
that the rest remains compatible.

In the end, an actual bump of the main config system (i.e., in conf/files)
will only be required when e.g., ioconf.c semantics change.

(Mostly-)silently accepted on tech-kern.  Error messages turned into
correct and meaningful English thanks to Tracy and Perry.

To generate a diff of this commit:
cvs rdiff -r1.7 -r1.8 src/usr.bin/config/defs.h
cvs rdiff -r1.3 -r1.4 src/usr.bin/config/gram.y src/usr.bin/config/sem.h
cvs rdiff -r1.2 -r1.3 src/usr.bin/config/scan.l
cvs rdiff -r1.13 -r1.14 src/usr.bin/config/sem.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.