fc5 goals
Bill Nottingham
notting at redhat.com
Tue Nov 29 20:31:42 UTC 2005
Matthew Miller (mattdm at mattdm.org) said:
> On Tue, Nov 29, 2005 at 08:50:27PM +0100, Arjan van de Ven wrote:
> > there's an alternative...
> > there could be a cd split such that OOo and related all ends up on one
> > cd, and the installer/firstboot adjusted in a way that it can take such
> > "application CDs".
> > Heck maybe gnome and kde could be such cd's as well over time.
>
> I'm very much for that. In my mind, everything not on the "main" CD would be
> Extras, but if people prefer for some of these extra sets to be Core still,
> that's cool too.
Here's something I wrote briefly to explain how some of this *could*
be done. Alas, no time to implement.
Bill
...
Rewrite splitdistro, pkgorder to let you do more fun things
-----------------------------------------------------------
First, you extend comps.
Each group can have an optional <discid> tag. Multiple groups
can share a <discid>. No discid for a group makes it 'Base',
or 'Core', or whatever you want to call it.
Later in the comps file you have <dischierarchy>, which
denotes an order for the <discid> tags. (Alternatively, define
discids to be numbers, and sort that way.) Order such that
any obvious dependencies between groups are resolved;, i.e.,
discids are listed below any discids they have deps on.
<discids> are linked to an English string that is the title
of the group, used in naming the CDs, and put in the discinfo
file for the CD. It's intltool-ized and all that other good stuff,
for display in $(YOUR PACKAGE GRABBING TOOL HERE).
Then, you redo how packages are ordered.
Look at the universe of packages in your tree. Arrange them
into the following groups based on comps:
A: Packages listed in a comp that doesn't have a discid
B: Packages listed in comps that have the first discid in the
dischierarchy
C: Packages listed in cimps that have the second discid ...
...
#: Packages not in any comp.
Structure things so that A, B, C, etc could be completely separate
repos from your CD-creation set. For example, A could be Core,
and B,C,D, etc are all things in Extras.
Depsolve A against B,C, ... and #; move packages from other buckets
to A to solve deps. If any deps are from B,C, ..., raise warning.
Depsolve B, against A and #, move packages to solve deps. If any deps
are unresolved, raise a hard error.
Depsolve C, against A, B, and #, ...
Throw everything else from # into A.
Generate pkgorder for A.
Generate pkgorder for B, as an additional transaction on top of A.
Generate pkgorder for C, as an additional transaction on top of A and B.
...
Split trees based on their separate pkgorders. Optionally, track in
the pkgorders which packages are added to B, C, D, etc from #; if B,
C, D... are sllightly over X discs, move those packages to A and
recompute.
Label CDs based on A with the standard "Name, Disc 1 ... X". Label
CDs based on B, C, D... with the discid's name, and discs 1 ... X.
Hence, now anaconda would display:
To complete the install, you need:
Fedora Core 5 disc #1
Fedora Core 5 disc #2
Fedora Office disc #1
Fedora Java disc #1
More information about the fedora-devel-list
mailing list