This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH] doc: update tcl/tk FAQ
- From: "Yaakov (Cygwin/X)" <yselkowitz at users dot sourceforge dot net>
- To: cygwin-patches at cygwin dot com
- Date: Wed, 29 Feb 2012 23:56:38 -0600
- Subject: [PATCH] doc: update tcl/tk FAQ
- Authentication-results: mr.google.com; spf=pass (google.com: domain of yselkowitz@gmail.com designates 10.50.222.137 as permitted sender) smtp.mail=yselkowitz@gmail.com; dkim=pass header.i=yselkowitz@gmail.com
- References: <70952A932255A2489522275A628B97C3129F4A01@xmb-sjc-233.amer.cisco.com> <1330563447.7632.19.camel@YAAKOV04> <20120301011504.GA19191@ednor.casa.cgf.cx>
On Wed, 2012-02-29 at 20:15 -0500, Christopher Faylor wrote:
> On Wed, Feb 29, 2012 at 06:57:27PM -0600, Yaakov (Cygwin/X) wrote:
> >Using X requires user intervention to start an X server first. No
> >amount of automatic dependencies will change this, and therefore I don't
> >expect that the number of questions would change one iota.
>
> I agree 100% but this now qualifies as a FAQ so maybe we should add an
> entry about tcl/tk.
Patch attached.
Yaakov
2012-02-?? Yaakov Selkowitz <yselkowitz@...>
* faq-programming.xml (faq.programming.make-execvp): Remove obsolete
information about Tcl/Tk.
(faq.programming.dll-relocatable): Ditto.
* faq-using.xml (faq.using.tcl-tk): Rewrite to reflect switch to
X11 Tcl/Tk.
Index: faq-programming.xml
===================================================================
RCS file: /cvs/src/src/winsup/doc/faq-programming.xml,v
retrieving revision 1.17
diff -u -p -r1.17 faq-programming.xml
--- faq-programming.xml 13 Aug 2010 11:52:13 -0000 1.17
+++ faq-programming.xml 1 Mar 2012 05:51:21 -0000
@@ -93,18 +93,6 @@ C:/cygwin/bin /bin ntfs binary,cygexec 0
C:/cygwin/bin /usr/bin ntfs binary,cygexec 0 0
</screen>
-<para>Note that if you have Tcl/Tk installed, you must additionally
-exclude <literal>tclsh84</literal> and <literal>wish84</literal>, which
-are linked to the Cygwin DLL but are not actually Cygwin programs:
-</para>
-
-<screen>
-C:/cygwin/bin/tclsh84.exe /bin/tclsh84.exe ntfs binary,notexec 0 0
-C:/cygwin/bin/tclsh84.exe /usr/bin/tclsh84.exe ntfs binary,notexec 0 0
-C:/cygwin/bin/wish84.exe /bin/wish84.exe ntfs binary,notexec 0 0
-C:/cygwin/bin/wish84.exe /usr/bin/wish84.exe ntfs binary,notexec 0 0
-</screen>
-
<para>If you have added other non-Cygwin programs to a path you want to mount
cygexec, you can find them with a script like this:
</para>
@@ -574,8 +562,6 @@ $(LD) EXPFILE --dll -o DLLNAME OBJS LIBS
</para>
<para>LIBS is the list of libraries you want to link the DLL against. For
example, you may or may not want -lcygwin. You may want -lkernel32.
-Tcl links against -lcygwin -ladvapi32 -luser32 -lgdi32 -lcomdlg32
--lkernel32.
</para>
<para>DEFFILE is the name of your definitions file. A simple DEFFILE would
consist of ``EXPORTS'' followed by a list of all symbols which should
@@ -614,9 +600,8 @@ int entry (HINSTANT hinst, DWORD reason,
}
</screen>
-<para>You may put an optional `--subsystem windows' on the $(LD) lines. The
-Tcl build does this, but I admit that I no longer remember whether
-this is important. Note that if you specify a --subsytem <x> flag to ld,
+<para>You may put an optional `--subsystem windows' on the $(LD) lines.
+Note that if you specify a --subsytem <x> flag to ld,
the -e entry must come after the subsystem flag, since the subsystem flag
sets a different default entry point.
</para>
Index: faq-using.xml
===================================================================
RCS file: /cvs/src/src/winsup/doc/faq-using.xml,v
retrieving revision 1.43
diff -u -p -r1.43 faq-using.xml
--- faq-using.xml 27 Feb 2012 19:45:26 -0000 1.43
+++ faq-using.xml 1 Mar 2012 05:51:21 -0000
@@ -1060,16 +1060,27 @@ usually all set and you can start the ss
</answer></qandaentry>
<qandaentry id="faq.using.tcl-tk">
-<question><para>Why doesn't Cygwin tcl/tk understand Cygwin paths?</para></question>
+<question><para>Why do my Tk programs not work anymore?</para></question>
<answer>
-<para>The versions of Tcl/Tk distributed with Cygwin (e.g. cygtclsh80.exe,
-cygwish80.exe) are not actually "Cygwin versions" of those tools.
-They are built as native libraries, which means they do not understand
-Cygwin mounts or symbolic links.
-</para>
-<para>See the entry "How do I convert between Windows and UNIX paths?"
-elsewhere in this FAQ.
+<para>Previous versions of Tcl/Tk distributed with Cygwin (e.g. tclsh84.exe,
+wish84.exe) were not actually "Cygwin versions" of those tools.
+They were built as native libraries, which means they did not understand
+Cygwin mounts or symbolic links. This lead to all sorts of problems interacting
+with true Cygwin programs.</para>
+
+<para>As of February 2012, this was replaced with a version of Tcl/Tk which
+uses Cygwin's POSIX APIs and X11 for GUI functionality. If you get a message
+such as this when trying to start a Tk app:</para>
+
+<screen>
+ Application initialization failed: couldn't connect to display ""
+</screen>
+
+<para>Then you need to start an X server, or if one is already running, set the
+<literal>DISPLAY</literal> variable to the proper value. The Cygwin distribution
+includes an X server; please see the <ulink url="http://x.cygwin.com/docs/ug/cygwin-x-ug.html">Cygwin/X User Guide</ulink>
+for installation and startup instructions.
</para></answer></qandaentry>
<qandaentry id="faq.using.ipv6">