Bug 2337728
Summary: | Please update the package for the 'Tcl/Tk 9.0' Fedora change | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jaroslav Škarvada <jskarvad> | ||||
Component: | maxima | Assignee: | Yaakov Selkowitz <yselkowi> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | rawhide | CC: | jamatos, rdieter, yselkowi | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
URL: | https://fedoraproject.org/wiki/Changes/TclTk9.0 | ||||||
Whiteboard: | |||||||
Fixed In Version: | maxima-5.47.0-7.fc43 maxima-5.47.0-7.fc42 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2025-02-07 21:49:38 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 2337584 | ||||||
Attachments: |
|
Description
Jaroslav Škarvada
2025-01-14 18:35:13 UTC
xmaxima (the script from maxima-gui) is not yet compatible with Tcl/Tk 9.0. Besides the obvious updating of the "package require Tk" line, there are a few issues: 1) I'm getting this error with launching anything using Tk 9 (even just "wish", meaning it's not specific to this package): ``` application-specific initialization failed: Can't find a usable tk.tcl in the following directories: //zipfs:/app/tk_library //zipfs:/lib/tk/tk_library //zipfs:/lib/tk /usr/share/tk9.0 /usr/share/tk9.0 /usr/share/tcl9.0/tk9.0 /usr/lib64/tcl9.0/tk9.0 /usr/lib64/tk9.0/tk9.0 /usr/share/tk9.0/tk9.0 /usr/lib/tk9.0 /lib/tk9.0 /usr/library This probably means that tk wasn't installed properly. ``` 2) Tilde (~) is used extensively for $HOME in pathnames; as Tcl 9.0 no longer expands that OOTB, the code will need to be adapted to use [file home] or [file tildeexpand], which seems doable. 3) The documentation browser does not scroll; neither the mouse wheel nor scroll bar works with 9.0. There is also the following error message, which I wonder is related (there is no direct calls to that command in the script): ``` invalid command name "::tk::ScreenChanged" while executing "::tk::ScreenChanged :0.0" (changing screen in event binding) ``` 4) Please note that making this work with tk8 is not as simple as changing the spec file; the "exec wish" redirector in the script needs to changed to "exec wish8". Either way, any of these changes will IIUC break compatibility between rawhide/F42+ and earlier releases. (Not really a problem, but something to note.) Unless you are able to assist with at least (3), then I'll need to stick with tk8 with (4) applied. (In reply to Yaakov Selkowitz from comment #1) > xmaxima (the script from maxima-gui) is not yet compatible with Tcl/Tk 9.0. > Besides the obvious updating of the "package require Tk" line, there are a > few issues: > > 1) I'm getting this error with launching anything using Tk 9 (even just > "wish", meaning it's not specific to this package): > > ``` > application-specific initialization failed: Can't find a usable tk.tcl in > the following directories: > //zipfs:/app/tk_library //zipfs:/lib/tk/tk_library //zipfs:/lib/tk > /usr/share/tk9.0 /usr/share/tk9.0 /usr/share/tcl9.0/tk9.0 > /usr/lib64/tcl9.0/tk9.0 /usr/lib64/tk9.0/tk9.0 /usr/share/tk9.0/tk9.0 > /usr/lib/tk9.0 /lib/tk9.0 /usr/library > > This probably means that tk wasn't installed properly. > ``` > Thanks for spotting this, it seems it's compiled with the zipfs, but the build system stripped the resource. IIRC it worked when tested locally. I will recompile without the zipfs. > 2) Tilde (~) is used extensively for $HOME in pathnames; as Tcl 9.0 no > longer expands that OOTB, the code will need to be adapted to use [file > home] or [file tildeexpand], which seems doable. > > 3) The documentation browser does not scroll; neither the mouse wheel nor > scroll bar works with 9.0. There is also the following error message, which > I wonder is related (there is no direct calls to that command in the script): > > ``` > invalid command name "::tk::ScreenChanged" > while executing > "::tk::ScreenChanged :0.0" > (changing screen in event binding) > ``` > Let's test with the fixed Tk. > 4) Please note that making this work with tk8 is not as simple as changing > the spec file; the "exec wish" redirector in the script needs to changed to > "exec wish8". > If absolutely necessary I could provide alternatives links, but I would rather avoid it. Updated tk-9.0.0-2.fc42 is in the side-tag, please retest. Created attachment 2066027 [details] xmaxima tcl9 patch > Updated tk-9.0.0-2.fc42 is in the side-tag, please retest. Thanks, that fixed issues (1) and (3). I'm not fluent in Tcl, but the attached patch appears to take care of the tildes; does that make sense? (In reply to Yaakov Selkowitz from comment #4) > Created attachment 2066027 [details] > xmaxima tcl9 patch > > > Updated tk-9.0.0-2.fc42 is in the side-tag, please retest. > > Thanks, that fixed issues (1) and (3). I'm not fluent in Tcl, but the > attached patch appears to take care of the tildes; does that make sense? I am new to Tcl 9, but the changes make sense to me and I think are according to: https://core.tcl-lang.org/tips/doc/main/tip/602.md Maybe you could concat with the 'file home' instead of the tilde expansion, but the effect is probably the same. Update: There is a better way how to handle switch to compat packages, instead of build requiring tcl8-devel/tk8-devel, the following is better and backward compatible approach: BuildRequires: tcl-devel < 9 BuildRequires: tk-devel < 9 The correct provides are already included in the tcl8/tk8 packages. And in a such way the package needn't be built into the side tag. For updates please check the tracking bug 2337584. Update (auto comment):
> BuildRequires: tcl-devel < 9
> BuildRequires: tk-devel < 9
There is epoch, so the correct variant is:
BuildRequires: tcl-devel < 1:9
BuildRequires: tk-devel < 1:9
Sorry for confusion.
FYI this is now blocked by gcl (and anything using it) FTBFS with -std=c23. Update (auto comment): Tcl/Tk 9.0 update was pushed as fedora 42 update together with the tcl8/tk8 compat packages. If your package is Tcl/Tk 9.0 compatible, build it with the tcl-devel or tk-devel build requirements (no side tag build now). If your package isn't Tcl/Tk 9.0 compatible, the implicit dependencies should be automatically satisfied now by the compat tcl8/tk8 packages, but the package may later fail to build (FTBFS). In such case, change the build requirement to tcl8-devel or tk8-devel. It turned out that some packages may also require patching to use the tclsh8/wish8 instead of the tclsh/wish. This should be trivial change. If you already handled it, thank you and please ignore this message. FEDORA-2025-3d58b1567d (maxima-5.47.0-7.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-3d58b1567d FEDORA-2025-3af9f1b25a (maxima-5.47.0-7.fc42) has been submitted as an update to Fedora 42. https://bodhi.fedoraproject.org/updates/FEDORA-2025-3af9f1b25a FEDORA-2025-3d58b1567d (maxima-5.47.0-7.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report. FEDORA-2025-3af9f1b25a (maxima-5.47.0-7.fc42) has been pushed to the Fedora 42 stable repository. If problem still persists, please make note of it in this bug report. |