Lua script to allow installing and viewing package groups, determined by a backend script to allow it to work on arbitrary group-metadata formats. This script must be plugged into the following APT script slots: Scripts::AptGet::Command:: Scripts::AptCache::Command:: Scripts::AptGet::Help::Command:: Scripts::AptCache::Help::Command:: The backend script name must be specified with the configuration item Scripts::Groupinstall::Backend, the path is relative to the generic scripts directory specified by Dir::Bin::scripts. Additional configuration options which may or may not have any meaning to the backend are: Scripts::Groupinstall::Recursive (recursively process groups) Scripts::Groupinstall::Show-Hidden (show normally hidden groups) Scripts::Groupinstall::All-Packages (install optional packages as well) Scripts::Groupinstall::DataPath (specify a path to group metadata) Usage: apt-cache groupnames - show all known groups apt-cache showgroup <group> - show description and contents of group(s) apt-get groupinstall <group> - install all packages belonging to a group(s) apt-get groupremove <group> - remove all packages belonging to a group(s) About the backend: The backend is also compatible with Synaptic's task-support (new as of synaptic-0.53), provided that you set Synaptic::taskHelperProg configuration item to whatever the path is to your backend script/program. The supplied groupinstall-backend-comps.py is known to work in RHL 8.0, 9, RHEL 3 and Fedora Core 1 and 2. Requires python, comps and rhpl packages to be installed. There's also a backend for SuSe called groupinstall-backend-suse by Richard Bos which should work on any recent SuSe system with Yast. Groupinstall can be made to work on any system where package group data is available in some parseable format. You'll just need to write your own backend for it, providing the following three operations List all available groups: <backend> --list-tasks Show contents of given groups in a human-friendly format: <backend> --task-desc <group1> [--task-desc <group2> ...] List packages belonging to given groups, one package at a time (this is not a user visible operation but is used internally by the script to determine what packages to install/remove in groupinstall and groupremove operations) <backend> --task-packages <group1> [--task-packages <group2> ...] Additionally the backend must be capable of handling the following options passed in before the actual groupnames, even if unimplemented (some options might not be relevant to a given system): -h (show hidden groups) -a (show/install/remove all packages beloging to group, not just default) -r (recursively process groups) -p <path> (pass in an arbitrary data path for the group metadata) -t (show "terminal friendly" output instead of the way synaptic wants the output formatted) Licensed under the GPL, by pmatilai@welho.com / 2003-2004