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 <3...@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

Attachment: uptcl86_ports85.tar.gz
Description: application/gzip

Reply via email to