From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH][resend] python-native: distutils: don't use libdir, remove dead code path
Date: Sat, 17 Mar 2012 00:30:03 +0000 [thread overview]
Message-ID: <1331944203.18586.217.camel@ted> (raw)
In-Reply-To: <4F5E4CF9.3070104@opendreambox.org>
On Mon, 2012-03-12 at 20:22 +0100, Andreas Oberritter wrote:
> On 12.03.2012 18:58, Saul Wold wrote:
> > On 03/07/2012 01:07 PM, Andreas Oberritter wrote:
> >> * Coming from OE-classic it was surprising that python-native now
> >> requires 'libdir' to be exported. Otherwise autoconf would fail
> >> to detect python libraries. This happend using a customized
> >> environment setup script to use OE's compiler and libs without
> >> bitbake.
> >> * Use sys.lib instead of libdir's suffix.
> >> * While at it, simplify redundant if/and-statments.
> >>
> >> Signed-off-by: Andreas Oberritter<obi@opendreambox.org>
> >> ---
> >> * This patch hasn't been commented since its first submission
> >> on Feb 21st.
> >> * Original patch URL: http://patches.openembedded.org/patch/21481/
> >>
> >> ...2-distutils-prefix-is-inside-staging-area.patch | 15
> >> +++++----------
> >> 1 files changed, 5 insertions(+), 10 deletions(-)
> >>
> > This will need a PR bump so the modified patch will be noticed, I know
> > this patch was put in a while ago.
>
> Right. I'm waiting before resubmitting it. See below.
>
> > I am not so sure about the changes though, I have been meaning to dig
> > into this, the orignial code looks strange in that it includes
> > plat_specific in the else clause! You are also dropping the EXEC_PREFIX
>
> I'm dropping EXEC_PREFIX, because it's dead code.
>
> The code from the original patch can be rewritten as:
>
> if plat_specific:
> if plat_specific:
> prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename)
> else:
> if plat_specific:
> prefix = EXEC_PREFIX
> else:
> prefix = PREFIX
>
> Does this make it clear?
>
> > How have you tested this change?
>
> I built from scratch and also runtime tested it, but without multilib.
>
> As I'm currently investing a different problem in python, digging into
> python internals, I doubt that sys.lib really contains the correct
> value for multilib, unless multilib builds have multiple python-natives.
>
> I think it would be better to just drop the last element of STAGING_LIBDIR,
> i.e.:
>
> if plat_specific:
> prefix = '/'.join(os.environ['STAGING_LIBDIR'].split('/')[:-1])
> else:
> prefix = PREFIX
>
> Do you think this would be OK?
Whilst we merged this patch, its now creating all kinds of issues and is
breaking builds. As a small testcase:
libdir=2 BUILD_SYS=1 HOST_SYS=2 /media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/bin/python -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='foorbar'))"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/sysconfig.py", line 113, in get_python_lib
lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1]
File "/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'STAGING_LIBDIR'
which leads to packaging warnings from xcb-proto's python module
components due to pythondir not being set to anything. Its looking
likely I'll have to revert this whilst the impact of that patch is
better understood.
Yes, I appreciate you could export STAGING_LIBDIR everywhere but we
never used to have to do that and I'd really prefer we didn't have to.
Cheers,
Richard
next prev parent reply other threads:[~2012-03-17 0:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-07 21:07 [PATCH][resend] python-native: distutils: don't use libdir, remove dead code path Andreas Oberritter
2012-03-12 17:58 ` Saul Wold
2012-03-12 19:22 ` Andreas Oberritter
2012-03-17 0:30 ` Richard Purdie [this message]
2012-03-17 11:01 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1331944203.18586.217.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox