File mingw32-gpgme.spec of Package mingw32-gpgme

#
# spec file for package mingw32-gpgme
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

%define _with_qt5 1
%define _name   gpgme
Name:           mingw32-%{_name}
Version:        1.23.2
Release:        0
Summary:        A Library Designed to Give Applications Easy Access to GnuPG
License:        LGPL-2.1-or-later AND GPL-3.0-or-later
Group:          Productivity/Security
URL:            https://www.gnupg.org/related_software/gpgme/
Source:         https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-%{version}.tar.bz2
Source1:        https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-%{version}.tar.bz2.sig
Source3:        https://gnupg.org/signature_key.asc#/gpgme.keyring
# used to have a fixed timestamp
Source99:       %{name}.changes
# fix kmymoney5 builds
Patch0:         fix-mingw-builds.patch
BuildRequires:  gpg2 >= 2.0.10
BuildRequires:  mingw32-cross-gcc-c++
BuildRequires:  mingw32-cross-pkg-config
BuildRequires:  mingw32-gpg2 >= 2.0.10
BuildRequires:  mingw32-libassuan-devel >= 2.4.2
BuildRequires:  mingw32-libgpg-error-devel >= 1.24
Requires(post): %{install_info_prereq}
Requires(preun): %{install_info_prereq}
%_mingw32_package_header_debug
BuildArch:      noarch
%if %{?_with_qt5}
BuildRequires:  mingw32-cross-libqt5-qmake
BuildRequires:  mingw32-libqt5-qtbase-devel
%endif

%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. Currently it uses GnuPG as its back-end, but the API is not
restricted to this engine.

Because the direct use of GnuPG from an application can be a
complicated programming task, it is suggested that all software should
try to use GPGME instead. This way bug fixes or improvements can be
done at a central place and every application benefits from this.
Authors of MUAs should especially consider using GPGME. Creating a set
of standard widgets for common key selection tasks is even planned.

%package -n mingw32-libgpgme11
Summary:        A Library Designed to give Applications easy Access to GnuPG
Group:          Development/Libraries/C and C++
Requires:       mingw32-gpg2
# gpgme-w32spawn.exe
Requires:       mingw32-gpgme

%description -n mingw32-libgpgme11
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. Currently it uses GnuPG as its back-end, but the API is not
restricted to this engine.

Who Should use GPGME?

Because the direct use of GnuPG from an application can be a
complicated programming task, it is suggested that all software should
try to use GPGME instead. This way bug fixes or improvements can be
done at a central place and every application benefits from this.
Authors of MUAs should especially consider using GPGME. Creating a set
of standard widgets for common key selection tasks is even planned.

%package -n mingw32-libgpgme-devel
Summary:        A Library Designed to give Applications easy Access to GnuPG
Group:          Development/Libraries/C and C++
Requires:       mingw32-libgpg-error-devel
Requires:       mingw32-libgpgme11 = %{version}
Provides:       mingw32-gpgme-devel = %{version}
Obsoletes:      mingw32-gpgme-devel < %{version}
%requires_ge	mingw32-libassuan-devel

%description -n mingw32-libgpgme-devel
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. Currently it uses GnuPG as its back-end, but the API is not
restricted to this engine.

Who Should use GPGME?

Because the direct use of GnuPG from an application can be a
complicated programming task, it is suggested that all software should
try to use GPGME instead. This way bug fixes or improvements can be
done at a central place and every application benefits from this.
Authors of MUAs should especially consider using GPGME. Creating a set
of standard widgets for common key selection tasks is even planned.

%package -n mingw32-libgpgmepp6
Summary:        Programmatic C++ library interface to GnuPG
Group:          System/Libraries
Requires:       mingw32-gpg2

%description -n mingw32-libgpgmepp6
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.

This package contains the C++ bindings.

%package -n mingw32-libgpgmepp-devel
Summary:        Development files for libgpgmepp, a C++ library for accessing GnuPG
Group:          Development/Libraries/C and C++
Requires:       mingw32-libgpg-error-devel
Requires:       mingw32-libgpgme-devel = %{version}
Requires:       mingw32-libgpgmepp6 = %{version}
%requires_ge    mingw32-libassuan-devel

