summary refs log tree commit diff
diff options
context:
space:
mode:
author宋文武 <iyzsong@gmail.com>2015-11-12 13:31:19 +0800
committerLudovic Courtès <ludo@gnu.org>2015-11-29 22:59:28 +0100
commit79c8a071e7f391e40b203f4489396f976a5333a7 (patch)
tree1809cc38a36efbe44b50e7e20718da15a510fc2e
parent26059753aea72d0a2bc51204bad9fe416e7c6536 (diff)
downloadguix-79c8a071e7f391e40b203f4489396f976a5333a7.tar.gz
tk: Hardcode path to TK_LIBRARY.
Fixes <http://bugs.gnu.org/20889>.

* gnu/packages/patches/tk-find-library.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/tcl.scm (tk)[source]: Add patch.
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/patches/tk-find-library.patch29
-rw-r--r--gnu/packages/tcl.scm3
3 files changed, 32 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am
index e4eb1d7cc9..99e8e7dff4 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -701,6 +701,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/texi2html-i18n.patch			\
   gnu/packages/patches/tidy-CVE-2015-5522+5523.patch		\
   gnu/packages/patches/tinyxml-use-stl.patch			\
+  gnu/packages/patches/tk-find-library.patch			\
   gnu/packages/patches/torsocks-dns-test.patch			\
   gnu/packages/patches/tvtime-gcc41.patch			\
   gnu/packages/patches/tvtime-pngoutput.patch			\
diff --git a/gnu/packages/patches/tk-find-library.patch b/gnu/packages/patches/tk-find-library.patch
new file mode 100644
index 0000000000..70911bf0d2
--- /dev/null
+++ b/gnu/packages/patches/tk-find-library.patch
@@ -0,0 +1,29 @@
+This patch hard-codes the Tk library directory during package initialization.
+
+See <http://core.tcl.tk/tk/tktview/765642ffffffffffffff>.
+
+diff --git a/generic/tkWindow.c b/generic/tkWindow.c
+index b5cbbab..96b5501 100644
+--- a/generic/tkWindow.c
++++ b/generic/tkWindow.c
+@@ -988,6 +988,7 @@ TkCreateMainWindow(
+ 
+     Tcl_SetVar2(interp, "tk_patchLevel", NULL, TK_PATCH_LEVEL, TCL_GLOBAL_ONLY);
+     Tcl_SetVar2(interp, "tk_version",    NULL, TK_VERSION,     TCL_GLOBAL_ONLY);
++    Tcl_SetVar2(interp, "tk_library",    NULL, TK_LIBRARY,     TCL_GLOBAL_ONLY);
+ 
+     tsdPtr->numMainWindows++;
+     return tkwin;
+diff --git a/unix/Makefile.in b/unix/Makefile.in
+index f21fdbb..c61b0df 100644
+--- a/unix/Makefile.in
++++ b/unix/Makefile.in
+@@ -1029,7 +1029,7 @@ tkVisual.o: $(GENERIC_DIR)/tkVisual.c
+ 	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c
+ 
+ tkWindow.o: $(GENERIC_DIR)/tkWindow.c
+-	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c
++	$(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" $(GENERIC_DIR)/tkWindow.c
+ 
+ tkButton.o: $(GENERIC_DIR)/tkButton.c
+ 	$(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 5b55cccbde..c18b8b5112 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -140,7 +140,8 @@ X11 GUIs.")
                                  version "/tk" version "-src.tar.gz"))
              (sha256
               (base32
-               "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88"))))
+               "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88"))
+             (patches (list (search-patch "tk-find-library.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases