On Thu, Nov 17, 2016 at 07:19:02PM +0100, Kristian Fiskerstrand wrote: > Fwiw, from my own perspective; not allowing mismatches if file exists > makes perfect sense. > > Also GLEP says: > * MISC entries where the file is missing may optionally be ignored as > by non-strict package managers. > * It should be possible to install a package while all MISC entries > have been deleted from the tree. The GLEP breaks down the Manifest2 types into two major groups: - _CRIT: Content that fills any of the following conditions - is directly executed - impacts execution (eg patches) - impacts verification behavior of the tree (relevant to MetaManifest) - except where otherwise specified, missing or mismatch => FATAL - _INFO: Content other than that above. - eg ChangeLog - eg metadata.xml (nothing for user systems is impacted by it, other than to give output about packages). - except where otherwise specified: - missing => silent normally, WARNING if (verbose || strict) - mismatch => WARNING normally, FATAL if strict.
From these, all of the other types are derived, with the possibility of additional rules on their handling for validation. Of those extra rules, the only one specified in the GLEP is the MANIFEST type. The MANIFEST type, intended for use in MetaManifests (top-level or category), permits the absence of it's content, but NOT a mismatch. This permits users to omit packages or entire categories from their trees (eg rsync --exclude). In that case, the MetaManifest would still contain the MANIFEST line, but the referred-to Manifest would be missing. Say we excluded the entire 'ros-meta' category: MetaManifest would contain (amongst other lines): MANIFEST ros-meta/audio_common/Manifest 2698 SHA256 ... The rsync exclude(s) in question: --exclude /ros-meta/ Aside: I just realized that it could be very useful to ALSO have: --exclude /metadata/md5-cache/ros-meta/ But that would presently be treated as a fatal error by MetaManifest validation, as it goes to the DATA type which is derived from _CRIT. Possibly need a different type defined for it. Mismatch would be fatal, absence would be silent. -- Robin Hugh Johnson Gentoo Linux: Dev, Infra Lead, Foundation Trustee & Treasurer E-Mail : robb...@gentoo.org GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85 GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136
signature.asc
Description: Digital signature