[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