I am a Manjaro user and was compiling libguestfs today from the AUR (it doesn't reside on Arch/Manjaro repos) and got the following error: "make[2]: Leaving directory '/home/matador/AUR/libguestfs-git/src/libguestfs/common/errnostring' Making all in common/protocol make[2]: Entering directory '/home/matador/AUR/libguestfs-git/src/libguestfs/common/protocol' make[2]: *** No rule to make target 'guestfs_protocol.c', needed by 'all'. Stop. make[2]: Leaving directory '/home/matador/AUR/libguestfs-git/src/libguestfs/common/protocol' make[1]: *** [Makefile:2380: all-recursive] Error 1 make[1]: Leaving directory '/home/matador/AUR/libguestfs-git/src/libguestfs' make: *** [Makefile:2280: all] Erro 2 ==> ERRO: Uma falha ocorreu em build()." Apparently a makefile error, as there's no 'guestfs_protocol.c' file in that directory (or in the whole source code, in fact), although it is referenced by the Makefile.
On Sun, Jul 05, 2020 at 07:24:29PM -0300, Ezequiel Santos wrote:> I am a Manjaro user and was compiling libguestfs today from the AUR (it > doesn't reside on Arch/Manjaro repos) and got the following error: > > "make[2]: Leaving directory > '/home/matador/AUR/libguestfs-git/src/libguestfs/common/errnostring' > Making all in common/protocol > make[2]: Entering directory > '/home/matador/AUR/libguestfs-git/src/libguestfs/common/protocol' > make[2]: *** No rule to make target 'guestfs_protocol.c', needed by 'all'. > Stop. > make[2]: Leaving directory > '/home/matador/AUR/libguestfs-git/src/libguestfs/common/protocol' > make[1]: *** [Makefile:2380: all-recursive] Error 1 > make[1]: Leaving directory '/home/matador/AUR/libguestfs-git/src/libguestfs' > make: *** [Makefile:2280: all] Erro 2 > ==> ERRO: Uma falha ocorreu em build()." > > Apparently a makefile error, as there's no > > 'guestfs_protocol.c' file in that directory (or in the whole source code, > in fact), although it is referenced by the Makefile.When compiling from git you have to make sure the git submodule is updated. Are there any files under common/ ? Are there any files apart from Makefile.am in common/protocol? What commands did you use to build libguestfs? Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
On Mon, Jul 06, 2020 at 07:52:42PM -0300, Ezequiel Santos wrote:> Actually, I was trying to compile it from the AUR repository ( > https://aur.archlinux.org/packages/libguestfs-git/) when I came across this > problem. > Now, answering your question: > *1. Are there any files under common/ ?* > Yes. There are several files there in, including Makefile.am, > guestfs_protocol.x, but not guestfs_protocol.c or guestfs_protocol.h > > However, I was talking to the package maintainer and he's stated that > > > rpcgen is used to create the files that are missed in your builds: > > > > $ grep -n rpcgen makepkg.out > > 3426:checking for rpcgen... rpcgen > > 4712:checking for rpcgen... rpcgen > > 5409:rpcgen -c -o guestfs_protocol.c-t guestfs_protocol.x > > 5410:rpcgen -h -o guestfs_protocol.h-t guestfs_protocol.x > > 5749:rpcgen -h -o rc_protocol.h-t rc_protocol.x > > 5750:rpcgen -c -o rc_protocol.c-t rc_protocol.x > > > > So I think the solution would be to add *rpcsvc-proto* (provider of > > rpcgen) to makedepends. On feedback that it works I'll make this update. > > > > I installed *rpcsvc-proto *and indeed it created the missing files > (including the .c and .h file mentioned above) and it eliminated that > compiler error (just now I got a different one, which I'll try solving > later), > > However, it is of my concern that, as the maintainer of that package > mentioned: > > > This is a bit messy: > > > > 1. error should have been triggered at configure stage when rpcgen was > > not found, rather than at compile stage. > > 2. http://libguestfs.org/guestfs-building.1.html does mention in > > section *Full list of requirements* that *The rpcgen tool is optional, > > except if you want to compile from git*. However, there is section *BUILDING > > FROM GIT* which also lists specific dependencies, but not rpcgen; so > > if you are directly looking for git build instructions, *you'll miss > > it. * > > > > I personally tried agree with him, because I tried to find info on how to > properly compile this and although I didn't try manually fetching the code > from git, I could find enough information to solve this problem and thus I > think *there is *something to be fixed upstream, even if it's just > documentation.Why is the package being built from git? The tarballs contain all the files needed, and rpcgen isn't needed when building from the tarball. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
> > Why is the package being built from git? The tarballs contain all the > files needed, and rpcgen isn't needed when building from the tarball. > > Rich. >Well, that's up to the package maintainer, he must not know about the tarballs either. I just wanted to use to software and it is not in Manjaro's official repository, so I went for the AUR. Anyways, I succeeded in compiling it by installing *ruby-rdoc* and *ruby-rake, *which eliminated the following compiler errors. However, in the case of ruby-rake the errors give little to no evidence as to what is missing. I personally have no business (usually) with compiling stuff from source and should actually thank you lads for the software you made available for the community. Still I think your GitHub and libguestfs page ( http://libguestfs.org/guestfs-building.1.html) should use of some improvement. There's no denying there's information missing in both. The GitHub page doesn't tell us anything at all either about building from tarballs or the likes, it just points to the building guide above, *which in turn* doesn't mention anything about preferring the tarballs or them being complete, so one just assumes it is ok to compile from git, which is the case for most open-source software. Yet the instructions to compile from git don't mention it's mandatory to have these dependencies installed. If those were only mentioned, people will avoid spending hours of investigation as to why it doesn't compile when all the dependencies are supposedly met. Anyways, thanks for the attention and support, I'll communicate the package maintainer of the tarballs and the why he should be using it instead. Em ter., 7 de jul. de 2020 às 05:11, Richard W.M. Jones <rjones@redhat.com> escreveu:> On Mon, Jul 06, 2020 at 07:52:42PM -0300, Ezequiel Santos wrote: > > Actually, I was trying to compile it from the AUR repository ( > > https://aur.archlinux.org/packages/libguestfs-git/) when I came across > this > > problem. > > Now, answering your question: > > *1. Are there any files under common/ ?* > > Yes. There are several files there in, including Makefile.am, > > guestfs_protocol.x, but not guestfs_protocol.c or guestfs_protocol.h > > > > However, I was talking to the package maintainer and he's stated that > > > > > rpcgen is used to create the files that are missed in your builds: > > > > > > $ grep -n rpcgen makepkg.out > > > 3426:checking for rpcgen... rpcgen > > > 4712:checking for rpcgen... rpcgen > > > 5409:rpcgen -c -o guestfs_protocol.c-t guestfs_protocol.x > > > 5410:rpcgen -h -o guestfs_protocol.h-t guestfs_protocol.x > > > 5749:rpcgen -h -o rc_protocol.h-t rc_protocol.x > > > 5750:rpcgen -c -o rc_protocol.c-t rc_protocol.x > > > > > > So I think the solution would be to add *rpcsvc-proto* (provider of > > > rpcgen) to makedepends. On feedback that it works I'll make this > update. > > > > > > > I installed *rpcsvc-proto *and indeed it created the missing files > > (including the .c and .h file mentioned above) and it eliminated that > > compiler error (just now I got a different one, which I'll try solving > > later), > > > > However, it is of my concern that, as the maintainer of that package > > mentioned: > > > > > This is a bit messy: > > > > > > 1. error should have been triggered at configure stage when rpcgen > was > > > not found, rather than at compile stage. > > > 2. http://libguestfs.org/guestfs-building.1.html does mention in > > > section *Full list of requirements* that *The rpcgen tool is > optional, > > > except if you want to compile from git*. However, there is section > *BUILDING > > > FROM GIT* which also lists specific dependencies, but not rpcgen; so > > > if you are directly looking for git build instructions, *you'll miss > > > it. * > > > > > > I personally tried agree with him, because I tried to find info on how > to > > properly compile this and although I didn't try manually fetching the > code > > from git, I could find enough information to solve this problem and thus > I > > think *there is *something to be fixed upstream, even if it's just > > documentation. > > Why is the package being built from git? The tarballs contain all the > files needed, and rpcgen isn't needed when building from the tarball. > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat > http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > virt-top is 'top' for virtual machines. Tiny program with many > powerful monitoring features, net stats, disk stats, logging, etc. > http://people.redhat.com/~rjones/virt-top > >
Possibly Parallel Threads
- Makefile probably incorrect
- [PATCH] lib: Prefer tirpc for XDR, and rationlise how we search for alternatives.
- [PATCH] Fix rpcgen post-processing for out-of-tree builds
- [PATCH] Fix dependencies on generator.ml
- [PATCH v2 1/7] lib: Share common protocol and errnostring libraries with the library and daemon.