- we currently only support creating regular files for %ghosts which
dont exist in the buildroot, but for files that do exist in the buildroot
there's no reason to place such limits (eg its perfectly ok to have
symlinks marked as %ghosts)
- patch from OpenSUSE / Michael Schroeder
- build-time generated file lists should be placed in the build directory,
but at least one valid use case for this is things like %files -f %{SOURCE10}
- RPMTAG_POLICIES is a string array but there's no guarantee that
something marked %policy is a plaintext file that can be represented
as \0-terminated string, base64-encoding them fixes that. Baby steps
towards making %policy remotely usable, related to RhBug:505066.
- Also remove unnecessary failure code setting, processMetadataFile()
assumes failure already, and dont try to insert NULL strings in case
b64encode() or pgpArmorWrap() fails
- regression from commit 899dfb5892,
size of hardlinked file set is the size of one file of the set
- add isHardLink() internal helper to avoid a copy-paste code
- add %verify(nofiledigest) as %verify(nomd5) file attribute alias
- reference digests as digests not checksums
- make old md5 related symbols obsolete and use newer reference
- update man page accordingly
- this will only catch elf files for now, but better than nothing
- default to terminating build (as binaries in noarch package is pretty
nasty thing to do), permit macro override just in case though
- only works for internal dep generator
- permit fine grained control over what's loaded into fi for what operations,
non-trivial memory savings are possible
- future possibilities - these reflect closely to rpm verify control
bits, all we need is RPMFI_DISK or similar operation to pull the
information from disk instead of header and then verify can simply
compare two rpmfi's
- We need the on-disk paths for the cpio list in here, so instead of
creating an rpmfi with wrong paths (for build purposes) and then
painfully reconstructing half the fileinfo structures by hand, pass
the on-disk path into rpmfiNew() to begin with and then switch the
intended cpio path back into header.
- Duplicates and excludes are already filtered out from the header filelist
so walk that instead of spec filelist to avoid having to filter out
duplicates and excludes, again.
- rpmfiNew() only cares about ts for install-time relocations, nothing
to "fix" wrt that
- we know fip is never NULL (this is a static function with whopping two
callers), don't try to cover up for potential programmer errors
- avoids having to separately calculate in genCpioListAndHeader()
- avoids unnecessary fnlen field in rpmfi struct
- avoids having to calculate it at all if rpmfiFN() is never called
- Parse %caps() from spec filelists, making best-guess verification of
capability string sanity by passing to cap_from_text()
- The posix draft specifies capability export presentation through
cap_copy_ext() which would be fine, except that we don't have support for
arrays of binary data. So we simply store the textual representation
of the capabilities in a string array which we do have.
- Only add capability tag on packages which actually have capabilities to
avoid unnecessary header bloat.
- Add a new rpmlib() dependency for file capabilities, packages relying
on file capabilities wont work correctly unless the capabilities are set.
To be fully correct, support for on-filesystem file capabilities should
be checked at runtime, as this depends on kernel versions and such...
- add minimal bits and pieces to check for capabilities in files on verify
- for now, any capability set is a verification failure as the capability
cannot have been set by rpm itself
- patch from Andreas Gruenbacher, modified to use libcap instead of raw
xattrs for portability