READ.ME for CML2 This is CML2, the second Configuration Menu Language. It was originally written to support configuration of the Linux kernel, but no kernel-specific knowledge is built into the language and it may be useful for other tasks. You will need Python 1.5.2 or later to run CML2. In the Linux kernel tree, this system replaces the following files: 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/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 To experiment, run cmlcompile.py kernel-rules.cml to make a rules.out file. To to test the Tk mode, try: cmlconfigure.py To test the line-oriented mode, try; cmlconfigure.py -t To test the curses mode, try: cmlconfigure.py -c Some crashes have been reported in the curses front end. If it dies on you, mail me a copy of the file cmlconfigure.log. This should enable me to recreate the problem. (This file is removed on a normal exit.) For test purposes, the configuration files are generated to config.sh and config.h; you'll have to move them to the build locations by hand. Credit where credit is due, to the intrepid early adopters on the linux-kernel list who helped CML2 get past its teething stage: David Kamholz, Giacomo Catenazzi, Robert Wittams, Randy Dunlap, Urban Widmark, and André Dahlqvist. André Dahlqvist and Drago Goricanec contributed UI code for the Tk front end. William Stearns contributed many bus dependencies for the rules file. Gary Lawrence Murphy translated the CML2 spec to DocBook. This software is released under the terms of the GNU General Public License, version 2. When and if CML2 is incorporated into the kernel tree, the kernel copyright holder (Linus Torvalds now and for the forseeable future) is specifically granted the authority to change the license on this software to conform with the kernel's policy. To do: * Side-effect notification in a popup? * Dynamic panel resizing has a bad interaction with window placement under Enlightenment. Can this be worked around? Interface glitches reported by Randy Dunlap: tk interface ----------------------------------- 1. The initial/opening box (window) size cuts a menu line in half. [Hmmm...I can't reproduce this...] 2. If I enlarge the main/primary box size and then go to a sub-menu and return to the main menu, it's back to its original (fixed) size, not to the size that I changed it to. And the main menu is (currently) small enough to fit on one screen window, without using any scrolling/ slider bar, so I should be able/allowed to do that if I (any user) want to. 3. From the main menu, if I slide the slider bar down so that I can see File Systems, click on File Systems, click Back to the main menu, the portion of the main menu that is displayed is only the top N lines of it, and does not include File Systems. If I'm configuring in the area of Character Devices and File Systems, I have to move the slider down to that part of the main menu so that I can click on them over and over again. Instead, when I click on Back, the same lines of the parent menu should be displayed that were displayed when I entered the sub-menu. 4. I don't know what causes this, but sometimes I can click to a sub-menu and then (a) can't adjust its size, (b) can't move its box, and (c) it's title line (at top of the box) is no longer highlighted, even after I click on it. I can still successfully click on File, Navigation, and Help. For some reason, selecting the USB Support menu has caused this 2 times now. curses interface ----------------------------------- 1. In a long menu (longer than fits into one xterm screen of any size), after changing the value of a config option, the list is (apparently) redrawn, beginning and ending wherever cmlconfigure wants to begin and end. It would be "the right thing" to leave the beginning and ending displayed lines as they were before the option was changed instead of them jumping around at will.