This is an updated version of the previous collection patchset [1]. 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
[1] http://lists.rpm.org/pipermail/rpm-maint/2010-June/002762.html -- 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 _______________________________________________ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint