[libvirt] [PATCH glib] Delete the manually written python binding

Christophe Fergeau cfergeau at redhat.com
Tue Aug 2 13:52:30 UTC 2016


Acked-by: Christophe Fergeau <cfergeau at redhat.com>

On Tue, Aug 02, 2016 at 02:34:33PM +0100, Daniel P. Berrange wrote:
> The python binding only supports python2, only supports
> 1 single API in libvirt-glib and has not even been enabled
> in RPM builds since Fedora 15. Any distro these days should
> have gobject introspection and pygobject available, so
> there's no compelling reason to continue to have the python
> binding exist.
> 
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>  Makefile.am                |  2 +-
>  autobuild.sh               |  6 ++--
>  cfg.mk                     |  3 --
>  configure.ac               | 87 ----------------------------------------------
>  libvirt-glib.spec.in       | 35 +------------------
>  mingw-libvirt-glib.spec.in |  3 +-
>  python/Makefile.am         | 34 ------------------
>  python/libvirt-glib.c      | 59 -------------------------------
>  python/libvirtglib.py      | 10 ------
>  9 files changed, 5 insertions(+), 234 deletions(-)
>  delete mode 100644 python/Makefile.am
>  delete mode 100644 python/libvirt-glib.c
>  delete mode 100644 python/libvirtglib.py
> 
> diff --git a/Makefile.am b/Makefile.am
> index ae8b06d..459d544 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1,5 +1,5 @@
>  
> -SUBDIRS = libvirt-glib libvirt-gconfig libvirt-gobject python vapi examples docs po tests
> +SUBDIRS = libvirt-glib libvirt-gconfig libvirt-gobject vapi examples docs po tests
>  
>  ACLOCAL_AMFLAGS = -I m4
>  
> diff --git a/autobuild.sh b/autobuild.sh
> index 053dc1f..9935de1 100755
> --- a/autobuild.sh
> +++ b/autobuild.sh
> @@ -56,8 +56,7 @@ if test -x /usr/bin/i686-w64-mingw32-gcc ; then
>      --host=i686-w64-mingw32 \
>      --prefix="$AUTOBUILD_INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" \
>      --enable-werror \
> -    --enable-introspection=no \
> -    --without-python
> +    --enable-introspection=no
>  
>    make
>    make install
> @@ -75,8 +74,7 @@ if test -x /usr/bin/x86_64-w64-mingw32-gcc ; then
>      --host=x86_64-w64-mingw32 \
>      --prefix="$AUTOBUILD_INSTALL_ROOT/i686-w64-mingw32/sys-root/mingw" \
>      --enable-werror \
> -    --enable-introspection=no \
> -    --without-python
> +    --enable-introspection=no
>  
>    make
>    make install
> diff --git a/cfg.mk b/cfg.mk
> index b322393..6dd34cf 100644
> --- a/cfg.mk
> +++ b/cfg.mk
> @@ -115,9 +115,6 @@ exclude_file_name_regexp--sc_preprocessor_indentation = ^*/*.[ch]
>  
>  exclude_file_name_regexp--sc_prohibit_strcmp = ^*/*.[ch]
>  
> -exclude_file_name_regexp--sc_require_config_h = python/libvirt-glib.c
> -exclude_file_name_regexp--sc_require_config_h_first = python/libvirt-glib.c
> -
>  # XXX we shouldn't really ignore this, but the horrible enum rules...
>  exclude_file_name_regexp--sc_makefile_at_at_check = libvirt-gobject/Makefile.am
>  
> diff --git a/configure.ac b/configure.ac
> index 8edde74..cc9b2aa 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -135,15 +135,11 @@ dnl Copied from libxml2 configure.in, but I removed mingw changes
>  dnl for now since I'm not supporting mingw at present.  - RWMJ
>  CYGWIN_EXTRA_LDFLAGS=
>  CYGWIN_EXTRA_LIBADD=
> -CYGWIN_EXTRA_PYTHON_LIBADD=
>  MINGW_EXTRA_LDFLAGS=
>  case "$host" in
>    *-*-cygwin*)
>      CYGWIN_EXTRA_LDFLAGS="-no-undefined"
>      CYGWIN_EXTRA_LIBADD="${INTLLIBS}"
> -    if test "x$PYTHON_VERSION" != "x"; then
> -      CYGWIN_EXTRA_PYTHON_LIBADD="-L/usr/lib/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}"
> -    fi
>      ;;
>    *-*-mingw*)
>      MINGW_EXTRA_LDFLAGS="-no-undefined"
> @@ -151,7 +147,6 @@ case "$host" in
>  esac
>  AC_SUBST([CYGWIN_EXTRA_LDFLAGS])
>  AC_SUBST([CYGWIN_EXTRA_LIBADD])
> -AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
>  AC_SUBST([MINGW_EXTRA_LDFLAGS])
>  
>  
> @@ -172,87 +167,6 @@ if test "${enable_coverage}" = yes; then
>    COV_FLAGS=
>  fi
>  
> -dnl
> -dnl check for python
> -dnl
> -AC_ARG_WITH([python],
> -  AC_HELP_STRING([--with-python], [Build python bindings @<:@default=yes@:>@]),[],[with_python=yes])
> -
> -PYTHON_VERSION=
> -PYTHON_INCLUDES=
> -PYTHON_SITE_PACKAGES=
> -PYTHON_TESTS=
> -pythondir=
> -if test "$with_python" != "no" ; then
> -    if test "$with_python" = "yes" ; then
> -       with_python=""
> -    fi
> -    if test -x "$with_python/bin/python"
> -    then
> -        echo Found python in $with_python/bin/python
> -        PYTHON="$with_python/bin/python"
> -    else
> -	if test -x "$with_python"
> -	then
> -	    echo Found python in $with_python
> -	    PYTHON="$with_python"
> -	else
> -	    if test -x "$PYTHON"
> -	    then
> -	        echo Found python in environment PYTHON=$PYTHON
> -		with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
> -	    else
> -		AC_PATH_PROG([PYTHON], [python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5])
> -	    fi
> -	fi
> -    fi
> -    if test "$PYTHON" != ""
> -    then
> -        PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
> -	echo Found Python version $PYTHON_VERSION
> -    fi
> -    if test "$PYTHON_VERSION" != ""
> -    then
> -	if test -r $with_python/include/python$PYTHON_VERSION/Python.h && \
> -	   test -d $with_python/lib/python$PYTHON_VERSION/site-packages
> -	then
> -	    PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
> -	    PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
> -	else
> -	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
> -	    then
> -	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
> -	        PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
> -	    else
> -		if test -r /usr/include/python$PYTHON_VERSION/Python.h
> -		then
> -		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
> -	            PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
> -		else
> -		    echo could not find python$PYTHON_VERSION/Python.h
> -		fi
> -	    fi
> -	    if test ! -d "$PYTHON_SITE_PACKAGES"
> -	    then
> -		    PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
> -	    fi
> -	fi
> -    fi
> -    if test "$with_python" != ""
> -    then
> -        pythondir='$(PYTHON_SITE_PACKAGES)'
> -    else
> -        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
> -    fi
> -else
> -    PYTHON=
> -fi
> -AM_CONDITIONAL([WITH_PYTHON], test "$PYTHON_INCLUDES" != "")
> -AC_SUBST([pythondir])
> -AC_SUBST([PYTHON_VERSION])
> -AC_SUBST([PYTHON_INCLUDES])
> -AC_SUBST([PYTHON_SITE_PACKAGES])
> -
>  GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_REQUIRED])
>  
>  with_linux=no
> @@ -302,7 +216,6 @@ AC_OUTPUT(Makefile
>            libvirt-gconfig/tests/Makefile
>            libvirt-gobject/Makefile
>            examples/Makefile
> -          python/Makefile
>            vapi/Makefile
>            docs/Makefile
>            docs/libvirt-glib/Makefile
> diff --git a/libvirt-glib.spec.in b/libvirt-glib.spec.in
> index 32ce4f0..2ec8337 100644
> --- a/libvirt-glib.spec.in
> +++ b/libvirt-glib.spec.in
> @@ -1,21 +1,14 @@
>  # -*- rpm-spec -*-
>  
>  %define with_introspection 0
> -%define with_python 0
>  %define with_vala 0
>  
>  %if 0%{?fedora} >= 15
>  %define with_introspection 1
>  %endif
> -%if 0%{?fedora} && 0%{?fedora} < 15
> -%define with_python 1
> -%endif
>  %if 0%{?rhel} > 6
>  %define with_introspection 1
>  %endif
> -%if 0%{?rhel} && 0%{?rhel} < 7
> -%define with_python 1
> -%endif
>  %define with_vala %{with_introspection}
>  
>  %define libvirt_version @LIBVIRT_REQUIRED@
> @@ -32,7 +25,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
>  
>  BuildRequires: glib2-devel >= @GLIB2_REQUIRED@
>  BuildRequires: libvirt-devel >= %{libvirt_version}
> -BuildRequires: python-devel
>  %if %{with_introspection}
>  BuildRequires: gobject-introspection-devel
>  %if 0%{?fedora} == 12
> @@ -72,12 +64,6 @@ Requires: libvirt-gconfig-devel = %{version}-%{release}
>  Requires: libvirt-gobject = %{version}-%{release}
>  Requires: libvirt-devel >=  %{libvirt_version}
>  
> -%if %{with_python}
> -%package python
> -Group: Development/Libraries
> -Summary: libvirt glib integration for events python binding
> -%endif
> -
>  %description
>  This package provides integration between libvirt and the glib
>  event loop.
> @@ -102,12 +88,6 @@ objects
>  This package provides development header files and libraries for
>  managing virtualization host objects
>  
> -%if %{with_python}
> -%description python
> -This package provides a python module for integration between
> -libvirt and the glib event loop
> -%endif
> -
>  %prep
>  %setup -q
>  
> @@ -118,13 +98,8 @@ libvirt and the glib event loop
>  %else
>  %define introspection_arg --disable-introspection
>  %endif
> -%if %{with_python}
> -%define python_arg --with-python
> -%else
> -%define python_arg --without-python
> -%endif
>  
> -%configure %{introspection_arg} %{python_arg}
> +%configure %{introspection_arg}
>  %__make %{?_smp_mflags}
>  
>  
> @@ -227,12 +202,4 @@ rm -rf $RPM_BUILD_ROOT
>  %{_datadir}/vala/vapi/libvirt-gobject-1.0.vapi
>  %endif
>  
> -%if %{with_python}
> -%files python
> -%defattr(-,root,root,-)
> -%doc examples/event-test.py
> -%{_libdir}/python*/site-packages/libvirtglib.py*
> -%{_libdir}/python*/site-packages/libvirtglibmod*
> -%endif
> -
>  %changelog
> diff --git a/mingw-libvirt-glib.spec.in b/mingw-libvirt-glib.spec.in
> index 0c71628..ab31a0d 100644
> --- a/mingw-libvirt-glib.spec.in
> +++ b/mingw-libvirt-glib.spec.in
> @@ -87,8 +87,7 @@ MinGW Windows libvirt-gobject virtualization library.
>  
>  %build
>  %mingw_configure \
> -    --enable-introspection=no \
> -    --without-python
> +    --enable-introspection=no
>  
>  %mingw_make %{?_smp_mflags}
>  
> diff --git a/python/Makefile.am b/python/Makefile.am
> deleted file mode 100644
> index 1471dce..0000000
> --- a/python/Makefile.am
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -# Makefile for libvirt python library
> -
> -AM_CPPFLAGS = \
> -        $(WARN_CFLAGS) \
> -        -I$(PYTHON_INCLUDES) \
> -	-I$(top_srcdir) \
> -	$(GLIB2_CFLAGS)
> -
> -EXTRA_DIST = libvirtglib.py
> -
> -if WITH_PYTHON
> -python_LTLIBRARIES = libvirtglibmod.la
> -
> -libvirtglibmod_la_SOURCES = libvirt-glib.c
> -# Python header files contain a redundant decl, hence:
> -libvirtglibmod_la_CFLAGS = -Wno-redundant-decls
> -
> -libvirtglibmod_la_LDFLAGS = -module -avoid-version \
> -	$(CYGWIN_EXTRA_LDFLAGS)
> -libvirtglibmod_la_LIBADD = ../libvirt-glib/libvirt-glib-1.0.la
> -	$(CYGWIN_EXTRA_LIBADD) $(CYGWIN_EXTRA_PYTHON_LIBADD)
> -
> -
> -install-data-local:
> -	$(mkinstalldirs) $(DESTDIR)$(pythondir)
> -	$(INSTALL) -m 0644 $(srcdir)/libvirtglib.py $(DESTDIR)$(pythondir)
> -
> -uninstall-local:
> -	rm -f $(DESTDIR)$(pythondir)/libvirtglib.py
> -
> -
> -else
> -all:
> -endif
> diff --git a/python/libvirt-glib.c b/python/libvirt-glib.c
> deleted file mode 100644
> index 1daca36..0000000
> --- a/python/libvirt-glib.c
> +++ /dev/null
> @@ -1,59 +0,0 @@
> -/*
> - * libvirt-glib.c: Binding the glib event loop integration to python
> - *
> - * Copyright (C) 2008 Red Hat, Inc., Inc.
> - *
> - * Daniel Berrange <berrange at redhat.com>
> - */
> -
> -//#include <config.h>
> -
> -/* Horrible kludge to work around even more horrible name-space pollution
> -   via Python.h.  That file includes /usr/include/python2.5/pyconfig*.h,
> -   which has over 180 autoconf-style HAVE_* definitions.  Shame on them.  */
> -#undef HAVE_PTHREAD_H
> -
> -#include <Python.h>
> -#include <glib.h>
> -#include "libvirt-glib/libvirt-glib.h"
> -
> -#ifndef __CYGWIN__
> -extern void initlibvirtglibmod(void);
> -#else
> -extern void initcygvirtglibmod(void);
> -#endif
> -
> -#define VIR_PY_NONE (Py_INCREF (Py_None), Py_None)
> -
> -static PyObject *
> -libvirt_gvir_event_register(PyObject *self G_GNUC_UNUSED, PyObject *args G_GNUC_UNUSED) {
> -    gvir_event_register();
> -
> -    return VIR_PY_NONE;
> -}
> -
> -
> -static PyMethodDef libvirtGLibMethods[] = {
> -    {(char *) "event_register", libvirt_gvir_event_register, METH_VARARGS, NULL},
> -    {NULL, NULL, 0, NULL}
> -};
> -
> -void
> -#ifndef __CYGWIN__
> -initlibvirtglibmod
> -#else
> -initcygvirtglibmod
> -#endif
> -  (void)
> -{
> -    gvir_init(NULL, NULL);
> -    /* initialize the python extension module */
> -    Py_InitModule((char *)
> -#ifndef __CYGWIN__
> -                  "libvirtglibmod"
> -#else
> -                  "cygvirtglibmod"
> -#endif
> -                  , libvirtGLibMethods);
> -
> -}
> diff --git a/python/libvirtglib.py b/python/libvirtglib.py
> deleted file mode 100644
> index 3a74c3d..0000000
> --- a/python/libvirtglib.py
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -
> -# On cygwin, the DLL is called cygvirtmod.dll
> -try:
> -    import libvirtglibmod
> -except:
> -    import cygvirtglibmod as libvirtglibmod
> -
> -
> -def event_register():
> -    libvirtglibmod.event_register()
> -- 
> 2.7.4
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160802/1813a947/attachment-0001.sig>


More information about the libvir-list mailing list