Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Windows 2.7 build to Tcl/Tk 8.5.19 #71834

Closed
serhiy-storchaka opened this issue Jul 28, 2016 · 18 comments
Closed

Update Windows 2.7 build to Tcl/Tk 8.5.19 #71834

serhiy-storchaka opened this issue Jul 28, 2016 · 18 comments

Comments

@serhiy-storchaka
Copy link
Member

BPO 27647
Nosy @terryjreedy, @pfmoore, @larryhastings, @tjguk, @benjaminp, @ned-deily, @zware, @serhiy-storchaka, @zooba
Superseder
  • bpo-30855: [2.7] test_tk: test_use() of test_tkinter.test_widgets randomly fails with "integer value too large to represent" on with AMD64 Windows8 3.5
  • Files
  • update-tk-2.7.patch
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2019-11-18.06:47:35.036>
    created_at = <Date 2016-07-28.20:19:54.811>
    labels = ['expert-tkinter', 'OS-windows']
    title = 'Update Windows 2.7 build to Tcl/Tk 8.5.19'
    updated_at = <Date 2019-11-18.06:47:35.035>
    user = 'https://github.com/serhiy-storchaka'

    bugs.python.org fields:

    activity = <Date 2019-11-18.06:47:35.035>
    actor = 'zach.ware'
    assignee = 'none'
    closed = True
    closed_date = <Date 2019-11-18.06:47:35.036>
    closer = 'zach.ware'
    components = ['Tkinter', 'Windows']
    creation = <Date 2016-07-28.20:19:54.811>
    creator = 'serhiy.storchaka'
    dependencies = []
    files = ['45737']
    hgrepos = []
    issue_num = 27647
    keywords = ['patch']
    message_count = 18.0
    messages = ['271581', '271585', '271589', '271590', '271598', '281813', '282064', '282065', '282139', '282277', '282289', '286554', '286558', '286559', '286569', '286613', '286614', '286682']
    nosy_count = 11.0
    nosy_names = ['terry.reedy', 'paul.moore', 'larry', 'tim.golden', 'benjamin.peterson', 'ned.deily', 'kumba', 'python-dev', 'zach.ware', 'serhiy.storchaka', 'steve.dower']
    pr_nums = []
    priority = 'normal'
    resolution = 'out of date'
    stage = 'resolved'
    status = 'closed'
    superseder = '30855'
    type = None
    url = 'https://bugs.python.org/issue27647'
    versions = ['Python 2.7']

    @serhiy-storchaka
    Copy link
    Member Author

    Current Tcl/Tk version in Windows build is 8.6.4.2. Tcl/Tk 8.6.6 was released yesterday.

    https://sourceforge.net/p/tcl/mailman/message/35246302/

    @zware
    Copy link
    Member

    zware commented Jul 28, 2016

    I've done a test build (32-bit Release) and everything went fine. It looks like we get to drop our patches, which is enough for me to want to do this for 3.6.

    We historically haven't kept our Tcl/Tk sources extremely up to date on Windows, though; is there anything compelling in 8.6.[56] to warrant updating for 3.5?

    @python-dev
    Copy link
    Mannequin

    python-dev mannequin commented Jul 28, 2016

    New changeset abfda075eb37 by Zachary Ware in branch 'default':
    Issue bpo-27647: Update Windows build to Tcl/Tk 8.6.6
    https://hg.python.org/cpython/rev/abfda075eb37

    @zware
    Copy link
    Member

    zware commented Jul 29, 2016

    There have also been a few updates to 8.5 since we last updated the version we ship with 2.7; has there been anything in 8.5.15-19 that we should pick up?

    @terryjreedy
    Copy link
    Member

    I think 3.4 and 3.5 were pretty current as of .0 release, or certainly as of .0b1. Have we updated to new unicode (9.0), like tcl? Martin used to do that.

    @serhiy-storchaka
    Copy link
    Member Author

    Larry, Benjamin, what do you think about updating the version of Tcl/Tk shipped with 3.5 and 2.7 on Windows?

    Tcl/Tk 8.6.6 Jul 27, 2016
    Tcl/Tk 8.5.19 Feb 12, 2016

    Currently used releases:

    In 3.5: 8.6.4.2
    In 2.7: 8.5.15.0

    @benjaminp
    Copy link
    Contributor

    Doesn't seem terribly urgent, so maybe not 2.7.13.

    @serhiy-storchaka
    Copy link
    Member Author

    Why not? 8.5.15 is 3 years old. There were 4 bugfix releases since it.

    @benjaminp
    Copy link
    Contributor

    I don't mind if it gets updated.

    On Wed, Nov 30, 2016, at 00:01, Serhiy Storchaka wrote:

    Serhiy Storchaka added the comment:

    Why not? 8.5.15 is 3 years old. There were 4 bugfix releases since it.

    ----------


    Python tracker <report@bugs.python.org>
    <http://bugs.python.org/issue27647\>


    @serhiy-storchaka
    Copy link
    Member Author

    Proposed patch updates Tcl/Tk versions to 8.5.19 and Tix version to 8.4.3.6 in Python 2.7 on Windows and Mac OS X. But needed to update http://svn.python.org/projects/external/ . Is there special script or instruction?

    @ned-deily
    Copy link
    Member

    Please don't change Mac/BuildScript. The code there to build Tcl and Tk is currently not used.

    @kumba
    Copy link
    Mannequin

    kumba mannequin commented Jan 31, 2017

    Hi,

    I came across a StackOverflow question that apparently turned up a bug in Tk itself with regards to Spinboxes on Windows Aero themes. The question is here:
    http://stackoverflow.com/q/30783603/

    And I did a deep-dive of the issue here as the accepted answer:
    http://stackoverflow.com/a/36393680/

    This led to someone from Tk noticing, and they patched the bug in Tk upstream in this commit:
    http://core.tcl.tk/tk/info/f91b7065bf1bf655

    I do not know if that commit is in a current Tk release (doubtful). Could you guys look at picking it up for the next Python 2.7/3.x release? It only affects Windows platforms using Aero. Classic mode spinboxes or other Tk themes (e.g., clam) are unaffected.

    It'd also be awesome if Tk-8.6 could go into the next Python 2.7 release under Windows. That has PNG support for Tk's PhotoImage class, which would make working with icons and transparency a *lot* easier.

    @terryjreedy
    Copy link
    Member

    Changing tk in 2.7.z from 8.5 to 8.6 would add new features, which we don't usually do in bugfix releases.

    @larryhastings
    Copy link
    Contributor

    I don't think we should update it in 3.5. That sounds destabilizing.

    @kumba
    Copy link
    Mannequin

    kumba mannequin commented Feb 1, 2017

    @terry: This only applies on the Windows release of Python. On both Linux and FreeBSD, you can wind up with Python 2.7 and Tk-8.6.x by default in some instances:

    # pkg info | grep python27
    python27-2.7.13_1 Interpreted object-oriented programming language
    # pkg info | grep tk86
    tk86-8.6.6 Graphical toolkit for Tcl

    That's a FreeBSD-11.0-RELEASE install on a laptop.

    Is there guidance anywhere on which Tk version a given Python version prefers to be used with? E.g., is Python 2.7 only supported against Tk-8.5.x, leaving 8.6.x users on their own?

    @terryjreedy
    Copy link
    Member

    AFAIK, the Windows x.y compiled release and installer is normally updated to the latest stable tcl/tk, about the time of beta 1, and never changed for bugfix releases. 2.7 was an exception because of its long life and because later 8.5.z releases has some critical bugfixes, such as working with European keyboards.

    I believe the current OSX binary compiles _tkinter against tcl/tk 8.5, and we recommend replacing the Apple's old 8.5 with the latest 8.5 from ActiveState, and that people who instead install ActiveState 8.6 have to make or obtain a new Python binary that compiles _tkinter for 8.6. (Prior to Py3.6, there was also a Mac release for older Macs, and it was compiled for tcl/tk 8.4.)

    We don't compile Python on *nix and there are multiple versions of tcl/tk in use. I would prefer to have the latest tcl/tk at least for bugfixes, and a Python binary that can use if, even if tkinter does not give access to the latest tk features.

    @terryjreedy
    Copy link
    Member

    I changed title to match what might and, I think, should happen.

    My take: x.y is normally followed within 2 years by x.(y+1), which on Windows includes the latest tcl/tk. So, on Windows, anyone who wants the new tcl/tk can upgrade to the newer Python. For 2.7, there will be no 2.8 with newer tcl/tk. So we updated tcl/tk once already within 2.7 and it seems time to do so again. If there are more 8.5 bugfixes before the last 2.7 release in 2020, we should do so a third time.

    @terryjreedy terryjreedy changed the title Update Windows build to Tcl/Tk 8.6.6 Update Windows 2.7 build to Tcl/Tk 8.5.19 Feb 1, 2017
    @kumba
    Copy link
    Mannequin

    kumba mannequin commented Feb 1, 2017

    Fair enough. I am stuck working with 2.7 for quite a while longer due to platform constraints, but hopefully can migrate over to 3.x at some point. Was worth asking :)

    At least try to cherrypick that one commit from the TCL/Tk source I referenced so that the Spinbox works correctly under Vista/Aero. I am not sure when that might wind up in a future Tk release.

    @zware zware closed this as completed Nov 18, 2019
    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    No branches or pull requests

    6 participants