Skip to contentSkip to conversation

python: add tk support

PATCH Superseded [email protected] 4 participants 8 messages Oct 25, 2018 – Nov 5, 2018

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover python: add tk support

1, move tk recipe from meta-oe
2, enable tk to add tk support

#1 lore raw

PATCH 1/2 tk: add new recipe(move from meta-oe)

From: Mingli Yu <[email protected]>

Move tk recipe from meta-oe to add tkinter
support for python.

---
 .../tk/configure.use.fontconfig.with.xft.patch     | 13 ++++
 meta/recipes-devtools/tcltk/tk/confsearch.diff     | 35 ++++++++++
 meta/recipes-devtools/tcltk/tk/fix-xft.diff        | 16 +++++
 meta/recipes-devtools/tcltk/tk/non-linux.diff      | 27 ++++++++
 meta/recipes-devtools/tcltk/tk/tklibrary.diff      | 22 ++++++
 meta/recipes-devtools/tcltk/tk/tkprivate.diff      | 41 +++++++++++
 meta/recipes-devtools/tcltk/tk_8.6.8.bb            | 79 ++++++++++++++++++++++
 7 files changed, 233 insertions(+)
 create mode 100644 meta/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch
 create mode 100644 meta/recipes-devtools/tcltk/tk/confsearch.diff
 create mode 100644 meta/recipes-devtools/tcltk/tk/fix-xft.diff
 create mode 100644 meta/recipes-devtools/tcltk/tk/non-linux.diff
 create mode 100644 meta/recipes-devtools/tcltk/tk/tklibrary.diff
 create mode 100644 meta/recipes-devtools/tcltk/tk/tkprivate.diff
 create mode 100644 meta/recipes-devtools/tcltk/tk_8.6.8.bb
