This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: macOS complains about how fonts are accessed
Type: Stage: resolved
Components: macOS, Tkinter Versions: Python 3.10
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: chrstphrchvz, ned.deily, rhettinger, ronaldoussoren, terry.reedy
Priority: normal Keywords:

Created on 2020-10-22 23:27 by rhettinger, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (11)
msg379382 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2020-10-22 23:27
This occurs immediately on startup:

$ python310 -m idlelib.idle
2020-10-22 16:20:19.400 python.exe[80008:1598908] CoreText note: Client requested name ".SFNSMono-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:19.400 python.exe[80008:1598908] CoreText note: Set a breakpoint on CTFontLogSystemFontNameRequest to debug.
2020-10-22 16:20:19.450 python.exe[80008:1598908] CoreText note: Client requested name ".SF NS Mono", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:28.100 python.exe[80008:1598908] CoreText note: Client requested name ".SFNSMono-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:28.100 python.exe[80008:1598908] CoreText note: Client requested name ".SF NS Mono", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:28.101 python.exe[80008:1598908] CoreText note: Client requested name ".SFNSMono-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:28.124 python.exe[80008:1598908] CoreText note: Client requested name ".SFNSMono-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:28.124 python.exe[80008:1598908] CoreText note: Client requested name ".SF NS Mono", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-10-22 16:20:28.124 python.exe[80008:1598908] CoreText note: Client requested name ".SFNSMono-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
msg379392 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-10-23 01:48
I am sure that this is yet another macOS Catalina+ tcl/tk problem.  3.10 is fine on Mohave.  Those complaints must come from macOS in response to 'Client' tk requests.  IDLE and tkinter do not use those names.  If you want to try to see what tkinter function triggers those messages, try the following in the Python REPL.

import tkinter as tk
from tkinter import font
root = tk.Tk()
fnames = font.names(root)
f1 = font.Font(root=root, name=fnames[0], exists=True)
f2 = font.Font(root=root, name='TkFixedFont', exists=True)
msg379394 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-10-23 01:52
On my Airbook, 'python310' was not found; 'python3.10' worked.
msg379414 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2020-10-23 08:43
Raymond,

- What version of macOS are you on?
- How did you install python 3.10? Did you use the python.org installer?
- What version of Tk is used?
  (This can be found in the output of `python3.9 -m test.pythoninfo`)
msg379425 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-10-23 10:01
python.org 3.10 mac is still using 8.6.8.  It is on IDLE/Python => About
msg379429 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2020-10-23 11:18
I know, but what I don't know is if Raymond uses the python.org installer. The initial message seems to indicate he's using a local build ("python.exe"). 

That will by default pick up the system version of Tk, which is ancient and is known to have problems.


And for completeness sake: I don't get these warnings, neither in IDLE nor when using your scriptlet (adjusted to try all fonts in "frames').
msg379447 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2020-10-23 15:56
I'm only Catalina 10.15.7 and am using a local build constructed with:

   ./configure --with-openssl=$(brew --prefix openssl) && make

Perhaps that is using the system Tk and we don't need to worry about this.
msg379450 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2020-10-23 16:01
Could you check "/tmp/py310/bin/python3 -m test.pythoninfo | grep -i tk". If that says your using Tk 8.5 you're almost certainly using the system version.

You could also check _tkinter itself:

otool -vL /tmp/py310/lib/python3.10/lib-dynload/_tkinter.cpython-310-darwin.so
/tmp/py310/lib/python3.10/lib-dynload/_tkinter.cpython-310-darwin.so:
	/System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl (compatibility version 8.5.0, current version 8.5.9)
	/System/Library/Frameworks/Tk.framework/Versions/8.5/Tk (compatibility version 8.5.0, current version 8.5.9)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.0.0)

I propose closing this issue if you are indeed using the system copy of Tk.
msg379459 - (view) Author: Raymond Hettinger (rhettinger) * (Python committer) Date: 2020-10-23 17:58
I'm going to mark this as closed, not a bug.  If you're not seeing the same result, it is almost certainly an issue with my local build.
msg380496 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2020-11-07 09:48
I'm getting a similar warning on a macOS 11 box:

0:06:29 load avg: 1.58 [184/424/1] test_idle
2020-11-07 10:43:37.878 Python[97785:3275468] CoreText note: Client requested name ".applesystemuifontmonospaced", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
2020-11-07 10:43:37.878 Python[97785:3275468] CoreText note: Set a breakpoint on CTFontLogSystemFontNameRequest to debug.
2020-11-07 10:43:37.881 Python[97785:3275468] CoreText note: Client requested name ".applesystemuifontmonospaced", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].


I'm leaving this issue as closed because the font name is not used in CPython's source code. This is an issue with Tcl/Tk.
msg383379 - (view) Author: Christopher A. Chavez (chrstphrchvz) Date: 2020-12-19 13:07
This was already reported to Tcl/Tk: https://core.tcl-lang.org/tk/info/855049e799 . They determined it was caused by a bug in macOS 10.15.1. There are workarounds implemented for this in Tcl/Tk 8.6.10 and the upcoming 8.6.11 releases.
History
Date User Action Args
2022-04-11 14:59:37adminsetgithub: 86288
2020-12-19 13:07:55chrstphrchvzsetnosy: + chrstphrchvz
messages: + msg383379
2020-11-07 09:48:26ronaldoussorensetmessages: + msg380496
2020-10-23 17:58:47rhettingersetstatus: open -> closed
resolution: not a bug
messages: + msg379459

stage: resolved
2020-10-23 16:01:12ronaldoussorensetmessages: + msg379450
2020-10-23 15:56:08rhettingersetmessages: + msg379447
2020-10-23 11:18:29ronaldoussorensetmessages: + msg379429
2020-10-23 10:01:34terry.reedysetmessages: + msg379425
2020-10-23 08:43:42ronaldoussorensetmessages: + msg379414
2020-10-23 01:52:53terry.reedysetmessages: + msg379394
2020-10-23 01:48:22terry.reedysettitle: IDLE complains about how fonts are accessed -> macOS complains about how fonts are accessed
nosy: + ronaldoussoren, ned.deily

messages: + msg379392

assignee: terry.reedy ->
components: + macOS, Tkinter, - IDLE
2020-10-22 23:27:09rhettingercreate