pythonPackages.tkinter: fix darwin build
This commit is contained in:
parent
a4752e1132
commit
af0f9fa26b
@ -60,6 +60,8 @@ let
|
|||||||
|
|
||||||
./properly-detect-curses.patch
|
./properly-detect-curses.patch
|
||||||
|
|
||||||
|
] ++ optionals (x11Support && stdenv.isDarwin) [
|
||||||
|
./use-correct-tcl-tk-on-darwin.patch
|
||||||
] ++ optionals stdenv.isLinux [
|
] ++ optionals stdenv.isLinux [
|
||||||
|
|
||||||
# Disable the use of ldconfig in ctypes.util.find_library (since
|
# Disable the use of ldconfig in ctypes.util.find_library (since
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 2779658..902d0eb 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext):
|
||||||
|
# Rather than complicate the code below, detecting and building
|
||||||
|
# AquaTk is a separate method. Only one Tkinter will be built on
|
||||||
|
# Darwin - either AquaTk, if it is found, or X11 based Tk.
|
||||||
|
- if (host_platform == 'darwin' and
|
||||||
|
- self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
|
||||||
|
- return
|
||||||
|
|
||||||
|
# Assume we haven't found any of the libraries or include files
|
||||||
|
# The versions with dots are used on Unix, and the versions without
|
||||||
|
@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if dir not in include_dirs:
|
||||||
|
include_dirs.append(dir)
|
||||||
|
|
||||||
|
- # Check for various platform-specific directories
|
||||||
|
- if host_platform == 'sunos5':
|
||||||
|
- include_dirs.append('/usr/openwin/include')
|
||||||
|
- added_lib_dirs.append('/usr/openwin/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R6/include'):
|
||||||
|
- include_dirs.append('/usr/X11R6/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib64')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R5/include'):
|
||||||
|
- include_dirs.append('/usr/X11R5/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R5/lib')
|
||||||
|
- else:
|
||||||
|
- # Assume default location for X11
|
||||||
|
- include_dirs.append('/usr/X11/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11/lib')
|
||||||
|
-
|
||||||
|
# If Cygwin, then verify that X is installed before proceeding
|
||||||
|
if host_platform == 'cygwin':
|
||||||
|
x11_inc = find_file('X11/Xlib.h', [], include_dirs)
|
||||||
|
@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if host_platform in ['aix3', 'aix4']:
|
||||||
|
libs.append('ld')
|
||||||
|
|
||||||
|
- # Finally, link with the X11 libraries (not appropriate on cygwin)
|
||||||
|
- if host_platform != "cygwin":
|
||||||
|
- libs.append('X11')
|
||||||
|
-
|
||||||
|
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
|
||||||
|
define_macros=[('WITH_APPINIT', 1)] + defs,
|
||||||
|
include_dirs = include_dirs,
|
@ -67,6 +67,8 @@ in stdenv.mkDerivation {
|
|||||||
patches = [
|
patches = [
|
||||||
./no-ldconfig.patch
|
./no-ldconfig.patch
|
||||||
./ld_library_path.patch
|
./ld_library_path.patch
|
||||||
|
] ++ optionals (x11Support && stdenv.isDarwin) [
|
||||||
|
./use-correct-tcl-tk-on-darwin.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 2779658..902d0eb 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext):
|
||||||
|
# Rather than complicate the code below, detecting and building
|
||||||
|
# AquaTk is a separate method. Only one Tkinter will be built on
|
||||||
|
# Darwin - either AquaTk, if it is found, or X11 based Tk.
|
||||||
|
- if (host_platform == 'darwin' and
|
||||||
|
- self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
|
||||||
|
- return
|
||||||
|
|
||||||
|
# Assume we haven't found any of the libraries or include files
|
||||||
|
# The versions with dots are used on Unix, and the versions without
|
||||||
|
@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if dir not in include_dirs:
|
||||||
|
include_dirs.append(dir)
|
||||||
|
|
||||||
|
- # Check for various platform-specific directories
|
||||||
|
- if host_platform == 'sunos5':
|
||||||
|
- include_dirs.append('/usr/openwin/include')
|
||||||
|
- added_lib_dirs.append('/usr/openwin/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R6/include'):
|
||||||
|
- include_dirs.append('/usr/X11R6/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib64')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R5/include'):
|
||||||
|
- include_dirs.append('/usr/X11R5/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R5/lib')
|
||||||
|
- else:
|
||||||
|
- # Assume default location for X11
|
||||||
|
- include_dirs.append('/usr/X11/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11/lib')
|
||||||
|
-
|
||||||
|
# If Cygwin, then verify that X is installed before proceeding
|
||||||
|
if host_platform == 'cygwin':
|
||||||
|
x11_inc = find_file('X11/Xlib.h', [], include_dirs)
|
||||||
|
@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if host_platform in ['aix3', 'aix4']:
|
||||||
|
libs.append('ld')
|
||||||
|
|
||||||
|
- # Finally, link with the X11 libraries (not appropriate on cygwin)
|
||||||
|
- if host_platform != "cygwin":
|
||||||
|
- libs.append('X11')
|
||||||
|
-
|
||||||
|
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
|
||||||
|
define_macros=[('WITH_APPINIT', 1)] + defs,
|
||||||
|
include_dirs = include_dirs,
|
@ -67,6 +67,8 @@ in stdenv.mkDerivation {
|
|||||||
patches = [
|
patches = [
|
||||||
./no-ldconfig.patch
|
./no-ldconfig.patch
|
||||||
./ld_library_path.patch
|
./ld_library_path.patch
|
||||||
|
] ++ optionals (x11Support && stdenv.isDarwin) [
|
||||||
|
./use-correct-tcl-tk-on-darwin.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 2779658..902d0eb 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext):
|
||||||
|
# Rather than complicate the code below, detecting and building
|
||||||
|
# AquaTk is a separate method. Only one Tkinter will be built on
|
||||||
|
# Darwin - either AquaTk, if it is found, or X11 based Tk.
|
||||||
|
- if (host_platform == 'darwin' and
|
||||||
|
- self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
|
||||||
|
- return
|
||||||
|
|
||||||
|
# Assume we haven't found any of the libraries or include files
|
||||||
|
# The versions with dots are used on Unix, and the versions without
|
||||||
|
@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if dir not in include_dirs:
|
||||||
|
include_dirs.append(dir)
|
||||||
|
|
||||||
|
- # Check for various platform-specific directories
|
||||||
|
- if host_platform == 'sunos5':
|
||||||
|
- include_dirs.append('/usr/openwin/include')
|
||||||
|
- added_lib_dirs.append('/usr/openwin/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R6/include'):
|
||||||
|
- include_dirs.append('/usr/X11R6/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib64')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R5/include'):
|
||||||
|
- include_dirs.append('/usr/X11R5/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R5/lib')
|
||||||
|
- else:
|
||||||
|
- # Assume default location for X11
|
||||||
|
- include_dirs.append('/usr/X11/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11/lib')
|
||||||
|
-
|
||||||
|
# If Cygwin, then verify that X is installed before proceeding
|
||||||
|
if host_platform == 'cygwin':
|
||||||
|
x11_inc = find_file('X11/Xlib.h', [], include_dirs)
|
||||||
|
@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if host_platform in ['aix3', 'aix4']:
|
||||||
|
libs.append('ld')
|
||||||
|
|
||||||
|
- # Finally, link with the X11 libraries (not appropriate on cygwin)
|
||||||
|
- if host_platform != "cygwin":
|
||||||
|
- libs.append('X11')
|
||||||
|
-
|
||||||
|
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
|
||||||
|
define_macros=[('WITH_APPINIT', 1)] + defs,
|
||||||
|
include_dirs = include_dirs,
|
@ -69,6 +69,8 @@ in stdenv.mkDerivation {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./no-ldconfig.patch
|
./no-ldconfig.patch
|
||||||
|
] ++ optionals (x11Support && stdenv.isDarwin) [
|
||||||
|
./use-correct-tcl-tk-on-darwin.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 2779658..902d0eb 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext):
|
||||||
|
# Rather than complicate the code below, detecting and building
|
||||||
|
# AquaTk is a separate method. Only one Tkinter will be built on
|
||||||
|
# Darwin - either AquaTk, if it is found, or X11 based Tk.
|
||||||
|
- if (host_platform == 'darwin' and
|
||||||
|
- self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
|
||||||
|
- return
|
||||||
|
|
||||||
|
# Assume we haven't found any of the libraries or include files
|
||||||
|
# The versions with dots are used on Unix, and the versions without
|
||||||
|
@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if dir not in include_dirs:
|
||||||
|
include_dirs.append(dir)
|
||||||
|
|
||||||
|
- # Check for various platform-specific directories
|
||||||
|
- if host_platform == 'sunos5':
|
||||||
|
- include_dirs.append('/usr/openwin/include')
|
||||||
|
- added_lib_dirs.append('/usr/openwin/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R6/include'):
|
||||||
|
- include_dirs.append('/usr/X11R6/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib64')
|
||||||
|
- added_lib_dirs.append('/usr/X11R6/lib')
|
||||||
|
- elif os.path.exists('/usr/X11R5/include'):
|
||||||
|
- include_dirs.append('/usr/X11R5/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11R5/lib')
|
||||||
|
- else:
|
||||||
|
- # Assume default location for X11
|
||||||
|
- include_dirs.append('/usr/X11/include')
|
||||||
|
- added_lib_dirs.append('/usr/X11/lib')
|
||||||
|
-
|
||||||
|
# If Cygwin, then verify that X is installed before proceeding
|
||||||
|
if host_platform == 'cygwin':
|
||||||
|
x11_inc = find_file('X11/Xlib.h', [], include_dirs)
|
||||||
|
@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext):
|
||||||
|
if host_platform in ['aix3', 'aix4']:
|
||||||
|
libs.append('ld')
|
||||||
|
|
||||||
|
- # Finally, link with the X11 libraries (not appropriate on cygwin)
|
||||||
|
- if host_platform != "cygwin":
|
||||||
|
- libs.append('X11')
|
||||||
|
-
|
||||||
|
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
|
||||||
|
define_macros=[('WITH_APPINIT', 1)] + defs,
|
||||||
|
include_dirs = include_dirs,
|
@ -16394,15 +16394,14 @@ in {
|
|||||||
# Move the tkinter module
|
# Move the tkinter module
|
||||||
mkdir -p $out/${py.sitePackages}
|
mkdir -p $out/${py.sitePackages}
|
||||||
mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
|
mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
|
||||||
|
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
||||||
# Update the rpath to point to python without x11Support
|
# Update the rpath to point to python without x11Support
|
||||||
old_rpath=$(patchelf --print-rpath $out/${py.sitePackages}/_tkinter*)
|
old_rpath=$(patchelf --print-rpath $out/${py.sitePackages}/_tkinter*)
|
||||||
new_rpath=$(sed "s#${py}#${python}#g" <<< "$old_rpath" )
|
new_rpath=$(sed "s#${py}#${python}#g" <<< "$old_rpath" )
|
||||||
patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
|
patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = py.meta // {
|
meta = py.meta;
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
tlslite = buildPythonPackage rec {
|
tlslite = buildPythonPackage rec {
|
||||||
|
Loading…
Reference in New Issue
Block a user