On Thu, 2006-11-09 at 22:48 +0100, Tomasz Kłoczko wrote:
BTW. I have small modification %post/%postun script template:
if [ -x %{_bindir}/gconftool-2 ]; then export GCONF_CONFIG_SOURCE=`%{_bindir}/gconftool-2 --get-default-source` rm -f $GCONF_CONFIG_SOURCE/* %{_bindir}/gconftool-2 --makefile-install-rule /etc/gconf/schemas/*.schemas >& /dev/null fi
It will allow remove all "Requires(post,postun): GConf", "Prereq: GConf" or Requires(post,postun): /usr/bin/gconftool-2 rules.
For the general case of making a Requires(post) optional you need to make sure that the package that you are making optional invokes its update program when it installs. For instance:
Use this when a package drops an XML file in %{_datadir}/mime/packages.
%post update-mime-database %{_datadir}/mime &> /dev/null || :
$ rpm -q --scripts shared-mime-info postinstall scriptlet (using /bin/sh): /usr/bin/update-mime-database /usr/share/mime &> /dev/null
For the specific case of gconf schemas, you don't gain much by making this optional. The program itself depends on GConf2 so you have to pull it in for the program whether or not the scriptlet depends on it. This in contrast to gtk-update-icon-cache for kde apps and update-mime-database where the program can run fine without installing gtk2 or shared-mime-info.
-Toshio