Bug 195863 - devel/tcllib does not compile
Summary: devel/tcllib does not compile
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Mikhail Teterin
URL:
Keywords:
Depends on: 197358 197359
Blocks:
  Show dependency treegraph
 
Reported: 2014-12-10 23:58 UTC by Mikhail T.
Modified: 2015-08-17 06:42 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (tcltk)


Attachments
Patch Makefile to required and use critcl to compile tcllib's C-code (1.72 KB, patch)
2014-12-10 23:58 UTC, Mikhail T.
no flags Details | Diff
Patch jpeg module to avoid double-closing of a file (submitted upstream) (361 bytes, patch)
2014-12-10 23:59 UTC, Mikhail T.
no flags Details | Diff
Patch json-module to use less memory and work faster (submitted upstream) (6.54 KB, patch)
2014-12-11 00:00 UTC, Mikhail T.
no flags Details | Diff
Fix the easily-repairable test-failures (submitted upstream) (2.98 KB, patch)
2014-12-11 00:01 UTC, Mikhail T.
no flags Details | Diff
Fix compiler-warnings in the C-code, which we'll now compile (submitted upstream) (26.36 KB, patch)
2014-12-11 00:02 UTC, Mikhail T.
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mikhail T. 2014-12-10 23:58:02 UTC
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.
Comment 1 Bugzilla Automation freebsd_committer 2014-12-10 23:58:02 UTC
Auto-assigned to maintainer tcltk@FreeBSD.org
Comment 2 Mikhail T. 2014-12-10 23:59:19 UTC
Created attachment 150444 [details]
Patch jpeg module to avoid double-closing of a file (submitted upstream)
Comment 3 Mikhail T. 2014-12-11 00:00:26 UTC
Created attachment 150445 [details]
Patch json-module to use less memory and work faster (submitted upstream)
Comment 4 Mikhail T. 2014-12-11 00:01:14 UTC
Created attachment 150446 [details]
Fix the easily-repairable test-failures (submitted upstream)
Comment 5 Mikhail T. 2014-12-11 00:02:01 UTC
Created attachment 150447 [details]
Fix compiler-warnings in the C-code, which we'll now compile (submitted upstream)
Comment 6 commit-hook freebsd_committer 2015-01-28 04:56:51 UTC
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
Comment 7 Mikhail Teterin freebsd_committer 2015-02-06 06:46:41 UTC
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.)
Comment 8 Pietro Cerutti freebsd_committer 2015-05-04 09:58:02 UTC
Can this be resolved now?
Comment 9 Pietro Cerutti freebsd_committer 2015-05-27 10:57:49 UTC
Looks like tcllib is fine.
Comment 10 Mikhail Teterin freebsd_committer 2015-05-27 11:43:39 UTC
(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.
Comment 11 Pietro Cerutti freebsd_committer 2015-05-27 16:49:16 UTC
Sorry I didn't notice that your commit was backed out.
Comment 12 commit-hook freebsd_committer 2015-05-27 17:19:45 UTC
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
Comment 13 Pietro Cerutti freebsd_committer 2015-06-01 07:12:10 UTC
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
Comment 14 Mikhail Teterin freebsd_committer 2015-06-01 12:42:58 UTC
(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?
Comment 15 Mikhail Teterin freebsd_committer 2015-06-01 12:48:06 UTC
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.
Comment 16 Mikhail T. 2015-06-01 18:49:29 UTC
(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...
Comment 17 commit-hook freebsd_committer 2015-06-05 07:27:24 UTC
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
Comment 18 Pietro Cerutti freebsd_committer 2015-08-14 18:07:14 UTC
Is this safe to close?