Hi, I'll post two small patch sets as followups to this "higher order" cover letter. The goal is to build guestfs-tools and virt-v2v against a freshly built libguestfs (git checkout), using libguestfs's "run" script. The modifications affect two projects, libguestfs-common and guestfs-tools, hence the two (upcoming) patch series.
libguestfs-common is tricky because it is consumed as a submodule by three git superprojects (libguestfs itself, then guestfs-tools and virt-v2v). Yet more trickily, the three superprojects don't all seem to consume libguestfs-common at the same submodule git commit, at the moment. (libguestfs and guestfs-tools consume the submodule at older commit 74bc5c5c5cb4, while virt-v2v consumes the submodule at current HEAD commit 6d26b6eac9da.) For verifying the libguestfs-common updates, I first attempted various git-pushes into the submodule checkouts of the superprojects. That proved super unwieldy, as it would require a whole lot of git massaging just to (incrementally) rebuild all three superprojects after each libguestfs-common update. Instead, in each superproject, I created a development branch, and as first commit on that branch, I removed the submodule altogether, and replaced it with a directory tree of symbolic links into my stand-alone libguestfs-common worktree -- refer to the "lndir" command. I didn't expect creating new files in libguestfs-common, so once established, the symlink set could be considered final. Furthermore, "lndir" was required for symlinking individual regular files: symlinking subdirectories from libguestfs-common into the superprojects' "common" directories doesn't work, as the "common" content refers back to the superproject, via relative pathnames such as "../blah". For such pathnames to work, the deep "common" directory structure actually needs to exist within each superproject, only the leaves (the regular files) can be replaced with symlinks. Thankfully, "lndir" implements just that. This effectively bumped libguestfs and guestfs-tools to libguestfs-common HEAD commit 6d26b6eac9da, as a basis for the needed libguestfs-common fixes. With the "libguestfs-common" patch set applied (on top of commit 6d26b6eac9da), libguestfs can be built and checked without regressions. Furthermore, virt-v2v too can be built and checked against the just-built libguestfs (using the latter's "run" script) without regressions. The same applies to "guestfs-tools", assuming the other patch set is applied to it (on top of commit 9ba463545fa0). Once these patch sets are up-stream, the three superprojects should advance their submodule references to the new libguestfs-common head commit. Thanks! Laszlo _______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
