1 |
On 1/15/21 6:47 PM, Matt Turner wrote: |
2 |
> This set is the upgradable packages for which the highest visible |
3 |
> version has a different subslot than the currently installed version. |
4 |
> |
5 |
> The primary purpose of this feature is for use in catalyst builds. We |
6 |
> update the "seed" stage3 before using it to build a new stage1. |
7 |
> |
8 |
> Updating the entire stage is expensive and unnecessary (since we're |
9 |
> going to build the latest packages in stage1 and then rebuild everything |
10 |
> in stage3). |
11 |
> |
12 |
> What we definitely do need to update in the original stage3 however, is |
13 |
> any package that would trigger a subslot rebuild. |
14 |
> |
15 |
> For example: gcc links with libmpfr.so from dev-libs/mpfr. mpfr's SONAME |
16 |
> changes from libmpfr.so.4 (SLOT="0/4") to libmpfr.so.6 (SLOT="0/6"). If |
17 |
> the seed stage's dev-libs/mpfr is not updated before emerging gcc, gcc |
18 |
> will link with libmpfr.so.4, but the latest version of dev-libs/mpfr |
19 |
> will be built and libmpfr.so.6 included into the stage1. Since the old |
20 |
> libmpfr.so.4 is not included in the stage1, gcc will not work, breaking |
21 |
> subsequent stage builds. |
22 |
> |
23 |
> Our current options to update the seed are too large a hammer (e.g., |
24 |
> "--update --deep --newuse @world" or "--update --deep --newuse |
25 |
> --complete-graph --rebuild-if-new-ver gcc") and spend too much time |
26 |
> updating seed stages for no gain beyond updating only packages for whom |
27 |
> the subslot has changed. |
28 |
> |
29 |
> With this set, catalyst will likely use |
30 |
> |
31 |
> emerge @changed-subslot --ignore-built-slot-operator-deps y |
32 |
> |
33 |
> to update the seed stage. |
34 |
> |
35 |
> Thank you to Zac Medico for showing me how to do this. |
36 |
> |
37 |
> Bug: https://bugs.gentoo.org/739004 |
38 |
> Signed-off-by: Matt Turner <mattst88@g.o> |
39 |
> --- |
40 |
> cnf/sets/portage.conf | 5 +++++ |
41 |
> lib/portage/_sets/dbapi.py | 39 +++++++++++++++++++++++++++++++++++++- |
42 |
> 2 files changed, 43 insertions(+), 1 deletion(-) |
43 |
|
44 |
Look good. Thanks! Merged: |
45 |
|
46 |
https://gitweb.gentoo.org/proj/portage.git/commit/?id=6c70596d6d6382160490bb16ef559ccfdd982fae |
47 |
-- |
48 |
Thanks, |
49 |
Zac |