gpgme/gpgme.spec
Igor Raits a65d42a985
Update to 1.16.0 (Closes: RHBZ#1975955)
Signed-off-by: Igor Raits <igor.raits@gmail.com>
2021-12-29 19:05:49 +01:00

217 lines
6.3 KiB
RPMSpec

%bcond_without check
%global gnupg2_min_ver 2.2.24
%global libgpg_error_min_ver 1.36
Name: gpgme
Summary: GnuPG Made Easy - high level crypto API
Version: 1.16.0
Release: %autorelease
# MIT: src/cJSON.{c,h} (used by gpgme-json)
License: LGPLv2+ and MIT
URL: https://gnupg.org/related_software/gpgme/
Source0: https://gnupg.org/ftp/gcrypt/gpgme/gpgme-%{version}.tar.bz2
Source2: gpgme-multilib.h
# Fix build with glibc >=2.34
Patch0001: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=4b64774b6d13ffa4f59dddf947a97d61bcfa2f2e#/0001-core-Support-closefrom-also-for-glibc.patch
## downstream patches
# Don't add extra libs/cflags in gpgme-config/cmake equivalent
Patch1001: 0001-don-t-add-extra-libraries-for-linking.patch
# add -D_FILE_OFFSET_BITS... to gpgme-config, upstreamable
Patch1002: gpgme-1.3.2-largefile.patch
# Let's fix stupid AX_PYTHON_DEVEL
Patch1003: 0001-fix-stupid-ax_python_devel.patch
#BuildRequires: autoconf
#BuildRequires: automake
BuildRequires: make
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gawk
BuildRequires: gnupg2 >= %{gnupg2_min_ver}
BuildRequires: gnupg2-smime
BuildRequires: libgpg-error-devel >= %{libgpg_error_min_ver}
BuildRequires: libassuan-devel >= 2.4.2
# For python bindings
BuildRequires: swig
# to remove RPATH
BuildRequires: chrpath
# For AutoReq cmake-filesystem
BuildRequires: cmake
Requires: gnupg2 >= %{gnupg2_min_ver}
# On the following architectures workaround multiarch conflict of -devel packages:
%define multilib_arches %{ix86} x86_64 ia64 ppc ppc64 s390 s390x %{sparc}
%description
GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
easier for applications. It provides a high-level crypto API for
encryption, decryption, signing, signature verification and key
management.
%package devel
Summary: Development headers and libraries for %{name}
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: libgpg-error-devel%{?_isa} >= %{libgpg_error_min_ver}
%description devel
%{summary}.
%package -n %{name}pp
Summary: C++ bindings/wrapper for GPGME
Obsoletes: gpgme-pp < 1.8.0-7
Provides: gpgme-pp = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: gpgme-pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%description -n %{name}pp
%{summary}.
%package -n %{name}pp-devel
Summary: Development libraries and header files for %{name}-pp
Obsoletes: gpgme-pp-devel < 1.8.0-7
Provides: gpgme-pp-devel = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: gpgme-pp-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-devel%{?_isa}
# For automatic provides
BuildRequires: cmake
%description -n %{name}pp-devel
%{summary}
%package -n q%{name}
Summary: Qt API bindings/wrapper for GPGME
Requires: %{name}pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Test)
%description -n q%{name}
%{summary}.
%package -n q%{name}-devel
Summary: Development libraries and header files for %{name}
# before libqgpgme.so symlink was moved to avoid conflict
Conflicts: kdepimlibs-devel < 4.14.10-17
Requires: q%{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}pp-devel%{?_isa}
# For automatic provides
BuildRequires: cmake
%description -n q%{name}-devel
%{summary}.
%package -n python3-gpg
Summary: %{name} bindings for Python 3
%{?python_provide:%python_provide python3-gpg}
BuildRequires: python3-devel
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Obsoletes: platform-python-gpg < %{version}-%{release}
%description -n python3-gpg
%{summary}.
%prep
%autosetup -p1
## HACK ALERT
# The config script already suppresses the -L if it's /usr/lib, so cheat and
# set it to a value which we know will be suppressed.
sed -i -e 's|^libdir=@libdir@$|libdir=@exec_prefix@/lib|g' src/gpgme-config.in
# The build machinery does not support Python 3.9+ yet
# https://github.com/gpg/gpgme/pull/4
sed -i 's/3.8/%{python3_version}/g' configure
%build
# People neeed to learn that you can't run autogen.sh anymore
#./autogen.sh
%configure --disable-static --disable-silent-rules --enable-languages=cpp,qt,python
%make_build
%install
%make_install
# unpackaged files
rm -fv %{buildroot}%{_infodir}/dir
rm -fv %{buildroot}%{_libdir}/lib*.la
# Hack to resolve multiarch conflict (#341351)
%ifarch %{multilib_arches}
mv %{buildroot}%{_bindir}/gpgme-config{,.%{_target_cpu}}
cat > gpgme-config-multilib.sh <<__END__
#!/bin/sh
exec %{_bindir}/gpgme-config.\$(arch) \$@
__END__
install -D -p gpgme-config-multilib.sh %{buildroot}%{_bindir}/gpgme-config
mv %{buildroot}%{_includedir}/gpgme.h \
%{buildroot}%{_includedir}/gpgme-%{__isa_bits}.h
install -m644 -p -D %{SOURCE2} %{buildroot}%{_includedir}/gpgme.h
%endif
chrpath -d %{buildroot}%{_bindir}/%{name}-tool
chrpath -d %{buildroot}%{_bindir}/%{name}-json
chrpath -d %{buildroot}%{_libdir}/lib%{name}pp.so*
chrpath -d %{buildroot}%{_libdir}/libq%{name}.so*
# autofoo installs useless stuff for uninstall
rm -vf %{buildroot}%{python2_sitelib}/gpg/install_files.txt
rm -vf %{buildroot}%{python3_sitelib}/gpg/install_files.txt
%if %{with check}
%check
make check
%endif
%files
%license COPYING* LICENSES
%doc AUTHORS NEWS README*
%{_bindir}/%{name}-json
%{_libdir}/lib%{name}.so.11*
%files devel
%{_bindir}/%{name}-config
%{_bindir}/%{name}-tool
%ifarch %{multilib_arches}
%{_bindir}/%{name}-config.%{_target_cpu}
%{_includedir}/%{name}-%{__isa_bits}.h
%endif
%{_includedir}/%{name}.h
%{_libdir}/lib%{name}.so
%{_datadir}/aclocal/%{name}.m4
%{_infodir}/%{name}.info*
%{_libdir}/pkgconfig/%{name}*.pc
%files -n %{name}pp
%doc lang/cpp/README
%{_libdir}/lib%{name}pp.so.6*
%files -n %{name}pp-devel
%{_includedir}/%{name}++/
%{_libdir}/lib%{name}pp.so
%{_libdir}/cmake/Gpgmepp/
%files -n q%{name}
%doc lang/qt/README
%{_libdir}/libq%{name}.so.7*
%files -n q%{name}-devel
%{_includedir}/q%{name}/
%{_includedir}/QGpgME/
%{_libdir}/libq%{name}.so
%{_libdir}/cmake/QGpgme/
%files -n python3-gpg
%doc lang/python/README
%{python3_sitearch}/gpg-*.egg-info
%{python3_sitearch}/gpg/
%changelog
%autochangelog