[Rpm-maint] [PATCH v2 0/5] Add Collection Support
slawrence at tresys.com
Mon Jun 21 21:04:35 UTC 2010
This is an updated version of the previous collection patchset .
Changes to the patchset include the following:
- Move rpmteRunCollection into rpmte.c in the rpmteProcess function
- Make the collection list functions part of the internal rpm API where possible
- Fix incorrect chroot usage in the exec.so plugin
- Rename 'collections' directory to 'plugins'
- Use rpm indententation standards
This patchset adds Collection support to rpm. Collections provide a way to
perform a common action after all members of that collection have been
installed. This removes duplicated post installation scripts that only need to
be executed once during a transaction.
For example, currently all font packages run /usr/bin/fc-cache in the %post
section. With collections, we can add all these font packages to the 'font'
collection, and remove the %post section. Once all members of the 'font'
collection are install, only then will fc-cache be run.
To perform collection actions, this patchset adds a minimal plugin system that
allows for both simple and complex collection actions. This system adds three
hooks that are executed at various stages of the RPM transaction to allow for
a wide range of control and flexibility. Included in this patchset is a generic
plugin that can be used to easily execute scripts, which should be sufficient
for the majority of collection actions.
Steve Lawrence (5):
Add new Collections preamble tag
Determine when to perform Collection actions
Add common Collection requirements
Add plugin calling support
Add a generic plugin for use by simple Collections
Makefile.am | 4 +-
build/parsePreamble.c | 4 +
configure.ac | 1 +
lib/Makefile.am | 3 +-
lib/collections.h | 26 +++++++
lib/order.c | 87 ++++++++++++++--------
lib/poptI.c | 4 +
lib/rpmal.c | 26 +++++++
lib/rpmal.h | 11 +++
lib/rpmtag.h | 1 +
lib/rpmte.c | 195 +++++++++++++++++++++++++++++++++++++++++++++++++
lib/rpmte.h | 17 ++++
lib/rpmte_internal.h | 31 ++++++++
lib/rpmts.h | 1 +
lib/transaction.c | 81 ++++++++++++++++++++
macros.in | 5 +
plugins/Makefile.am | 19 +++++
plugins/collection.h | 12 +++
plugins/exec.c | 32 ++++++++
system.h | 2 +
tests/rpmgeneral.at | 1 +
21 files changed, 530 insertions(+), 33 deletions(-)
create mode 100644 lib/collections.h
create mode 100644 plugins/Makefile.am
create mode 100644 plugins/collection.h
create mode 100644 plugins/exec.c
More information about the Rpm-maint