Removed Python 2 support
Drops system, host and target Python 2 support. Note a lot of recipes were having hardcoded reference to `lib/python2.7/site-packages/` directory. I suspect most of theses were not working, but the reference has been updated to `lib/python3.7/site-packages/` following the same hardcoding pattern. In follow up work we would do a walkthrough each recipes to fix at least compilation time issues. Also note the `rebuild_updated_recipes.py` is expected to fail as this is touching many recipes including recipes that were already broken.
This commit is contained in:
parent
7385cdfca8
commit
e29d6aa256
44 changed files with 38 additions and 1060 deletions
|
@ -16,9 +16,6 @@ The toolchain supports:
|
|||
- iPhone Simulator (x86_64)
|
||||
- iPhone / iOS (armv7 and arm64)
|
||||
|
||||
You can select between Python 2.7 or Python 3.7 by specifying the recipes
|
||||
`python2` or `python3` when building.
|
||||
|
||||
These recipes are not ported to the new toolchain yet:
|
||||
|
||||
- lxml
|
||||
|
@ -66,7 +63,6 @@ You can list the available recipes and their versions with:
|
|||
flask master
|
||||
freetype 2.5.5
|
||||
hostlibffi 3.2.1
|
||||
hostpython2 2.7.1
|
||||
hostpython3 3.7.1
|
||||
ios master
|
||||
itsdangerous master
|
||||
|
@ -86,7 +82,6 @@ You can list the available recipes and their versions with:
|
|||
pycrypto 2.6.1
|
||||
pykka 1.2.1
|
||||
pyobjus master
|
||||
python2 2.7.1
|
||||
python3 3.7.1
|
||||
pyyaml 3.11
|
||||
sdl2 2.0.8
|
||||
|
|
|
@ -17,7 +17,7 @@ class ClickRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
cmd = sh.Command("sed")
|
||||
shprint(cmd, "-i", "", "s/setuptools/distutils.core/g", "./setup.py", _env=build_env)
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
|
|
@ -16,7 +16,7 @@ class DistributeRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ class FlaskRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
cmd = sh.Command("sed")
|
||||
shprint(cmd, "-i", "", "s/setuptools/distutils.core/g", "./setup.py", _env=build_env)
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
|
|
@ -19,7 +19,7 @@ class HostSetuptools(Recipe):
|
|||
# Setuptools version 28.3.0
|
||||
site_packages_path = join(
|
||||
self.ctx.dist_dir, 'hostpython',
|
||||
'lib', 'python2.7', 'site-packages')
|
||||
'lib', 'python3.7', 'site-packages')
|
||||
os.chdir(site_packages_path)
|
||||
with open('setuptools.pth', 'r') as f:
|
||||
setuptools_egg_path = f.read().strip('./').strip('\n')
|
||||
|
|
|
@ -7,19 +7,21 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class HostpythonAliasRecipe(Recipe):
|
||||
"""
|
||||
Note this recipe was created to handle both hostpython2 and hostpython3.
|
||||
As hostpython2 support was dropped, this could probably be simplified.
|
||||
"""
|
||||
is_alias = True
|
||||
|
||||
def init_after_import(self, ctx):
|
||||
hostpython = ctx.state.get("hostpython")
|
||||
if not hostpython:
|
||||
# search in wanted_recipes if it's the first time
|
||||
if "hostpython2" in ctx.wanted_recipes:
|
||||
hostpython = "hostpython2"
|
||||
elif "hostpython3" in ctx.wanted_recipes:
|
||||
if "hostpython3" in ctx.wanted_recipes:
|
||||
hostpython = "hostpython3"
|
||||
else:
|
||||
logger.error("No hostpython version set in the build.")
|
||||
logger.error("Add python2 or python3 in your recipes:")
|
||||
logger.error("Add python3 in your recipes:")
|
||||
logger.error("./toolchain.py build python3 ...")
|
||||
sys.exit(1)
|
||||
if hostpython:
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
posix posixmodule.c # posix (UNIX) system calls
|
||||
errno errnomodule.c # posix (UNIX) errno values
|
||||
pwd pwdmodule.c # this is needed to find out the user's home dir
|
||||
# if $HOME is not set
|
||||
_sre _sre.c # Fredrik Lundh's new regular expressions
|
||||
_codecs _codecsmodule.c # access to the builtin codecs and codec registry
|
||||
zipimport zipimport.c
|
||||
_symtable symtablemodule.c
|
||||
array arraymodule.c # array objects
|
||||
cmath cmathmodule.c # -lm # complex math library functions
|
||||
math mathmodule.c # -lm # math library functions, e.g. sin()
|
||||
_struct _struct.c # binary structure packing/unpacking
|
||||
time timemodule.c # -lm # time operations and variables
|
||||
operator operator.c # operator.add() and similar goodies
|
||||
_weakref _weakref.c # basic weak reference support
|
||||
_random _randommodule.c # Random number generator
|
||||
_collections _collectionsmodule.c # Container types
|
||||
itertools itertoolsmodule.c # Functions creating iterators for efficient looping
|
||||
strop stropmodule.c # String manipulations
|
||||
_functools _functoolsmodule.c # Tools for working with functions and callable objects
|
||||
_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
|
||||
datetime datetimemodule.c # date/time type
|
||||
_bisect _bisectmodule.c # Bisection algorithms
|
||||
fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
|
||||
select selectmodule.c # select(2); not on ancient System V
|
||||
_socket socketmodule.c
|
||||
_md5 md5module.c md5.c
|
||||
_sha shamodule.c
|
||||
_sha256 sha256module.c
|
||||
_sha512 sha512module.c
|
||||
binascii binascii.c
|
||||
parser parsermodule.c
|
||||
cStringIO cStringIO.c
|
||||
cPickle cPickle.c
|
||||
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
|
||||
xxsubtype xxsubtype.c
|
||||
unicodedata unicodedata.c # static Unicode character database
|
||||
|
||||
# Theses modules are used by Kivy inside other module
|
||||
# json in Settings, _io by zipfile...
|
||||
_json _json.c
|
||||
_io _io/bufferedio.c _io/bytesio.c _io/fileio.c _io/iobase.c _io/_iomodule.c _io/stringio.c _io/textio.c
|
||||
_heapq _heapqmodule.c
|
||||
|
||||
# Special inclusion for sqlite3
|
||||
_sqlite3 -DSQLITE_OMIT_LOAD_EXTENSION _sqlite/cache.c _sqlite/microprotocols.c _sqlite/row.c _sqlite/connection.c _sqlite/module.c _sqlite/statement.c _sqlite/cursor.c _sqlite/prepare_protocol.c _sqlite/util.c
|
||||
|
||||
# Include expat
|
||||
pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI
|
||||
|
||||
# Future (used by numpy)
|
||||
future_builtins future_builtins.c
|
||||
|
||||
# ctypes
|
||||
_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c
|
||||
|
|
@ -1 +0,0 @@
|
|||
_ssl _ssl.c -DUSE_SSL -lssl -lcrypto
|
|
@ -1,118 +0,0 @@
|
|||
from kivy_ios.toolchain import Recipe, shprint, ensure_dir
|
||||
from os.path import join, exists
|
||||
import os
|
||||
import sh
|
||||
import shutil
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Hostpython2Recipe(Recipe):
|
||||
version = "2.7.1"
|
||||
url = "https://www.python.org/ftp/python/{version}/Python-{version}.tar.bz2"
|
||||
depends = ["hostlibffi"]
|
||||
optional_depends = ["openssl"]
|
||||
archs = ["x86_64"]
|
||||
|
||||
def init_with_ctx(self, ctx):
|
||||
super(Hostpython2Recipe, self).init_with_ctx(ctx)
|
||||
self.set_hostpython(self, "2.7")
|
||||
self.ctx.so_suffix = ".so"
|
||||
self.ctx.hostpython = join(self.ctx.dist_dir, "hostpython2", "bin", "python")
|
||||
self.ctx.hostpgen = join(self.ctx.dist_dir, "hostpython2", "bin", "pgen")
|
||||
logger.info("Global: hostpython located at {}".format(self.ctx.hostpython))
|
||||
logger.info("Global: hostpgen located at {}".format(self.ctx.hostpgen))
|
||||
|
||||
def prebuild_arch(self, arch):
|
||||
if self.has_marker("patched"):
|
||||
return
|
||||
self.copy_file("_scproxy.py", "Lib/_scproxy.py")
|
||||
self.apply_patch("ssize-t-max.patch")
|
||||
self.apply_patch("dynload.patch")
|
||||
self.apply_patch("static-_sqlite3.patch")
|
||||
self.copy_file("ModulesSetup", "Modules/Setup.local")
|
||||
if "openssl.build_all" in self.ctx.state:
|
||||
self.append_file("ModulesSetup.openssl", "Modules/Setup.local")
|
||||
self.set_marker("patched")
|
||||
|
||||
def postbuild_arch(self, arch):
|
||||
makefile_fn = join(self.build_dir, "Makefile")
|
||||
with open(makefile_fn) as fd:
|
||||
lines = fd.readlines()
|
||||
for index, line in enumerate(lines):
|
||||
if "-bundle" not in line:
|
||||
continue
|
||||
parts = line.split(" ")
|
||||
parts.remove("-bundle")
|
||||
if "-bundle_loader" in parts:
|
||||
i = parts.index("-bundle_loader")
|
||||
parts.pop(i)
|
||||
parts.pop(i)
|
||||
lines[index] = " ".join(parts)
|
||||
with open(makefile_fn, "w") as fd:
|
||||
fd.writelines(lines)
|
||||
|
||||
def build_x86_64(self):
|
||||
sdk_path = sh.xcrun("--sdk", "macosx", "--show-sdk-path").strip()
|
||||
build_env = self.ctx.env.copy()
|
||||
ccache = (build_env["CCACHE"] + ' ') if 'CCACHE' in build_env else ''
|
||||
build_env["CC"] = ccache + "clang -Qunused-arguments -fcolor-diagnostics"
|
||||
build_env["LDFLAGS"] = " ".join([
|
||||
"-lsqlite3",
|
||||
"-lffi",
|
||||
"-L{}".format(join(self.ctx.dist_dir, "hostlibffi", "usr", "local", "lib"))
|
||||
])
|
||||
build_env["CFLAGS"] = " ".join([
|
||||
"--sysroot={}".format(sdk_path),
|
||||
"-arch x86_64",
|
||||
"-mmacosx-version-min=10.12",
|
||||
"-I{}".format(join(self.ctx.dist_dir, "hostlibffi", "usr", "local", "include"))
|
||||
])
|
||||
|
||||
if "openssl.build_all" in self.ctx.state:
|
||||
build_env["LDFLAGS"] += " -L{}".format(join(self.ctx.dist_dir, "lib"))
|
||||
build_env["CFLAGS"] += " -I{}".format(join(self.ctx.dist_dir, "include",
|
||||
"x86_64", "openssl"))
|
||||
|
||||
configure = sh.Command(join(self.build_dir, "configure"))
|
||||
shprint(configure,
|
||||
"--prefix={}".format(join(self.ctx.dist_dir, "hostpython2")),
|
||||
"--disable-toolbox-glue",
|
||||
"--without-gcc",
|
||||
_env=build_env)
|
||||
shprint(sh.make, "-C", self.build_dir, self.ctx.concurrent_make, "python", "Parser/pgen",
|
||||
_env=build_env)
|
||||
shutil.move("python", "hostpython2")
|
||||
shutil.move("Parser/pgen", "Parser/hostpgen")
|
||||
|
||||
def install(self):
|
||||
arch = list(self.filtered_archs)[0]
|
||||
build_env = arch.get_env()
|
||||
build_dir = self.get_build_dir(arch.arch)
|
||||
build_env["PATH"] = os.environ["PATH"]
|
||||
# Compiling sometimes looks for Python-ast.py in the 'Python' i.s.o.
|
||||
# the 'hostpython' folder. Create a symlink to fix. See issue #201
|
||||
shprint(sh.ln, "-s",
|
||||
join(build_dir, "hostpython2"),
|
||||
join(build_dir, "Python"))
|
||||
shprint(sh.make, self.ctx.concurrent_make,
|
||||
"-C", build_dir,
|
||||
"bininstall", "inclinstall",
|
||||
_env=build_env)
|
||||
pylib_dir = join(self.ctx.dist_dir, "hostpython2", "lib", "python2.7")
|
||||
if exists(pylib_dir):
|
||||
shutil.rmtree(pylib_dir)
|
||||
shutil.copytree(
|
||||
join(build_dir, "Lib"),
|
||||
pylib_dir)
|
||||
ensure_dir(join(pylib_dir, "config"))
|
||||
shutil.copy(
|
||||
join(build_dir, "Makefile"),
|
||||
join(pylib_dir, "config", "Makefile"))
|
||||
shutil.copy(
|
||||
join(build_dir, "Parser", "pgen"),
|
||||
join(self.ctx.dist_dir, "hostpython2", "bin", "pgen"))
|
||||
|
||||
|
||||
recipe = Hostpython2Recipe()
|
|
@ -1,12 +0,0 @@
|
|||
'''
|
||||
Stub functions for _scproxy on OsX
|
||||
No proxy is supported yet.
|
||||
'''
|
||||
|
||||
|
||||
def _get_proxy_settings():
|
||||
return {'exclude_simple': 1}
|
||||
|
||||
|
||||
def _get_proxies():
|
||||
return {}
|
|
@ -1,24 +0,0 @@
|
|||
--- Python-2.7.1/Python/dynload_shlib.c.orig 2011-12-05 00:00:00.000000000 +0100
|
||||
+++ Python-2.7.1/Python/dynload_shlib.c 2011-12-05 00:02:51.000000000 +0100
|
||||
@@ -84,6 +84,15 @@
|
||||
PyOS_snprintf(funcname, sizeof(funcname),
|
||||
LEAD_UNDERSCORE "init%.200s", shortname);
|
||||
|
||||
+ /* On IOS, dlopen crash as soon as we try to open one of our library.
|
||||
+ * Instead, we have done a redirection of linking to convert our .so into a
|
||||
+ * .a. Then the main executable is linked with theses symbol. So, instead
|
||||
+ * of trying to dlopen, directly do the dlsym.
|
||||
+ * -- Mathieu
|
||||
+ */
|
||||
+ return (dl_funcptr) dlsym(RTLD_MAIN_ONLY, funcname);
|
||||
+
|
||||
+#if 0
|
||||
if (fp != NULL) {
|
||||
int i;
|
||||
struct stat statb;
|
||||
@@ -140,4 +149,5 @@
|
||||
handles[nhandles++].handle = handle;
|
||||
p = (dl_funcptr) dlsym(handle, funcname);
|
||||
return p;
|
||||
+#endif
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
diff -Naur Python-2.7.1.orig/Include/pyport.h Python-2.7.1/Include/pyport.h
|
||||
--- Python-2.7.1.orig/Include/pyport.h 2010-09-14 18:10:22.000000000 +0200
|
||||
+++ Python-2.7.1/Include/pyport.h 2011-05-13 12:24:53.000000000 +0200
|
||||
@@ -186,9 +186,11 @@
|
||||
#endif
|
||||
|
||||
/* Largest positive value of type Py_ssize_t. */
|
||||
-#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
||||
+//#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
||||
/* Smallest negative value of type Py_ssize_t. */
|
||||
-#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
|
||||
+//#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
|
||||
+#define PY_SSIZE_T_MAX TMP_MAX
|
||||
+#define PY_SSIZE_T_MIN -TMP_MAX
|
||||
|
||||
#if SIZEOF_PID_T > SIZEOF_LONG
|
||||
# error "Python doesn't support sizeof(pid_t) > sizeof(long)"
|
|
@ -1,25 +0,0 @@
|
|||
--- Python-2.7.1/Modules/_sqlite/module.c.orig 2012-10-28 02:30:58.000000000 +0200
|
||||
+++ Python-2.7.1/Modules/_sqlite/module.c 2012-10-28 02:28:12.000000000 +0200
|
||||
@@ -28,6 +28,9 @@
|
||||
#include "prepare_protocol.h"
|
||||
#include "microprotocols.h"
|
||||
#include "row.h"
|
||||
+#ifndef MODULE_NAME
|
||||
+#define MODULE_NAME "_sqlite3"
|
||||
+#endif
|
||||
|
||||
#if SQLITE_VERSION_NUMBER >= 3003003
|
||||
#define HAVE_SHARED_CACHE
|
||||
--- Python-2.7.1/Modules/_sqlite/sqlitecompat.h.orig 2012-10-28 02:30:53.000000000 +0200
|
||||
+++ Python-2.7.1/Modules/_sqlite/sqlitecompat.h 2012-10-28 02:28:14.000000000 +0200
|
||||
@@ -26,6 +26,10 @@
|
||||
#ifndef PYSQLITE_COMPAT_H
|
||||
#define PYSQLITE_COMPAT_H
|
||||
|
||||
+#ifndef MODULE_NAME
|
||||
+#define MODULE_NAME "_sqlite3"
|
||||
+#endif
|
||||
+
|
||||
/* define Py_ssize_t for pre-2.5 versions of Python */
|
||||
|
||||
#if PY_VERSION_HEX < 0x02050000
|
|
@ -15,7 +15,7 @@ class ItsDangerousRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
cmd = sh.Command("sed")
|
||||
with cd(build_dir):
|
||||
shprint(cmd, "-i", "", "s/setuptools/distutils.core/g", "./setup.py", _env=build_env)
|
||||
|
|
|
@ -17,7 +17,7 @@ class Jinja2Recipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
cmd = sh.Command("sed")
|
||||
shprint(cmd, "-i", "", "s/setuptools/distutils.core/g", "./setup.py", _env=build_env)
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
|
|
@ -58,7 +58,7 @@ class KiventCoreRecipe(CythonRecipe):
|
|||
kivent_core/modules/core/setup.py
|
||||
|
||||
This constructs the equivalent of the command
|
||||
"$python2.7 setup.py build_ext install"
|
||||
"$python setup.py build_ext install"
|
||||
only with the environment variables altered for each different architecture
|
||||
The appropriate version of kivy also needs to be added to the path, and this
|
||||
differs for each architecture (i386, x86_64, armv7, etc)
|
||||
|
@ -78,7 +78,7 @@ class KiventCoreRecipe(CythonRecipe):
|
|||
build_env = self.get_recipe_env(arch)
|
||||
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
|
||||
# Add Architecture specific kivy path for 'import kivy' to PYTHONPATH
|
||||
arch_kivy_path = self.get_recipe('kivy', self.ctx).get_build_dir(arch.arch)
|
||||
|
|
|
@ -9,7 +9,7 @@ class LibZBarRecipe(Recipe):
|
|||
|
||||
url = 'https://github.com/ZBar/ZBar/archive/{version}.zip'
|
||||
|
||||
depends = ['hostpython2']
|
||||
depends = ['hostpython3']
|
||||
|
||||
library = 'zbar/.libs/libzbar.a'
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ class MarkupSafeRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
cmd = sh.Command("sed")
|
||||
shprint(cmd, "-i", "", "s/,.*Feature//g", "./setup.py", _env=build_env)
|
||||
shprint(cmd, "-i", "", "s/setuptools/distutils.core/g", "./setup.py", _env=build_env)
|
||||
|
|
|
@ -48,7 +48,7 @@ class PillowRecipe(Recipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = self.get_pil_env(arch)
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
shprint(hostpython, "-m", "easy_install",
|
||||
"--prefix", dest_dir, "-Z", "./",
|
||||
_env=build_env)
|
||||
|
|
|
@ -33,7 +33,7 @@ class PycryptoRecipe(CythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
with cd(build_dir):
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
||||
|
|
|
@ -7,16 +7,16 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class PythonAliasRecipe(Recipe):
|
||||
"""
|
||||
Note this recipe was created to handle both python2 and python3.
|
||||
As python2 support was dropped, this could probably be simplified.
|
||||
"""
|
||||
is_alias = True
|
||||
|
||||
def init_after_import(self, ctx):
|
||||
python = ctx.state.get("python")
|
||||
if not python:
|
||||
# search in wanted_recipes if it's the first time
|
||||
if "python2" in ctx.wanted_recipes:
|
||||
python = "python2"
|
||||
else:
|
||||
python = "python3"
|
||||
python = "python3"
|
||||
self.depends = [python]
|
||||
self.recipe_dir = join(ctx.root_dir, "recipes", python)
|
||||
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
#posix posixmodule.c # posix (UNIX) system calls
|
||||
#errno errnomodule.c # posix (UNIX) errno values
|
||||
#pwd pwdmodule.c # this is needed to find out the user's home dir
|
||||
# if $HOME is not set
|
||||
#_sre _sre.c # Fredrik Lundh's new regular expressions
|
||||
#_codecs _codecsmodule.c # access to the builtin codecs and codec registry
|
||||
#zipimport zipimport.c
|
||||
#_symtable symtablemodule.c
|
||||
array arraymodule.c # array objects
|
||||
cmath cmathmodule.c # -lm # complex math library functions
|
||||
math mathmodule.c # -lm # math library functions, e.g. sin()
|
||||
_struct _struct.c # binary structure packing/unpacking
|
||||
time timemodule.c # -lm # time operations and variables
|
||||
operator operator.c # operator.add() and similar goodies
|
||||
#_weakref _weakref.c # basic weak reference support
|
||||
_random _randommodule.c # Random number generator
|
||||
_collections _collectionsmodule.c # Container types
|
||||
itertools itertoolsmodule.c # Functions creating iterators for efficient looping
|
||||
strop stropmodule.c # String manipulations
|
||||
_functools _functoolsmodule.c # Tools for working with functions and callable objects
|
||||
_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
|
||||
datetime datetimemodule.c # date/time type
|
||||
_bisect _bisectmodule.c # Bisection algorithms
|
||||
fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
|
||||
select selectmodule.c # select(2); not on ancient System V
|
||||
_csv _csv.c
|
||||
_socket socketmodule.c
|
||||
_md5 md5module.c md5.c
|
||||
_sha shamodule.c
|
||||
_sha256 sha256module.c
|
||||
_sha512 sha512module.c
|
||||
binascii binascii.c
|
||||
parser parsermodule.c
|
||||
cStringIO cStringIO.c
|
||||
cPickle cPickle.c
|
||||
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
|
||||
#xxsubtype xxsubtype.c
|
||||
unicodedata unicodedata.c # static Unicode character database
|
||||
|
||||
# Theses modules are used by Kivy inside other module
|
||||
# json in Settings, _io by zipfile...
|
||||
_json _json.c
|
||||
_io _io/bufferedio.c _io/bytesio.c _io/fileio.c _io/iobase.c _io/_iomodule.c _io/stringio.c _io/textio.c
|
||||
_heapq _heapqmodule.c
|
||||
|
||||
# Special inclusion for sqlite3
|
||||
_sqlite3 -DSQLITE_OMIT_LOAD_EXTENSION _sqlite/cache.c _sqlite/microprotocols.c _sqlite/row.c _sqlite/connection.c _sqlite/module.c _sqlite/statement.c _sqlite/cursor.c _sqlite/prepare_protocol.c _sqlite/util.c
|
||||
|
||||
# Include expat
|
||||
pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI
|
||||
|
||||
# Future (used by numpy)
|
||||
future_builtins future_builtins.c
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
# Ctypes
|
||||
_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c -I$(srcdir)/../../build/include/ffi
|
|
@ -1 +0,0 @@
|
|||
_ssl _ssl.c -DUSE_SSL -lssl -lcrypto
|
|
@ -1,156 +0,0 @@
|
|||
from kivy_ios.toolchain import Recipe, shprint
|
||||
from os.path import join
|
||||
import sh
|
||||
import os
|
||||
import logging
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Python2Recipe(Recipe):
|
||||
version = "2.7.1"
|
||||
url = "https://www.python.org/ftp/python/{version}/Python-{version}.tar.bz2"
|
||||
depends = ["hostpython2", "libffi"]
|
||||
optional_depends = ["openssl"]
|
||||
library = "libpython2.7.a"
|
||||
pbx_libraries = ["libz", "libbz2", "libsqlite3"]
|
||||
|
||||
def init_with_ctx(self, ctx):
|
||||
super(Python2Recipe, self).init_with_ctx(ctx)
|
||||
self.set_python(self, "2.7")
|
||||
ctx.python_ver_dir = "python2.7"
|
||||
ctx.python_prefix = join(ctx.dist_dir, "root", "python2")
|
||||
ctx.site_packages_dir = join(
|
||||
ctx.python_prefix, "lib", ctx.python_ver_dir, "site-packages")
|
||||
|
||||
def prebuild_arch(self, arch):
|
||||
# common to all archs
|
||||
if self.has_marker("patched"):
|
||||
return
|
||||
self.apply_patch("ssize-t-max.patch")
|
||||
self.apply_patch("dynload.patch")
|
||||
self.apply_patch("static-_sqlite3.patch")
|
||||
self.copy_file("ModulesSetup", "Modules/Setup.local")
|
||||
self.copy_file("_scproxy.py", "Lib/_scproxy.py")
|
||||
self.apply_patch("xcompile.patch")
|
||||
self.apply_patch("setuppath.patch")
|
||||
self.append_file("ModulesSetup.mobile", "Modules/Setup.local")
|
||||
self.apply_patch("ipv6.patch")
|
||||
if "openssl.build_all" in self.ctx.state:
|
||||
self.append_file("ModulesSetup.openssl", "Modules/Setup.local")
|
||||
self.apply_patch("posixmodule.patch")
|
||||
|
||||
self.set_marker("patched")
|
||||
|
||||
def build_arch(self, arch):
|
||||
build_env = arch.get_env()
|
||||
configure = sh.Command(join(self.build_dir, "configure"))
|
||||
shprint(configure,
|
||||
"CC={}".format(build_env["CC"]),
|
||||
"LD={}".format(build_env["LD"]),
|
||||
"CFLAGS={}".format(build_env["CFLAGS"]),
|
||||
"LDFLAGS={} -undefined dynamic_lookup".format(build_env["LDFLAGS"]),
|
||||
"--without-pymalloc",
|
||||
"--disable-toolbox-glue",
|
||||
"--host={}-apple-darwin".format(arch),
|
||||
"--prefix=/python",
|
||||
"--with-system-ffi",
|
||||
"--without-doc-strings",
|
||||
"--enable-ipv6",
|
||||
_env=build_env)
|
||||
|
||||
self._patch_pyconfig()
|
||||
self.apply_patch("ctypes_duplicate.patch")
|
||||
self.apply_patch("ctypes_duplicate_longdouble.patch")
|
||||
|
||||
shprint(sh.make, self.ctx.concurrent_make,
|
||||
"CROSS_COMPILE_TARGET=yes",
|
||||
"HOSTPYTHON={}".format(self.ctx.hostpython),
|
||||
"HOSTPGEN={}".format(self.ctx.hostpgen))
|
||||
|
||||
def install(self):
|
||||
arch = list(self.filtered_archs)[0]
|
||||
build_env = arch.get_env()
|
||||
build_dir = self.get_build_dir(arch.arch)
|
||||
build_env["PATH"] = os.environ["PATH"]
|
||||
shprint(sh.make, self.ctx.concurrent_make,
|
||||
"-C", build_dir,
|
||||
"install",
|
||||
"CROSS_COMPILE_TARGET=yes",
|
||||
"HOSTPYTHON={}".format(self.ctx.hostpython),
|
||||
"prefix={}".format(join(self.ctx.dist_dir, "root", "python2")),
|
||||
_env=build_env)
|
||||
self.reduce_python()
|
||||
|
||||
def _patch_pyconfig(self):
|
||||
# patch pyconfig to remove some functionnalities
|
||||
# (to have uniform build accross all platfors)
|
||||
# this was before in a patch itself, but because the different
|
||||
# architecture can lead to different pyconfig.h, we would need one patch
|
||||
# per arch. Instead, express here the line we don't want / we want.
|
||||
pyconfig = join(self.build_dir, "pyconfig.h")
|
||||
|
||||
def _remove_line(lines, pattern):
|
||||
for line in lines[:]:
|
||||
if pattern in line:
|
||||
lines.remove(line)
|
||||
with open(pyconfig, "r") as fd:
|
||||
lines = fd.readlines()
|
||||
_remove_line(lines, "#define HAVE_BIND_TEXTDOMAIN_CODESET 1")
|
||||
_remove_line(lines, "#define HAVE_FINITE 1")
|
||||
_remove_line(lines, "#define HAVE_FSEEK64 1")
|
||||
_remove_line(lines, "#define HAVE_FTELL64 1")
|
||||
_remove_line(lines, "#define HAVE_GAMMA 1")
|
||||
_remove_line(lines, "#define HAVE_GETHOSTBYNAME_R 1")
|
||||
_remove_line(lines, "#define HAVE_GETHOSTBYNAME_R_6_ARG 1")
|
||||
_remove_line(lines, "#define HAVE_GETRESGID 1")
|
||||
_remove_line(lines, "#define HAVE_GETRESUID 1")
|
||||
_remove_line(lines, "#define HAVE_GETSPENT 1")
|
||||
_remove_line(lines, "#define HAVE_GETSPNAM 1")
|
||||
_remove_line(lines, "#define HAVE_MREMAP 1")
|
||||
_remove_line(lines, "#define HAVE_PLOCK 1")
|
||||
_remove_line(lines, "#define HAVE_SEM_TIMEDWAIT 1")
|
||||
_remove_line(lines, "#define HAVE_SETRESGID 1")
|
||||
_remove_line(lines, "#define HAVE_SETRESUID 1")
|
||||
_remove_line(lines, "#define HAVE_TMPNAM_R 1")
|
||||
_remove_line(lines, "#define HAVE__GETPTY 1")
|
||||
lines.append("#define HAVE_GETHOSTBYNAME 1\n")
|
||||
with open(pyconfig, "w") as fd:
|
||||
fd.writelines(lines)
|
||||
|
||||
def reduce_python(self):
|
||||
logger.info("Reduce python")
|
||||
oldpwd = os.getcwd()
|
||||
try:
|
||||
logger.info("Remove files unlikely to be used")
|
||||
os.chdir(join(self.ctx.dist_dir, "root", "python2"))
|
||||
sh.rm("-rf", "share")
|
||||
sh.rm("-rf", "bin")
|
||||
os.chdir(join(self.ctx.dist_dir, "root", "python2", "lib"))
|
||||
sh.rm("-rf", "pkgconfig")
|
||||
sh.rm("libpython2.7.a")
|
||||
os.chdir(join(self.ctx.dist_dir, "root", "python2", "lib", "python2.7"))
|
||||
sh.find(".", "-iname", "*.pyc", "-exec", "rm", "{}", ";")
|
||||
sh.find(".", "-iname", "*.py", "-exec", "rm", "{}", ";")
|
||||
sh.rm("-rf", "wsgiref", "bsddb", "curses", "idlelib", "hotshot")
|
||||
sh.rm("-rf", sh.glob("lib*"))
|
||||
|
||||
# now create the zip.
|
||||
logger.info("Create a python27.zip")
|
||||
sh.rm("config/libpython2.7.a")
|
||||
sh.rm("config/python.o")
|
||||
sh.rm("config/config.c.in")
|
||||
sh.rm("config/makesetup")
|
||||
sh.rm("config/install-sh")
|
||||
sh.mv("config", "..")
|
||||
sh.mv("site-packages", "..")
|
||||
sh.zip("-r", "../python27.zip", sh.glob("*"))
|
||||
sh.rm("-rf", sh.glob("*"))
|
||||
sh.mv("../config", ".")
|
||||
sh.mv("../site-packages", ".")
|
||||
finally:
|
||||
os.chdir(oldpwd)
|
||||
|
||||
|
||||
recipe = Python2Recipe()
|
|
@ -1,12 +0,0 @@
|
|||
'''
|
||||
Stub functions for _scproxy on iOS
|
||||
No proxy is supported yet.
|
||||
'''
|
||||
|
||||
|
||||
def _get_proxy_settings():
|
||||
return {'exclude_simple': 1}
|
||||
|
||||
|
||||
def _get_proxies():
|
||||
return {}
|
|
@ -1,34 +0,0 @@
|
|||
--- Python2.7-old/Modules/_ctypes/cfield.c 2010-05-09 16:46:46.000000000 +0200
|
||||
+++ Python2.7-new/Modules/_ctypes/cfield.c 2013-08-27 00:21:15.000000000 +0200
|
||||
@@ -1747,24 +1747,6 @@
|
||||
} ffi_type;
|
||||
*/
|
||||
|
||||
-/* align and size are bogus for void, but they must not be zero */
|
||||
-ffi_type ffi_type_void = { 1, 1, FFI_TYPE_VOID };
|
||||
-
|
||||
-ffi_type ffi_type_uint8 = { 1, 1, FFI_TYPE_UINT8 };
|
||||
-ffi_type ffi_type_sint8 = { 1, 1, FFI_TYPE_SINT8 };
|
||||
-
|
||||
-ffi_type ffi_type_uint16 = { 2, 2, FFI_TYPE_UINT16 };
|
||||
-ffi_type ffi_type_sint16 = { 2, 2, FFI_TYPE_SINT16 };
|
||||
-
|
||||
-ffi_type ffi_type_uint32 = { 4, 4, FFI_TYPE_UINT32 };
|
||||
-ffi_type ffi_type_sint32 = { 4, 4, FFI_TYPE_SINT32 };
|
||||
-
|
||||
-ffi_type ffi_type_uint64 = { 8, LONG_LONG_ALIGN, FFI_TYPE_UINT64 };
|
||||
-ffi_type ffi_type_sint64 = { 8, LONG_LONG_ALIGN, FFI_TYPE_SINT64 };
|
||||
-
|
||||
-ffi_type ffi_type_float = { sizeof(float), FLOAT_ALIGN, FFI_TYPE_FLOAT };
|
||||
-ffi_type ffi_type_double = { sizeof(double), DOUBLE_ALIGN, FFI_TYPE_DOUBLE };
|
||||
-
|
||||
#ifdef ffi_type_longdouble
|
||||
#undef ffi_type_longdouble
|
||||
#endif
|
||||
@@ -1772,6 +1754,4 @@
|
||||
ffi_type ffi_type_longdouble = { sizeof(long double), LONGDOUBLE_ALIGN,
|
||||
FFI_TYPE_LONGDOUBLE };
|
||||
|
||||
-ffi_type ffi_type_pointer = { sizeof(void *), VOID_P_ALIGN, FFI_TYPE_POINTER };
|
||||
-
|
||||
/*---------------- EOF ----------------*/
|
|
@ -1,17 +0,0 @@
|
|||
diff -Naur Python-2.7.1.orig/Modules/_ctypes/cfield.c Python-2.7.1/Modules/_ctypes/cfield.c
|
||||
--- Python-2.7.1.orig/Modules/_ctypes/cfield.c 2015-02-11 13:00:42.000000000 +0100
|
||||
+++ Python-2.7.1/Modules/_ctypes/cfield.c 2015-02-11 13:01:12.000000000 +0100
|
||||
@@ -1747,11 +1747,12 @@
|
||||
} ffi_type;
|
||||
*/
|
||||
|
||||
+#if 0
|
||||
#ifdef ffi_type_longdouble
|
||||
#undef ffi_type_longdouble
|
||||
#endif
|
||||
/* This is already defined on OSX */
|
||||
ffi_type ffi_type_longdouble = { sizeof(long double), LONGDOUBLE_ALIGN,
|
||||
FFI_TYPE_LONGDOUBLE };
|
||||
-
|
||||
+#endif
|
||||
/*---------------- EOF ----------------*/
|
|
@ -1,24 +0,0 @@
|
|||
--- Python-2.7.1/Python/dynload_shlib.c.orig 2011-12-05 00:00:00.000000000 +0100
|
||||
+++ Python-2.7.1/Python/dynload_shlib.c 2011-12-05 00:02:51.000000000 +0100
|
||||
@@ -84,6 +84,15 @@
|
||||
PyOS_snprintf(funcname, sizeof(funcname),
|
||||
LEAD_UNDERSCORE "init%.200s", shortname);
|
||||
|
||||
+ /* On IOS, dlopen crash as soon as we try to open one of our library.
|
||||
+ * Instead, we have done a redirection of linking to convert our .so into a
|
||||
+ * .a. Then the main executable is linked with theses symbol. So, instead
|
||||
+ * of trying to dlopen, directly do the dlsym.
|
||||
+ * -- Mathieu
|
||||
+ */
|
||||
+ return (dl_funcptr) dlsym(RTLD_SELF, funcname);
|
||||
+
|
||||
+#if 0
|
||||
if (fp != NULL) {
|
||||
int i;
|
||||
struct stat statb;
|
||||
@@ -140,4 +149,5 @@
|
||||
handles[nhandles++].handle = handle;
|
||||
p = (dl_funcptr) dlsym(handle, funcname);
|
||||
return p;
|
||||
+#endif
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
Index: Modules/posixmodule.c
|
||||
===================================================================
|
||||
--- Modules/posixmodule.c (revision 52827)
|
||||
+++ Modules/posixmodule.c (working copy)
|
||||
@@ -314,7 +314,7 @@
|
||||
#endif
|
||||
|
||||
/* Return a dictionary corresponding to the POSIX environment table */
|
||||
-#ifdef WITH_NEXT_FRAMEWORK
|
||||
+#ifdef __APPLE__
|
||||
/* On Darwin/MacOSX a shared library or framework has no access to
|
||||
** environ directly, we must obtain it with _NSGetEnviron().
|
||||
*/
|
||||
@@ -332,7 +332,7 @@
|
||||
d = PyDict_New();
|
||||
if (d == NULL)
|
||||
return NULL;
|
||||
-#ifdef WITH_NEXT_FRAMEWORK
|
||||
+#ifdef __APPLE__
|
||||
if (environ == NULL)
|
||||
environ = *_NSGetEnviron();
|
||||
#endif
|
||||
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
--- Python-2.7.1.orig/configure.in 2017-05-14 19:54:10.000000000 +0200
|
||||
+++ Python-2.7.1/configure.in 2017-05-14 19:56:01.000000000 +0200
|
||||
@@ -3111,17 +3111,17 @@
|
||||
|
||||
AC_MSG_RESULT($ac_cv_buggy_getaddrinfo)
|
||||
|
||||
-if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes
|
||||
-then
|
||||
- if test $ipv6 = yes
|
||||
- then
|
||||
- echo 'Fatal: You must get working getaddrinfo() function.'
|
||||
- echo ' or you can specify "--disable-ipv6"'.
|
||||
- exit 1
|
||||
- fi
|
||||
-else
|
||||
- AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
|
||||
-fi
|
||||
+# if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes
|
||||
+# then
|
||||
+# if test $ipv6 = yes
|
||||
+# then
|
||||
+# echo 'Fatal: You must get working getaddrinfo() function.'
|
||||
+# echo ' or you can specify "--disable-ipv6"'.
|
||||
+# exit 1
|
||||
+# fi
|
||||
+# else
|
||||
+# AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
|
||||
+# fi
|
||||
|
||||
AC_CHECK_FUNCS(getnameinfo)
|
||||
|
||||
--- Python-2.7.1.orig/configure 2017-05-14 20:22:04.000000000 +0200
|
||||
+++ Python-2.7.1/configure 2017-05-14 20:22:03.000000000 +0200
|
||||
@@ -10802,19 +10802,19 @@
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5
|
||||
$as_echo "$ac_cv_buggy_getaddrinfo" >&6; }
|
||||
|
||||
-if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes
|
||||
-then
|
||||
- if test $ipv6 = yes
|
||||
- then
|
||||
- echo 'Fatal: You must get working getaddrinfo() function.'
|
||||
- echo ' or you can specify "--disable-ipv6"'.
|
||||
- exit 1
|
||||
- fi
|
||||
-else
|
||||
+# if test $have_getaddrinfo = no -o "$ac_cv_buggy_getaddrinfo" = yes
|
||||
+# then
|
||||
+# if test $ipv6 = yes
|
||||
+# then
|
||||
+# echo 'Fatal: You must get working getaddrinfo() function.'
|
||||
+# echo ' or you can specify "--disable-ipv6"'.
|
||||
+# exit 1
|
||||
+# fi
|
||||
+# else
|
||||
|
||||
$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h
|
||||
|
||||
-fi
|
||||
+# fi
|
||||
|
||||
for ac_func in getnameinfo
|
||||
do :
|
|
@ -1,16 +0,0 @@
|
|||
Index: Python-2.7.1/Modules/posixmodule.c
|
||||
IDEA additional info:
|
||||
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
||||
<+>UTF-8
|
||||
===================================================================
|
||||
--- Python-2.7.1/Modules/posixmodule.c (date 1290868829000)
|
||||
+++ Python-2.7.1/Modules/posixmodule.c (revision )
|
||||
@@ -2644,7 +2644,7 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
-
|
||||
+#undef HAVE_SYSTEM
|
||||
#ifdef HAVE_SYSTEM
|
||||
PyDoc_STRVAR(posix_system__doc__,
|
||||
"system(command) -> exit_status\n\n\
|
|
@ -1,159 +0,0 @@
|
|||
--- Python2.7-old/pyconfig.h 2013-08-26 19:26:05.000000000 +0200
|
||||
+++ Python2.7-new/pyconfig.h 2013-08-27 00:11:06.000000000 +0200
|
||||
@@ -72,7 +72,7 @@
|
||||
/* #undef HAVE_ATTRIBUTE_FORMAT_PARSETUPLE */
|
||||
|
||||
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
|
||||
-#define HAVE_BIND_TEXTDOMAIN_CODESET 1
|
||||
+/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */
|
||||
|
||||
/* Define to 1 if you have the <bluetooth/bluetooth.h> header file. */
|
||||
/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */
|
||||
@@ -218,7 +218,7 @@
|
||||
/* #undef HAVE_FDATASYNC */
|
||||
|
||||
/* Define to 1 if you have the `finite' function. */
|
||||
-#define HAVE_FINITE 1
|
||||
+/* #undef HAVE_FINITE */
|
||||
|
||||
/* Define to 1 if you have the `flock' function. */
|
||||
#define HAVE_FLOCK 1
|
||||
@@ -233,7 +233,7 @@
|
||||
#define HAVE_FPATHCONF 1
|
||||
|
||||
/* Define to 1 if you have the `fseek64' function. */
|
||||
-#define HAVE_FSEEK64 1
|
||||
+/* #undef HAVE_FSEEK64 */
|
||||
|
||||
/* Define to 1 if you have the `fseeko' function. */
|
||||
#define HAVE_FSEEKO 1
|
||||
@@ -245,7 +245,7 @@
|
||||
#define HAVE_FSYNC 1
|
||||
|
||||
/* Define to 1 if you have the `ftell64' function. */
|
||||
-#define HAVE_FTELL64 1
|
||||
+/* #undef HAVE_FTELL64 */
|
||||
|
||||
/* Define to 1 if you have the `ftello' function. */
|
||||
#define HAVE_FTELLO 1
|
||||
@@ -260,7 +260,7 @@
|
||||
#define HAVE_GAI_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the `gamma' function. */
|
||||
-#define HAVE_GAMMA 1
|
||||
+/* #undef HAVE_GAMMA */
|
||||
|
||||
/* Define if we can use gcc inline assembler to get and set x87 control word
|
||||
*/
|
||||
@@ -279,10 +279,10 @@
|
||||
#define HAVE_GETGROUPS 1
|
||||
|
||||
/* Define to 1 if you have the `gethostbyname' function. */
|
||||
-/* #undef HAVE_GETHOSTBYNAME */
|
||||
+#define HAVE_GETHOSTBYNAME 1
|
||||
|
||||
/* Define this if you have some version of gethostbyname_r() */
|
||||
-#define HAVE_GETHOSTBYNAME_R 1
|
||||
+/* #undef HAVE_GETHOSTBYNAME_R */
|
||||
|
||||
/* Define this if you have the 3-arg version of gethostbyname_r(). */
|
||||
/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */
|
||||
@@ -291,7 +291,7 @@
|
||||
/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */
|
||||
|
||||
/* Define this if you have the 6-arg version of gethostbyname_r(). */
|
||||
-#define HAVE_GETHOSTBYNAME_R_6_ARG 1
|
||||
+/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */
|
||||
|
||||
/* Define to 1 if you have the `getitimer' function. */
|
||||
#define HAVE_GETITIMER 1
|
||||
@@ -327,19 +327,19 @@
|
||||
#define HAVE_GETPWENT 1
|
||||
|
||||
/* Define to 1 if you have the `getresgid' function. */
|
||||
-#define HAVE_GETRESGID 1
|
||||
+/* #undef HAVE_GETRESGID */
|
||||
|
||||
/* Define to 1 if you have the `getresuid' function. */
|
||||
-#define HAVE_GETRESUID 1
|
||||
+/* #undef HAVE_GETRESUID */
|
||||
|
||||
/* Define to 1 if you have the `getsid' function. */
|
||||
#define HAVE_GETSID 1
|
||||
|
||||
/* Define to 1 if you have the `getspent' function. */
|
||||
-#define HAVE_GETSPENT 1
|
||||
+/* #undef HAVE_GETSPENT */
|
||||
|
||||
/* Define to 1 if you have the `getspnam' function. */
|
||||
-#define HAVE_GETSPNAM 1
|
||||
+/* #undef HAVE_GETSPNAM */
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
@@ -465,7 +465,7 @@
|
||||
#define HAVE_MKTIME 1
|
||||
|
||||
/* Define to 1 if you have the `mremap' function. */
|
||||
-#define HAVE_MREMAP 1
|
||||
+/* #undef HAVE_MREMAP */
|
||||
|
||||
/* Define to 1 if you have the <ncurses.h> header file. */
|
||||
/* #undef HAVE_NCURSES_H */
|
||||
@@ -492,7 +492,7 @@
|
||||
#define HAVE_PAUSE 1
|
||||
|
||||
/* Define to 1 if you have the `plock' function. */
|
||||
-#define HAVE_PLOCK 1
|
||||
+/* #undef HAVE_PLOCK */
|
||||
|
||||
/* Define to 1 if you have the `poll' function. */
|
||||
#define HAVE_POLL 1
|
||||
@@ -567,7 +567,7 @@
|
||||
#define HAVE_SEM_OPEN 1
|
||||
|
||||
/* Define to 1 if you have the `sem_timedwait' function. */
|
||||
-#define HAVE_SEM_TIMEDWAIT 1
|
||||
+/* #undef HAVE_SEM_TIMEDWAIT */
|
||||
|
||||
/* Define to 1 if you have the `sem_unlink' function. */
|
||||
#define HAVE_SEM_UNLINK 1
|
||||
@@ -600,10 +600,10 @@
|
||||
#define HAVE_SETREGID 1
|
||||
|
||||
/* Define to 1 if you have the `setresgid' function. */
|
||||
-#define HAVE_SETRESGID 1
|
||||
+/* #undef HAVE_SETRESGID */
|
||||
|
||||
/* Define to 1 if you have the `setresuid' function. */
|
||||
-#define HAVE_SETRESUID 1
|
||||
+/* #undef HAVE_SETRESUID */
|
||||
|
||||
/* Define to 1 if you have the `setreuid' function. */
|
||||
#define HAVE_SETREUID 1
|
||||
@@ -829,7 +829,7 @@
|
||||
#define HAVE_TMPNAM 1
|
||||
|
||||
/* Define to 1 if you have the `tmpnam_r' function. */
|
||||
-#define HAVE_TMPNAM_R 1
|
||||
+/* #undef HAVE_TMPNAM_R */
|
||||
|
||||
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
|
||||
`HAVE_STRUCT_TM_TM_ZONE' instead. */
|
||||
@@ -894,7 +894,7 @@
|
||||
#define HAVE_ZLIB_COPY 1
|
||||
|
||||
/* Define to 1 if you have the `_getpty' function. */
|
||||
-#define HAVE__GETPTY 1
|
||||
+/* #undef HAVE__GETPTY */
|
||||
|
||||
/* Define if you are using Mach cthreads directly under /include */
|
||||
/* #undef HURD_C_THREADS */
|
||||
@@ -1245,5 +1245,4 @@
|
||||
#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
|
||||
#endif
|
||||
|
||||
-#endif /*Py_PYCONFIG_H*/
|
||||
-
|
||||
+#endif /*Py_PYCONFIG_H*/
|
||||
\ No newline at end of file
|
|
@ -1,11 +0,0 @@
|
|||
--- Python-2.7.1/setup.py.orig 2013-10-25 17:28:03.000000000 +0200
|
||||
+++ Python-2.7.1/setup.py 2013-10-25 17:27:56.000000000 +0200
|
||||
@@ -87,7 +87,7 @@
|
||||
f = os.path.join(sysroot, dir[1:], filename)
|
||||
|
||||
if os.path.exists(f):
|
||||
- return [dir]
|
||||
+ return [os.path.dirname(f)]
|
||||
|
||||
# Not found anywhere
|
||||
return None
|
|
@ -1,17 +0,0 @@
|
|||
diff -Naur Python-2.7.1.orig/Include/pyport.h Python-2.7.1/Include/pyport.h
|
||||
--- Python-2.7.1.orig/Include/pyport.h 2010-09-14 18:10:22.000000000 +0200
|
||||
+++ Python-2.7.1/Include/pyport.h 2011-05-13 12:24:53.000000000 +0200
|
||||
@@ -186,9 +186,11 @@
|
||||
#endif
|
||||
|
||||
/* Largest positive value of type Py_ssize_t. */
|
||||
-#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
||||
+//#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
||||
/* Smallest negative value of type Py_ssize_t. */
|
||||
-#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
|
||||
+//#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
|
||||
+#define PY_SSIZE_T_MAX TMP_MAX
|
||||
+#define PY_SSIZE_T_MIN -TMP_MAX
|
||||
|
||||
#if SIZEOF_PID_T > SIZEOF_LONG
|
||||
# error "Python doesn't support sizeof(pid_t) > sizeof(long)"
|
|
@ -1,25 +0,0 @@
|
|||
--- Python-2.7.1/Modules/_sqlite/module.c.orig 2012-10-28 02:30:58.000000000 +0200
|
||||
+++ Python-2.7.1/Modules/_sqlite/module.c 2012-10-28 02:28:12.000000000 +0200
|
||||
@@ -28,6 +28,9 @@
|
||||
#include "prepare_protocol.h"
|
||||
#include "microprotocols.h"
|
||||
#include "row.h"
|
||||
+#ifndef MODULE_NAME
|
||||
+#define MODULE_NAME "_sqlite3"
|
||||
+#endif
|
||||
|
||||
#if SQLITE_VERSION_NUMBER >= 3003003
|
||||
#define HAVE_SHARED_CACHE
|
||||
--- Python-2.7.1/Modules/_sqlite/sqlitecompat.h.orig 2012-10-28 02:30:53.000000000 +0200
|
||||
+++ Python-2.7.1/Modules/_sqlite/sqlitecompat.h 2012-10-28 02:28:14.000000000 +0200
|
||||
@@ -26,6 +26,10 @@
|
||||
#ifndef PYSQLITE_COMPAT_H
|
||||
#define PYSQLITE_COMPAT_H
|
||||
|
||||
+#ifndef MODULE_NAME
|
||||
+#define MODULE_NAME "_sqlite3"
|
||||
+#endif
|
||||
+
|
||||
/* define Py_ssize_t for pre-2.5 versions of Python */
|
||||
|
||||
#if PY_VERSION_HEX < 0x02050000
|
|
@ -1,138 +0,0 @@
|
|||
diff -Naur Python-2.7-old/Makefile.pre.in Python-2.7-new/Makefile.pre.in
|
||||
--- Python-2.7-old/Makefile.pre.in 2010-04-11 17:10:46.000000000 -0700
|
||||
+++ Python-2.7-new/Makefile.pre.in 2010-07-09 13:40:47.000000000 -0700
|
||||
@@ -179,6 +179,7 @@
|
||||
|
||||
PYTHON= python$(EXE)
|
||||
BUILDPYTHON= python$(BUILDEXE)
|
||||
+HOSTPYTHON= ./$(BUILDPYTHON)
|
||||
|
||||
# The task to run while instrument when building the profile-opt target
|
||||
PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
|
||||
@@ -212,6 +213,8 @@
|
||||
# Parser
|
||||
PGEN= Parser/pgen$(EXE)
|
||||
|
||||
+HOSTPGEN= $(PGEN)
|
||||
+
|
||||
POBJS= \
|
||||
Parser/acceler.o \
|
||||
Parser/grammar1.o \
|
||||
@@ -404,8 +407,8 @@
|
||||
# Build the shared modules
|
||||
sharedmods: $(BUILDPYTHON)
|
||||
@case $$MAKEFLAGS in \
|
||||
- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
|
||||
- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
||||
+ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' PYTHONXCPREFIX='$(DESTDIR)$(prefix)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
|
||||
+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' PYTHONXCPREFIX='$(DESTDIR)$(prefix)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
|
||||
esac
|
||||
|
||||
# Build static library
|
||||
@@ -538,7 +541,7 @@
|
||||
|
||||
$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
|
||||
-@$(INSTALL) -d Include
|
||||
- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||||
+ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
||||
|
||||
$(PGEN): $(PGENOBJS)
|
||||
$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
|
||||
@@ -919,26 +922,26 @@
|
||||
done; \
|
||||
done
|
||||
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
|
||||
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST) -f \
|
||||
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||||
$(DESTDIR)$(LIBDEST)
|
||||
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST) -f \
|
||||
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
||||
$(DESTDIR)$(LIBDEST)
|
||||
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST)/site-packages -f \
|
||||
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
+ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
||||
-d $(LIBDEST)/site-packages -f \
|
||||
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
||||
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
||||
- ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
|
||||
+ $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
|
||||
|
||||
# Create the PLATDIR source directory, if one wasn't distributed..
|
||||
$(srcdir)/Lib/$(PLATDIR):
|
||||
@@ -1042,8 +1045,10 @@
|
||||
|
||||
# Install the dynamically loadable modules
|
||||
# This goes into $(exec_prefix)
|
||||
-sharedinstall: sharedmods
|
||||
- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
|
||||
+sharedinstall: sharedmods
|
||||
+ CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
|
||||
+ $(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \
|
||||
+ --skip-build \
|
||||
--prefix=$(prefix) \
|
||||
--install-scripts=$(BINDIR) \
|
||||
--install-platlib=$(DESTSHARED) \
|
||||
diff -Naur Python-2.7-old/setup.py Python-2.7-new/setup.py
|
||||
--- Python-2.7-old/setup.py 2010-06-27 05:36:16.000000000 -0700
|
||||
+++ Python-2.7-new/setup.py 2010-07-09 13:54:29.000000000 -0700
|
||||
@@ -23,6 +23,10 @@
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
|
||||
+# _ctypes fails to cross-compile due to the libffi configure script.
|
||||
+if os.environ.has_key('PYTHONXCPREFIX'):
|
||||
+ disabled_module_list.append('_ctypes')
|
||||
+
|
||||
def add_dir_to_list(dirlist, dir):
|
||||
"""Add the directory 'dir' to the list 'dirlist' (at the front) if
|
||||
1) 'dir' is not already in 'dirlist'
|
||||
@@ -278,6 +282,14 @@
|
||||
(ext.name, sys.exc_info()[1]))
|
||||
self.failed.append(ext.name)
|
||||
return
|
||||
+
|
||||
+ # Inport check will not work when cross-compiling.
|
||||
+ if os.environ.has_key('PYTHONXCPREFIX'):
|
||||
+ self.announce(
|
||||
+ 'WARNING: skipping inport check for cross-compiled: "%s"' %
|
||||
+ ext.name)
|
||||
+ return
|
||||
+
|
||||
# Workaround for Mac OS X: The Carbon-based modules cannot be
|
||||
# reliably imported into a command-line Python
|
||||
if 'Carbon' in ext.extra_link_args:
|
||||
|
||||
--- Python-2.7Orig/configure 2011-04-29 22:30:59.231331437 +1000
|
||||
+++ Python-2.7/configure 2010-05-29 01:28:47.000000000 +1000
|
||||
@@ -13517,7 +13517,7 @@
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test "$cross_compiling" = yes; then :
|
||||
- ac_cv_have_long_long_format=no
|
||||
+ ac_cv_have_long_long_format="cross -- assuming yes"
|
||||
else
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
@@ -13569,7 +13569,7 @@
|
||||
$as_echo "$ac_cv_have_long_long_format" >&6; }
|
||||
fi
|
||||
|
||||
-if test "$ac_cv_have_long_long_format" = yes
|
||||
+if test "$ac_cv_have_long_long_format" != no
|
||||
then
|
||||
|
||||
$as_echo "#define PY_FORMAT_LONG_LONG \"ll\"" >>confdefs.h
|
||||
|
|
@ -16,7 +16,7 @@ class PyYamlRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = os.path.join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = os.path.join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = os.path.join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ class WerkzeugRecipe(PythonRecipe):
|
|||
hostpython = sh.Command(self.ctx.hostpython)
|
||||
build_env = arch.get_env()
|
||||
dest_dir = join(self.ctx.dist_dir, "root", "python")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
shprint(hostpython, "setup.py", "install", "--prefix", dest_dir, _env=build_env)
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ class ZbarLightRecipe(Recipe):
|
|||
version = '1.2'
|
||||
url = 'https://github.com/Polyconseil/zbarlight/archive/{version}.tar.gz'
|
||||
library = "zbarlight.a"
|
||||
depends = ['hostpython2', 'python2', 'libzbar']
|
||||
depends = ['hostpython3', 'python3', 'libzbar']
|
||||
pbx_libraries = ["libz", "libbz2", 'libc++', 'libsqlite3', 'CoreMotion']
|
||||
include_per_arch = True
|
||||
|
||||
|
@ -24,7 +24,7 @@ class ZbarLightRecipe(Recipe):
|
|||
build_env["ARCH"] = arch.arch
|
||||
build_env["C_INCLUDE_PATH"] = join(arch.sysroot, "usr", "include")
|
||||
build_env["LIBRARY_PATH"] = join(arch.sysroot, "usr", "lib")
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python2.7', 'site-packages')
|
||||
build_env['PYTHONPATH'] = join(dest_dir, 'lib', 'python3.7', 'site-packages')
|
||||
build_env["CFLAGS"] = " ".join([
|
||||
" -I{}".format(join(self.ctx.dist_dir, "include", arch.arch, "libzbar", 'zbar')) +
|
||||
" -arch {}".format(arch.arch)
|
||||
|
@ -44,15 +44,15 @@ class ZbarLightRecipe(Recipe):
|
|||
arch = list(self.filtered_archs)[0]
|
||||
build_dir = join(self.get_build_dir(arch.arch), 'build',
|
||||
'lib.macosx-10.13-x86_64-2.7', 'zbarlight')
|
||||
dist_dir = join(self.ctx.dist_dir, 'root', 'python2', 'lib',
|
||||
'python2.7', 'site-packages', 'zbarlight')
|
||||
dist_dir = join(self.ctx.dist_dir, 'root', 'python3', 'lib',
|
||||
'python3.7', 'site-packages', 'zbarlight')
|
||||
# Patch before Copying
|
||||
# self.apply_patch("zbarlight_1_2.patch")#Issue getting the version, hard coding for now
|
||||
copy_tree(build_dir, dist_dir)
|
||||
os.remove(join(dist_dir, '_zbarlight.c'))
|
||||
|
||||
def _patch__init__(self):
|
||||
init = join(self.ctx.dist_dir, 'root', 'python2', 'lib', 'python2.7',
|
||||
init = join(self.ctx.dist_dir, 'root', 'python3', 'lib', 'python3.7',
|
||||
'site-packages', 'zbarlight', "__init__.py")
|
||||
shprint( # noqa: F821
|
||||
sh.sed, "-i.bak",
|
||||
|
|
|
@ -709,7 +709,6 @@ class Recipe(object):
|
|||
hostpython))
|
||||
logger.error("You can have only one hostpython version compiled")
|
||||
sys.exit(1)
|
||||
self.ctx.python_major = version.split('.')[0]
|
||||
self.ctx.hostpython_ver = version
|
||||
self.ctx.hostpython_recipe = instance
|
||||
|
||||
|
@ -1388,9 +1387,9 @@ pip Install a pip dependency into the distribution
|
|||
ensure_recipes_loaded(ctx)
|
||||
|
||||
if not hasattr(ctx, "python_ver"):
|
||||
logger.error("No python recipes compiled!")
|
||||
logger.error("You must have compiled at least python2 or")
|
||||
logger.error("python3 recipes to be able to create a project.")
|
||||
logger.error("No python recipe compiled!")
|
||||
logger.error("You must have compiled at least python3")
|
||||
logger.error("recipe to be able to create a project.")
|
||||
sys.exit(1)
|
||||
|
||||
template_dir = join(curdir, "tools", "templates")
|
||||
|
@ -1402,8 +1401,6 @@ pip Install a pip dependency into the distribution
|
|||
"project_dir": realpath(args.directory),
|
||||
"version": "1.0.0",
|
||||
"dist_dir": ctx.dist_dir,
|
||||
"python_version": ctx.python_ver,
|
||||
"python_major": ctx.python_major
|
||||
}
|
||||
cookiecutter(template_dir, no_input=True, extra_context=context)
|
||||
filename = join(
|
||||
|
|
|
@ -5,7 +5,5 @@
|
|||
"kivy_dir": "",
|
||||
"project_dir": "",
|
||||
"version": "1.0.0",
|
||||
"dist_dir": "",
|
||||
"python_version": "",
|
||||
"python_major": ""
|
||||
}
|
||||
"dist_dir": ""
|
||||
}
|
||||
|
|
|
@ -33,8 +33,8 @@
|
|||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
2CB5F34517D5233A006187AB /* bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bridge.h; sourceTree = SOURCE_ROOT; };
|
||||
2CB5F34617D5233A006187AB /* bridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = bridge.m; sourceTree = SOURCE_ROOT; };
|
||||
59738AB41A8BB5D8001B2C0C /* lib */ = {isa = PBXFileReference; lastKnownFileType = folder; name = lib; path = {{ cookiecutter.dist_dir }}/root/python{{ cookiecutter.python_major }}/lib; sourceTree = "<group>"; };
|
||||
59FDEA8A21E7D34E004E6ECE /* include */ = {isa = PBXFileReference; lastKnownFileType = folder; name = include; path = {{ cookiecutter.dist_dir }}/root/python{{ cookiecutter.python_major }}/include; sourceTree = "<group>"; };
|
||||
59738AB41A8BB5D8001B2C0C /* lib */ = {isa = PBXFileReference; lastKnownFileType = folder; name = lib; path = {{ cookiecutter.dist_dir }}/root/python3/lib; sourceTree = "<group>"; };
|
||||
59FDEA8A21E7D34E004E6ECE /* include */ = {isa = PBXFileReference; lastKnownFileType = folder; name = include; path = {{ cookiecutter.dist_dir }}/root/python3/include; sourceTree = "<group>"; };
|
||||
59738ABA1A8E19AA001B2C0C /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = {{ cookiecutter.project_name }}/Images.xcassets; sourceTree = "<group>"; };
|
||||
59738AD01A8E62D6001B2C0C /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "LaunchImages/Default-568h@2x.png"; sourceTree = "<group>"; };
|
||||
59738AD11A8E62D6001B2C0C /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-667h@2x.png"; path = "LaunchImages/Default-667h@2x.png"; sourceTree = "<group>"; };
|
||||
|
@ -234,11 +234,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
{%- if cookiecutter.python_major == "2" %}
|
||||
shellScript = "{{ cookiecutter.dist_dir }}/hostpython2/bin/python -OO -m compileall \"$PROJECT_DIR\"/YourApp";
|
||||
{%- else %}
|
||||
shellScript = "{{ cookiecutter.dist_dir }}/hostpython3/bin/python -m compileall -f -b \"$PROJECT_DIR\"/YourApp";
|
||||
{%- endif %}
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
|
@ -254,11 +250,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
{%- if cookiecutter.python_major == "2" %}
|
||||
shellScript = "find \"$PROJECT_DIR\"/YourApp/ -regex '.*\\.py[c]*' -delete";
|
||||
{%- else %}
|
||||
shellScript = "find \"$PROJECT_DIR\"/YourApp/ -regex '.*\\.py' -delete";
|
||||
{%- endif %}
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
|
|
2
setup.py
2
setup.py
|
@ -16,7 +16,7 @@ def recursive_include(module):
|
|||
|
||||
setup(
|
||||
name="kivy-ios",
|
||||
version="1.1.0",
|
||||
version="1.1.0.dev0",
|
||||
description="Kivy for iOS",
|
||||
long_description=read("README.md"),
|
||||
long_description_content_type="text/markdown",
|
||||
|
|
Loading…
Reference in a new issue