added python-3.5.1

This commit is contained in:
Jaroslav Kysela 2016-02-23 21:03:57 +01:00
parent 77dfde31d5
commit df0117dbbf
7 changed files with 230 additions and 7 deletions

116
Makefile
View File

@ -66,19 +66,25 @@ NANO=nano-$(NANO_VERSION)
NANO_FILENAME=$(NANO).tar.gz NANO_FILENAME=$(NANO).tar.gz
NANO_DOWNLOAD=http://www.nano-editor.org/dist/v2.4/$(NANO_FILENAME) NANO_DOWNLOAD=http://www.nano-editor.org/dist/v2.4/$(NANO_FILENAME)
PYTHON3_VERSION0=3.5
PYTHON3_VERSION=$(PYTHON3_VERSION0).1
PYTHON3=Python-$(PYTHON3_VERSION)
PYTHON3_FILENAME=$(PYTHON3).tgz
PYTHON3_DOWNLOAD=https://www.python.org/ftp/python/$(PYTHON3_VERSION)/$(PYTHON3_FILENAME)
TVHEADEND_COMMIT=master TVHEADEND_COMMIT=master
# 10663 10937 # 10663 10937
OSCAM_REV=11211 OSCAM_REV=11211
define GIT_CLONE define GIT_CLONE
@mkdir -p apps/ @mkdir -p apps/host
git clone $(1) apps/$(2) git clone $(1) apps/$(2)
cd apps/$(2) && git checkout -b axe $(3) cd apps/$(2) && git checkout -b axe $(3)
endef endef
define WGET define WGET
@mkdir -p apps/ @mkdir -p apps/host
wget --no-verbose --no-check-certificate -O $(2) $(1) wget --no-verbose --no-check-certificate -O $(2) $(1)
endef endef
@ -113,11 +119,13 @@ CPIO_SRCS += tools/axehelper
CPIO_SRCS += nfsutils CPIO_SRCS += nfsutils
CPIO_SRCS += nano CPIO_SRCS += nano
CPIO_SRCS += mtd-utils CPIO_SRCS += mtd-utils
CPIO_SRCS += python3
fs.cpio: $(CPIO_SRCS) fs.cpio: $(CPIO_SRCS)
fakeroot tools/do_min_fs.py \ fakeroot tools/do_min_fs.py \
-r "$(VERSION)" \ -r "$(VERSION)" \
-b "bash strace openssl" \ -b "bash strace openssl" \
-d "fs-add apps/$(PYTHON3)/dest" \
$(foreach m,$(EXTRA_AXE_MODULES), -e "$(EXTRA_AXE_MODULES_DIR)/$(m):lib/modules/axe/$(m)") \ $(foreach m,$(EXTRA_AXE_MODULES), -e "$(EXTRA_AXE_MODULES_DIR)/$(m):lib/modules/axe/$(m)") \
-e "patches/axe_dmxts_std.ko:lib/modules/axe/axe_dmxts_std.ko" \ -e "patches/axe_dmxts_std.ko:lib/modules/axe/axe_dmxts_std.ko" \
$(foreach m,$(ORIG_FILES), -e "$(EXTRA_AXE_MODULES_DIR)/../$(m):lib/modules/axe/$(m)") \ $(foreach m,$(ORIG_FILES), -e "$(EXTRA_AXE_MODULES_DIR)/../$(m):lib/modules/axe/$(m)") \
@ -517,6 +525,110 @@ apps/$(NANO)/nano: apps/$(NANO)/configure
.PHONY: nano .PHONY: nano
nano: apps/$(NANO)/nano nano: apps/$(NANO)/nano
#
# python3-host
#
apps/host/$(PYTHON3)/pyconfig.h.in:
$(call WGET,$(PYTHON3_DOWNLOAD),apps/host/$(PYTHON3_FILENAME))
tar -C apps/host -xzf apps/host/$(PYTHON3_FILENAME)
apps/host/$(PYTHON3)/python: apps/host/$(PYTHON3)/pyconfig.h.in
cd apps/host/$(PYTHON3) && \
./configure
make -C apps/host/$(PYTHON3)
.PHONY: python3-host
python3-host: apps/host/$(PYTHON3)/python
#
# python3
#
apps/$(PYTHON3)/pyconfig.h.in:
$(call WGET,$(PYTHON3_DOWNLOAD),apps/$(PYTHON3_FILENAME))
tar -C apps -xzf apps/$(PYTHON3_FILENAME)
apps/$(PYTHON3)/patch.stamp: apps/$(PYTHON3)/pyconfig.h.in apps/host/$(PYTHON3)/python
cd apps/$(PYTHON3) && \
PKG_CONFIG_PATH=$(TOOLCHAIN)/target/usr/lib/pkgconfig \
PKG_CONFIG=$(TOOLPATH)/pkg-config \
ARCH=sh \
CPP=$(TOOLCHAIN)/bin/sh4-linux-cpp \
CC=$(TOOLCHAIN)/bin/sh4-linux-gcc \
READELF=/usr/bin/readelf \
PYTHON_FOR_BUILD=$(CURDIR)/apps/host/$(PYTHON3)/python \
CONFIG_SITE=$(CURDIR)/patches/python3.config.site \
./configure \
--host=sh4-linux \
--build=x86_64-redhat-linux \
--target=sh4-linux \
--sysconfdir=/etc \
--prefix=/usr \
--enable-ipv6=no
cd apps/$(PYTHON3) && patch -b -p0 < ../../patches/python3-makefile.patch
cd apps/$(PYTHON3) && patch -b -p0 < ../../patches/python3-setup.patch
cd apps/$(PYTHON3) && patch -b -p0 < ../../patches/python3-ccompiler.patch
cd apps/$(PYTHON3) && patch -b -p0 < ../../patches/python3-build-ext.patch
touch apps/$(PYTHON3)/patch.stamp
apps/$(PYTHON3)/compiled.stamp: apps/$(PYTHON3)/patch.stamp
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest
make -C apps/$(PYTHON3) \
PYINCDIRS="$(CURDIR)/apps/$(PYTHON3):$(CURDIR)/apps/$(PYTHON3)/Include" \
PYLIBS="." \
CROSS_COMPILE=yes \
ABIFLAGS="" \
PYTHON_FOR_BUILD=$(CURDIR)/apps/host/$(PYTHON3)/python \
PGEN=$(CURDIR)/apps/host/$(PYTHON3)/Parser/pgen \
FREEZE_IMPORTLIB=$(CURDIR)/apps/host/$(PYTHON3)/Programs/_freeze_importlib \
PYTHONPATH=$(CURDIR)/apps/$(PYTHON3)/Lib \
PYTHON_OPTIMIZE="" \
PYTHONDONTWRITEBYTECODE=1 \
_PYTHON_HOST_PLATFORM=linux-sh4 \
PYTHONPATH="/usr/lib/python3.5:/usr/local/lib/python3.5" \
DESTDIR=$(CURDIR)/apps/$(PYTHON3)/dest \
sharedmods sharedinstall libinstall bininstall
rm -f $(CURDIR)/apps/$(PYTHON3)/dest/usr/bin/python*-config
rm -f $(CURDIR)/apps/$(PYTHON3)/dest/usr/bin/2to3*
rm -f $(CURDIR)/apps/$(PYTHON3)/dest/usr/bin/idle*
$(TOOLCHAIN)/bin/sh4-linux-strip $(CURDIR)/apps/$(PYTHON3)/dest/usr/bin/python3*
rm -f $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/*.a
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/test
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/ctypes/test
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/sqlite3
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/turtle*
rm -f $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/__pycache__/turtle*
rm -f $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/lib-dynload/*test*
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/lib2to3
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/unittest
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/tkinter
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/idlelib
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/distutils
rm -rf $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/python3*/ensurepip
find $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/ -name "*.opt-[12].pyc" -exec rm {} \;
find $(CURDIR)/apps/$(PYTHON3)/dest/usr/lib/ -name "test_*" -exec rm {} \;
touch apps/$(PYTHON3)/compiled.stamp
apps/$(PYTHON3)/python1:
make -C apps/$(PYTHON3) \
PYINCDIRS="$(CURDIR)/apps/$(PYTHON3):$(CURDIR)/apps/$(PYTHON3)/Include" \
PYLIBS="." \
CROSS_COMPILE=yes \
ABIFLAGS="" \
PYTHON_FOR_BUILD=$(CURDIR)/apps/host/$(PYTHON3)/python \
PGEN=$(CURDIR)/apps/host/$(PYTHON3)/Parser/pgen \
FREEZE_IMPORTLIB=$(CURDIR)/apps/host/$(PYTHON3)/Programs/_freeze_importlib \
PYTHONPATH=$(CURDIR)/apps/$(PYTHON3)/Lib \
PYTHON_OPTIMIZE="" \
PYTHONDONTWRITEBYTECODE=1 \
_PYTHON_HOST_PLATFORM=linux-sh4 \
DESTDIR=$(CURDIR)/apps/$(PYTHON3)/dest \
sharedmods
.PHONY: python3
python3: apps/$(PYTHON3)/compiled.stamp
# #
# tvheadend # tvheadend
# #

View File

@ -0,0 +1,14 @@
--- Lib/distutils/command/build_ext.py.orig 2016-02-23 19:52:34.825132845 +0100
+++ Lib/distutils/command/build_ext.py 2016-02-23 19:48:54.363347813 +0100
@@ -677,7 +677,10 @@
"""
from distutils.sysconfig import get_config_var
ext_path = ext_name.split('.')
- ext_suffix = get_config_var('EXT_SUFFIX')
+ if 'EXT_SUFFIX' in os.environ:
+ ext_suffix = os.environ['EXT_SUFFIX']
+ else:
+ ext_suffix = get_config_var('EXT_SUFFIX')
return os.path.join(*ext_path) + ext_suffix
def get_export_symbols(self, ext):

View File

@ -0,0 +1,21 @@
--- Lib/distutils/ccompiler.py.orig 2016-02-23 18:05:38.709628967 +0100
+++ Lib/distutils/ccompiler.py 2016-02-23 18:06:05.155956953 +0100
@@ -329,6 +329,8 @@
else:
raise TypeError(
"'include_dirs' (if supplied) must be a list of strings")
+ if 'PYINCDIRS' in os.environ:
+ incdirs = os.environ['PYINCDIRS'].split(':')
if extra is None:
extra = []
@@ -456,6 +458,9 @@
raise TypeError("'runtime_library_dirs' (if supplied) "
"must be a list of strings")
+ if 'PYLIBS' in os.environ:
+ library_dirs = os.environ['PYLIBS'].split(':')
+
return (libraries, library_dirs, runtime_library_dirs)
def _need_link(self, objects, output_file):

View File

@ -0,0 +1,52 @@
--- Makefile.orig 2016-02-23 19:36:13.488682264 +0100
+++ Makefile 2016-02-23 19:49:55.755131424 +0100
@@ -610,7 +610,7 @@
*) quiet="";; \
esac; \
$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' EXT_SUFFIX='$(EXT_SUFFIX)' \
$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
# Build static library
@@ -720,17 +720,19 @@
############################################################################
# Importlib
+FREEZE_IMPORTLIB ?= ./Programs/_freeze_importlib
+
Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
$(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
- ./Programs/_freeze_importlib \
+ $(FREEZE_IMPORTLIB) \
$(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h
Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib
- ./Programs/_freeze_importlib \
+ $(FREEZE_IMPORTLIB) \
$(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
@@ -797,9 +799,6 @@
$(GRAMMAR_C): $(GRAMMAR_H)
touch $(GRAMMAR_C)
-$(PGEN): $(PGENOBJS)
- $(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-
Parser/grammar.o: $(srcdir)/Parser/grammar.c \
$(srcdir)/Include/token.h \
$(srcdir)/Include/grammar.h
@@ -1606,7 +1605,7 @@
rm -rf $(COVERAGE_REPORT)
clobber: clean profile-removal
- -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
+ -rm -f $(BUILDPYTHON) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
tags TAGS \
config.cache config.log pyconfig.h Modules/config.c
-rm -rf build platform

View File

@ -0,0 +1,12 @@
--- setup.py~ 2015-12-07 02:39:11.000000000 +0100
+++ setup.py 2016-02-23 15:07:35.315758509 +0100
@@ -367,7 +367,8 @@
spec = importlib.util.spec_from_file_location(ext.name, ext_filename,
loader=loader)
try:
- importlib._bootstrap._load(spec)
+ # importlib._bootstrap._load(spec)
+ aaaa = 1
except ImportError as why:
self.failed_on_import.append(ext.name)
self.announce('*** WARNING: renaming "%s" since importing it'

View File

@ -0,0 +1,2 @@
ac_cv_file__dev_ptmx=yes
ac_cv_file__dev_ptc=no

View File

@ -358,14 +358,16 @@ def get_menu_opt(argv):
try: try:
# opts = '' # opts = ''
# args = '' # args = ''
opts , args = getopt.gnu_getopt(argv, 'hb:e:t:i:r:', opts , args = getopt.gnu_getopt(argv, 'hb:e:d:t:i:r:',
['--init_type', '--binary=', '--extra', '--target_prefix=', '--version', '--help']) ['--init_type', '--binary=', '--extra', '--extradir',
'--target_prefix=', '--version', '--help'])
except getopt.GetoptError: except getopt.GetoptError:
usage() usage()
target_prefix = '' target_prefix = ''
console = '' console = ''
binary_list=[] binary_list=[]
extra_list=[] extra_list=[]
extradir_list=[]
version = '' version = ''
for o, v in opts: for o, v in opts:
if o == '-b' or o == '--binary': if o == '-b' or o == '--binary':
@ -374,10 +376,15 @@ def get_menu_opt(argv):
if i != '': if i != '':
binary_list.append(i) binary_list.append(i)
elif o == '-e' or o == '--extra': elif o == '-e' or o == '--extra':
v = v.split(' ') # take out all blank spaces and replace the v string with binary_list v = v.split(' ')
for i in v: for i in v:
if i != '': if i != '':
extra_list.append(i) extra_list.append(i)
elif o == '-d' or o == '--extradir':
v = v.split(' ')
for i in v:
if i != '':
extradir_list.append(i)
elif o == '-t' or o == '--target_prefix': elif o == '-t' or o == '--target_prefix':
target_prefix = v target_prefix = v
elif o == '-i' or o == '--init_type': elif o == '-i' or o == '--init_type':
@ -391,6 +398,7 @@ def get_menu_opt(argv):
params.append(console) params.append(console)
params.append(target_prefix) params.append(target_prefix)
params.append(extra_list) params.append(extra_list)
params.append(extradir_list)
params.append(version) params.append(version)
return params return params
@ -509,7 +517,8 @@ user_param = ['', '', '']
user_param = get_menu_opt(sys.argv[1:]) user_param = get_menu_opt(sys.argv[1:])
bin_list = user_param[0] # command list to find bin_list = user_param[0] # command list to find
extra_list = user_param[3] extra_list = user_param[3]
version = user_param[4] extradir_list = user_param[4]
version = user_param[5]
if user_param[1] != '': if user_param[1] != '':
boot_type = user_param[1] # default busybox boot_type = user_param[1] # default busybox
@ -574,7 +583,8 @@ print ' ' + 30*'=' + '\n'
gen_fs(library_list, boot_type) gen_fs(library_list, boot_type)
run_cmd('rm -v fs/etc/inittabBB fs/etc/init.d/rcSBB') run_cmd('rm -v fs/etc/inittabBB fs/etc/init.d/rcSBB')
run_cmd('cp -av fs-add/* fs') for d in extradir_list:
run_cmd('cp -av ' + d + '/* fs')
f = open("fs/etc/motd") f = open("fs/etc/motd")
b = f.read(1024*1024) b = f.read(1024*1024)
f.close() f.close()