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

Reply via email to