How does this look to you? Warner
Index: configvers.h =================================================================== RCS file: /home/ncvs/src/usr.sbin/config/configvers.h,v retrieving revision 1.41 diff -u -r1.41 configvers.h --- configvers.h 27 Nov 2005 21:41:57 -0000 1.41 +++ configvers.h 27 Nov 2005 23:37:50 -0000 @@ -1,7 +1,15 @@ +/*- + * This file is in the public domain + * + * $FreeBSD: src/usr.sbin/config/configvers.h,v 1.41 2005/11/27 21:41:57 ru Exp $ + */ + /* - * 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. + * 6 digits of version. The most significant are branch indicators at the + * time when the last incompatible change was made (which is why it is + * presently 6 on 7-current). The least significant digits are incremented + * as described below. The format is similar to the __FreeBSD_version, but + * not tied to it. * * DO NOT CASUALLY BUMP THIS NUMBER! The rules are not the same as shared * libs or param.h/osreldate. @@ -23,23 +31,29 @@ * * 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. + * who run config by hand. However, developers shouldn't gratuitously be + * inconvenienced. * - * $FreeBSD: src/usr.sbin/config/configvers.h,v 1.41 2005/11/27 21:41:57 ru Exp $ + * One should bump the CONFIGVERS in the following ways: + * + * (1) If you change config such that it won't read old config files, + * then bump the major number. You shouldn't be doing this unless + * you are overhauling config. Do not casually bump this number + * and by implication do not make changes that would force a bump + * of this number casually. You should limit major bumps to once + * per branch. + * (2) For each new feature added, bump the minor version of this file. + * When a new feature is actually used by the build system, update the + * %VERSREQ field in the Makefile.$ARCH of all the affected makefiles + * (typically all of them). + * (3) When you add the first new feature after a branch that's still + * compatible with that branch, increment the hundreds column and reset + * the tens and units column to zero. If we version 6 of the config + * syntax and we use that same syntax on FreeBSD 7, then the first + * change after 6.x is branch should be 600100. If we continue to + * use version 6 of the config syntax for FreeBSD 8, it should be + * incremented to 600200. */ -#define CONFIGVERS 700000 -/* - * 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. - */ +#define MAJOR_VERS(x) ((x) / 100000) +#define CONFIGVERS 600100 Index: mkmakefile.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/config/mkmakefile.c,v retrieving revision 1.83 diff -u -r1.83 mkmakefile.c --- mkmakefile.c 27 Nov 2005 21:41:57 -0000 1.83 +++ mkmakefile.c 27 Nov 2005 23:37:50 -0000 @@ -160,7 +160,8 @@ do_clean(ofp); else if (strncmp(line, "%VERSREQ=", sizeof("%VERSREQ=") - 1) == 0) { versreq = atoi(line + sizeof("%VERSREQ=") - 1); - if (versreq != CONFIGVERS) { + if (MAJOR_VERS(versreq) != MAJOR_VERS(CONFIGVERS) || + versreq > CONFIGVERS) { fprintf(stderr, "ERROR: version of config(8) does not match kernel!\n"); fprintf(stderr, "config version = %d, ", CONFIGVERS); fprintf(stderr, "version required = %d\n\n", versreq); _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"