1 |
On Thu, Nov 17, 2016 at 07:19:02PM +0100, Kristian Fiskerstrand wrote: |
2 |
> Fwiw, from my own perspective; not allowing mismatches if file exists |
3 |
> makes perfect sense. |
4 |
> |
5 |
> Also GLEP says: |
6 |
> * MISC entries where the file is missing may optionally be ignored as |
7 |
> by non-strict package managers. |
8 |
> * It should be possible to install a package while all MISC entries |
9 |
> have been deleted from the tree. |
10 |
The GLEP breaks down the Manifest2 types into two major groups: |
11 |
- _CRIT: Content that fills any of the following conditions |
12 |
- is directly executed |
13 |
- impacts execution (eg patches) |
14 |
- impacts verification behavior of the tree (relevant to |
15 |
MetaManifest) |
16 |
- except where otherwise specified, missing or mismatch => FATAL |
17 |
- _INFO: Content other than that above. |
18 |
- eg ChangeLog |
19 |
- eg metadata.xml (nothing for user systems is impacted by it, other |
20 |
than to give output about packages). |
21 |
- except where otherwise specified: |
22 |
- missing => silent normally, WARNING if (verbose || strict) |
23 |
- mismatch => WARNING normally, FATAL if strict. |
24 |
|
25 |
From these, all of the other types are derived, with the possibility of |
26 |
additional rules on their handling for validation. Of those extra rules, |
27 |
the only one specified in the GLEP is the MANIFEST type. |
28 |
|
29 |
The MANIFEST type, intended for use in MetaManifests (top-level or |
30 |
category), permits the absence of it's content, but NOT a mismatch. |
31 |
This permits users to omit packages or entire categories from their |
32 |
trees (eg rsync --exclude). In that case, the MetaManifest would still |
33 |
contain the MANIFEST line, but the referred-to Manifest would be |
34 |
missing. Say we excluded the entire 'ros-meta' category: |
35 |
|
36 |
MetaManifest would contain (amongst other lines): |
37 |
MANIFEST ros-meta/audio_common/Manifest 2698 SHA256 ... |
38 |
|
39 |
The rsync exclude(s) in question: |
40 |
--exclude /ros-meta/ |
41 |
|
42 |
Aside: |
43 |
I just realized that it could be very useful to ALSO have: |
44 |
--exclude /metadata/md5-cache/ros-meta/ |
45 |
But that would presently be treated as a fatal error by MetaManifest |
46 |
validation, as it goes to the DATA type which is derived from _CRIT. |
47 |
Possibly need a different type defined for it. Mismatch would be fatal, |
48 |
absence would be silent. |
49 |
|
50 |
-- |
51 |
Robin Hugh Johnson |
52 |
Gentoo Linux: Dev, Infra Lead, Foundation Trustee & Treasurer |
53 |
E-Mail : robbat2@g.o |
54 |
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85 |
55 |
GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136 |