commit 04bb14bcab64b4995d7b22bd28ec4f0e53daf194 Author: Jakub Bogusz <qbo...@pld-linux.org> Date: Sun Oct 9 10:37:57 2016 +0200
- updated to 1.7.0 - updated largefile patch (all gpgme users must define the same _FILE_OFFSET_BITS as library itself) - added python patch (install .pyo files, avoid installed-files.txt) - package bindings: GpgMEpp (as -c++*), QGpgME (as -qt5*), python2-, python3- gpgme-1.2.0-largefile.patch | 23 ----- gpgme-largefile.patch | 101 +++++++++++++++++++ gpgme-python.patch | 20 ++++ gpgme.spec | 241 ++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 354 insertions(+), 31 deletions(-) --- diff --git a/gpgme.spec b/gpgme.spec index f1a5f4c..1deaf68 100644 --- a/gpgme.spec +++ b/gpgme.spec @@ -1,32 +1,56 @@ -# TODO: package lisp files: -# /usr/share/common-lisp/source/gpgme/gpgme-package.lisp -# /usr/share/common-lisp/source/gpgme/gpgme.asd -# /usr/share/common-lisp/source/gpgme/gpgme.lisp +# TODO: finish common-lisp package (is it a proper location? what package name?) # # Conditional build: %bcond_without static_libs # do not build static libraries +%bcond_with commonlisp # Common Lisp interface +%bcond_without cxx # C++ interface (GpgMEpp library) +%bcond_without qt5 # Qt 5 interface (QGpgME library), requires cxx +%bcond_without python # Python interfaces (PyME, both python2+python3) +%bcond_without python2 # Python 2 interface (PyME) +%bcond_without python3 # Python 3 interface (PyME) %bcond_with tests # perform tests # +%if %{without python} +%undefine with_python2 +%undefine with_python3 +%endif +%if %{without cxx} +%undefine with_qt5 +%endif Summary: Library for accessing GnuPG Summary(pl.UTF-8): Biblioteka dająca dostęp do funkcji GnuPG Name: gpgme -Version: 1.6.0 +Version: 1.7.0 Release: 1 Epoch: 1 License: LGPL v2.1+ Group: Libraries Source0: ftp://ftp.gnupg.org/gcrypt/gpgme/%{name}-%{version}.tar.bz2 -# Source0-md5: 60d730d22e8065fd5de309e8b98e304b +# Source0-md5: c3f24c50bc5bdb7b898da0e278425ad2 Patch0: %{name}-info.patch Patch1: %{name}-kill-tests.patch -Patch2: %{name}-1.2.0-largefile.patch +Patch2: %{name}-largefile.patch +Patch3: %{name}-python.patch URL: http://www.gnupg.org/gpgme.html BuildRequires: autoconf >= 2.59 BuildRequires: automake >= 1:1.14 BuildRequires: libassuan-devel >= 1:2.0.2 BuildRequires: libgpg-error-devel >= 1.11 +%{?with_cxx:BuildRequires: libstdc++-devel >= 6:4.7} BuildRequires: libtool >= 2:2.2.6 +%{?with_python2:BuildRequires: python-devel >= 1:2.7} +%{?with_python3:BuildRequires: python3-devel >= 1:3.4} +%{?with_python:BuildRequires: rpm-pythonprov} +BuildRequires: rpmbuild(macros) >= 1.219 +%{?with_python:BuildRequires: swig-python} BuildRequires: texinfo +%if %{with qt5} +BuildRequires: Qt5Core-devel >= 5.0.0 +%{?with_tests:BuildRequires: Qt5Test-devel >= 5.0.0} +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: qt5-build >= 5.0.0 +%endif BuildConflicts: gnupg < 1.3.0 Suggests: gnupg >= 1.4.0 Suggests: gnupg-smime >= 1.9.8 @@ -70,11 +94,122 @@ Static version of GPGME library. %description static -l pl.UTF-8 Statyczna wersja biblioteki GPGME. +%package c++ +Summary: GpgMEpp - C++ interface for GPGME library +Summary(pl.UTF-8): GpgMEpp - interfejs C++ do biblioteki GPGME +Group: Libraries +Requires: %{name} = %{version}-%{release} + +%description c++ +GpgMEpp is a C++ wrapper (or C++ bindings) for the GnuPG project's +gpgme (GnuPG Made Easy). It's based on KF5gpgmepp library. + +%description c++ -l pl.UTF-8 +GpgMEpp to interfejs C++ (wiązania C++) do biblioteki gpgme (GnuPG +Made Easy) z projektu GnuPG. Jest oparty na bibliotece KF5gpgme.pp. + +%package c++-devel +Summary: Header files for GpgMEpp library +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki GpgMEpp +Group: Development/Libraries +Requires: %{name}-c++ = %{version}-%{release} +Requires: libstdc++-devel >= 6:4.7 + +%description c++-devel +Header files for GpgMEpp library. + +%description c++-devel -l pl.UTF-8 +Pliki nagłówkowe biblioteki GpgMEpp. + +%package c++-static +Summary: Static GpgMEpp library +Summary(pl.UTF-8): Statyczna biblioteka GpgMEpp +Group: Development/Libraries +Requires: %{name}-c++-devel = %{version}-%{release} + +%description c++-static +Static GpgMEpp library. + +%description c++-static -l pl.UTF-8 +Statyczna biblioteka GpgMEpp. + +%package qt5 +Summary: QGpgME - Qt 5 interface for GPGME library +Summary(pl.UTF-8): QGpgME - interfejs Qt 5 do biblioteki GPGME +License: GPL v2+ with Qt linking exception +Group: Libraries +Requires: %{name}-c++ = %{version}-%{release} +Requires: Qt5Core >= 5.0.0 + +%description qt5 +QGpgME is Qt 5 interface for GPGME library, based on library from +KF5gpgmepp. QGpgME provides a very high level Qt API around GpgMEpp. + +%description qt5 -l pl.UTF-8 +QGpgME to interfejs Qt 5 do biblioteki GPGME, oparty na bibliotece z +KF5gpgmepp. QGpgME udostępnia API Qt do GpgMEpp bardzo wysokiego +poziomu. + +%package qt5-devel +Summary: Header files for QGpgME library +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki QGpgME +License: GPL v2+ with Qt linking exception +Group: Development/Libraries +Requires: %{name}-c++-devel = %{version}-%{release} +Requires: %{name}-qt5 = %{version}-%{release} +Requires: Qt5Core-devel >= 5.0.0 + +%description qt5-devel +Header files for QGpgME library. + +%description qt5-devel -l pl.UTF-8 +Pliki nagłówkowe biblioteki QGpgME. + +%package qt5-static +Summary: Static QGpgME library +Summary(pl.UTF-8): Statyczna biblioteka QGpgME +License: GPL v2+ with Qt linking exception +Group: Development/Libraries +Requires: %{name}-qt5-devel = %{version}-%{release} + +%description qt5-static +Static QGpgME library. + +%description qt5-static -l pl.UTF-8 +Statyczna biblioteka QGpgME. + +%package -n python-pyme +Summary: PyME - Python 2 interface for GPGME library +Summary(pl.UTF-8): PyME - interfejs Pythona 2 do biblioteki GPGME +Group: Libraries/Python +Requires: %{name} = %{version}-%{release} +Requires: python-libs >= 1:2.7 + +%description -n python-pyme +PyME is a Python interface for GPGME library. + +%description -n python-pyme -l pl.UTF-8 +PyME to interfejs Pythona do biblioteki GPGME. + +%package -n python3-pyme +Summary: PyME - Python 3 interface for GPGME library +Summary(pl.UTF-8): PyME - interfejs Pythona 3 do biblioteki GPGME +Group: Libraries/Python +Requires: %{name} = %{version}-%{release} +Requires: python3-libs >= 1:3.4 + +%description -n python3-pyme +PyME is a Python interface for GPGME library. + +%description -n python3-pyme -l pl.UTF-8 +PyME to interfejs Pythona do biblioteki GPGME. + %prep %setup -q %patch0 -p1 %{!?with_tests:%patch1 -p1} %patch2 -p1 +%patch3 -p1 %build %{__libtoolize} @@ -82,7 +217,11 @@ Statyczna wersja biblioteki GPGME. %{__autoconf} %{__autoheader} %{__automake} +# in enable-languages: +# "python" means both pythons (if available), "python2" just python2, "python3" just python3 +# (cannot specify "python2 python3" due to script limitations) %configure \ + --enable-languages="%{?with_commonlisp:cl} %{?with_cxx:cpp} %{?with_python2:python%{!?with_python3:2}} %{?with_python3:%{!?with_python2:python3}} %{?with_qt5:qt}" \ %{?with_static_libs:--enable-static} %{__make} @@ -93,6 +232,10 @@ rm -rf $RPM_BUILD_ROOT %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +%if %{with python2} +%py_postclean +%endif + %clean rm -rf $RPM_BUILD_ROOT @@ -105,9 +248,15 @@ rm -rf $RPM_BUILD_ROOT %postun devel -p /sbin/postshell -/usr/sbin/fix-info-dir -c %{_infodir} +%post c++ -p /sbin/ldconfig +%postun c++ -p /sbin/ldconfig + +%post qt5 -p /sbin/ldconfig +%postun qt5 -p /sbin/ldconfig + %files %defattr(644,root,root,755) -%doc README ChangeLog THANKS TODO NEWS AUTHORS +%doc AUTHORS ChangeLog README NEWS THANKS TODO %attr(755,root,root) %{_bindir}/gpgme-tool %attr(755,root,root) %{_libdir}/libgpgme.so.*.*.* %attr(755,root,root) %ghost %{_libdir}/libgpgme.so.11 @@ -131,3 +280,79 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgpgme.a %{_libdir}/libgpgme-pthread.a %endif + +%if %{with cxx} +%files c++ +%defattr(644,root,root,755) +%doc lang/cpp/README +%attr(755,root,root) %{_libdir}/libgpgmepp.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgpgmepp.so.6 + +%files c++-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libgpgmepp.so +%{_libdir}/libgpgmepp.la +%{_includedir}/gpgme++ +%{_includedir}/gpgmepp_version.h +%dir %{_libdir}/cmake/Gpgmepp +%{_libdir}/cmake/Gpgmepp/GpgmeppConfig*.cmake + +%if %{with static_libs} +%files c++-static +%defattr(644,root,root,755) +%{_libdir}/libgpgmepp.a +%endif + +%if %{with qt5} +%files qt5 +%defattr(644,root,root,755) +%doc lang/qt/README +%attr(755,root,root) %{_libdir}/libqgpgme.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libqgpgme.so.6 + +%files qt5-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libqgpgme.so +%{_libdir}/libqgpgme.la +%{_includedir}/QGpgME +%{_includedir}/qgpgme +%{_includedir}/qgpgme_version.h +%{_libdir}/cmake/Gpgmepp/QGpgmeConfig*.cmake + +%if %{with static_libs} +%files qt5-static +%defattr(644,root,root,755) +%{_libdir}/libqgpgme.a +%endif +%endif +%endif + +%if %{with python2} +%files -n python-pyme +%defattr(644,root,root,755) +%doc lang/python/README +%dir %{py_sitedir}/pyme +%attr(755,root,root) %{py_sitedir}/pyme/_gpgme.so +%{py_sitedir}/pyme/*.py[co] +%{py_sitedir}/pyme/constants +%{py_sitedir}/pyme3-%{version}-py*.egg-info +%endif + +%if %{with python3} +%files -n python3-pyme +%defattr(644,root,root,755) +%doc lang/python/README +%dir %{py3_sitedir}/pyme +%attr(755,root,root) %{py3_sitedir}/pyme/_gpgme.cpython-*.so +%{py3_sitedir}/pyme/*.py +%{py3_sitedir}/pyme/__pycache__ +%{py3_sitedir}/pyme/constants +%{py3_sitedir}/pyme3-%{version}-py*.egg-info +%endif + +%if %{with commonlisp} +%files -n common-lisp???-gpgme +%defattr(644,root,root,755) +%doc lang/cl/README +%{_datadir}/common-lisp/source/gpgme +%endif diff --git a/gpgme-1.2.0-largefile.patch b/gpgme-1.2.0-largefile.patch deleted file mode 100644 index 43f916d..0000000 --- a/gpgme-1.2.0-largefile.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- gpgme-1.3.1/src/gpgme-config.in.orig 2011-04-07 14:24:03.000000000 +0200 -+++ gpgme-1.3.1/src/gpgme-config.in 2011-06-18 08:59:14.834695342 +0200 -@@ -45,6 +45,10 @@ - cflags_glib="@GLIB_CFLAGS@" - with_glib= - -+if test "0@NEED__FILE_OFFSET_BITS@" -gt "0" ; then -+ cflags_lfs="-D_FILE_OFFSET_BITS=@NEED__FILE_OFFSET_BITS@" -+fi -+ - output="" - - usage() -@@ -136,6 +140,9 @@ - result="$result $i" - fi - done -+ if test "x$cflags_lfs" != "x"; then -+ output="$output $cflags_lfs" -+ fi - output="$output $result" - ;; - --libs) diff --git a/gpgme-largefile.patch b/gpgme-largefile.patch new file mode 100644 index 0000000..bab91d0 --- /dev/null +++ b/gpgme-largefile.patch @@ -0,0 +1,101 @@ +--- gpgme-1.3.1/src/gpgme-config.in.orig 2011-04-07 14:24:03.000000000 +0200 ++++ gpgme-1.3.1/src/gpgme-config.in 2011-06-18 08:59:14.834695342 +0200 +@@ -45,6 +45,10 @@ + cflags_glib="@GLIB_CFLAGS@" + with_glib= + ++if test "0@NEED__FILE_OFFSET_BITS@" -gt "0" ; then ++ cflags_lfs="-D_FILE_OFFSET_BITS=@NEED__FILE_OFFSET_BITS@" ++fi ++ + output="" + + usage() +@@ -136,6 +140,9 @@ + result="$result $i" + fi + done ++ if test "x$cflags_lfs" != "x"; then ++ output="$output $cflags_lfs" ++ fi + output="$output $result" + ;; + --libs) +--- gpgme-1.7.0/configure.ac.orig 2016-09-21 09:18:01.000000000 +0200 ++++ gpgme-1.7.0/configure.ac 2016-10-08 08:46:21.898705647 +0200 +@@ -529,15 +529,18 @@ + # A simple compile time check in gpgme.h for GNU/Linux systems that + # prevents a file offset bits mismatch between gpgme and the application. + NEED__FILE_OFFSET_BITS=0 ++FILE_OFFSET_BITS_CPPFLAGS= + if test "$have_w32_system" != yes; then + case "$ac_cv_sys_file_offset_bits" in + "" | no | unknown) ;; + *) + NEED__FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits ++ FILE_OFFSET_BITS_CPPFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" + ;; + esac + fi + AC_SUBST(NEED__FILE_OFFSET_BITS) ++AC_SUBST(FILE_OFFSET_BITS_CPPFLAGS) + + # Figure out platform dependent typedefs for gpgme.h + if test "$have_w32_system" = yes; then +--- gpgme-1.7.0/lang/cpp/src/Makefile.am.orig 2016-08-24 15:59:45.000000000 +0200 ++++ gpgme-1.7.0/lang/cpp/src/Makefile.am 2016-10-08 08:47:06.225371811 +0200 +@@ -62,7 +62,7 @@ + libgpgmepp_la_SOURCES = $(main_sources) $(gpgmepp_headers) context_vanilla.cpp \ + $(interface_headers) $(private_gpgmepp_headers) + +-AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@ @LIBASSUAN_CFLAGS@ \ ++AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@ @LIBASSUAN_CFLAGS@ @FILE_OFFSET_BITS_CPPFLAGS@ \ + -DBUILDING_GPGMEPP + + libgpgmepp_la_LIBADD = ../../../src/libgpgme.la @LIBASSUAN_LIBS@ +--- gpgme-1.7.0/lang/python/setup.py.in.orig 2016-09-20 10:48:12.000000000 +0200 ++++ gpgme-1.7.0/lang/python/setup.py.in 2016-10-08 09:24:35.815346124 +0200 +@@ -98,9 +98,8 @@ + define_macros = [] + libs = getconfig('libs') + +-# Define extra_macros for both the SWIG and C code ++# append extra_macros to define_macros + for k, v in extra_macros.items(): +- extra_swig_opts.append("-D{0}={1}".format(k, v)) + define_macros.append((k, str(v))) + + for item in getconfig('cflags'): +@@ -113,6 +112,10 @@ + else: + define_macros.append((defitem[0], None)) + ++# use define_macros for both the SWIG and C code ++for k,v in define_macros: ++ extra_swig_opts.append("-D{0}={1}".format(k, v)) ++ + # Adjust include and library locations in case of win32 + uname_s = os.popen("uname -s").read() + if uname_s.startswith("MINGW32"): +--- gpgme-1.7.0/lang/qt/src/Makefile.am.orig 2016-09-19 08:35:20.000000000 +0200 ++++ gpgme-1.7.0/lang/qt/src/Makefile.am 2016-10-08 09:28:39.158676678 +0200 +@@ -206,7 +206,7 @@ + libqgpgme_la_SOURCES = $(qgpgme_sources) $(qgpgme_headers) $(private_qgpgme_headers) + + AM_CPPFLAGS = -I$(top_srcdir)/lang/cpp/src -I$(top_builddir)/src \ +- @GPGME_QT_CFLAGS@ @GPG_ERROR_CFLAGS@ @LIBASSUAN_CFLAGS@ \ ++ @GPGME_QT_CFLAGS@ @GPG_ERROR_CFLAGS@ @LIBASSUAN_CFLAGS@ @FILE_OFFSET_BITS_CPPFLAGS@ \ + -DBUILDING_QGPGME + + libqgpgme_la_LIBADD = ../../cpp/src/libgpgmepp.la ../../../src/libgpgme.la \ +--- gpgme-1.7.0/lang/qt/tests/Makefile.am.orig 2016-09-20 19:09:38.000000000 +0200 ++++ gpgme-1.7.0/lang/qt/tests/Makefile.am 2016-10-08 09:37:15.642004112 +0200 +@@ -38,7 +38,7 @@ + + AM_CPPFLAGS = -I$(top_srcdir)/lang/cpp/src -I$(top_builddir)/src \ + @GPG_ERROR_CFLAGS@ @GPGME_QT_CFLAGS@ @GPG_ERROR_CFLAGS@ \ +- @LIBASSUAN_CFLAGS@ @GPGME_QTTEST_CFLAGS@ -DBUILDING_QGPGME \ ++ @LIBASSUAN_CFLAGS@ @GPGME_QTTEST_CFLAGS@ @FILE_OFFSET_BITS_CPPFLAGS@ -DBUILDING_QGPGME \ + -I$(top_srcdir)/lang/qt/src \ + -DTOP_SRCDIR="$(top_srcdir)" + diff --git a/gpgme-python.patch b/gpgme-python.patch new file mode 100644 index 0000000..b8276f6 --- /dev/null +++ b/gpgme-python.patch @@ -0,0 +1,20 @@ +--- gpgme-1.7.0/lang/python/Makefile.am.orig 2016-09-21 09:18:00.000000000 +0200 ++++ gpgme-1.7.0/lang/python/Makefile.am 2016-10-08 22:07:19.258156918 +0200 +@@ -92,14 +92,15 @@ + rm -f install_files.txt + for PYTHON in $(PYTHONS); do \ + $$PYTHON setup.py install \ +- --prefix $(DESTDIR)$(prefix) \ ++ --prefix $(prefix) \ ++ --root $(DESTDIR) \ ++ --optimize=2 \ + --record files.txt \ + --verbose ; \ + cat files.txt >> install_files.txt ; \ + rm files.txt ; \ + done + $(MKDIR_P) $(DESTDIR)$(pythondir)/pyme +- mv install_files.txt $(DESTDIR)$(pythondir)/pyme + + uninstall-local: + xargs <$(DESTDIR)$(pythondir)/pyme/install_files.txt -- rm -rf -- ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/gpgme.git/commitdiff/04bb14bcab64b4995d7b22bd28ec4f0e53daf194 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit