diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2008-10-29 10:49:25 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2008-10-29 10:49:25 +0200 |
commit | a792c55ffae23f483121401fe4ca6724abc57bb5 (patch) | |
tree | 20117b61769bfcd54aa4d081770e01aa1c5b007c /lib | |
parent | daf28d3bf452a1d8daa8f5a70b860ce91b76fffd (diff) | |
download | rpm-a792c55ffae23f483121401fe4ca6724abc57bb5.tar.gz rpm-a792c55ffae23f483121401fe4ca6724abc57bb5.tar.bz2 rpm-a792c55ffae23f483121401fe4ca6724abc57bb5.zip |
Start adding POSIX 1.e draft file capability support for real
- 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...
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rpmds.c | 5 | ||||
-rw-r--r-- | lib/rpmtag.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/rpmds.c b/lib/rpmds.c index 383c21f9e..14c5aa586 100644 --- a/lib/rpmds.c +++ b/lib/rpmds.c @@ -1034,6 +1034,11 @@ static const struct rpmlibProvides_s rpmlibProvides[] = { { "rpmlib(FileDigests)", "4.4.90-1", ( RPMSENSE_EQUAL), N_("file checksum digest algorithm is per package configurable") }, +#ifdef WITH_CAP + { "rpmlib(FileCaps)", "4.6.1-1", + ( RPMSENSE_EQUAL), + N_("support for POSIX.1e file capabilities") }, +#endif { NULL, NULL, 0, NULL } }; diff --git a/lib/rpmtag.h b/lib/rpmtag.h index b66cbabae..efcbd0088 100644 --- a/lib/rpmtag.h +++ b/lib/rpmtag.h @@ -280,6 +280,7 @@ typedef enum rpmTag_e { RPMTAG_ORIGFILENAMES = 5007, /* s[] extension */ RPMTAG_LONGFILESIZES = 5008, /* l[] */ RPMTAG_LONGSIZE = 5009, /* l */ + RPMTAG_FILECAPS = 5010, /* s[] */ RPMTAG_FIRSTFREE_TAG /*!< internal */ } rpmTag; |