On Fri, Nov 29, 2019 at 05:04:14PM +0100, Pino Toscano wrote:
On Friday, 29 November 2019 13:09:47 CET Richard W.M. Jones wrote:
So, the difficulty of git submodules aside, we have now split off virt-v2v and virt-p2v into separate projects.
I also yesterday split off the boot analysis tools into a repo which is likely to be rarely used and which I'll probably not bother to package in Fedora. https://github.com/libguestfs/libguestfs-analysis-tools
Where do we go from here?
Before going on with splitting, I'd take a "pause" to review the status of the projects, after their split. Considering the work that was already done to split them, and various difficulties we faced, there is enough material to check what still need to be improved/fixed, as most probably the same issues will happen in case of further splits.
The biggest issue I see so far is the impossibility to build virt-v2v (the only split project that requires libguestfs) with an uninstalled version of libguestfs. I see (at least) two problems.
1) building C programs. Usually this means having a .pc file for pkg-config in PKG_CONFIG_PATH, with headers and library in the location of that file. An approach I've seen done is to create a -uninstalled.pc file with its paths pointing to the source/build directories, and making sure the path of that -uninstalled.pc file is in PKG_CONFIG_PATH (which ./run can do). I never tried to do this, I can give it a try on Monday to see how it works.
2) building OCaml programs. It seems like ocamlfind.findlib has the possibility to locate modules in non-standard directories (see findlib.conf(5)), however I never tried that. Most probably a certain file structure is expected, which is definitely not what we have right now.
IMHO solving (1) is definitely a must, otherwise there is no way to test new APIs outside of the repository with libguestfs (the library). Possibly also (2) is a must -- for example, earlier I added to the OCaml binding this: https://github.com/libguestfs/libguestfs/commit/4aa4edf972bc8df8869cdcaa4ab4... the idea is to use it in virt-v2v (not for an important change anyway), however right now it is not possible.
All good points. For OCaml I believe we can set OCAMLPATH (see also findlib.conf(5) for various other environment variables) and that will allow virt-v2v to do: ../libguestfs/run ./configure ../libguestfs/run make Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org