Fontconfig rules installation guidelines change proposal

Behdad Esfahbod behdad at
Wed Oct 15 20:39:11 UTC 2008

Nicolas Mailhot wrote:
> Le mercredi 15 octobre 2008 à 15:10 -0400, Behdad Esfahbod a écrit :
>> Hi Nicolas,
> Hi Behdad,
> Thank you for reviewing it,
>> I like the direction of it.
>> The idea of having separate conf.avail and conf.d is that sysadmins can
>> symlink/unlink entries into conf.d to enable/disable configuration for their
>> system.  This would only work if upgrading fontconfig/fonts rpms does not
>> reinstate the unlinked symlink.  However, last time I checked this was not
>> working correctly.  Can you check this first?
> I didn't write it in the wiki, but as far as I understand rpm it is not
> possible to tell it "if this file/symlink does not exist do not install
> it". So this bit of conf.avail/conf.d design will never work on rpm
> systems. And even if it worked, what you'd actually need would be "if
> this file does not exist and was installed by a previous rpm" to handle
> initial deployment. Which starts to be real hairy.

Well, it is: don't include the symlink in the RPM but create it in %post, and
only if no previous versions of the package were installed ($1 = 0 IIRC).

> (more generally
> treating absence of an item as disabling this item is a broken computer
> pattern IMHO.)

The alternative would be people editing the files to disable them.  Not much
more package-manager friendly.

> However (someone please check this) it's probably possible to disable an
> entry permanently by creating a symlink with the same name pointing
> somewhere else

This can be ok.  If it works, we can document it.

> (how does fontconfig reacts to /dev/null symlinks or
> symlinks pointing to empty files)? 

Works fine.

> So having a repository of
> pre-deployed config snippets is fine with me.
> Also (and this bit is traced on the wiki) as I understand the
> FHS /etc/.../conf.avail is a complete no-go and should be moved
> to /usr/share/something if we want to be clean. And that
> before /etc/.../conf.avail is duplicated in many packages.

Really?  Where does it talk about those kind of stuff?


More information about the devel mailing list