On Mon, Oct 29, 2012 at 11:10:04AM +0100, Guillaume Rousse wrote:
Hello Richard.
I didn't find any dedicated mailing-list for febootstrap, so sending
this directly seems the best option.
CC-ing this to libguestfs(a)redhat.com which is the right list.
I'm interested to have
libguestfs on mageia, meaning I have to port febootstrap first. I
had a quick look at the code, and it seems all I have to do is to
provide a new dedicated package handler.
From the content of the febootstrap_yum_rpm.ml file, it seems I just
have to rewrite the yum_rpm_resolve_dependencies_and_download
function, given than all other adress rpm command directly.
Starting from an existing similar plugin is a good idea, so yes.
See also: src/febootstrap_package_handlers.mli where the interface is
precisely defined.
My
current understanding of this function tells me that its purpose is
to download a given package and all its dependency. I think I could
basically achieve the same result by calling urpmi (the functional
equivalent of yum install) with the --no-install flag, wrapping its
output to return the list of downloaded filenames. Or am I missing
an obvious trap ?
The purpose of ph_resolve_dependencies_and_download is described as:
Take a list of package names, and using the package manager
resolve those to a list of all the packages that are required
including dependencies. Download the full list of packages and
dependencies into a tmpdir. Return the list of full filenames.
Note this should also process the [excludes] list.
Unfortunately for the RPM/Yum plugin we have to do this with some
complex Python code, which keeps breaking because they keep changing
their ill-defined "API". For the dpkg/apt plugin it's a lot simpler,
just running the command:
apt-cache depends --recurse -i [package list]
The obvious(?) trap might be that urpmi requires root. Hopefully not,
but if it does require root unnecessarily, please get urpmi upstream
to fix this.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming blog:
http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora