Gentoo Archives: gentoo-portage-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-portage-dev@l.g.o, Zac Medico <zmedico@g.o>, Zac Medico <zmedico@g.o>
Subject: Re: [gentoo-portage-dev] [PATCH v2] Move INSTALL_MASK handling into merging
Date: Sun, 12 Jun 2016 10:07:32
Message-Id: 21E4DC3A-7DDB-42A4-81B3-29CF7FBE2A8F@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [PATCH v2] Move INSTALL_MASK handling into merging by Zac Medico
1 Dnia 12 czerwca 2016 11:49:26 CEST, Zac Medico <zmedico@g.o> napisał(a):
2 >On 06/12/2016 02:28 AM, Michał Górny wrote:
3 >> Dnia 12 czerwca 2016 11:10:55 CEST, Zac Medico <zmedico@g.o>
4 >napisał(a):
5 >>> On 05/22/2016 01:21 AM, Michał Górny wrote:
6 >>>> Introduce a new logic for INSTALL_MASK handling in merging code,
7 >>>> replacing the old code that removed matching files and directories
8 >>>> from imagedir in bash. The new code actually ignores matching files
9 >>>> on-the-fly while testing for file collisions and merging files.
10 >>>> The files are still written to CONTENTS, and output using "###"
11 >zing
12 >>>> to indicate being masked, yet are not actually merged to the
13 >>> filesystem.
14 >>>
15 >>> Since collision-protect relies on existing files in its collision
16 >test,
17 >>> install-masked files are no longer going to trigger collisions.
18 >Then,
19 >>> since the install-masked files are still written to CONTENTS, it's
20 >>> possible for the unmerge of one package to unmerge colliding files
21 >that
22 >>> belong to another package!
23 >>>
24 >>> There are a number of ways to solve this problem. For example, we
25 >could
26 >>> have the unmerge code ignore any files in CONTENTS that match the
27 >>> INSTALL_MASK value that was used at merge time.
28 >>
29 >> Hmm, thinking about this more widely (i.e. actually thinking rather
30 >than mimicking the old behavior), I think it would be better to
31 >actually use the original file set for collision-protect. This will
32 >make it possible to detect collisions that would otherwise be hidden
33 >via INSTALL_MASK.
34 >
35 >Even then, we have to carefully consider how the absence of installed
36 >files affects the collision test. It's safest for the unmerge code to
37 >be
38 >aware of the merge time INSTALL_MASK setting, and not try to unmerge
39 >the
40 >install-masked files.
41
42 But then it wouldn't unmerge the newly masked files as well. Getting this right will require a lot of effort, and we're less likely to screw something up if we keep it simple.
43
44
45 --
46 Best regards,
47 Michał Górny (by phone)

Replies