Ok, here is where I am so far, but my ocaml is VERY weak, so it is slow
going, I also added the right stuff to config.ml.in and Makefile.ml to make
it work.
it seems to work, but when I run febootstrap --names bash coreutils dcron
dhcpcd e2fsprogs file filesystem findutils gawk grep grub gzip initscripts
iputils kernel26 less libusb logrotate net-tools pacman sed shadow sysvinit
tar tcp_wrappers udev util-linux-ng
it only processes bash.
I am sure I am missing something obvious, but if you have any suggestions
that would be great, learning ocaml is taking some time :)
-Tom Hatch
On Sun, Dec 5, 2010 at 4:28 PM, Thomas S Hatch <thatch45(a)gmail.com> wrote:
On Sun, Dec 5, 2010 at 10:56 AM, Richard W.M. Jones <rjones(a)redhat.com>wrote:
> To make this even more explicit:
>
> > (1) There has to be a way to detect that the package manager should
> > be used, eg. by looking for /etc/arch-release
>
> RPM: check for existence of /etc/redhat-release
> Debian: check for existence of /etc/debian_version
Arch: check for existence of /etc/arch-release
Arch: Or check the kernel version for "ARCH" with a uname -r
> > (2) There must be a way to take a list of package names, and fully
> > resolve all dependencies (recursively as necessary) to get a complete
> > list of packages that must be installed to bootstrap.
>
> RPM: [lots of Yum API magic]
> Debian: apt-cache depends --recurse -i <list of package names>
>
Arch: pactree -l <list of package names> | sort -u
pactree is part of the pacman-contrib package
>
> > (3) Must be a way to download a package.
>
> RPM: yumdownloader <name of package>
> Debian: aptitude download <name of package>
>
Arch: pacman -Sw --cachedir=<Where to download> <name of package(s)>
This will download the package to the cachedir: /var/cache/pacman/pkg
>
> > (4) Must be able to list out the files in a downloaded package.
>
> RPM: rpm -qlp foo.rpm
> Debian: dpkg-deb -c foo.deb
>
pacman -Qlp foo.pkg.tar.xz
>
> > (5) Must be able to extract a single file from a downloaded package.
>
> RPM: rpm2cpio foo.rpm | cpio -id
> Debian: dpkg-deb --fsys-tarfile foo.deb | tar xf -
>
Arch: tar xf foo.pkg.tar.xz
Arch packages are just tarballs with a PKGINFO file in the root directory
which has package metadata
>
> So it's almost enough for you to tell me the equivalent of those
> commands for pacman, although of course I'd prefer a patch to
> febootstrap!
>
> Rich.
>
> --
> Richard Jones, Virtualization Group, Red Hat
>
http://people.redhat.com/~rjones
> virt-p2v converts physical machines to virtual machines. Boot with a
> live CD or over the network (PXE) and turn machines into Xen guests.
>
http://et.redhat.com/~rjones/virt-p2v
>
Here are the answers, and all commands work as non-root, before running any
commands the package database would need to be updated by running "pacman
-Sy"
I will grab a git checkout of febootstrap and start looking into prepping a
patch, but if this is enough info for you to whip up support then let me
know and I will test it and fix any arch specific things.
Thanks!
-Tom Hatch