diff options
author | Maxime Ripard <maxime.ripard@free-electrons.com> | 2012-11-07 05:01:21 +0000 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2012-11-08 00:10:23 +0100 |
commit | 03c4d57f1d9e2b0f516afdd7e7b3f082694d3c0a (patch) | |
tree | 6468647d08879169eaaf2bd2d61c64471f905b5a /package/python3/python3-3.3-000-generate-sysconfigdata-buildir.patch | |
parent | a32fa707e5d79c92908bb81142b00afe81a3e3e2 (diff) | |
download | buildroot-novena-03c4d57f1d9e2b0f516afdd7e7b3f082694d3c0a.tar.gz buildroot-novena-03c4d57f1d9e2b0f516afdd7e7b3f082694d3c0a.zip |
Add python3 package
[Peter: s/python/python3/]
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/python3/python3-3.3-000-generate-sysconfigdata-buildir.patch')
-rw-r--r-- | package/python3/python3-3.3-000-generate-sysconfigdata-buildir.patch | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/package/python3/python3-3.3-000-generate-sysconfigdata-buildir.patch b/package/python3/python3-3.3-000-generate-sysconfigdata-buildir.patch new file mode 100644 index 000000000..a29aa0ffc --- /dev/null +++ b/package/python3/python3-3.3-000-generate-sysconfigdata-buildir.patch @@ -0,0 +1,158 @@ +changeset: 79745:f85c3f4d9b98 +parent: 79743:36b2ca7dc893 +parent: 79744:24d52d3060e8 +user: Trent Nelson <trent@trent.me> +date: Tue Oct 16 08:17:11 2012 -0400 +summary: Merge issue #15298: ensure _sysconfigdata is generated in build directory, + +Taken from upstream. + +--- + Lib/sysconfig.py | 11 ++++++++++- + Makefile.pre.in | 24 +++++++++++++----------- + setup.py | 14 -------------- + 3 files changed, 23 insertions(+), 26 deletions(-) + +Index: Python-3.3.0/Lib/sysconfig.py +=================================================================== +--- Python-3.3.0.orig/Lib/sysconfig.py ++++ Python-3.3.0/Lib/sysconfig.py +@@ -390,13 +390,22 @@ + if _PYTHON_BUILD: + vars['LDSHARED'] = vars['BLDSHARED'] + +- destfile = os.path.join(os.path.dirname(__file__), '_sysconfigdata.py') ++ pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version[:3]) ++ if hasattr(sys, "gettotalrefcount"): ++ pybuilddir += '-pydebug' ++ os.makedirs(pybuilddir, exist_ok=True) ++ destfile = os.path.join(pybuilddir, '_sysconfigdata.py') ++ + with open(destfile, 'w', encoding='utf8') as f: + f.write('# system configuration generated and used by' + ' the sysconfig module\n') + f.write('build_time_vars = ') + pprint.pprint(vars, stream=f) + ++ # Create file used for sys.path fixup -- see Modules/getpath.c ++ with open('pybuilddir.txt', 'w', encoding='ascii') as f: ++ f.write(pybuilddir) ++ + def _init_posix(vars): + """Initialize the module as appropriate for POSIX systems.""" + # _sysconfigdata is generated at build time, see _generate_posix_vars() +Index: Python-3.3.0/Makefile.pre.in +=================================================================== +--- Python-3.3.0.orig/Makefile.pre.in ++++ Python-3.3.0/Makefile.pre.in +@@ -410,8 +410,6 @@ + Objects/unicodectype.o \ + Objects/weakrefobject.o + +-SYSCONFIGDATA=$(srcdir)/Lib/_sysconfigdata.py +- + ########################################################################## + # objects that get linked into the Python library + LIBRARY_OBJS_OMIT_FROZEN= \ +@@ -432,7 +430,7 @@ + + # Default target + all: build_all +-build_all: $(BUILDPYTHON) $(SYSCONFIGDATA) oldsharedmods sharedmods gdbhooks Modules/_testembed ++build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Modules/_testembed + + # Compile a binary with gcc profile guided optimization. + profile-opt: +@@ -466,15 +464,17 @@ + $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) + $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Modules/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + +-platform: $(BUILDPYTHON) $(SYSCONFIGDATA) ++platform: $(BUILDPYTHON) + $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print(get_platform()+"-"+sys.version[0:3])' >platform + +-# Generate the sysconfig build-time data +-$(SYSCONFIGDATA): $(BUILDPYTHON) ++# Create build directory and generate the sysconfig build-time data there. ++# pybuilddir.txt contains the name of the build dir and is used for ++# sys.path fixup -- see Modules/getpath.c. ++pybuilddir.txt: $(BUILDPYTHON) + $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars + + # Build the shared modules +-sharedmods: $(BUILDPYTHON) $(SYSCONFIGDATA) ++sharedmods: $(BUILDPYTHON) pybuilddir.txt + case $$MAKEFLAGS in *s*) quiet=-q; esac; \ + $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build +@@ -1036,7 +1036,7 @@ + else true; \ + fi; \ + done +- @for i in $(srcdir)/Lib/*.py ; \ ++ @for i in $(srcdir)/Lib/*.py `cat pybuilddir.txt`/_sysconfigdata.py; \ + do \ + if test -x $$i; then \ + $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \ +@@ -1196,6 +1196,8 @@ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ + --root=$(DESTDIR)/ ++ -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata.py ++ -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__ + + # Here are a couple of targets for MacOSX again, to install a full + # framework-based Python. frameworkinstall installs everything, the +@@ -1341,9 +1343,10 @@ + find . -name '*.s[ol]' -exec rm -f {} ';' + find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';' + find build -name 'fficonfig.h' -exec rm -f {} ';' || true +- find build -name 'fficonfig.py' -exec rm -f {} ';' || true ++ find build -name '*.py' -exec rm -f {} ';' || true ++ find build -name '*.py[co]' -exec rm -f {} ';' || true ++ -rm -f pybuilddir.txt + -rm -f Lib/lib2to3/*Grammar*.pickle +- -rm -f $(SYSCONFIGDATA) + -rm -f Modules/_testembed Modules/_freeze_importlib + + profile-removal: +@@ -1367,7 +1370,6 @@ + Modules/Setup Modules/Setup.local Modules/Setup.config \ + Modules/ld_so_aix Modules/python.exp Misc/python.pc + -rm -f python*-gdb.py +- -rm -f pybuilddir.txt + find $(srcdir) '(' -name '*.fdc' -o -name '*~' \ + -o -name '[@,#]*' -o -name '*.old' \ + -o -name '*.orig' -o -name '*.rej' \ +Index: Python-3.3.0/setup.py +=================================================================== +--- Python-3.3.0.orig/setup.py ++++ Python-3.3.0/setup.py +@@ -33,10 +33,6 @@ + # This global variable is used to hold the list of modules to be disabled. + disabled_module_list = [] + +-# File which contains the directory for shared mods (for sys.path fixup +-# when running from the build dir, see Modules/getpath.c) +-_BUILDDIR_COOKIE = "pybuilddir.txt" +- + def add_dir_to_list(dirlist, dir): + """Add the directory 'dir' to the list 'dirlist' (after any relative + directories) if: +@@ -252,16 +248,6 @@ + args['compiler_so'] = compiler + ' ' + ccshared + ' ' + cflags + self.compiler.set_executables(**args) + +- # Not only do we write the builddir cookie, but we manually install +- # the shared modules directory if it isn't already in sys.path. +- # Otherwise trying to import the extensions after building them +- # will fail. +- with open(_BUILDDIR_COOKIE, "wb") as f: +- f.write(self.build_lib.encode('utf-8', 'surrogateescape')) +- abs_build_lib = os.path.join(os.getcwd(), self.build_lib) +- if abs_build_lib not in sys.path: +- sys.path.append(abs_build_lib) +- + build_ext.build_extensions(self) + + longest = max([len(e.name) for e in self.extensions]) |