I am trying to build a Python application installer that is using libguestfs. I using the instructions to create the python package posted at https://github.com/libguestfs/libguestfs/commit/fcbfc4775fa2a44020974073594a745ca420d614 I am getting errors in the compile when I do the "pip install”. I have attached the output from pip. I looked at the code and I do not see anything obvious) When I do a yum install of python-libguestds.x86_64 the python interface works correctly. Version/Platform Information Platform: Centos-7 libguestfs version: 1.31..6 $ uname -a Linux localhost.localdomain 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux $ gcc --version gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ python --version Python 2.7.5 Any help or suggestions would be appreciated. Regards John
On Mon, Sep 14, 2015 at 05:48:24PM +0000, John McDowall wrote:> I am trying to build a Python application installer that is using libguestfs. I using the instructions to create the python package posted at > > https://github.com/libguestfs/libguestfs/commit/fcbfc4775fa2a44020974073594a745ca420d614 > > I am getting errors in the compile when I do the "pip install”. I have attached the output from pip. I looked at the code and I do not see anything obvious) > > When I do a yum install of python-libguestds.x86_64 the python interface works correctly. > > Version/Platform Information > > Platform: Centos-7 > > libguestfs version: 1.31..6 > > $ uname -a > Linux localhost.localdomain 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > > $ gcc --version > gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9) > Copyright (C) 2013 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > $ python --version > Python 2.7.5 > > Any help or suggestions would be appreciated.I think what is happening is that you've got an older version of libguestfs installed than the one you're building the python bindings for. Because libguestfs (eg. git) contains its own python bindings, the assumption has always been that the version of libguestfs will be exactly the same (ie. all APIs will be present and identical). If you build different versions, then that's no longer true, so you see errors from "missing" APIs (ie. ones not present in your old version of libguestfs). eg: build/temp.linux-x86_64-2.7/guestfs-py.o guestfs-py.c:310:26: warning: ‘struct guestfs_btrfsbalance’ declared inside parameter list [enabled by default] put_btrfsbalance (struct guestfs_btrfsbalance *btrfsbalance) ^ This could be fixed, but needs patching in generator/python.ml upstream. 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
Richard, Thanks for fast reply - let me remove all the yum packages and then build/install from single version. Regards John On 9/14/15, 11:06 AM, "Richard W.M. Jones" <rjones@redhat.com> wrote:>On Mon, Sep 14, 2015 at 05:48:24PM +0000, John McDowall wrote: >> I am trying to build a Python application installer that is using >>libguestfs. I using the instructions to create the python package posted >>at >> >> >>https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_libguestf >>s_libguestfs_commit_fcbfc4775fa2a44020974073594a745ca420d614&d=AwIDaQ&c=V >>9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&r=vZ6VUDaavDpfOdPQrz1ED54jEjvA >>E36A8TVJroVlrOQ&m=-IPoTUqv9RwNuzcUMbulN09BL2qUyaVp0CawpFWfDR0&s=OTJvFjRpY >>gKWny-76DVZKbuv88vwDejfMPl7J6-A4WI&e>> >> I am getting errors in the compile when I do the "pip install². I have >>attached the output from pip. I looked at the code and I do not see >>anything obvious) >> >> When I do a yum install of python-libguestds.x86_64 the python >>interface works correctly. >> >> Version/Platform Information >> >> Platform: Centos-7 >> >> libguestfs version: 1.31..6 >> >> $ uname -a >> Linux localhost.localdomain 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug >>6 01:06:18 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux >> >> $ gcc --version >> gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9) >> Copyright (C) 2013 Free Software Foundation, Inc. >> This is free software; see the source for copying conditions. There is >>NO >> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR >>PURPOSE. >> >> $ python --version >> Python 2.7.5 >> >> Any help or suggestions would be appreciated. > >I think what is happening is that you've got an older version of >libguestfs installed than the one you're building the python bindings >for. > >Because libguestfs (eg. git) contains its own python bindings, the >assumption has always been that the version of libguestfs will be >exactly the same (ie. all APIs will be present and identical). > >If you build different versions, then that's no longer true, so you >see errors from "missing" APIs (ie. ones not present in your old >version of libguestfs). eg: > >build/temp.linux-x86_64-2.7/guestfs-py.o > guestfs-py.c:310:26: warning: Œstruct guestfs_btrfsbalance¹ declared >inside >parameter list [enabled by default] > put_btrfsbalance (struct guestfs_btrfsbalance *btrfsbalance) > ^ > >This could be fixed, but needs patching in generator/python.ml >upstream. > >Rich. > >-- >Richard Jones, Virtualization Group, Red Hat >https://urldefense.proofpoint.com/v2/url?u=http-3A__people.redhat.com_-7Er >jones&d=AwIDaQ&c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&r=vZ6VUDaavDp >fOdPQrz1ED54jEjvAE36A8TVJroVlrOQ&m=-IPoTUqv9RwNuzcUMbulN09BL2qUyaVp0CawpFW >fDR0&s=Mmb07TGz8PFUIgbQkVudoe7WLhvStKfkBlMU_xywPrg&e>Read my programming and virtualization blog: >https://urldefense.proofpoint.com/v2/url?u=http-3A__rwmj.wordpress.com&d=A >wIDaQ&c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&r=vZ6VUDaavDpfOdPQrz1E >D54jEjvAE36A8TVJroVlrOQ&m=-IPoTUqv9RwNuzcUMbulN09BL2qUyaVp0CawpFWfDR0&s=5u >dxKIkjvN0DUi5xvC1UlkztyjoKLwFYv3R-q1vvshg&e>libguestfs lets you edit virtual machines. Supports shell scripting, >bindings from many languages. >https://urldefense.proofpoint.com/v2/url?u=http-3A__libguestfs.org&d=AwIDa >Q&c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&r=vZ6VUDaavDpfOdPQrz1ED54j >EjvAE36A8TVJroVlrOQ&m=-IPoTUqv9RwNuzcUMbulN09BL2qUyaVp0CawpFWfDR0&s=isOT9Q >sPnKPgVpatbcO42QTgPVh1Fo_5XH0bj5-thnE&e=
On Mon, Sep 14, 2015 at 07:06:27PM +0100, Richard W.M. Jones wrote:> I think what is happening is that you've got an older version of > libguestfs installed than the one you're building the python bindings > for. > > Because libguestfs (eg. git) contains its own python bindings, the > assumption has always been that the version of libguestfs will be > exactly the same (ie. all APIs will be present and identical). > > If you build different versions, then that's no longer true, so you > see errors from "missing" APIs (ie. ones not present in your old > version of libguestfs). eg: > > build/temp.linux-x86_64-2.7/guestfs-py.o > guestfs-py.c:310:26: warning: ‘struct guestfs_btrfsbalance’ declared inside > parameter list [enabled by default] > put_btrfsbalance (struct guestfs_btrfsbalance *btrfsbalance) > ^ > > This could be fixed, but needs patching in generator/python.ml > upstream.I tried to have a go at solving this, but it's not as easy as it seems. So I punted it and filed a bug instead: https://bugzilla.redhat.com/show_bug.cgi?id=1262983 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