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 + collections/Makefile.am | 19 +++++ collections/collection.h | 12 +++ collections/exec.c | 31 ++++++++ configure.ac | 1 + lib/Makefile.am | 3 +- lib/collections.h | 27 +++++++ lib/order.c | 75 ++++++++++++------ lib/poptI.c | 4 + lib/rpmal.c | 25 ++++++ lib/rpmal.h | 11 +++ lib/rpmtag.h | 1 + lib/rpmte.c | 80 +++++++++++++++++++ lib/rpmte.h | 64 +++++++++++++++ lib/rpmts.h | 1 + lib/transaction.c | 193 ++++++++++++++++++++++++++++++++++++++++++++++ macros.in | 5 + system.h | 2 + tests/rpmgeneral.at | 1 + 20 files changed, 535 insertions(+), 28 deletions(-) create mode 100644 collections/Makefile.am create mode 100644 collections/collection.h create mode 100644 collections/exec.c create mode 100644 lib/collections.h _______________________________________________ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint