[Buildroot] [PATCH v2 2/2] python3: Bump version to 3.6.0
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Wed Mar 22 07:56:44 UTC 2017
Hello,
On Tue, 21 Mar 2017 17:49:06 -0700, Andrey Smirnov wrote:
> > To be honest, I find it really annoying that we have to do this to find
> > the name of the sysconfigdata package. I've thought about the following:
> >
> > - Have the Python build system output somewhere the name of the
> > sysconfigdata module that has been generated.
> >
>
> Sure, you can do that, but that would mean another custom patch
> against CPython's build system which is very likely to break and
> require manual intervention next time there's at least a major version
> update. After going through all of BR's patches in the process of
> rebasing on 3.6 and having to manually fix at least half of them I
> didn't want to make the problem worse, so that's why I didn't go that
> route.
OK, makes sense. It's always a matter of tradeoff anyway.
> I don't think this would work. CPython's build system does not use
> -dumpmachine output directly to come up with that suffix and instead
> relies on specially crafted dummy .c file and CPP:
>
> https://github.com/python/cpython/blob/master/configure.ac#L762
>
> So for example on my target -dumpmachine would result in
> "powerpc-e500v2-linux-gnuspe", where as suffix of sysconfigdata would
> be "powerpc-linux-gnuspe".
OK, in this case indeed your approach is the best option I'd say.
> > Why are all patches you have changed now re-assigned with your From?
> > You should preserve the authorship of the original author.
> >
>
> Because I manually applied those patches and committed them in my
> local CPython repo and didn't go out of my way to prevent "From" from
> being set to committer when I git format-patch'ed them, since the
> authorship/copyright information is preserved in "Signed-off-by"
> lines. Will change in v3.
Since all patches are Git formatted, you can (and should) apply them
with "git am" which will preserve all this information automatically.
> >> # Provided to other packages
> >> -PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/sysconfigdata/:$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/
> >> +PYTHON3_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/:$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/
> >
> > Why do we now need
> > $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ ?
>
> Because that's where _sysconfigdata_m_linux_*.pyc file is located.
OK. I thought "but isn't this in the default Python search path", but
in fact it's going to be in the default search path on the target, but
not when cross-compiling. So: OK.
Thanks for all those explanations!
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
More information about the buildroot
mailing list