Fedora 17 in a CHROOT on Ubuntu - and the wrong dependency on rpmlib(X-CheckUnifiedSystemdir)

T.C. Hollingsworth tchollingsworth at gmail.com
Tue Sep 18 01:54:31 UTC 2012


On Thu, Sep 13, 2012 at 5:32 AM, Marc Wäckerlin
<marc.waeckerlin at tech.swisssign.com> wrote:
> Hi
>
> I am working in Ubuntu and compiling RPMs for Fedora. That's why I install Fedora in
> a **chroot** environment. That works fine with Fedora 16, but fails with Fedora 17 due
> to the wrong "rpmlib(X-CheckUnifiedSystemdir)" dependency.

The Fedora buildsystem uses a utility called mock to build RPMs for
Fedora and RHEL. mock creates chroots and installs build dependencies
automatically--just feed it an SRPM and it takes care of the rest.
It's available in the Ubuntu "universe" repository in the "mock"
package.  I think you'll find it much easier than maintaining your own
chroots.  ;-)

> I Do not upgrade and I cannot use dracut, because Fedora 17 is in a chroot and cannot
> boot. So the instructions at http://fedoraproject.org/wiki/Upgrading_Fedora_using_yum
> do **not** help.
>
> How to solve the problem? What does dracut do, why(*) does rpm fail, where does this
> dependency come from? How can I either fake this dependency or prevent RPM from requiring
> it? I need a deep inside knowledge on what's going on, what dracut does and what rpm does.
> What have the fedora-guys patched to get thie wrong dependency, and how can I undo it?

I believe you'll need to run the convertfs procedure dracut would
ordinarily run manually.  To do so, obtain the script at
https://raw.github.com/haraldh/dracut/master/modules.d/30convertfs/convertfs.sh
then run it with the path to your chroot as the first argument (e.g.
`convertfs.sh /home/jenkins/fedora`).

> ----
> (*) I mean technically *why*, not user-view answers like "to prevent upgrades without
> fs-migration", this kind of answer does not help, but technical answers like "dracut
> creates content X in file Y, then the dependency is ignored in rpm"
>
>
> ----------
>
>
> Background information:
>
> I use the chroots on an Ubuntu server running a Jenkins build server to build packages
> for all available Debian, Ubuntu, openSUSE and - as soon as possible - Fedora
> distributions.
>
> I setup a chroot the following way:
>
>  1. download all basic RPM files
>  2. unpack the RPM file into a chroot dir using rpm2cpio to get the basig filesystem
>  3. within the chroot, call rpm for all packages to run installation scripts an update
>     rpm database
>
>
> In the attachment you find my setup chroot script "susebootstrap.sh". It is originally
> build for openSUSE, but also works for Fedora with correct parameters; i.e.
>
> Install Fedora 16 i686 in a chroot:
>
> URL=http://mirror.switch.ch/ftp/mirror/fedora/linux/releases/16/Fedora/i386/os \
>   HW="i686 noarch" OS=fedora VERSION=16 PKGS="bash rpm yum fedora-release" \
>   susebootstrap.sh
>
> Install Fedora 17 i686 in a chroot:
>
> URL=http://mirror.switch.ch/ftp/mirror/fedora/linux/releases/17/Fedora/i386/os \
>   HW="i686 noarch" OS=fedora VERSION=17 PKGS="bash rpm yum fedora-release" \
>   susebootstrap.sh
>
> Installing Fedora 16 works, installing Fedora 17 fails due to the
> "rpmlib(X-CheckUnifiedSystemdir)" dependency.
>
> The very last step fails, after echo of "... install more basic packages" the
> command "${CHROOT} -r -- yum -y -q groupupdate Base" fails with:
>
> ---------------------------------------------------------------------------------
>    ... install more basic packages
> ERROR You need to update rpm to handle:
> rpmlib(X-CheckUnifiedSystemdir) is needed by filesystem-3-2.fc17.i686
> RPM needs to be updated
>  You could try running: rpm -Va --nofiles --nodigest
> Your transaction was saved, rerun it with:
>  yum load-transaction /tmp/yum_save_tx.2012-09-13.08-29.pr4OBd.yumtx
> **** ERROR aborted. Status of last operation: 1
> ---------------------------------------------------------------------------------
>
>
> Thank you
> Regards
> Marc
> --
> users mailing list
> users at lists.fedoraproject.org
> To unsubscribe or change subscription options:
> https://admin.fedoraproject.org/mailman/listinfo/users
> Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
> Have a question? Ask away: http://ask.fedoraproject.org
>


More information about the users mailing list