Richard W.M. Jones
2012-Oct-29 10:25 UTC
[Libguestfs] Porting febootstrap to urpmi-based distributions
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 at 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
Reasonably Related Threads
- [PATCH febootstrap] Some cleanups for Debian and Ubuntu
- builder-debian febootstrap success 48ba44a6751f5455a3afb37fb5809abc507696e1
- builder-ubuntu febootstrap success 48ba44a6751f5455a3afb37fb5809abc507696e1
- builder-ubuntu febootstrap success 2dfc659c33c5ceb298e8027e219547416b286661
- builder-ubuntu febootstrap success 27a911ca193ad5a56a7afac4f6100b3a3f732680