A first step is to set all ports that can't now move to 8.6 to 8.5.
This should be possible to do right now and shouldn't change anything, even packages.
Once that settles, step two is to manually set all
the 8.6-capable ports to 8.6 with changes like
+MODTCL_VERSION=8.6
and a revision bump.
Once that settles, throwing the big 8.5->8.6 switch may not yield much fireworks.
This way, the move can be done gradually and any breakage can be
dealt with easier, since it'd be on a port-by-port basis and never
affecting the system as a whole until the end, where the change is miniscule.
If done carefully enough, maybe no one'll notice it happened. ;)
Some ports are hopelessly stuck to 8.5,
some need updates to newer versions and can then move to 8.6,
some I either can't build/test due to lack of resources
(print/texlive/texmf,lang/pypy) or I'm unsure of due to
unfamiliarity or complexity of dependencies.
I've performed a/b tests with many ports normally,
and with MODTCL_VERSION=8.5 in the port and
MODTCL_VERSION=8.6 in tcl.port.mk
(and/or similar vars/files for Tk) and the results are identical.
I've built almost all the ports on amd64 and most of them on i386
and everything looks fine. I've even run a few.
Attached is a tarball with patches and commit messages for all the ports
I've determined at this point need to remain with 8.5.
The patches are all of the nature
+MODTCL_VERSION=8.5
so they're not very interesting.
What follows is my working list for the ports and the commit messages.
Notes:
The 8.4->8.5 gap is much larger than the 8.5->8.6 gap.
Ports will have trouble making the move to 8.6 now mostly
due to C problems like using internals or now-deprecated functionality.
Scripts will feel little to no pain, maybe even some good.
Tcl extensions built against 8.5 (not threaded) should work
fine with 8.6 (threaded) due to Tcl's stub lib mechanism thing,
unles the extensions are a little too pokey with Tcl's innards.
Extensions needing threads are already built against 8.6.
Tcl is very backwards compatible.
There is a change here for Graphviz, for which an update appeared just after
I got done with all this, so that'll have to be worked out, no problemo.
It's a lot but it's not, so hoping for ok's and moving forwards, thanks,
Stu
Working list:
5 audio/snack devel/itcl
5 cad/pcb cad/pcb/patch/configure
5 comms/hamlib unsure,python2.7?
5 databases/sqlite needs 8.5,interp->result, maybe other things
5 devel/itcl old,needs internal #includes
5 devel/ltcltk unchanged
5 devel/swig unsure
5 devel/tclcl old,unsure,net/ns,net/nam,lang/otcl
5 devel/tcllib needed by many
5 devel/tklib needed by many
5 devel/vtcl old,new 8.6 version exists, can be updated later
5 graphics/tkimg devel/itcl
5 graphics/tkpng devel/itcl
5 lang/expect unsure,threads problems?, not tested w/8.6
5 lang/otcl old,needs 8.5 internals,net/ns,net/nam
5 lang/pypy unsure,python2.7
5 lang/ruby/2.3 welded to 8.5. no change
5 math/graphviz needs 8.5, newer version might work with 8.6
5 misc/WordGenerator x11/iwidgets
5 misc/memchan net/coccinella,devel/itcl
5 net/coccinella devel/itcl
5 net/nam old,devel/tclcl,lang/otcl,net/ns
5 net/ns old,devel/tclcl,lang/otcl,net/nam
5 net/tcludp net/coccinella,devel/itcl
5 print/texlive/texmf unsure
5 security/tcltls net/coccinella,devel/itcl
5 x11/byzi only needed in 8.5. no change
5 x11/itk devel/itcl
5 x11/iwidgets devel/itcl,x11/itk
5 x11/ruby-tk welded to 8.5,no change,maybe ok 8.6?
5 x11/tkdnd net/coccinella,devel/itcl
5 x11/tkhtml net/coccinella,devel/itcl
5 x11/tktray net/coccinella,devel/itcl
5 x11/tktreectrl net/coccinella,devel/itcl
6 audio/xcd
6 cad/tkgate
6 cad/xcircuit
6 comms/tkhylafax
6 databases/pgtcl
6 databases/redis needs Tcl only for tests, tests pass with 8.6
6 databases/sqlite3-tcl
6 devel/fossil
6 devel/git
6 devel/mercurial
6 devel/nagelfar
6 devel/p5-Tcl
6 devel/tclarc4random
6 devel/tkcvs
6 devel/tkdiff
6 emulators/frodo
6 emulators/openmsx
6 geo/gpsbabel
6 graphics/colorexplorer
6 graphics/gocr
6 lang/eltclsh
6 lang/jimtcl
6 lang/obc
6 lang/tcltutor
6 mail/exmh2
6 math/R
6 math/maxima
6 misc/cbb
6 misc/impress
6 misc/remind
6 misc/tkcron
6 misc/tkinfo
6 misc/tkman
6 misc/wordnet
6 net/climm
6 net/netinfo
6 net/ssvnc
6 net/tcl-snmptools -pthread still needed?
6 net/tclcurl -pthread still needed?
6 net/tkabber/base
6 net/tkirc
6 net/weechat REVISION-tcl ok?
6 productivity/sl
6 security/password-gorilla
6 security/tclgpg
6 sysutils/libisoburn REVISION-tcltk ok?
6 sysutils/tkdvd
6 telephony/iaxclient looks ok with 8.6
6 textproc/TclXML
6 textproc/boust
6 textproc/catdoc only subpackage wordview needs Tk. runs ok in 8.6
6 x11/dbus-intf
6 x11/dbus-tcl
6 x11/p5-Tkx
6 x11/tkcon
6 x11/tktable
6 x11/x11vnc
6 x11/xbindkeys
? sysutils/findlib no longer uses tcl,needs port for labltk
Commit messages:
audio_snack.txt:
Snack will be used with Tcl/Tk 8.5 for now.
Snack is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
cad_pcb.txt:
PCB will be used with Tcl/Tk 8.5 for now.
The file cad/pcb/patches/patch-configure sets the Tcl/Tk used to 8.5.
It remains to be determined how well PCB will work with Tcl/Tk 8.6.
comms_hamlib.txt:
Hamlib can only be used with Tcl/Tk 8.5.
Hamlib needs lang/python/2.7.
databases_sqlite.txt:
Sqlite can only be used with Tcl/Tk 8.5.
Sqlite needs Tcl/Tk 8.5 internals.
devel_itcl.txt:
Itcl 3 can only be used with Tcl/Tk 8.5.
Itcl 3 needs Tcl/Tk 8.5 internals.
The port will move to 8.6 when it's upgraded to Itcl 4.
devel_swig.txt:
SWIG will be used with Tcl/Tk 8.5 for now.
SWIG will probably work fine with Tcl/Tk 8.6 but SWIG and
its dependencies need to be evaluated beforehand.
devel_tclcl.txt:
TclCl can only be used with Tcl/Tk 8.5.
TclCl needs Tcl/Tk 8.5 internals and lang/otcl, which is 8.5-only.
devel_tcllib.txt:
Tcllib will be used with Tcl/Tk 8.5 for now due to dependencies.
devel_tklib.txt:
Tklib will be used with Tcl/Tk 8.5 for now due to dependencies.
devel_vtcl.txt:
Vtcl will be used with Tcl/Tk 8.5 for now.
The port will move to 8.6 when upgraded to latest VTcl.
graphics_tkimg.txt:
TkImg will be used with Tcl/Tk 8.5 for now.
TkImg is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
graphics_tkpng.txt:
TkPNG will be used with Tcl/Tk 8.5 for now.
TkPNG is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
lang_expect.txt:
Expect will be used with Tcl/Tk 8.5 for now.
There is potential for problems with threads.
It remains to be determined how well Expect will work with Tcl/Tk 8.6.
lang_otcl.txt:
OTcl can only be used with Tcl/Tk 8.5.
OTcl needs Tcl/Tk 8.5 internals.
lang_pypy.txt:
PyPy can only be used with Tcl/Tk 8.5.
PyPy needs lang/python/2.7.
math_graphviz.txt:
Graphviz will be used with Tcl/Tk 8.5 for now.
Upgrading to the latest Graphviz may allow to be used with 8.6.
misc_memchan.txt:
Memchan will be used with Tcl/Tk 8.5 for now.
Memchan is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
misc_wordgenerator.txt:
WordGenerator will be used with Tcl/Tk 8.5 for now.
WordGenerator needs x11/iwidgets, which needs x11/itk 3,
which needs devel/itcl 3, which is 8.5-only.
This port should be ok with Tcl/Tk 8.6, and devel/itcl
and x11/itk when they are upgraded to version 4.
net_coccinella.txt:
Coccinella will be used with Tcl/Tk 8.5 for now.
Coccinella needs devel/itcl 3, which is 8.5-only.
This port should be ok with Tcl/Tk 8.6, and devel/itcl
when it is upgraded to version 4.
net_nam.txt:
Nam can only be used with Tcl/Tk 8.5.
Nam needs devel/tclcl and lang/otcl, which are 8.5-only.
net_ns.txt:
NS can only be used with Tcl/Tk 8.5.
NS needs devel/tclcl and lang/otcl, which are 8.5-only.
net_tcludp.txt:
TclUDP will be used with Tcl/Tk 8.5 for now.
TclUDP is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
print_texlive_texmf.txt:
Texmf will be used with Tcl/Tk 8.5 for now.
It remains to be determined how well Texmf will work with Tcl/Tk 8.6.
security_tcltls.txt:
TclTLS will be used with Tcl/Tk 8.5 for now.
TclTLS is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
x11_itk.txt:
Itk 3 can only be used with Tcl/Tk 8.5.
Itk 3 needs devel/itcl 3, which is 8.5-only.
The port will move to 8.6 when it and devel/itcl are upgraded to version 4.
x11_iwidgets.txt:
Iwidgets can only be used with Tcl/Tk 8.5.
Iwidgets needs x11/itk 3, which needs devel/itcl 3, which is 8.5-only.
The port will move to 8.6 when devel/itcl and x11/itk are upgraded to version 4.
x11_tkdnd.txt:
TkDND will be used with Tcl/Tk 8.5 for now.
TkDND is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
x11_tkhtml.txt:
Tkhtml will be used with Tcl/Tk 8.5 for now.
Tkhtml is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
x11_tktray.txt:
Tktray will be used with Tcl/Tk 8.5 for now.
Tktray is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
x11_tktreectrl.txt:
Tktreectrl will be used with Tcl/Tk 8.5 for now.
Tktreectrl is used by Coccinella, which needs devel/itcl 3, which is 8.5-only.
Tcl extensions built against 8.5 should work fine with 8.6.
> ---------- Original Message ----------
> From: Stuart Cassoff <3d0g@bell.net>
> Date: July 21, 2018 at 4:32 AM
>
>
> Tcl extensions built with 8.5 can be used with 8.6.
>
> I've gone over the Makefiles, PLISTs, patches, and files of the ports listed.
> Attached is a tarball with a diff and a copy of the list.
> I tried to keep to the style of each Makefile.
>
> 6's are ports moved to 8.6. A few have comments.
> 5's are ports that for now are staying at 8.5 for reasons.
>
> Reasons are comma-separated lists of ports (dependencies),
> files (something in them), or comments why the port remained at 8.5.
>
> I'm unsure of some ports due to either dependencies or suspicions (python).
>
> Itcl/Itk are old and need Tcl's "internal" includes.
> I have ports in progress for the newer versions that use 8.6.
> When Itcl/Itk move to 8.6 a few more can follow.
>
> I haven't built anything yet! I'll be starting on i386 and amd64 in about 1/2 day.
> Ports upgraded are ports I'm confident will be ok, or I highly suspect will be ok.
> Any port not working can simply be slammed back down to 8.5.
> Many of these ports aren't mine, so I'm not sure how to proceed.
>
> Stu
>
> 5 audio/snack devel/itcl
> 5 cad/pcb cad/pcb/patch/configure
> 5 comms/hamlib unsure
> 5 databases/redis unsure
> 5 databases/sqlite old,unsure
> 5 devel/itcl old,needs internal #includes
> 5 devel/ltcltk unchanged
> 5 devel/swig unsure
> 5 devel/tclcl old,unsure,net/ns,net/nam
> 5 devel/tcllib needed by many
> 5 devel/tklib needed by many
> 5 devel/vtcl old,new 8.6 version exists, can be updated later
> 5 graphics/tkimg devel/itcl
> 5 graphics/tkpng devel/itcl
> 5 lang/expect unsure,threads problems?
> 5 lang/otcl old,unsure,net/ns,net/nam
> 5 lang/pypy unsure
> 5 lang/ruby/2.3 lang/ruby/2.3/Makefile
> 5 math/graphviz unsure
> 5 misc/WordGenerator x11/iwidgets
> 5 misc/memchan net/coccinella,devel/itcl
> 5 net/coccinella devel/itcl
> 5 net/nam old,devel/tclcl,lang/otcl,net/ns
> 5 net/ns old,devel/tclcl,lang/otcl,net/nam
> 5 net/tcludp net/coccinella,devel/itcl
> 5 print/texlive/texmf unsure
> 5 security/tcltls net/coccinella,devel/itcl
> 5 sysutils/findlib unsure,devel/cil,devel/coccinelle
> 5 telephony/iaxclient unsure
> 5 textproc/catdoc unsure,devel/kf5/kfilemetadata,-main,mail/kopano/core,-main
> 5 x11/byzi only needed in 8.5
> 5 x11/itk devel/itcl
> 5 x11/iwidgets devel/itcl,x11/itk
> 5 x11/ruby-tk x11/ruby-tk/Makefile
> 5 x11/tkdnd net/coccinella,devel/itcl
> 5 x11/tkhtml net/coccinella,devel/itcl
> 5 x11/tktray net/coccinella,devel/itcl
> 5 x11/tktreectrl net/coccinella,devel/itcl
> 6 audio/xcd
> 6 cad/tkgate
> 6 cad/xcircuit
> 6 comms/tkhylafax
> 6 databases/pgtcl
> 6 databases/sqlite3-tcl
> 6 devel/fossil
> 6 devel/git
> 6 devel/mercurial
> 6 devel/nagelfar
> 6 devel/p5-Tcl
> 6 devel/tclarc4random
> 6 devel/tkcvs
> 6 devel/tkdiff
> 6 emulators/frodo
> 6 emulators/openmsx
> 6 geo/gpsbabel
> 6 graphics/colorexplorer
> 6 graphics/gocr
> 6 lang/eltclsh
> 6 lang/jimtcl
> 6 lang/obc
> 6 lang/tcltutor
> 6 mail/exmh2
> 6 math/R
> 6 math/maxima
> 6 misc/cbb
> 6 misc/impress
> 6 misc/remind
> 6 misc/tkcron
> 6 misc/tkinfo
> 6 misc/tkman
> 6 misc/wordnet
> 6 net/climm
> 6 net/netinfo
> 6 net/ssvnc
> 6 net/tcl-snmptools -pthread still needed?
> 6 net/tclcurl -pthread still needed?
> 6 net/tkabber/base
> 6 net/tkirc
> 6 net/weechat REVISION-tcl ok?
> 6 productivity/sl
> 6 security/password-gorilla
> 6 security/tclgpg
> 6 sysutils/libisoburn REVISION-tcltk ok?
> 6 sysutils/tkdvd
> 6 textproc/TclXML
> 6 textproc/boust
> 6 x11/dbus-intf
> 6 x11/dbus-tcl
> 6 x11/p5-Tkx
> 6 x11/tkcon
> 6 x11/tktable
> 6 x11/x11vnc
> 6 x11/xbindkeys
No comments:
Post a Comment