Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-13 Thread Martin Kletzander
On Thu, Dec 12, 2013 at 12:29:34PM -0700, Eric Blake wrote:
> On 12/12/2013 04:19 AM, Daniel P. Berrange wrote:
>
> >>> +++ b/autobuild.sh
> >>> @@ -13,6 +13,12 @@ python setup.py build
> >>>  python setup.py test
> >>>  python setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
> >>>
> >>
> >> I haven't tested it, but shouldn't these lines ^^, and others similar
> >> to them, be changed to "python2" in case my default python version is
> >> 3?  And if those "python2" are checked as well, it would be usable
> >> even without python2.
> >
> > Yes, we should use python2
>
> But does 'python2' exist in PATH on RHEL5?  You have to be careful that
> whatever solution you have works on systems with only one python
> installed (whether that be old systems with python 2, or bleeding edge
> systems with _only_ python 3).
>

Yes, it is.  Python started to use these names quite a long time ago.
We could even build with different python 2 versions (python2.6,
python2.7, etc.) which are properly instantiated, I believe, in all
stable to modern distros.

Running any versioned binary should be checked for anyway, so we don't
end up in a situation where we're calling one that doesn't exist, IMHO.

Martin


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-13 Thread Daniel P. Berrange
On Thu, Dec 12, 2013 at 12:29:34PM -0700, Eric Blake wrote:
> On 12/12/2013 04:19 AM, Daniel P. Berrange wrote:
> 
> >>> +++ b/autobuild.sh
> >>> @@ -13,6 +13,12 @@ python setup.py build
> >>>  python setup.py test
> >>>  python setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
> >>>
> >>
> >> I haven't tested it, but shouldn't these lines ^^, and others similar
> >> to them, be changed to "python2" in case my default python version is
> >> 3?  And if those "python2" are checked as well, it would be usable
> >> even without python2.
> > 
> > Yes, we should use python2
> 
> But does 'python2' exist in PATH on RHEL5?  You have to be careful that
> whatever solution you have works on systems with only one python
> installed (whether that be old systems with python 2, or bleeding edge
> systems with _only_ python 3).

Yes, I checked RHEL5 for this. It has python2 in /usr/bin

Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-12 Thread Eric Blake
On 12/12/2013 04:19 AM, Daniel P. Berrange wrote:

>>> +++ b/autobuild.sh
>>> @@ -13,6 +13,12 @@ python setup.py build
>>>  python setup.py test
>>>  python setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
>>>
>>
>> I haven't tested it, but shouldn't these lines ^^, and others similar
>> to them, be changed to "python2" in case my default python version is
>> 3?  And if those "python2" are checked as well, it would be usable
>> even without python2.
> 
> Yes, we should use python2

But does 'python2' exist in PATH on RHEL5?  You have to be careful that
whatever solution you have works on systems with only one python
installed (whether that be old systems with python 2, or bleeding edge
systems with _only_ python 3).

-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-12 Thread Daniel P. Berrange
On Thu, Dec 12, 2013 at 08:59:33AM +0100, Martin Kletzander wrote:
> On Wed, Dec 11, 2013 at 04:31:46PM +, Daniel P. Berrange wrote:
> > From: "Daniel P. Berrange" 
> >
> > This updates autobuild.sh to test the python3 build process.
> > The RPM specfile is changed to build a libvirt-python3 RPM
> > on Fedora > 18
> >
> > Signed-off-by: Daniel P. Berrange 
> > ---
> >  autobuild.sh   |  6 ++
> >  libvirt-python.spec.in | 57 
> > +++---
> >  2 files changed, 56 insertions(+), 7 deletions(-)
> >
> > diff --git a/autobuild.sh b/autobuild.sh
> > index b3beaf1..c7d2661 100755
> > --- a/autobuild.sh
> > +++ b/autobuild.sh
> > @@ -13,6 +13,12 @@ python setup.py build
> >  python setup.py test
> >  python setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
> >
> 
> I haven't tested it, but shouldn't these lines ^^, and others similar
> to them, be changed to "python2" in case my default python version is
> 3?  And if those "python2" are checked as well, it would be usable
> even without python2.

Yes, we should use python2

> Or just use %{__python2} and %{__python3} as Eric suggested.

Those macros only work in RPM, not autobuild.sh

Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-12 Thread Daniel P. Berrange
On Wed, Dec 11, 2013 at 01:01:03PM -0700, Eric Blake wrote:
> On 12/11/2013 09:31 AM, Daniel P. Berrange wrote:
> > From: "Daniel P. Berrange" 
> > 
> > This updates autobuild.sh to test the python3 build process.
> > The RPM specfile is changed to build a libvirt-python3 RPM
> > on Fedora > 18
> > 
> > Signed-off-by: Daniel P. Berrange 
> > ---
> >  autobuild.sh   |  6 ++
> >  libvirt-python.spec.in | 57 
> > +++---
> >  2 files changed, 56 insertions(+), 7 deletions(-)
> > 
> 
> > +++ b/libvirt-python.spec.in
> > @@ -1,5 +1,10 @@
> >  
> > -Summary: The libvirt virtualization API python binding
> > +%global with_python3 0
> > +%if 0%{?fedora} > 18
> > +%global with_python3 1
> > +%endif
> 
> Is %global the right thing to use?  Elsewhere we have just used %define
> when setting up a variable that conditionalizes the rest of the spec file.

Oh I copied this from another Fedora spec, but this won't work on
rhel5, so should stick with %define

> 
> >  %build
> > -CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
> > +CFLAGS="$RPM_OPT_FLAGS" %{__python2} setup.py build
> 
> How far back can we assume that %{__python2} exists?  Is it going to
> bite us on RHEL 6 (where I'm guessing there is just %{__python})?

It bites on RHEL-5, so i'll use plain %{__python}


Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-12 Thread Martin Kletzander
On Wed, Dec 11, 2013 at 04:31:46PM +, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" 
>
> This updates autobuild.sh to test the python3 build process.
> The RPM specfile is changed to build a libvirt-python3 RPM
> on Fedora > 18
>
> Signed-off-by: Daniel P. Berrange 
> ---
>  autobuild.sh   |  6 ++
>  libvirt-python.spec.in | 57 
> +++---
>  2 files changed, 56 insertions(+), 7 deletions(-)
>
> diff --git a/autobuild.sh b/autobuild.sh
> index b3beaf1..c7d2661 100755
> --- a/autobuild.sh
> +++ b/autobuild.sh
> @@ -13,6 +13,12 @@ python setup.py build
>  python setup.py test
>  python setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
>

I haven't tested it, but shouldn't these lines ^^, and others similar
to them, be changed to "python2" in case my default python version is
3?  And if those "python2" are checked as well, it would be usable
even without python2.

Or just use %{__python2} and %{__python3} as Eric suggested.

Martin


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-11 Thread Eric Blake
On 12/11/2013 09:31 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" 
> 
> This updates autobuild.sh to test the python3 build process.
> The RPM specfile is changed to build a libvirt-python3 RPM
> on Fedora > 18
> 
> Signed-off-by: Daniel P. Berrange 
> ---
>  autobuild.sh   |  6 ++
>  libvirt-python.spec.in | 57 
> +++---
>  2 files changed, 56 insertions(+), 7 deletions(-)
> 

> +++ b/libvirt-python.spec.in
> @@ -1,5 +1,10 @@
>  
> -Summary: The libvirt virtualization API python binding
> +%global with_python3 0
> +%if 0%{?fedora} > 18
> +%global with_python3 1
> +%endif

Is %global the right thing to use?  Elsewhere we have just used %define
when setting up a variable that conditionalizes the rest of the spec file.

>  %build
> -CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
> +CFLAGS="$RPM_OPT_FLAGS" %{__python2} setup.py build

How far back can we assume that %{__python2} exists?  Is it going to
bite us on RHEL 6 (where I'm guessing there is just %{__python})?

> +%if %{with_python3}
> +CFLAGS="$RPM_OPT_FLAGS" %{__python3} setup.py build
> +%endif
>  
>  %install
> -%{__python} setup.py install --skip-build --root=%{buildroot}
> +%{__python2} setup.py install --skip-build --root=%{buildroot}

More use of %{__python2}.

Everything else looks okay to me, although I did not actually do any
testing of the rpms.

-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH python] Add python3 to the automated build and RPM

2013-12-11 Thread Daniel P. Berrange
From: "Daniel P. Berrange" 

This updates autobuild.sh to test the python3 build process.
The RPM specfile is changed to build a libvirt-python3 RPM
on Fedora > 18

Signed-off-by: Daniel P. Berrange 
---
 autobuild.sh   |  6 ++
 libvirt-python.spec.in | 57 +++---
 2 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/autobuild.sh b/autobuild.sh
index b3beaf1..c7d2661 100755
--- a/autobuild.sh
+++ b/autobuild.sh
@@ -13,6 +13,12 @@ python setup.py build
 python setup.py test
 python setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
 
+if test -f /usr/bin/python3 ; then
+  python3 setup.py build
+  python3 setup.py test
+  python3 setup.py install --root="$AUTOBUILD_INSTALL_ROOT"
+fi
+
 type -p /usr/bin/rpmbuild > /dev/null 2>&1 || exit 0
 
 if [ -n "$AUTOBUILD_COUNTER" ]; then
diff --git a/libvirt-python.spec.in b/libvirt-python.spec.in
index 7c6257e..c61febc 100644
--- a/libvirt-python.spec.in
+++ b/libvirt-python.spec.in
@@ -1,5 +1,10 @@
 
-Summary: The libvirt virtualization API python binding
+%global with_python3 0
+%if 0%{?fedora} > 18
+%global with_python3 1
+%endif
+
+Summary: The libvirt virtualization API python2 binding
 Name: libvirt-python
 Version: @PY_VERSION@
 Release: 1%{?dist}%{?extra_release}
@@ -9,6 +14,17 @@ License: LGPLv2+
 Group: Development/Libraries
 BuildRequires: libvirt-devel >= @C_VERSION@
 BuildRequires: python-devel
+%if %{with_python3}
+BuildRequires: python3-devel
+%endif
+
+%if %{with_python3}
+%package -n libvirt-python3
+Summary: The libvirt virtualization API python3 binding
+Url: http://libvirt.org
+License: LGPLv2+
+Group: Development/Libraries
+%endif
 
 # Don't want provides for python shared objects
 %{?filter_provides_in: %filter_provides_in %{python_sitearch}/.*\.so}
@@ -20,22 +36,49 @@ written in the Python programming language to use the 
interface
 supplied by the libvirt library to use the virtualization capabilities
 of recent versions of Linux (and other OSes).
 
+%if %{with_python3}
+%description -n libvirt-python3
+The libvirt-python package contains a module that permits applications
+written in the Python programming language to use the interface
+supplied by the libvirt library to use the virtualization capabilities
+of recent versions of Linux (and other OSes).
+%endif
+
 %prep
 %setup -q
 
 %build
-CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
+CFLAGS="$RPM_OPT_FLAGS" %{__python2} setup.py build
+%if %{with_python3}
+CFLAGS="$RPM_OPT_FLAGS" %{__python3} setup.py build
+%endif
 
 %install
-%{__python} setup.py install --skip-build --root=%{buildroot}
+%{__python2} setup.py install --skip-build --root=%{buildroot}
+%if %{with_python3}
+%{__python3} setup.py install --skip-build --root=%{buildroot}
+%endif
 rm -f %{buildroot}%{_libdir}/python*/site-packages/*egg-info
 
 %files
 %defattr(-,root,root)
 %doc ChangeLog AUTHORS NEWS README COPYING COPYING.LESSER examples/
-%{_libdir}/python*/site-packages/libvirt.py*
-%{_libdir}/python*/site-packages/libvirt_qemu.py*
-%{_libdir}/python*/site-packages/libvirt_lxc.py*
-%{_libdir}/python*/site-packages/libvirtmod*
+%{_libdir}/python2*/site-packages/libvirt.py*
+%{_libdir}/python2*/site-packages/libvirt_qemu.py*
+%{_libdir}/python2*/site-packages/libvirt_lxc.py*
+%{_libdir}/python2*/site-packages/libvirtmod*
+
+%if %{with_python3}
+%files -n libvirt-python3
+%defattr(-,root,root)
+%doc ChangeLog AUTHORS NEWS README COPYING COPYING.LESSER examples/
+%{_libdir}/python3*/site-packages/libvirt.py*
+%{_libdir}/python3*/site-packages/libvirt_qemu.py*
+%{_libdir}/python3*/site-packages/libvirt_lxc.py*
+%{_libdir}/python3*/site-packages/__pycache__/libvirt.cpython-*.py*
+%{_libdir}/python3*/site-packages/__pycache__/libvirt_qemu.cpython-*.py*
+%{_libdir}/python3*/site-packages/__pycache__/libvirt_lxc.cpython-*.py*
+%{_libdir}/python3*/site-packages/libvirtmod*
+%endif
 
 %changelog
-- 
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list