Since starting the daily dose of rawhide I am gradually becoming more acquainted with the ins and outs of rawhide. A particular day or release of rawhide only exists for a twenty-four hour period–longer if something goes wrong with the compose process.

Rawhide is composed in Fedora’s infrastructure and made available at http://download.fedora.redhat.com/pub/fedora/linux/development. It is also made available and synchronized by the Fedora mirrors to improve download speed for users and reduce the burden on Red Hat’s infrastructure. To the uninitiated, compose is a special term which refers to creating or building an installable Linux distribution, in this case Fedora or Red Hat Enterprise Linux. See the Fedora Mirroring Page to learn more about becoming a mirror or understanding how the process works.

Because of the time it takes the mirrors to synchronize with Fedora’s infrastructure, combined with the current state of an individual mirror, sometimes it is difficult  to tell which day of rawhide you are getting.  In addition sometimes a tree cannot be installed if files are missing from the images directory.  Snake provides a simple way to find out.


$ su -c 'yum install snake'

$ snake-rawhide-status http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os
checking http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os
Fedora development i386 (20080429): ok

snake-tree info provides additional details


$ /usr/sbin/snake-tree info http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os
No data source used
Name         : Fedora development i386 (20080429)
Arch         : i386
Id           : 1209473593.37
Version      : development
Family       : Fedora
Variant      :
Time         : 2008-04-29 05:53 PDT
URI's        :
Images       : i386 (kernel, family, timestamp, variant, boot.iso, initrd, version, arch),
xen (kernel, family, timestamp, variant, initrd, version, arch)

Each of these commands translates some of the less readable information from the .treeinfo which is created when a tree is composed. For example


http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os/.treeinfo

[general]
family = Fedora
timestamp = 1209473593.37
variant =
totaldiscs = 1
version = development
discnum = 1
packagedir =
arch = i386

[images-i386]
kernel = images/pxeboot/vmlinuz
initrd = images/pxeboot/initrd.img
boot.iso = images/boot.iso
[images-xen]
kernel = images/xen/vmlinuz
initrd = images/xen/initrd.img

[stage2]
instimage = images/minstg2.img
mainimage = images/stage2.img


Note: the .treeinfo file is a hidden file and thus not normally presented in a directory listing unless specified.

Even if you’ve verified date of a tree and that the images are present, there are still no guarantees that the tree itself is internally consistent–in other words there is no simple way to know whether a particular mirror has completely sync’d all of the latest packages.  And if there is, please post a comment and tell me how 🙂