public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Brian Harring <ferringb@gmail.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Re: RFC: Making backwards-incompatible tree changes | a solution for GLEP 55's problem
Date: Tue, 20 Sep 2011 03:28:48 -0700	[thread overview]
Message-ID: <20110920102848.GA6252@localhost> (raw)
In-Reply-To: <CAGfcS_npucf0Ue_bWo1Xo3sCa07C=G9j0ek5eXo7phRt3NpHog@mail.gmail.com>

On Mon, Sep 19, 2011 at 08:46:10PM -0400, Rich Freeman wrote:
> On Mon, Sep 19, 2011 at 6:53 PM, Duncan <1i5t5.duncan@cox.net> wrote:
> > At least an initial read suggests that you just multiplied the mirror
> > space requirements by however many times you use this trick. ?I don't
> > believe infra's going to go for that.
> >
> 
> The only real gotcha is if portage is so old that it can't handle the
> binary packages.  However, to get around that we really just need a
> set of step-wise binary updates for portage itself so that you can
> sequence it up to something that can install the rest.  That will work
> as long as portage doesn't strictly need a newer dependency.  If it
> needs a newer python or something then we might need to keep a binary
> package of that lying around - maybe statically linked so that it
> doesn't go further than a few packages.

This isn't that easy unfortunately; portage is indirectly eapi3 due to 
python.eclass; additionally, portage requires py2.6 and up (and isn't 
trivial restoring <2.6).

Paludis wise, it's eapi2 indirictely due to boost and eselect.  
Looking at the eapi depgraph for that, doesn't look particularly 
viable for upgrading from a EAPI<2 manager for paludis.  I'll leave 
it to Ciaran to comment on the feasability of a static rescue 
binary (or extremely simplified upgrade pathway).

For pkgcore, well, frankly it's a mild mess at the ebuild level- 
python.eclass induced (let's avoid the usual rants on that one also).  
Wasn't hugely happy to notice pkgcore was nudged to EAPI3; something 
I intend to rectify.

Intent is to restore it to EAPI0- frankly it really depends on what 
the python teams intentions are for EAPI0, currently that support is 
marked to be removed on "06/2011".  The rest of the indirect deps are 
either induced by the eclass, or stuff that can be disabled for 
bootstrapping (pyparsing is only required for `pquery --expr` for 
example; not exactly a critical feature).

Python version, in terms of upgrading:

if python2.4
 requires py2.4 and up, also requires pycrypto which was available on 
 all 2.4 installs anyways, so it can provide an EAPI upgrade pathway.
if python2.5:
 afaik, it should only require 2.5, nothing more.

At some point I'll probably drop py2.4 support, but that's likely in 
the years time scale.  I'd like to do so at some point, but the gains 
aren't big enough to warrant it (plus I'd then be doing a shit ton of 
refactoring to py2.5 minimum afterwards).

> Something like that really just needs a few tarballs and then an
> up-to-date set of binary stage3 packages.  The binary packages could
> be built at the same time the stage3s are made.  And, this is really
> just a contingency plan so we don't need to mirror all that stuff - we
> could even just make it torrent-only or something.

To be clear, it's a bit more complex than that.  Simple example, 
if your system only supports EAPI2, in our tree it's rather unlikely 
you can jump directly forward to our current tree's ebuilds even if 
you've got binpkgs- as indicated above, eapi2/eapi3 usage for current 
ebuilds.  It might be possible, but I doubt that option is going 
to get any more feasible the longer time goes on.

Coincidentally, that fact also means that the proposal from wired to 
have multiple snapshots is basically dead in the water- not without 
very careful custom tree building for the old snapshot, all while 
trying to ensure that there is a direct jump from older versions to 
current.

To do this sort of upgrade, either you need extremely low deps (as 
I've wrote pkgcore for, despite the ebuilds deps), or you need a 
pretty damn careful ebuild upgrade pathway.  A 2.5/EAPI2 system would 
likely need to jump to a version of portage that had EAPI3, than jump 
to python2.6, than jump to latest portage (getting EAPI4), and than 
sorting out the depgraph conflicts for the upgrade (which afaik, is 
viable).

Note this also isn't talking about the bash 4.0 dep, although that one 
is lesser issue last I'd looked- bash ebuild is EAPI1, and the 
eclasses it consumes are fairly sane.


Either way, if desired it's reasonably straightforward to put 
together a tarball for this- roughly it's just snakeoil/pkgcore local 
checkout, upgrade bash, upgrade portage, upgrade portage, than use 
whatever PM you like. From that point, while the user likely has a 
mess to sort depgraph wise, it should at least be *possible* to do 
upgrades.

~harring



  parent reply	other threads:[~2011-09-20 10:29 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-19 22:14 [gentoo-dev] RFC: Making backwards-incompatible tree changes | a solution for GLEP 55's problem Alex Alexander
2011-09-19 22:53 ` [gentoo-dev] " Duncan
2011-09-20  0:46   ` Rich Freeman
2011-09-20  1:44     ` Duncan
2011-09-20  7:12     ` Alex Alexander
2011-09-20 10:43       ` Patrick Lauer
2011-09-20 10:28     ` Brian Harring [this message]
2011-09-20 10:40       ` Ciaran McCreesh
2011-09-20 11:07         ` Brian Harring
2011-09-20 11:27           ` Ciaran McCreesh
2011-09-20 13:33         ` Ulrich Mueller
2011-09-20 10:50       ` Dirkjan Ochtman
2011-09-20  6:56   ` Alex Alexander
2011-09-20 13:09 ` [gentoo-dev] " Pacho Ramos
2011-09-20 13:16   ` Pacho Ramos
2011-09-20 13:16   ` Michał Górny
2011-09-20 13:25     ` Pacho Ramos
2011-09-20 13:57   ` [gentoo-dev] " Duncan
2011-09-20 14:23     ` Pacho Ramos
2011-09-20 17:00   ` [gentoo-dev] " Patrick Lauer
2011-09-21  4:00     ` [gentoo-dev] " Duncan
2011-09-21 13:24       ` Pacho Ramos
2011-09-20 15:19 ` [gentoo-dev] " Zac Medico
2011-09-20 15:28   ` Zac Medico
2011-09-20 17:03   ` Patrick Lauer
2011-09-20 17:14     ` Rich Freeman
2011-09-20 17:48       ` Alec Warner
2011-09-20 20:03         ` 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=20110920102848.GA6252@localhost \
    --to=ferringb@gmail.com \
    --cc=gentoo-dev@lists.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