On Wed, 2008-07-30 at 10:53 +0200, Jeroen van Meeuwen wrote:
Jeremy Katz wrote:
> On Mon, 2008-07-28 at 22:44 +0200, Jeroen van Meeuwen wrote:
>> First extending yum's exclude setting with packages excluded from the
>> compose in the kickstart package manifest helps in group selection (see
>> also #456882), since @core has a mandatory package called
>> "fedora-logos". Although livecd-tools already removes the packages
>> (after package and group selection) in the excluded list, I think this
>> is cleaner as not even dependency resolving will know about the package
>> explicitly excluded (and the package is thus not pulled in accidently,
> The problem with this is that it's an (albeit subtle) change in what the
> semantics of the kickstart config are. The fact that you don't end up
> with broken deps, even if you do something silly like -glibc, is
> something that's been relatively important in the past. And given that
> you can do per-repo exclusion of packages,
This sounds to me like moving the exclude functionality of the package
manifest to the repo configuration directive...
I don't know that switching
> to - being an exclude vs a deselect is advantageous enough to outweigh
> the loss wrt broken deps.
If you do something like -glibc you may have very good reasons for doing
so. Note that -glibc and including
customly-compiled-appliance-worthy-glibc is a very, very valid use case.
And if you have
in your ks.cfg, then you'll get you the customly compiled one as long as
it satisfies all the deps. If it _doesn't_, then yes, you might get
glibc pulled in
1) an explicit exclude should be excluded no matter what. Failed
dependencies are a good indicator you have excluded the wrong package.
Failed dependencies can indicate lots of things, depending on the
context. And not all tools (anaconda being a notable case, pungi being
another afaik) will happily let you intsall/build trees with broken
deps, going for exclusion rather than deselection can lead to a
seriously hosed system
2) Randomly including what is explicitly indicated should be excluded
changes the semantics of the kickstart package manifest from "a decent
way to configure what packages should be on the system, and what
packages should absolutely not" to a "monkey's selection of the
available packages". If you can't reasonably, accurately predict what it
does, it's done for.
People have been using kickstart in this fashion for a long, long, long
time without it being "done for". But I appreciate the hyperbole.
> Especially as any change here needs to be handled consistently
> all tools using kickstart files, not just livecd-creator.
Well... actually only the tools using kickstart files that have
exclusive dependency resolving. pungi for example has inclusive
dependency resolving and ignores the explicit package manifest excludes
as well, and for valid reasons as it is allowing conflicts in the
package set because it's installation media and doesn't know what
packages may or may not be preferred. Revisor then again allows
exclusive dependency resolving as well and again is one of the tools on
the list that is going to change (for the better, as I explained).
You give me a list of packages or tools that show this kind of behavour,
please. I know anaconda is one of them, so what else?
anaconda, pungi, livecd-creator, snake... that's off the top of my head.
But the bigger thing to change is people's *perception*. If you're used
to one thing, changing those semantics is very dangerous and it's
something that we've been very very very careful to avoid doing with the
kickstart file format. To the point of introducing entirely new syntax
in cases where there could be confusion.
Hence, why I say it's not clear to me why you wouldn't in this case just
do excludes at the repo level since that provides the same level of
functionality but without any of the fuzziness around changing the
semantics of the existing syntax