Re: Vanillux live iso
On 08/15/2011 08:35 AM, Fabrice Quenneville wrote:
> I was told the reason why live-build was ignoring --mirror-chroot when
> i asked why live-build was not using the url passed as parametter.
> here is the answer i got:
>>>>> it still tryes to pull from debian.
>>>> this is because you have not set --mode, which means it remains default
>>>> (=debian) which doesn't make use of derivatives handling.
I've lost the thread entirely. I would have to test a minimal config to
replicate your findings to answer with any authority on this. I can do
that, but not right now.
> So if some of the options such as
> --mirror-chroot URL
> sets the location of the debian package mirror that will be used to
> fetch the packages of the derivative in order to build the live
> system. By default, this is set to the value of --mirror-bootstrap.
> Need to either call --mode progress (for most users that wont mean
And in any case is only in experimental and likely to be removed.
Derivatives support is unfinished yet. Until live-build moves from
experimental to unstable, if you can't figure out how it works, just
don't use it. Also, since we've determined your distribution doesn't
conform to the "debian plus" model, I think it's not going to be
suitable for you even when finished.
> or modify the source default.sh (not documented anywhere to
> my knowledge) to work.
Indeed. Not something we're going to document.
> But this isn't clear, for most people outside
> the live-build project a Debian derivative is more or less any distro
> using the apt packaging system.
Clearly, a whole chapter in live-manual will need to be written to
clarify the different kinds of derivative model that exist and
straighten out what is supported and what isn't. Furthermore, at that
time, some lb_config adjustments may need to be made. Given that
derivatives mode (which I don't think will work for you) isn't finished
yet, I stand by my earlier statement (which is just a reiteration of
what I've said previously on irc): I'm not writing any doc about this
new stuff until it *is* finished (i.e. moves from experimental ->
unstable) because meanwhile, there will be code churn, leading to lots
of rework in this area (multiplied, don't forget, by all of the
> To clarify i would suggest changing the man page to something like
> --mirror-chroot URL
> In derivative mode, sets the location of the debian package mirror
> that will be used to fetch the packages of the derivative in order
> to build the live system. By default, this is set to the value of
> So i just put the derivative mode to false again and --mirror-chroot
> is no longer noticed. So without --mirror-chroot URL a "distribution"
> has no way to add custom packages using a different
> codename/repository than the parent.
Isn't that the definition of a non-derivative? If it's not a derivative,
it *is* the parent, therefore the parent switches apply instead. If you
need a different codename/repository, you'll need support in live-build
for your particular distribution. Currently the major ones are ubuntu
and emdebian which, as I said in my earlier message in this thread, have
at least one person intimately familiar with live-build providing a
stream of patches to support their particular distribution. If you don't
have the resources to do that, you'll have to hack around it somehow, as
right now live-build really only supports the two models:
1. You are a (parent, i.e. non-derivative) distribution. In the
"distribution model" you are Debian by default, but Ubuntu and Emdebian
are also supported (we can ignore Progress, as that is experimental will
be removed). You use whichever repositories apply to your distribution
for both chroot and binary. The derivative-specific options don't apply
to you, as already indicated in the man page.
2. You are a "Distribution (usually Debian) plus" derivative. You have
to set (somehow, as yet not finished in the version in experimental)
derivative mode and use both sets of options (parent + derivative) for
> I will now revert to a21 but i believe i was having the same issues.
> With derivative mode on i get d-i errors because it skips d-i-mirrors
> parameters (--parent-mirror-debian-installer &&
> --mirror-debian-installer), without i get "E: Unable to locate package
> vanillux-desktop" because its skipping --mirror-chroot.
To reiterate, derivative mode is not suitable for you. Just don't use
it, not in experimental, and not in unstable. Your derivative model is
not the "normal" one, and therefore won't give you good results.
> It seams to me like the derivative mode is complicating and limiting
> things a lot both on the user side and the developer side and to be
> honest i dont see why you need it because with simple input validation
> you could know if its a derivative/vanilla debian/distribution.
I *do* see the need for it, and will be devoting some of my time in
future to explain in the doc. At that time, I hope it will be perfectly
clear to you as well why it is needed.
> Also i
> dont see why you disable features in/out of the derivative mode
> because some users might need those features (and the features are not
> truly disabled but given an unchangeable default value).
You keep saying "features are disabled". What you really mean is
"options that apply only to derivatives (and are documented as such)
aren't applicable when you're not in derivatives mode". Isn't that
self-evident? The way you state it makes it sound as if live-build is
"crippled" somehow. In fact, it's operating exactly as designed, and it
makes sense for a derivative model that clearly isn't applicable to
Vanillux. Why do you keep beating your head against this wall? I assure
you the pain will stop when you stop doing that. :)
> I will look at your code tomorrow to see what i can do, i need some sleep :).