<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 23 May 2023 at 03:34, Steve Langasek <<a href="mailto:steve.langasek@ubuntu.com">steve.langasek@ubuntu.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, May 22, 2023 at 01:04:51PM +1200, Michael Hudson-Doyle wrote:<br>
> Thinking about this a bit more... what is germinate actually for in this<br>
> context? :-)<br>
<br>
> The way packages from a seed end up in an image goes like this at the<br>
> moment:<br>
<br>
> 1. it is listed in the seed<br>
> 2. germinate runs and puts the package and all its dependencies into a text<br>
> file<br>
> 3. live-build reads this text file and uses apt to install the packages<br>
> (4. we run mimimize-manual at some point so removing a seeded package and<br>
> running autoremove does something useful)<br>
<br>
> The thing about this is, *apt* obviously knows how to find the dependencies<br>
> of a package. Why don't we just shove the packages listed into the seed<br>
> straight into the file live-build reads?<br>
<br>
> (I suppose one answer might be to do with alternatives handling? cf<br>
> <a href="https://imgflip.com/i/7mmgcz" rel="noreferrer" target="_blank">https://imgflip.com/i/7mmgcz</a> -- does germinate do anything clever to<br>
> satisfy alternatives with a minimal number of extra packages or anything<br>
> like that?)<br>
<br>
It does not.  Indeed, several of the recent seed changes made while landing<br>
this were to fix the fact that germinate from livecd-rootfs (though not when<br>
run on the archive) was seeding two conflicting implementations one of which<br>
satisfies all the dependencies.  </blockquote><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">(Actually this was a virtual package rather<br>
than an alternative, but AFAIK it doesn't do anything clever with<br>
alternatives either!)<br></blockquote><div><br></div><div>Well potato potahto.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I would expect feeding the list directly to apt rather than using germinate<br>
would result in some further changes to the exact packages included, which<br>
would then need to be examined to confirm they're what we want, since there<br>
are often multiple ways to resolve a seed.<br>
<br>
There's also the fact that you'd be reimplementing germinate's own parsing<br>
of the seeds and resolution of seed dependencies, so I'm not sure it's worth<br>
it?<br></blockquote><div><br></div><div>Yes it's probably not worth it. But maybe we can lean this way for when we implement things in ubuntu-image (although I think that has support for running germinate already).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
(One thing that would be nice, in addition to dropping the time-consuming<br>
use of germinate at runtime, </blockquote><div><br></div><div><div>The slow part IME is downloading the package lists, the computational part germinate only takes a few seconds. </div><div></div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">would be that today germinate silently ignores<br>
listed packages that are unavailable, whereas apt would enforce correctness<br>
of the list...)<br></blockquote><div><br></div><div>That does sound like it would be an improvement.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> ((Clearly we need something like germinate to generate the component<br>
> mismatches reports. But maybe not at image build time?))<br>
<br>
That's already run on ubuntu-archive-toolbox independently of the image<br>
builds, so would continue to do so.<br></blockquote><div><br></div><div>Yes, I think my point here was that we can't just delete germinate completely.</div><div><br></div><div>Cheers,</div><div>mwh</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- <br>
Steve Langasek                   Give me a lever long enough and a Free OS<br>
Debian Developer                   to set it on, and I can move the world.<br>
Ubuntu Developer                                   <a href="https://www.debian.org/" rel="noreferrer" target="_blank">https://www.debian.org/</a><br>
<a href="mailto:slangasek@ubuntu.com" target="_blank">slangasek@ubuntu.com</a>                                     <a href="mailto:vorlon@debian.org" target="_blank">vorlon@debian.org</a><br>
-- <br>
ubuntu-devel mailing list<br>
<a href="mailto:ubuntu-devel@lists.ubuntu.com" target="_blank">ubuntu-devel@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel</a><br>
</blockquote></div></div>