public inbox for gentoo-python@lists.gentoo.org
 help / color / mirror / Atom feed
From: Mike Gilbert <floppym@gentoo.org>
To: "Michał Górny" <mgorny@gentoo.org>
Cc: gentoo-python <gentoo-python@lists.gentoo.org>,
	 Gentoo Python Project <python@gentoo.org>
Subject: Re: [gentoo-python] Re: [PATCH 5/8] distutils-r1: disable sub-root merging.
Date: Sat, 14 Sep 2013 19:33:04 -0400	[thread overview]
Message-ID: <CAJ0EP404ZEmWwVFe7qRgZj=JpXCBQQhY9e84MBsOe_nw2OHRVA@mail.gmail.com> (raw)
In-Reply-To: <20130915003852.3f989dab@gentoo.org>

On Sat, Sep 14, 2013 at 6:38 PM, Michał Górny <mgorny@gentoo.org> wrote:
> Dnia 2013-09-14, o godz. 18:16:33
> Mike Gilbert <floppym@gentoo.org> napisał(a):
>
>> On Fri, Sep 13, 2013 at 2:58 PM, Michał Górny <mgorny@gentoo.org> wrote:
>> > The sub-roots are no longer necessary since we're installing scripts to
>> > per-impl directories initially.
>> > ---
>> >  gx86/eclass/distutils-r1.eclass | 9 +++------
>> >  1 file changed, 3 insertions(+), 6 deletions(-)
>> >
>> > diff --git a/gx86/eclass/distutils-r1.eclass b/gx86/eclass/distutils-r1.eclass
>> > index 7102c58..5fcb55e 100644
>> > --- a/gx86/eclass/distutils-r1.eclass
>> > +++ b/gx86/eclass/distutils-r1.eclass
>> > @@ -476,9 +476,7 @@ distutils-r1_python_install() {
>> >         addpredict "$(python_get_sitedir)"
>> >         addpredict /usr/lib/portage/pym
>> >
>> > -       local root=${D}/_${EPYTHON}
>> > -       [[ ${DISTUTILS_SINGLE_IMPL} ]] && root=${D}
>> > -       flags+=( --root="${root}" )
>> > +       flags+=( --root="${D}" )
>> >
>> >         if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
>> >                 local PYTHON_SCRIPTDIR
>> > @@ -488,13 +486,12 @@ distutils-r1_python_install() {
>> >
>> >         esetup.py install "${flags[@]}" "${@}"
>> >
>> > -       if [[ -d ${root}$(python_get_sitedir)/tests ]]; then
>> > +       if [[ -d ${D}$(python_get_sitedir)/tests ]]; then
>> >                 die "Package installs 'tests' package, file collisions likely."
>> >         fi
>> >
>> >         if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
>> > -               _distutils-r1_wrap_scripts "${root}"
>> > -               multibuild_merge_root "${root}" "${D}"
>> > +               _distutils-r1_wrap_scripts "${D}"
>> >         fi
>> >  }
>> >
>> > --
>> > 1.8.3.2
>> >
>>
>> I believe this patch causes a race condition which causes
>> java-config's ebuild to fail.
>>
>> running install_data
>> running install_egg_info
>> Writing /tmp/portage/dev-java/java-config-2.2.0/image/usr/lib64/python2.7/site-packages/java_config-
>> 2.2.0-py2.7.egg-info
>> error: /tmp/portage/dev-java/java-config-2.2.0/image//usr/share/java-config-2/config/:
>> File exists
>
> I love when people hack build systems and have no idea about writing
> build systems...
>
> What are you suggesting? Finding all the broken stuff and fixing it, or
> restoring sub-roots?
>

This is a well-used package which will be broken if we apply this
patch. I'm not sure we can reliably identify this kind of problem, and
fixing individual packages would be a bit of work in any case..
Keeping the sub-roots code in place seems like the safer course of
action here.

Also FYI, I looked into java-config's setup.py, and the code has an
unchecked os.mkdir call followed by an open() call. The former will
fail for multiple python implementations even with a serialized
install, and the latter is racy.


  reply	other threads:[~2013-09-14 23:33 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-13 18:58 [gentoo-python] Clean up of python eclasses and support for python-exec:2 Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 1/8] Add PYTHON_SCRIPTDIR for script installation path Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 2/8] Clean up python_replicate_script() Michał Górny
2013-09-15 17:11   ` [gentoo-python] " Mike Gilbert
2013-09-15 17:36     ` Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 3/8] Clean up python_newscript() Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 4/8] distutils-r1: rework script install/wrapping Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 5/8] distutils-r1: disable sub-root merging Michał Górny
2013-09-14 22:16   ` [gentoo-python] " Mike Gilbert
2013-09-14 22:38     ` Michał Górny
2013-09-14 23:33       ` Mike Gilbert [this message]
2013-09-15  9:04         ` Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 6/8] _distutils-r1_wrap_scripts(): do not pass root path explicitly Michał Górny
2013-09-13 18:58 ` [gentoo-python] [PATCH 7/8] Replace _python_ln_rel() with _python_symlink_wrapper() Michał Górny
2013-09-15 17:27   ` [gentoo-python] " Mike Gilbert
2013-09-13 18:58 ` [gentoo-python] [PATCH 8/8] Support python-exec:2 Michał Górny
2013-09-15  9:03 ` [gentoo-python] Clean up of python eclasses and support for python-exec:2, r2 Michał Górny
2013-09-15  9:03   ` [gentoo-python] [PATCH 1/2] distutils-r1: clean up script install/wrapping Michał Górny
2013-09-15  9:03   ` [gentoo-python] [PATCH 2/2] Support python-exec:2 Michał Górny
2013-09-15  9:29     ` Michał Górny

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='CAJ0EP404ZEmWwVFe7qRgZj=JpXCBQQhY9e84MBsOe_nw2OHRVA@mail.gmail.com' \
    --to=floppym@gentoo.org \
    --cc=gentoo-python@lists.gentoo.org \
    --cc=mgorny@gentoo.org \
    --cc=python@gentoo.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