Skip to content

Commit 52a9e82

Browse files
committed
new(tcl-lang.org/v8 + /tk/v8): Tcl/Tk 8.6 legacy
Tcl 9.0 changed major API; many Tk-based GUIs (git-gui, python-tk, BWidget) still pin to 8.6. Tk 9.0 also has a broken minizip Makefile target that prevents from-source build — Tk 8.6 stays buildable. Adding these unblocks #13057 (Tk via 9.0 → switch to v8) and #13060 (git-gui) once the bottles are available.
1 parent e2ad4c1 commit 52a9e82

2 files changed

Lines changed: 117 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Tk 8.6 — legacy GUI toolkit.
2+
#
3+
# Companion to tcl-lang.org/v8. Tk 9.0 has a broken `minizip` target
4+
# in its Makefile that fails build; 8.6.x stays buildable. Required
5+
# by git-gui, python-tk@3.9, and other legacy Tcl GUIs.
6+
7+
distributable:
8+
url: https://downloads.sourceforge.net/project/tcl/Tcl/{{version}}/tk{{version}}-src.tar.gz
9+
strip-components: 1
10+
11+
versions:
12+
url: https://www.tcl-lang.org/software/tcltk/download.html
13+
match: /tk8\.6\.\d+-src\.tar\.gz/
14+
strip:
15+
- /^tk/
16+
- /-src\.tar\.gz/
17+
18+
platforms:
19+
- linux/x86-64
20+
- linux/aarch64
21+
- darwin/x86-64
22+
- darwin/aarch64
23+
24+
dependencies:
25+
tcl-lang.org/v8: '*'
26+
freedesktop.org/pkg-config: '*'
27+
linux:
28+
x.org/x11: '*'
29+
x.org/exts: '*'
30+
freetype.org: '*'
31+
32+
build:
33+
working-directory: unix
34+
darwin:
35+
working-directory: macosx
36+
37+
script:
38+
- ./configure $ARGS
39+
- make --jobs {{ hw.concurrency }}
40+
- make install
41+
- run: |
42+
cd "{{prefix}}/bin"
43+
[ ! -e wish ] && ln -sf "wish{{version.major}}.{{version.minor}}" wish || true
44+
45+
env:
46+
CPPFLAGS: -I{{deps.tcl-lang.org/v8.prefix}}/include
47+
ARGS:
48+
- --prefix={{prefix}}
49+
- --exec-prefix={{prefix}}
50+
- --with-tcl={{deps.tcl-lang.org/v8.prefix}}/lib
51+
- --enable-shared
52+
- --enable-threads
53+
- --enable-64bit
54+
darwin:
55+
ARGS:
56+
- --enable-aqua
57+
58+
test:
59+
- test -f "{{prefix}}/lib/libtk{{version.major}}.{{version.minor}}.dylib" -o -f "{{prefix}}/lib/libtk{{version.major}}.{{version.minor}}.so"
60+
61+
provides:
62+
- bin/wish
63+
- bin/wish{{version.major}}.{{version.minor}}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Tcl 8.6 — legacy line.
2+
#
3+
# The main tcl-lang.org recipe tracks 9.0.x which made backward-
4+
# incompatible API changes. Many extensions and Tk-based GUIs (git-gui,
5+
# python-tk, BWidget, expect-derived tools) still pin to 8.6.
6+
7+
distributable:
8+
url: https://downloads.sourceforge.net/project/tcl/Tcl/{{version}}/tcl{{version}}-src.tar.gz
9+
strip-components: 1
10+
11+
versions:
12+
url: https://www.tcl-lang.org/software/tcltk/download.html
13+
match: /tcl8\.6\.\d+-src\.tar\.gz/
14+
strip:
15+
- /^tcl/
16+
- /-src\.tar\.gz/
17+
18+
platforms:
19+
- linux/x86-64
20+
- linux/aarch64
21+
- darwin/x86-64
22+
- darwin/aarch64
23+
24+
dependencies:
25+
openssl.org: ^1.1
26+
zlib.net: ^1.3
27+
28+
build:
29+
dependencies:
30+
gnu.org/patch: '*'
31+
info-zip.org/zip: '*'
32+
33+
working-directory: unix
34+
script:
35+
- ./configure $ARGS
36+
- make --jobs {{ hw.concurrency }}
37+
- make install
38+
- make install-private-headers
39+
- run: |
40+
cd "{{prefix}}/bin"
41+
ln -sf "tclsh{{version.major}}.{{version.minor}}" tclsh
42+
env:
43+
ARGS:
44+
- --prefix={{prefix}}
45+
- --enable-shared
46+
- --enable-threads
47+
- --enable-64bit
48+
49+
test:
50+
- echo 'puts "ok"' | tclsh
51+
52+
provides:
53+
- bin/tclsh
54+
- bin/tclsh{{version.major}}.{{version.minor}}

0 commit comments

Comments
 (0)