meta/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch new file +13 -0
new file mode 100644
index 0000000..a0c157f
@@ -0,0 +1,13 @@
+--- a/configure.in.orig	2014-05-10 14:35:39.859147385 +0000
++++ b/configure.in	2014-05-10 14:36:20.282925184 +0000
+@@ -554,8 +554,8 @@
+ 	dnl make sure package configurator (xft-config or pkg-config
+ 	dnl says that xft is present.
+ 	    found_xft=yes
+-	    XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
+-	    XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
++	    XFT_CFLAGS=`pkg-config --cflags xft fontconfig 2>/dev/null` || found_xft="no"
++	    XFT_LIBS=`pkg-config --libs xft fontconfig 2>/dev/null` || found_xft="no"
+ 	AC_MSG_RESULT([$found_xft])
+ 	dnl make sure that compiling against Xft header file doesn't bomb
+ 	if test "$found_xft" = "yes" ; then
meta/recipes-devtools/tcltk/tk/confsearch.diff new file +35 -0
new file mode 100644
index 0000000..4dbd9a4
@@ -0,0 +1,35 @@
+Patch by Sergei Golovan allows to find tclConfig.sh in /usr/share/tcltk/tcl8.5
+and tkConfig.sh in /usr/share/tcltk/tk8.5 where they are located in Debian
+installation.
+
+--- tk8.5-8.5.8.orig/unix/configure
++++ tk8.5-8.5.8/unix/configure
+@@ -1431,7 +1431,8 @@
+ 			`ls -d /usr/contrib/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/pkg/lib 2>/dev/null` \
++			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
+ 			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
+ 			; do
+ 		    if test -f "$i/tclConfig.sh" ; then
+--- tk8.5-8.5.8.orig/unix/tcl.m4
++++ tk8.5-8.5.8/unix/tcl.m4
+@@ -93,7 +93,8 @@
+ 			`ls -d /usr/contrib/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/pkg/lib 2>/dev/null` \
++			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
+ 			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
+ 			; do
+ 		    if test -f "$i/tclConfig.sh" ; then
+@@ -223,7 +224,8 @@
+ 			`ls -d ${prefix}/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/contrib/lib 2>/dev/null` \
++			`ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \
+ 			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
+ 			; do
+ 		    if test -f "$i/tkConfig.sh" ; then
meta/recipes-devtools/tcltk/tk/fix-xft.diff new file +16 -0
new file mode 100644
index 0000000..d1bb710
@@ -0,0 +1,16 @@
+--- /tmp/configure.in	2010-05-19 13:29:03.000000000 +0200
++++ unix/configure.in	2010-05-19 13:42:05.000000000 +0200
+@@ -526,13 +526,9 @@
+ 	found_xft="yes"
+ 	dnl make sure package configurator (xft-config or pkg-config
+ 	dnl says that xft is present.
+-	XFT_CFLAGS=`xft-config --cflags 2>/dev/null` || found_xft="no"
+-	XFT_LIBS=`xft-config --libs 2>/dev/null` || found_xft="no"
+-	if test "$found_xft" = "no" ; then
+ 	    found_xft=yes
+ 	    XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
+ 	    XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
+-	fi
+ 	AC_MSG_RESULT([$found_xft])
+ 	dnl make sure that compiling against Xft header file doesn't bomb
+ 	if test "$found_xft" = "yes" ; then
meta/recipes-devtools/tcltk/tk/non-linux.diff new file +27 -0
new file mode 100644
index 0000000..7d31f9f
@@ -0,0 +1,27 @@
+Patch by Sergei Golovan (originally by Mike Markley and Chris Waters) fixes
+building on non-linux Debian architectures.
+
+--- tk8.5-8.5.8.orig/unix/configure
++++ tk8.5-8.5.8/unix/configure
+@@ -4447,6 +4447,9 @@
+ 		if test "`uname -s`" = "AIX" ; then
+ 		    tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+ 		fi
++		if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then
++		    tcl_cv_sys_version=NetBSD-Debian
++		fi
+ 	    fi
+ 	fi
+
+--- tk8.5-8.5.8.orig/unix/tcl.m4
++++ tk8.5-8.5.8/unix/tcl.m4
+@@ -962,6 +962,9 @@
+ 		if test "`uname -s`" = "AIX" ; then
+ 		    tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+ 		fi
++		if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then
++		    tcl_cv_sys_version=NetBSD-Debian
++		fi
+ 	    fi
+ 	fi
+     ])
meta/recipes-devtools/tcltk/tk/tklibrary.diff new file +22 -0
new file mode 100644
index 0000000..ee38c2a
@@ -0,0 +1,22 @@
+--- tk8.5-8.5.8.orig/unix/configure
++++ tk8.5-8.5.8/unix/configure
+@@ -11070,7 +11070,7 @@
+     TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+ fi
+ 
+-TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
++test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+ TK_PKG_DIR='tk$(VERSION)'
+--- tk8.5-8.5.8.orig/unix/configure.in
++++ tk8.5-8.5.8/unix/configure.in
+@@ -607,7 +607,7 @@
+     TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
+ fi
+ 
+-TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
++test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+ TK_PKG_DIR='tk$(VERSION)'
meta/recipes-devtools/tcltk/tk/tkprivate.diff new file +41 -0

41 lines not on this page · raw message

meta/recipes-devtools/tcltk/tk_8.6.8.bb new file +79 -0

79 lines not on this page · raw message

Signature · 1 line
2.7.4
#2 lore raw

PATCH 2/2 python: add tk support

In reply to [email protected]

From: Mingli Yu <[email protected]>

Enable tk to add tk support for python.
before the patch:

 # python
 Python 2.7.15 (default, Oct 25 2018, 08:12:45)
 [GCC 8.2.0] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
Quoted 1 line
Quoted 1 line
Quoted 1 line

import Tkinter

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/lib-tk/Tkinter.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

Quoted 1 line
Quoted 1 line
Quoted 1 line

after the patch:

 # python
 Python 2.7.15 (default, Oct 25 2018, 08:12:45)
 [GCC 8.2.0] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

import Tkinter

---
 .../python/avoid_warning_about_tkinter.patch       | 29 ----------------------
 .../python/python/python2-manifest.json            |  8 +++---
 meta/recipes-devtools/python/python_2.7.15.bb      |  8 +++---
 3 files changed, 10 insertions(+), 35 deletions(-)
 delete mode 100644 meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch
meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch deleted +0 -29
deleted file mode 100644
index 287095f..0000000
@@ -1,29 +0,0 @@
-_tkinter module needs tk module along with tcl. tk is not yet integrated
-in yocto so we skip the check for this module.
-Avoid a warning by not adding this module to missing variable.
-
-Upstream-Status: Inappropriate [distribution]
-
-Also simply disable the tk module since its not in DEPENDS.
-Signed-off-by: Andrei Gherzan <[email protected]>
-
-Index: Python-2.7.13/setup.py
-===================================================================
---- Python-2.7.13.orig/setup.py
-+++ Python-2.7.13/setup.py
-@@ -1783,10 +1783,12 @@ class PyBuildExt(build_ext):
-         self.extensions.extend(exts)
- 
-         # Call the method for detecting whether _tkinter can be compiled
--        self.detect_tkinter(inc_dirs, lib_dirs)
-+        # self.detect_tkinter(inc_dirs, lib_dirs)
- 
--        if '_tkinter' not in [e.name for e in self.extensions]:
--            missing.append('_tkinter')
-+        # tkinter module will not be avalaible as yocto
-+        # doesn't have tk integrated (yet)
-+        #if '_tkinter' not in [e.name for e in self.extensions]:
-+        #    missing.append('_tkinter')
- 
- ##         # Uncomment these lines if you want to play with xxmodule.c
- ##         ext = Extension('xx', ['xxmodule.c'])
meta/recipes-devtools/python/python/python2-manifest.json +5 -3
index 260fa6f..7b49e94 100644
@@ -963,10 +963,12 @@
     "tkinter": {
         "summary": "Python Tcl/Tk bindings", 
         "rdepends": [
-            "core"
+            "core",
+            "tk"
         ], 
         "files": [
-            "${libdir}/python2.7/lib-tk"
+            "${libdir}/python2.7/lib-tk",
+            "${libdir}/python2.7/lib-dynload/_tkinter.so"
         ]
     }, 
     "unittest": {
@@ -1043,4 +1045,4 @@
             "${libdir}/python2.7/lib-dynload/zlib.so"
         ]
     }
-}
\ No newline at end of file
+}
meta/recipes-devtools/python/python_2.7.15.bb +5 -3
index dd969d8..a6ecbb9 100644
@@ -1,6 +1,6 @@
 require python.inc
 
-DEPENDS = "python-native libffi bzip2 gdbm openssl \
+DEPENDS = "python-native libffi bzip2 gdbm openssl tk \
            readline sqlite3 zlib virtual/crypt"
 
 PR = "${INC_PR}"
@@ -21,7 +21,6 @@ SRC_URI += "\
   file://setuptweaks.patch \
   file://check-if-target-is-64b-not-host.patch \
   file://search_db_h_in_inc_dirs_and_avoid_warning.patch \
-  file://avoid_warning_about_tkinter.patch \
   file://avoid_warning_for_sunos_specific_module.patch \
   file://python-2.7.3-remove-bsdb-rpath.patch \
   file://run-ptest \
@@ -227,7 +226,10 @@ python(){
             # Make it work with or without $PN
             if '${PN}' in value:
                 value=value.split('-')[1]
-            d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value)
+            if "tkinter" in pypackage and value == "tk":
+                d.appendVar('RDEPENDS_' + pypackage, ' ' + value)
+            else:
+                d.appendVar('RDEPENDS_' + pypackage, ' ' + pn + '-' + value)
         d.setVar('SUMMARY_' + pypackage, python_manifest[key]['summary'])
 
     # Prepending so to avoid python-misc getting everything
Signature · 1 line
2.7.4
#3 lore raw

✗ patchtest: failure for python: add tk support

In reply to [email protected]

== Series Details ==

Series: python: add tk support
Revision: 1
URL : https://patchwork.openembedded.org/series/14668/
State : failure

== Summary ==

Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures:

* Issue A patch file has been added, but does not have a Signed-off-by tag [test_signed_off_by_presence]
Suggested fix Sign off the added patch file (meta/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch)

* Issue Added patch file is missing Upstream-Status in the header [test_upstream_status_presence_format]

  Suggested fix    Add Upstream-Status: <Valid status> to the header of meta/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch
  Standard format  Upstream-Status: <Valid status>
  Valid status     Pending, Accepted, Backport, Denied, Inappropriate [reason], Submitted [where]

If you believe any of these test results are incorrect, please reply to the mailing list ([email protected]) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...).

---

Guidelines:     https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe
#5 lore raw
Quoted 5 lines · Ross

Terrified to ask, but why?

Quoted 3 lines · On Thu, 25 Oct 2018 at 09:39, <[email protected]> wrote:

1, move tk recipe from meta-oe
2, enable tk to add tk support

Well, tcl and tk do go together and Khem's comment from 2013 suggested that it might be pulled into oe-core some day.

I think what started us down this path is a FACE [1] compliance test. If there's resistance to moving the package to oe-core, can we enable python-tk even if tk stayed in meta-oe, Grace? Also, this should be done using using PACKAGECONFIG? Finally, what about python3-tk ?

../Randy

[1] https://en.wikipedia.org/wiki/Future_Airborne_Capability_Environment

Quoted 5 lines
Quoted 5 lines

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 2 lines
# Randy MacLeod
# Wind River Linux
#6 lore raw
Quoted 5 lines · Randy MacLeod

I think what started us down this path is a FACE [1] compliance test. If there's resistance to moving the package to oe-core, can we enable python-tk even if tk stayed in meta-oe, Grace? Also, this should be done using using PACKAGECONFIG? Finally, what about python3-tk ?

I'd happily add a PACKAGECONFIG but tcl/tk is fairly dead so I do have instinctive opposition to adding it into oe-core.

Ross

author
#7 lore raw
In reply to Randy MacLeod
Quoted 7 lines · Randy MacLeod
Quoted 5 lines · Ross

Terrified to ask, but why?

Quoted 3 lines · On Thu, 25 Oct 2018 at 09:39, <[email protected]> wrote:

1, move tk recipe from meta-oe
2, enable tk to add tk support

Quoted 8 lines

Well, tcl and tk do go together and Khem's comment from 2013 suggested that it might be pulled into oe-core some day.

I think what started us down this path is a FACE [1] compliance test. If there's resistance to moving the package to oe-core, can we enable python-tk even if tk stayed in meta-oe, Grace? Also, this should be done using using PACKAGECONFIG? Finally, what about python3-tk ?

Will send out v2 to use PACKAGECONFIG for tk and add tk support for python3 altogether.

Thanks,

Quoted 11 lines

../Randy

[1] https://en.wikipedia.org/wiki/Future_Airborne_Capability_Environment

Quoted 5 lines
Quoted 5 lines

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core