Build only Qt6 on RHEL

This commit is contained in:
Jiri Kucera 2023-06-26 11:44:22 +02:00
parent ae00a96f33
commit f99aa40793

View File

@ -1,5 +1,7 @@
%bcond check 1 %bcond check 1
%bcond qt 1 # No Qt5 on RHEL 10 and higher
%bcond qt5 %[ 0%{?rhel} < 10 ]
%bcond qt6 1
%global gnupg2_min_ver 2.2.24 %global gnupg2_min_ver 2.2.24
%global libgpg_error_min_ver 1.36 %global libgpg_error_min_ver 1.36
@ -89,7 +91,7 @@ Requires: %{name}-devel%{?_isa}
%description -n %{name}pp-devel %description -n %{name}pp-devel
%{summary} %{summary}
%if %{with qt} %if %{with qt5}
%package -n q%{name}-qt5 %package -n q%{name}-qt5
Summary: Qt5 API bindings/wrapper for GPGME Summary: Qt5 API bindings/wrapper for GPGME
Requires: %{name}pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: %{name}pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
@ -100,7 +102,9 @@ Provides: q%{name}
%description -n q%{name}-qt5 %description -n q%{name}-qt5
%{summary}. %{summary}.
%endif
%if %{with qt6}
%package -n q%{name}-qt6 %package -n q%{name}-qt6
Summary: Qt6 API bindings/wrapper for GPGME Summary: Qt6 API bindings/wrapper for GPGME
Requires: %{name}pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: %{name}pp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
@ -109,14 +113,18 @@ BuildRequires: pkgconfig(Qt6Test)
%description -n q%{name}-qt6 %description -n q%{name}-qt6
%{summary}. %{summary}.
%endif
%if %{with qt5} || %{with qt6}
%package -n q%{name}-common-devel %package -n q%{name}-common-devel
Summary: Common development header files for %{name}-qt5 and %{name}-qt6 Summary: Common development header files for %{name}-qt5 and %{name}-qt6
Requires: %{name}pp-devel%{?_isa} Requires: %{name}pp-devel%{?_isa}
%description -n q%{name}-common-devel %description -n q%{name}-common-devel
%{summary}. %{summary}.
%endif
%if %{with qt5}
%package -n q%{name}-qt5-devel %package -n q%{name}-qt5-devel
Summary: Development libraries and header files for %{name}-qt5 Summary: Development libraries and header files for %{name}-qt5
# before libqgpgme.so symlink was moved to avoid conflict # before libqgpgme.so symlink was moved to avoid conflict
@ -129,7 +137,9 @@ Provides: q%{name}-devel%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release
%description -n q%{name}-qt5-devel %description -n q%{name}-qt5-devel
%{summary}. %{summary}.
%endif
%if %{with qt6}
%package -n q%{name}-qt6-devel %package -n q%{name}-qt6-devel
Summary: Development libraries and header files for %{name}-qt6 Summary: Development libraries and header files for %{name}-qt6
Requires: q%{name}-qt6%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: q%{name}-qt6%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
@ -163,8 +173,10 @@ sed -i -e 's|^libdir=@libdir@$|libdir=@exec_prefix@/lib|g' src/gpgme-config.in
sed -i 's/3.8/%{python3_version}/g' configure sed -i 's/3.8/%{python3_version}/g' configure
# copy to a qt6 build directory as both can't be build in the same directory # copy to a qt6 build directory as both can't be build in the same directory
%if %{with qt5} && %{with qt6}
cd .. cd ..
cp -r gpgme-%{version} gpgme-%{version}-qt6 cp -r gpgme-%{version} gpgme-%{version}-qt6
%endif
%build %build
# People neeed to learn that you can't run autogen.sh anymore # People neeed to learn that you can't run autogen.sh anymore
@ -180,14 +192,16 @@ export CFLAGS="$(echo ${CFLAGS} | tr '\n\\' ' ')"
export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')" export CXXFLAGS="$(echo ${CXXFLAGS} | tr '\n\\' ' ')"
export SETUPTOOLS_USE_DISTUTILS=local export SETUPTOOLS_USE_DISTUTILS=local
# qt5 # Also build either qt5 or qt6
%configure --disable-static --disable-silent-rules --enable-languages=cpp,%{?with_qt:qt,}python %configure --disable-static --disable-silent-rules --enable-languages=cpp,%{?with_qt5:qt,}%{!?with_qt5:%{?with_qt6:qt6,}}python
%make_build %make_build
# qt6 # Build qt6 in extra step if qt5 has been build
%if %{with qt5} && %{with qt6}
cd ../gpgme-%{version}-qt6 cd ../gpgme-%{version}-qt6
%configure --disable-static --disable-silent-rules --enable-languages=cpp,%{?with_qt:qt6,}python %configure --disable-static --disable-silent-rules --enable-languages=cpp,qt6,python
%make_build %make_build
%endif
%install %install
# When using distutils from setuptools 60+, ./setup.py install use # When using distutils from setuptools 60+, ./setup.py install use
@ -195,11 +209,13 @@ cd ../gpgme-%{version}-qt6
# SETUP_PY_EXTRA_OPTS is introduced by the Patch1004 above. # SETUP_PY_EXTRA_OPTS is introduced by the Patch1004 above.
export SETUPTOOLS_USE_DISTUTILS=local export SETUPTOOLS_USE_DISTUTILS=local
export SETUP_PY_EXTRA_OPTS="--single-version-externally-managed --root=/" export SETUP_PY_EXTRA_OPTS="--single-version-externally-managed --root=/"
# qt5 # Also install either qt5 or qt6
%make_install %make_install
# qt6 # Install qt6 in extra step if qt5 has been installed
%if %{with qt5} && %{with qt6}
cd ../gpgme-%{version}-qt6 cd ../gpgme-%{version}-qt6
%make_install %make_install
%endif
# unpackaged files # unpackaged files
rm -fv %{buildroot}%{_infodir}/dir rm -fv %{buildroot}%{_infodir}/dir
@ -220,10 +236,12 @@ install -m644 -p -D %{SOURCE2} %{buildroot}%{_includedir}/gpgme.h
chrpath -d %{buildroot}%{_bindir}/%{name}-tool chrpath -d %{buildroot}%{_bindir}/%{name}-tool
chrpath -d %{buildroot}%{_bindir}/%{name}-json chrpath -d %{buildroot}%{_bindir}/%{name}-json
chrpath -d %{buildroot}%{_libdir}/lib%{name}pp.so* chrpath -d %{buildroot}%{_libdir}/lib%{name}pp.so*
%if %{with qt}
# qt5 # qt5
%if %{with qt5}
chrpath -d %{buildroot}%{_libdir}/libq%{name}.so* chrpath -d %{buildroot}%{_libdir}/libq%{name}.so*
%endif
# qt6 # qt6
%if %{with qt6}
chrpath -d %{buildroot}%{_libdir}/libq%{name}qt6.so* chrpath -d %{buildroot}%{_libdir}/libq%{name}qt6.so*
%endif %endif
@ -264,22 +282,30 @@ make check
%{_libdir}/lib%{name}pp.so %{_libdir}/lib%{name}pp.so
%{_libdir}/cmake/Gpgmepp/ %{_libdir}/cmake/Gpgmepp/
%if %{with qt} %if %{with qt5}
%files -n q%{name}-qt5 %files -n q%{name}-qt5
%doc lang/qt/README %doc lang/qt/README
%{_libdir}/libq%{name}.so.15* %{_libdir}/libq%{name}.so.15*
%endif
%if %{with qt6}
%files -n q%{name}-qt6 %files -n q%{name}-qt6
%{_libdir}/libq%{name}qt6.so.15* %{_libdir}/libq%{name}qt6.so.15*
%endif
%if %{with qt5} || %{with qt6}
%files -n q%{name}-common-devel %files -n q%{name}-common-devel
%{_includedir}/q%{name}/ %{_includedir}/q%{name}/
%{_includedir}/QGpgME/ %{_includedir}/QGpgME/
%endif
%if %{with qt5}
%files -n q%{name}-qt5-devel %files -n q%{name}-qt5-devel
%{_libdir}/libq%{name}.so %{_libdir}/libq%{name}.so
%{_libdir}/cmake/QGpgme/ %{_libdir}/cmake/QGpgme/
%endif
%if %{with qt6}
%files -n q%{name}-qt6-devel %files -n q%{name}-qt6-devel
%{_libdir}/libq%{name}qt6.so %{_libdir}/libq%{name}qt6.so
%{_libdir}/cmake/QGpgmeQt6/ %{_libdir}/cmake/QGpgmeQt6/