[th] rpm.spec - packaging problem
Patryk Zawadzki
patrys at pld-linux.org
Fri Nov 9 17:29:19 CET 2007
2007/11/9, Jakub Bogusz <qboosh at pld-linux.org>:
> On Fri, Nov 09, 2007 at 03:06:23PM +0100, Patryk Zawadzki wrote:
> > Last year rpm switched the /etc/rpm/sysinfo syntax. Now it expects
> > /etc/rpm/sysinfo to be a directory with following files inside:
> >
> > "Providename",
> > "Requirename",
> > "Conflictname",
> > "Obsoletename",
> > "Dirnames",
> > "Filelinktos"
> >
> > (Taken from rpm/lib/rpmds.c)
> >
> > In PLD we still provide it as a file which limits its use (the
> > fallback treats everything in the file as Providename).
> >
> > After doing:
> >
> > mv /etc/rpm/sysinfo{,.old}
> > mkdir /etc/rpm/sysinfo
> > mv /etc/rpm/sysinfo{.old,/Filelinktos}
> >
> > We can do useful stuff like:
> >
> > echo "foo >= 0.2" >> /etc/rpm/sysinfo/Requirename
> >
> > to pin a certain package a'la Gentoo's world package. Both sysadmins
> > and poldek could benefit from this feature (poldek would need a helper
> > binary called via sudo to alter the contents but it uses sudo for rpm
> > anyway).
> >
> > Therefore I propose fixing the packaging to adapt the new upstream format.
>
> Uhm, could it be /etc/rpm/sysinfo.d/* ?
> Switching a name between being file and directory is PITA with rpm.
The default (rpm/lib/rpmds.c ~ 1546) is:
#define _ETC_RPM_SYSINFO SYSCONFIGDIR "/sysinfo"
We can patch either that line or just override the macro used to get
the path later (same file ~ 1571):
rpmExpand("%{?_rpmds_sysinfo_path}", NULL)
The function rpmdsSysinfo is always called with NULL as filename so it
always resorts to evaluating that macro.
--
Patryk Zawadzki
PLD Linux Distribution
More information about the pld-devel-en
mailing list