%description -n mingw32-libgpgmepp-devel
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.

This subpackage contains the headers needed for building applications
making use of libgpgmepp.

%if %{?_with_qt5}
%package -n mingw32-libqgpgme15
Summary:        Programmatic Qt5 library interface to GnuPG
Group:          System/Libraries
Requires:       mingw32-gpg2

%description -n mingw32-libqgpgme15
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.

This package contains the Qt5 bindings.

%package -n mingw32-libqgpgme-devel
Summary:        Development files for libqgpgme, a Qt5 library for accessing GnuPG
Group:          Development/Libraries/C and C++
Requires:       mingw32-libgpgme-devel = %{version}
Requires:       mingw32-libgpgmepp-devel = %{version}
Requires:       mingw32-libqgpgme15 = %{version}

%description -n mingw32-libqgpgme-devel
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.

This package contains the bindings to use the library in Qt5 C++ applications.
%endif

%_mingw32_debug_package

%prep
%setup -q -n %{_name}-%{version}
%patch0 -p1

%build
build_timestamp=$(date -u +%{Y}-%{m}-%{dT}%{H}:%{M}+0000 -r %{SOURCE99})
echo "lt_cv_deplibs_check_method='pass_all'" >>%{_mingw32_cache}
%_mingw32_configure \
	--disable-static \
	--disable-fd-passing \
	--enable-build-timestamp="${build_timestamp}"

make %{?_smp_mflags}

%install
%_mingw32_make DESTDIR=%{buildroot} install
# Do this now to make /usr/lib/rpm/brp-chuck-la happy:
find %{buildroot} -type f -name "*.la" -delete -print
mv %{buildroot}%{_mingw32_prefix}/libexec/gpgme-w32spawn.exe %{buildroot}%{_mingw32_prefix}/bin
rm %{buildroot}%{_mingw32_libdir}/gpgme.def
rm  -rf %{buildroot}%{_mingw32_datadir}/info
# remove buildroot from generated cmake files
for i in $(find %{buildroot} -name *Config.cmake); do
    sed -i 's,%{buildroot},,g' $i
done

%check
%if ! 0%{?qemu_user_space_build}
#make check
%endif

%files
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog ChangeLog-2011 README NEWS THANKS TODO
%{_mingw32_bindir}/gpgme-tool.exe
%{_mingw32_bindir}/gpgme-json.exe
%{_mingw32_bindir}/gpgme-w32spawn.exe
%dir %{_mingw32_datadir}/common-lisp
%{_mingw32_datadir}/common-lisp

%files -n mingw32-libgpgme11
%defattr(-,root,root)
%{_mingw32_bindir}/libgpgme-11.dll

%files -n mingw32-libgpgme-devel
%defattr(-,root,root)
%{_mingw32_libdir}/libgpgme.dll.a
%{_mingw32_libdir}/pkgconfig
%{_mingw32_bindir}/gpgme-config
%{_mingw32_datadir}/aclocal/gpgme.m4
%{_mingw32_includedir}/gpgme.h

%files -n mingw32-libgpgmepp6
%defattr(-,root,root)
%{_mingw32_bindir}/libgpgmepp-6.dll

%files -n mingw32-libgpgmepp-devel
%defattr(-,root,root)
%{_mingw32_libdir}/libgpgmepp.dll.a
%dir %{_mingw32_libdir}/cmake/Gpgmepp
%{_mingw32_libdir}/cmake/Gpgmepp
%{_mingw32_includedir}/gpgme++

%if %{?_with_qt5}
%files -n mingw32-libqgpgme15
%defattr(-,root,root)
%{_mingw32_bindir}/libqgpgme-15.dll

%files -n mingw32-libqgpgme-devel
%defattr(-,root,root)
%{_mingw32_libdir}/libqgpgme.dll.a
%dir %{_mingw32_libdir}/cmake/QGpgme
%{_mingw32_libdir}/cmake/QGpgme
%{_mingw32_includedir}/qgpgme
%{_mingw32_includedir}/QGpgME
%endif

%changelog
openSUSE Build Service is sponsored by