gpk-install-catalog reads a .catalog input file that makes that the packages properly listed to be installed if they are not already. This PackageKit's option can be very useful to deployers and software developers as it allows the user for example to download and install a catalog in his distribution without having to worry about identifying the components.
It is sort of equivalent to yum groups but more specific. What does a .catalog look like?
[PackageKit Catalog]
# Easy, the Fedora package which provides the required dependency
# If multiple packages, asks the user
InstallProvides(fedora)=audio/QCELP
# Specific to Fedora 9, installs two developmente packages
InstallPackages(fedora;9)=glib2-devel;PolicyKit-gnome-devel
# In any distro, installs the package which provides the indicated file
InstallFiles=/usr/bin/fontinst
# For every Fedora 8 arch, installs one of two different compat files
InstallFiles(fedora;8;i686)=/usr/lib/pango/1.6.0/modules/pango-arabic-fc.so
InstallFiles(fedora;8;x64)=/usr/lib64/pango/1.6.0/modules/pango-arabic-fc.so
Note the distro-id in (), this allows the packager to spell the package name, eg PolicyKit is the name in Fedora, but policykit is the name in Debian. It can be granular to distribution, distribution version and architecture.
Note that there is no version checking. You must specify the distribution and it must have the correct data.
If there is an optional package not present in earlier versions of the distribution, then you can do something like this:
[PackageKit Catalog]
# Fedora 9 does not have Unique
InstallPackages(fedora;9)=glib2-devel;PolicyKit-gnome-devel
# Rawhide is fedora 9.90
InstallPackages(fedora;9.90)=glib2-devel;PolicyKit-gnome-devel;unique-devel
There is not a catalog description to translate or check, it is simpli a package listing, files, requirements (provides) that may be useful to the user. All translations comes from the distribution metadata and it is up to the user to check the package listing he is asking to install, as there are no signatures or anything like that.
The supported methods are InstallPackages
, InstallProvides
and InstallFiles
. Any line that does not begin with any of these three words will be discarded.