◐ Shell
clean mode source ↗

Issue 26417: Default IDLE 2.7.11 configuration files are out-of-sync on OS X framework installs

On OS X framework installs, the Mac-specific sub-makefiles do some important tailoring of IDLE/s config-extensions.def and config-main.def files, among other things changing Tk some Tk events for more appropriate keyboard bindings (e.g. "<Alt-" to "<Opt-".  On Python 2, this tailoring is performed by Mac/IDLE/Makefile.in replacing the standard Lib/idlelib/config-extensions.def and Lib/idlelib/config-main.def files with pre-edited versions from Mac/IDLE (Mac/IDLE/config-extensions.def and Mac/IDLE/config-main.def).  Unfortunately, over the years, the Mac-specific files have not been kept in sync with the standard ones.  For Python 2.7.11, this results in the problem described in Issue25313 still being present for OS X framework installs, such as provided by the python.org OS X installers and other third-party distributors.  (The symptoms are warning messages during IDLE startup of the form:

 Warning: configHandler.py - IdleConf.GetOption -
 problem retrieving configuration option 'name2'
 from section 'Theme'.
 returning default value: ''
)

For Python 3, the Mac Makefile installation of IDLE was substantially revised including eliminating the Mac-specific copies of the two .def files.  Instead, the Python 3 Makefile edits the default idlelib .def files during installation so that this kind of sync problem doesn't occur.  Ideally, the 2.7 Mac/IDLE/Makefile.in should be changed to do what Python 3 does and the redundant .def files removed.  At a minimum the 2.7 Mac files should be synced.  Patch to follow.
For 2.7.12 I've committed changes to the Mac/IDLE Makefile so that it now edits the defaults files in place on install just like the 3.x Makefiles do.  Framework installs of IDLE 2.7 on OS X no longer output startup warnings and, since the defaults are now in sync, also now properly use the newer default font.  The whole approach is less than ideal since the OS X tailoring is still hidden away in the Mac Makefiles rather than in idlelib code.  Issue20580 addresses the broader issue of platform-specific configuration files for IDLE.