From: "Eric S. Raymond" <esr@thyrsus.com> To: kbuild-devel@lists.sourceforge.net Subject: [kbuild-devel] Draft transition plan Date: Mon, 25 Jun 2001 16:51:04 -0400 Based on the discussion to date, here is a draft transition plan. Please read it to make sure it is representing reality correctly. mec, please take this and edit as necessary to fill in the remaining blanks. Your call when we release it. (If I missed the name of anyone on the team, apologies.) ------------------------------------------------------------------------------ On Thursday 21 June Linus let the cat out of the bag that 2.5 "looks like it will open in a week or two" <http://lwn.net/daily/2.5-coming.php3>. The CML2 and new-Makefiles cutover is still, as of Linus's last ukase on the subject at the Linux Kernel summit, scheduled for sometime between 2.5.1 and 2.5.2. Linus chose a sharp cutover; when Eric Raymond's CML2 and Keith Owens's new makefiles system go in, the old CML1 stuff will drop out. The changeover seems imminent, probably within the next six to eight weeks. To prepare, the build-system team (Giacomo Catenazzi, Michael Elizabeth Chastain, Keith Owens, Eric S. Raymond, and Peter Samuelson) has developed a transition plan. Here is the current state of the tools: Eric reports that his CML2 compiler and configurator engine both seem to be in great shape. Minor user-interface fixes have been trickling in, but the core is stable. There have been no serious bugs since 1.1.3 in mid-April. Eric wishes he could be as sure about the CML2 rulesfiles. He has been keeping them up to date with respect to Linus's 2.4.6 prereleases, but it is intrinsically rather hard for him to know whether they are doing what the configuration maintainers expect. We expect there will be a flurry of minor patches (and config maintainers grumbling) after the cutover. Keith reports his new makefile system is basically production-ready, but he's still tying up some loose ends near implicit dependencies. The Configure.help file is in good shape. As of 2.14, all option symbols in use have help entries. Thanks to everyone who contributed. With a little work (and a little nagging from Eric :-)) we'll keep it that way. For you CML2 Adventure fans, Eric has decided not to implement monster combat at this time. On the other hand, the dungeon walls may soon develop grafitti. :-) Here is our transition plan: 1. Transition patch #1 -- CML2 Our first patch will put CML2 in place and scrap the CML1 machinery. The old (existing) makefiles will remain in place, and configuration will still be invoked by "make config", "make menuconfig", and "make xconfig". The .config and autoconf.h formats will not change. Besides the [Cc]onfig.in files in the tree, the following files will go away: scripts/Configure scripts/Makefile scripts/Menuconfig scripts/README.Menuconfig scripts/header.tk scripts/tail.tk scripts/tkcond.c scripts/tkgen.c scripts/tkparse.c scripts/tkparse.h scripts/checkhelp.pl scripts/checkconfig.pl scripts/checkincludes.pl scripts/lxdialog/BIG.FAT.WARNING scripts/lxdialog/Makefile scripts/lxdialog/checklist.c scripts/lxdialog/colors.h scripts/lxdialog/dialog.h scripts/lxdialog/inputbox.c scripts/lxdialog/lxdialog* scripts/lxdialog/lxdialog.c scripts/lxdialog/menubox.c scripts/lxdialog/msgbox.c scripts/lxdialog/textbox.c scripts/lxdialog/util.c scripts/lxdialog/yesno.c Documentation/kbuild/config-language.txt Documentation/Configure.help Note that the information now in Configure.help will migrate into the CML2 rulesfiles. The config-language.txt file will be replaced by CML2 reference material and a transition guide. The new configurator will do automatic computation of necessary side-effects when a symbol is changed, and will make it impossible to commit a configuration which doesn't obey the rulesfile constraints. This patch will be large. 2. Transition patch #2 -- Kaos makefiles The second patch will replace the present makefile system with Keith Owens's new "kaos" makefiles. Configuration will still be invoked by "make config", "make menuconfig", and "make xconfig". The .config and autoconf.h formats will not change. The new system will have many benefits, including abolishing the always-irksome `make dep' step and a much friendlier set of make targets. This patch will be large. 3. Transition patch #3 -- Cleanup The third patch will change the format of .config slightly so that "no" answers are stored explicitly, FOO=n rather than "# FOO is not set." It will also clean up after any unanticipated interactions between 1 and 2: Configuration will still be invoked by "make config", "make menuconfig", and "make xconfig". The autoconf.h format will not change. but the .config format will change. This format change will enable passing around partial configurations containing both "no" and "don't care". This will be important for supporting autoconfiguration scripts (a work in progress by Giacomo Catenazzi). We expect this patch to be small. Timing: The timing, of course, is up to Linus. Only as he accepts each transition patch can we resync for the next one. If 2.5 opens next week, historical timing of release frequency suggests that the transition will take place over approximately the next ten weeks. -- <a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a> I have never made but one prayer to God, a very short one: "O Lord, make my enemies ridiculous." And God granted it. --Voltaire _______________________________________________ kbuild-devel mailing list kbuild-devel@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/kbuild-devel