[Mageia-dev] My feeeling about the rpmlib(X-CheckUnifiedSystemdir) dependency
Christiaan Welvaart
cjw at daneel.dyndns.org
Thu Jul 26 11:24:14 CEST 2012
On Thu, 26 Jul 2012, Olivier Thauvin wrote:
> I do think the way we enforce the need of migrate to /usr fs is just an
> abuse of rpm.
Agreed, I think it even changes the rpmlib ABI/API. rpmlib() deps are
used for features supplied by rpmlib itself, while rpm does not maintain
/bin /lib etc. Technically, all rpmlib() provides are implemented in
rpmdsRpmlib() but filesystem checks cannot be done there because they
depend on the rootdir used, which is not supplied to this function.
> By using the a rpmlib() dependency we create in fact this dependency
> tree:
> filesystem => rpm with X-CheckUnifiedSystemdir patch => check fs
> whereas we want:
> filesystem => check fs
>
> THere another to perform the check w/o needing patch in rpm (so w/o
> needing a specific rpm first): using pre script.
>
> If the %pre script failed rpm will refuse to install the rpm, so
> something like that:
Does that cancel the whole transaction?
Another option is to use a dummy package, e.g.
usrmovecheck-1-1.mga3.noarch.rpm whis is *not* put in the repository.
Instead, the dracut conversion script installs it from /usr/share/...
after a succesful filesystem conversion. The installer must also install
this dummy package before regular package installation(...). The
filesystem pkg can then depend on (for example)
"usr_move_required-see_mga3_release_notes" which usrmovecheck provides.
The latter pkg has a pre check on /bin /lib etc. not being real
directories, but maybe it should not complain if they're missing (they are
formally provided by the filesystem pkg which depends on the check pkg,
creating a circular dep).
Christiaan
More information about the Mageia-dev
mailing list