Created attachment 150443 [details] Patch Makefile to required and use critcl to compile tcllib's C-code Currently the port installs only the pure-Tcl implementations of the modules. That's a shame, because a number of modules provide C-implementations, which are orders of magnitude faster. The attachments take care of this problem as well as pick a couple of other nits.
Auto-assigned to maintainer tcltk@FreeBSD.org
Created attachment 150444 [details] Patch jpeg module to avoid double-closing of a file (submitted upstream)
Created attachment 150445 [details] Patch json-module to use less memory and work faster (submitted upstream)
Created attachment 150446 [details] Fix the easily-repairable test-failures (submitted upstream)
Created attachment 150447 [details] Fix compiler-warnings in the C-code, which we'll now compile (submitted upstream)
A commit references this bug: Author: mi Date: Wed Jan 28 04:56:47 UTC 2015 New revision: 378043 URL: https://svnweb.freebsd.org/changeset/ports/378043 Log: Use native (written in C) implementations, where available. This speeds up some operations -- like JSON-parsing, for example -- by a lot. Pick a few other nits and bump PORTREVISION. PR: 195863 Submitted by: mi Approved by: maintainer timeout Sponsored by: http://sybpipe.com/ Changes: head/devel/tcllib/Makefile head/devel/tcllib/files/patch-jpeg head/devel/tcllib/files/patch-json head/devel/tcllib/files/patch-tests head/devel/tcllib/files/patch-warnings head/devel/tcllib/pkg-plist
The change caused circular dependency between critcl and dtplite (part of tcllib). This needs to be resolved (see Bug 197359). (antoine@ could've let me know while backing out my commit, but chose not to.)
Can this be resolved now?
Looks like tcllib is fine.
(In reply to Pietro Cerutti from comment #9) > Looks like tcllib is fine. It is not fine, because it still does not offer compiled implementations of anything (such JSON-parser). Unfortunately, it was upgraded a few weeks ago without taking this PR into consideration and my patches no longer apply cleanly. I'll have to redo them and PORTREVISION-bump will be necessary too.
Sorry I didn't notice that your commit was backed out.
A commit references this bug: Author: mi Date: Wed May 27 17:19:34 UTC 2015 New revision: 387637 URL: https://svnweb.freebsd.org/changeset/ports/387637 Log: Rely on critcl port to provide compiled implementations of the modules, where available. PR: 195863 Approved by: maintainer (blanket) Changes: head/devel/tcllib/Makefile head/devel/tcllib/files/patch-jpeg head/devel/tcllib/files/patch-json head/devel/tcllib/files/patch-tests head/devel/tcllib/pkg-plist
Mikhail, please beware that tcllib fails to build (specifically, it fails to patch). http://beefy2.nyi.freebsd.org/data/93amd64-default/388198/logs/errors/tcllib-1.17_1.log
(In reply to Pietro Cerutti from comment #13) > ===> Applying FreeBSD patches for tcllib-1.17_1 > No file to patch. Skipping... > 1 out of 1 hunks ignored--saving rejects to modules/pt/pt_cparam_config_tea.tcl.rej > => Patch patch-warnings failed to apply cleanly. Thanks for the heads-up, but I can not reproduce it here... The file -- modules/pt/pt_cparam_config_tea.tcl -- is present in the tarball (with April 30th timestamp). Any ideas?
Ah, I see... The breakage is due to this commit: r387986 | mat | 2015-05-30 17:25:06 -0400 (сб, 30 тра 2015) | 5 lines Cleanup USE_GITHUB usage. With hat: portmgr Sponsored by: Absolight The new distfile does not contain the file we are trying to patch... I'll try to figure it out. On a side-note, I'd like to see any "clean-ups", that alter the distfile-content, be done ONLY during upgrades -- when the PORTVERSION is changing anyway.
(In reply to Mikhail Teterin from comment #15) > The breakage is due to this commit Ok, mat is, likely, innocent. His commit hid the upstream's change of the distfile contents, but did not cause it. I filed a ticket with the Tcl/Tk author(s): http://core.tcl.tk/tcllib/tktview?name=d36555bc472c8243 Meanwhile, we may need to host the file ourselves somewhere...
A commit references this bug: Author: mi Date: Fri Jun 5 07:26:30 UTC 2015 New revision: 388573 URL: https://svnweb.freebsd.org/changeset/ports/388573 Log: Split the compiled pieces out of tcllib into a slave port of its own to avoid a circular dependency: compiling C-files of tcllib requires critcl, but critcl requires the cmdline (pure-Tcl) component of tcllib. PR: 195863, 200612 Approved by: gahr (blanket) Changes: head/devel/Makefile head/devel/critcl/Makefile head/devel/tcllib/Makefile head/devel/tcllib/pkg-descr head/devel/tcllib/pkg-plist head/devel/tcllibc/ head/devel/tcllibc/Makefile head/devel/tcllibc/pkg-descr head/devel/tcllibc/pkg-plist
Is this safe to close?