/*! \page hregions Immutable header regions in rpm-4.0.1 and later The header data structure has changed in rpm-4.0.[12] to preserve the original header from a package. The goal is to keep the original header intact so that metadata can be verified separately from the payload by the RHN up2date client and by the rpm command line verify mode using signatures saved in the rpm database. I believe the change is entirely forward and backward compatible, and will not require any artifacts like changing the version number of packaging or adding an "rpmlib(...)" tracking dependency. We'll see ... Here's a short description of the change. An rpm header has three sections: \verbatim 1) intro (# entries in index, # bytes of data) 2) index 16 byte entries, one per tag, big endian 3) data tag values, properly aligned, big endian \endverbatim Representing sections in the header (ignoring the intro) with \verbatim A,B,C index entries sorted by tag number a,b,c variable length entry data | boundary between index/data \endverbatim a header with 3 tag/value pairs (A,a) can be represented something like \verbatim ABC|abc \endverbatim The change is to introduce a new tag that keeps track of a contiguous region (i.e. the original header). Representing the boundaries with square/angle brackets, an "immutable region" in the header thus becomes \verbatim [ABC|abc] \endverbatim or more generally (spaces added for clarity) \verbatim [ABC> QRS | [DEF> QRS | > QRS | < QRS XYZ | QRS D |