[packages/apt] - enhanced format patch, build python binding

qboosh qboosh at pld-linux.org
Sun Feb 8 21:32:49 CET 2015


commit b4f50c197b586ac7f1fe887325bfaf8e604036c2
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Feb 8 21:35:14 2015 +0100

    - enhanced format patch, build python binding

 apt-format.patch | 38 ++++++++++++++++++++++++++++++++++++++
 apt.spec         | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 84 insertions(+), 1 deletion(-)
---
diff --git a/apt.spec b/apt.spec
index 65c8b24..17f9148 100644
--- a/apt.spec
+++ b/apt.spec
@@ -1,6 +1,9 @@
 # TODO:
-# - build python bindings
 # - use system lua
+#
+# Conditional build:
+%bcond_without	python	# Python binding
+#
 Summary:	Debian's Advanced Packaging Tool with RPM support
 Summary(pl.UTF-8):	Zaawansowane narzędzie do zarządzania pakietami
 Summary(pt.UTF-8):	Frontend avançado para pacotes rpm e deb
@@ -39,6 +42,11 @@ BuildRequires:	readline-devel
 BuildRequires:	rpm-devel >= 5
 BuildRequires:	sqlite3-devel
 BuildRequires:	zlib-devel
+%if %{with python}
+BuildRequires:	python-devel >= 2
+BuildRequires:	rpm-pythonprov
+BuildRequires:	swig-python
+%endif
 Requires:	gnupg
 Requires:	libxml2 >= 1:2.6
 Requires:	rpm
@@ -97,6 +105,18 @@ Static libapt-pkg library.
 %description static -l pl.UTF-8
 Statyczna biblioteka libapt-pkg.
 
+%package -n python-apt
+Summary:	Python bindings for libapt-pkg library
+Summary(pl.UTF-8):	Wiązania Pythona do biblioteki libapt-pkg
+Group:		Libraries/Python
+Requires:	%{name} = %{version}-%{release}
+
+%description -n python-apt
+Python bindings for libapt-pkg library.
+
+%description -n python-apt -l pl.UTF-8
+Wiązania Pythona do biblioteki libapt-pkg.
+
 %prep
 %setup -q -a5
 %patch0 -p1
@@ -107,6 +127,9 @@ Statyczna biblioteka libapt-pkg.
 %patch5 -p1
 %patch6 -p1
 
+# swig rebuild doesn't work (plain swig cannot cope with class Class::SubClass { })
+#%{__rm} python/{apt.py,apt_wrap.cxx}
+
 %build
 %{__gettextize}
 %{__libtoolize}
@@ -119,6 +142,12 @@ bash %configure
 
 %{__make}
 
+%if %{with python}
+%{__make} -C python \
+	CC="%{__cxx} %{rpmcxxflags} %{rpmcppflags}" \
+	PYTHON="%{__python}"
+%endif
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT/var/cache/apt/archives/partial \
@@ -130,6 +159,15 @@ install -d $RPM_BUILD_ROOT/var/cache/apt/archives/partial \
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
 
+%if %{with python}
+install -d $RPM_BUILD_ROOT%{py_sitedir}
+install python/_apt.so $RPM_BUILD_ROOT%{py_sitedir}
+cp -p python/apt.py $RPM_BUILD_ROOT%{py_sitedir}
+%py_comp $RPM_BUILD_ROOT%{py_sitedir}
+%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
+%py_postclean
+%endif
+
 install doc/pl/*.8 $RPM_BUILD_ROOT%{_mandir}/pl/man8
 
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/apt/methods/bzip2
@@ -206,3 +244,10 @@ rm -rf $RPM_BUILD_ROOT
 %files static
 %defattr(644,root,root,755)
 %{_libdir}/libapt-pkg.a
+
+%if %{with python}
+%files -n python-apt
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/_apt.so
+%{py_sitedir}/apt.py[co]
+%endif
diff --git a/apt-format.patch b/apt-format.patch
index 3746193..64d01d9 100644
--- a/apt-format.patch
+++ b/apt-format.patch
@@ -18,3 +18,41 @@
  	 }
  	 if (KeyList.empty())
  	    KeyList = KeyID;
+--- apt-0.5.15lorg3.94a/python/apt_wrap.cxx.orig	2008-01-12 10:45:07.000000000 +0100
++++ apt-0.5.15lorg3.94a/python/apt_wrap.cxx	2015-02-08 21:21:33.543740596 +0100
+@@ -17503,7 +17503,7 @@
+     
+     if(!PyArg_ParseTuple(args,(char *)"Oss:GlobalError_Errno",&obj0,&arg2,&arg3)) goto fail;
+     if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_GlobalError,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+-    result = (bool)(arg1)->Errno((char const *)arg2,(char const *)arg3);
++    result = (bool)(arg1)->Errno((char const *)arg2,"%s",(char const *)arg3);
+     
+     resultobj = PyInt_FromLong((long)result);
+     return resultobj;
+@@ -17522,7 +17522,7 @@
+     
+     if(!PyArg_ParseTuple(args,(char *)"Oss:GlobalError_WarningE",&obj0,&arg2,&arg3)) goto fail;
+     if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_GlobalError,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+-    result = (bool)(arg1)->WarningE((char const *)arg2,(char const *)arg3);
++    result = (bool)(arg1)->WarningE((char const *)arg2,"%s",(char const *)arg3);
+     
+     resultobj = PyInt_FromLong((long)result);
+     return resultobj;
+@@ -17540,7 +17540,7 @@
+     
+     if(!PyArg_ParseTuple(args,(char *)"Os:GlobalError_Error",&obj0,&arg2)) goto fail;
+     if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_GlobalError,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+-    result = (bool)(arg1)->Error((char const *)arg2);
++    result = (bool)(arg1)->Error("%s",(char const *)arg2);
+     
+     resultobj = PyInt_FromLong((long)result);
+     return resultobj;
+@@ -17558,7 +17558,7 @@
+     
+     if(!PyArg_ParseTuple(args,(char *)"Os:GlobalError_Warning",&obj0,&arg2)) goto fail;
+     if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_GlobalError,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
+-    result = (bool)(arg1)->Warning((char const *)arg2);
++    result = (bool)(arg1)->Warning("%s",(char const *)arg2);
+     
+     resultobj = PyInt_FromLong((long)result);
+     return resultobj;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/apt.git/commitdiff/b4f50c197b586ac7f1fe887325bfaf8e604036c2



More information about the pld-cvs-commit mailing list