Bug 2337765

Summary: Please update the package for the 'Tcl/Tk 9.0' Fedora change
Product: [Fedora] Fedora Reporter: Jaroslav Škarvada <jskarvad>
Component: RAssignee: Tom "spot" Callaway <spotrh>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: i.ucar86, quantum.analyst, r-maint-sig, spotrh
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://fedoraproject.org/wiki/Changes/TclTk9.0
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-01-15 14:44:21 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, 2337768    

Description Jaroslav Škarvada 2025-01-14 18:37:48 UTC
Fedora 42 will update Tcl/Tk to version 9.0. It seems your package uses Tcl or Tk as a dependency.
Please check that your package builds and works correctly with Tcl/Tk 9.0.
The effort is tracked in the bug 2337584, there is system wide change proposal [1]. I also tried to
rebuild the direct dependencies in Copr [2].

TL/DR:
- there is side tag "f42-build-side-103615"
- Tcl/Tk was bumped to version 9.0 in the side tag
- there are compat packages tcl8/tk8 in the side tag for backward compatibility
- if your package needs fixing, please fix it to build with the Tcl/Tk 9.0 or switch it to the compat tcl8/tk8
- build your package into the side tag "f42-build-side-103615" (if rebuild is not needed, e.g. the package
  just calls the Tcl shell and works with any Tcl version, ignore this step)
- close this bug

Full version:
If your package works correctly and doesn't require rebuild, please close this bug as rawhide.

If your package needs rebuild and correctly builds with the Tcl/Tk 9.0, please rebuild it with the
side-tag "f42-build-side-103615":
  $ fedpkg build --target=f42-build-side-103615
Optionally, you can regenerate the repo for others to be able to build with your package in the side-tag
(example YOUR_PKG_NVR="brltty-6.7-3"):
  $ koji wait-repo --build=$YOUR_PKG_NVR.fc42 f42-build-side-103615 --request
Close this bug as rawhide.

If your package doesn't build with the Tcl/Tk 9.0, please fix/port it. There is a Tcl/Tk 9.0 porting
guide [3]. Then build it with the side-tag "f42-build-side-103615":
  $ fedpkg build --target=f42-build-side-103615
Optionally, you can regenerate the repo for others to be able to build with your package in the side-tag,
(example YOUR_PKG_NVR="brltty-6.7-3"):
  $ koji wait-repo --build=$YOUR_PKG_NVR.fc42 f42-build-side-103615 --request
Close this bug as rawhide.

If your package cannot be ported or it's unrealistic to do it in the short time, please switch to the
compat Tcl/Tk 8 packages. In the spec file change the BuildRequires from the "tcl-devel"/"tk-devel" to
"tcl8-devel"/"tk8-devel". If your package needs explicit "Requires: tcl", you can use "Requires: tcl8".
Then build your package with the side-tag "f42-build-side-103615":
  $ fedpkg build --target=f42-build-side-103615
Optionally, you can regenerate the repo for others to be able to build with your package in the side-tag,
(example YOUR_PKG_NVR="brltty-6.7-3"):
  $ koji wait-repo --build=$YOUR_PKG_NVR.fc42 f42-build-side-103615 --request
Close this bug as rawhide.

If you update your package after resolving this bug (and before 2025-02-04), please build to the side-tag.

Components which bugzillas won't be resolved till 2025-01-31 will be switched to the compat tcl8/tk8
packages by proven packager and rebuilt into the side-tag.

Then at the turning point (2025-02-03) the side-tag will be pushed by me as an Bodhi update.

Thanks for your cooperation.

[1] https://fedoraproject.org/wiki/Changes/TclTk9.0
[2] https://copr.fedorainfracloud.org/coprs/jskarvad/TclTK9.0.0/
[3] https://www.tcl-lang.org/software/tcltk/9.0.html

Comment 1 Iñaki Ucar 2025-01-15 09:44:54 UTC
Compat packages are only in the side tag, so if we switch now, then we have a problem when mass rebuild happens, which starts today if I'm not mistaken. It would have been nice to mention this, because I realized it too late.

Comment 2 Jaroslav Škarvada 2025-01-15 10:01:28 UTC
(In reply to Iñaki Ucar from comment #1)
> Compat packages are only in the side tag, so if we switch now, then we have
> a problem when mass rebuild happens, which starts today if I'm not mistaken.
> It would have been nice to mention this, because I realized it too late.

Thanks for the info, mhroncok proposed a better way how to handle it, instead of build requiring tcl8/tk8 use:
  BuildRequires: tcl-devel < 9
  BuildRequires: tk-devel < 9
And in such way you also don't need to build the package into the side tag.

I will add this comment to all opened bugs.

Comment 3 Jaroslav Škarvada 2025-01-15 10:12:37 UTC
(In reply to Jaroslav Škarvada from comment #2)
> (In reply to Iñaki Ucar from comment #1)
> > Compat packages are only in the side tag, so if we switch now, then we have
> > a problem when mass rebuild happens, which starts today if I'm not mistaken.
> > It would have been nice to mention this, because I realized it too late.
> 
> Thanks for the info, mhroncok proposed a better way how to handle it,
> instead of build requiring tcl8/tk8 use:
>   BuildRequires: tcl-devel < 9
>   BuildRequires: tk-devel < 9
> And in such way you also don't need to build the package into the side tag.
> 
> I will add this comment to all opened bugs.

"instead of build requiring tcl8-devel/tk8-devel"

Comment 4 Iñaki Ucar 2025-01-15 10:14:05 UTC
Ok, so tcl8-devel/tk8-devel do provide tcl-devel/tk-devel?

Comment 5 Iñaki Ucar 2025-01-15 10:18:53 UTC
Yes, I can see that now in the spec. Thanks, adapted and closing now.

Comment 6 Elliott Sales de Andrade 2025-01-15 10:32:17 UTC
The build failed though?

Comment 7 Jaroslav Škarvada 2025-01-15 10:47:45 UTC
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.

Comment 8 Jaroslav Škarvada 2025-01-15 10:48:24 UTC
(In reply to Elliott Sales de Andrade from comment #6)
> The build failed though?

Is it Tcl/Tk related? I was unable to find logs.

Comment 9 Iñaki Ucar 2025-01-15 10:49:31 UTC
Why? I don't understand:

2025-01-15T10:23:02+0000 [2] ERROR No match for argument: tcl-devel < 9
2025-01-15T10:23:02+0000 [2] ERROR No match for argument: tk-devel < 9

Am I missing something? This is the commit:
https://src.fedoraproject.org/rpms/R/c/c95bc7e8cc0a80212332870f4dca3294a82449b8?branch=rawhide

Comment 10 Jaroslav Škarvada 2025-01-15 10:53:09 UTC
Ahh, sorry there is epoch.

Comment 11 Jaroslav Škarvada 2025-01-15 10:53:59 UTC
tcl-devel < 1:9
?

Comment 12 Iñaki Ucar 2025-01-15 10:56:05 UTC
Oh, and does the compat package have the epoch too?

Comment 13 Jaroslav Škarvada 2025-01-15 11:04:09 UTC
(In reply to Iñaki Ucar from comment #12)
> Oh, and does the compat package have the epoch too?

Yes, it was added there for them to be drop-in replacement.

Comment 14 Jaroslav Škarvada 2025-01-15 11:12:29 UTC
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.

Comment 15 Iñaki Ucar 2025-01-15 14:44:21 UTC
Ok, no problem. Solved now. It doesn't build either, but it's unrelated to this. Apparently gcc 15 is already in rawhide and... chaos. I'll deal with that separately. Closing here.