From the man page Live build seams to have options for every stage for both the parent (based on distro) and the derivative (codename bob):
- Debootstrap both parent (ex based on wheezy) and the derivative (ex codename bob) trough : --parent-mirror-bootstrap(URL)/--parent-distribution(Codename) && --mirror-bootstrap(URL)/--distribution(codename)
- Chroot : --parent-mirror-chroot(URL)/--parent-distribution(Codename) && --mirror-chroot(URL)/--distribution(codename)
- Binary: --parent-mirror-binary(URL)/--parent-distribution(Codename) && --mirror-binary(URL)/--distribution(codename)
- D-I: --parent-mirror-debian-installer(URL)/--parent-debian-installer-distribution(Codename) && /--debian-installer-distribution(Codename)
But thats not truly possible. You will never be able to customize the 8 different sources of software at the same time. But some users might want it, you might judge that they shouldn't but why not make it possible ? I seams the code is all already there its just been comparmentalised trough the derivative option so that the user cant play with all the settings himself ...
Thats what i mean by its broken...
Anyway im adding vmlinuz as we speak to our rrepo. But i will look at the code later to see if i could enable all parameters for users that might want that, maybe trought a 3rd mode : custom or something.
On Mon, Aug 15, 2011 at 8:07 AM, Ben Armstrong <
synrg@sanctuary.nslug.ns.ca> wrote:
> 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
>> anything)
>
> 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
> translations!)
>
>> 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
>> --mirror-bootstrap.
>>
>> 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
> setting mirrors.
>
>> 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 :).
>
> Rest well!
>
> Ben
>
--
Fabrice Quenneville
fabrice@vanillux.org