#1 Add qt6 build, cleanup spec
Merged a year ago by rdieter. Opened 2 years ago by smani.
rpms/ smani/qca rawhide  into  rawhide

@@ -0,0 +1,19 @@ 

+ diff -rupN qca-2.3.4/CMakeLists.txt qca-2.3.4-new/CMakeLists.txt

+ --- qca-2.3.4/CMakeLists.txt	2021-09-14 14:41:31.000000000 +0200

+ +++ qca-2.3.4-new/CMakeLists.txt	2022-11-29 14:19:35.591642766 +0100

+ @@ -246,13 +246,13 @@ if(NOT WIN32)

+      set(PKGCONFIG_LIBS "-L\${libdir} -l${QCA_LIB_NAME}")

+    endif()

+  

+ -  if(NOT QT6)

+ +  # if(NOT QT6)

+      # qca2.pc uses absolute paths. So it must be there. Don't rellocate this.

+      configure_file("qca2.pc.cmake" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pkgconfig/${QCA_PC_NAME}" @ONLY)

+      if(NOT DEVELOPER_MODE)

+        install(FILES "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/pkgconfig/${QCA_PC_NAME}" DESTINATION ${PKGCONFIG_INSTALL_PREFIX})

+      endif()

+ -  endif()

+ +  # endif()

+  endif()

+  

+  # strip CMAKE_INSTALL_PREFIX in all paths

file modified
+197 -99
@@ -1,22 +1,23 @@ 

- 

- %undefine __cmake_in_source_build

- 

  %if 0%{?fedora} < 34 && 0%{?rhel} < 9

  %global botan 1

  %endif

  

+ %bcond_without qt5

+ %bcond_without qt6

+ 

  #global doc 1

  %global tests 1

  

  Name:    qca

  Summary: Qt Cryptographic Architecture

  Version: 2.3.4

- Release: 3%{?dist}

+ Release: 4%{?dist}

  

  License: LGPLv2+

  URL:     https://userbase.kde.org/QCA

  Source0: http://download.kde.org/stable/qca/%{version}/qca-%{version}.tar.xz

- 

+ # Also generate pkgconfig file for qt6

+ Patch0:  qca-qt6-pkgconfig.patch

  ## upstream patches

  

  ## upstreamable patches
@@ -29,7 +30,6 @@ 

  BuildRequires: pkgconfig(libpkcs11-helper-1)

  BuildRequires: pkgconfig(libsasl2)

  

- BuildRequires: pkgconfig(Qt5Core)

  

  %if 0%{?doc}

  # apidocs
@@ -38,17 +38,6 @@ 

  BuildRequires: graphviz

  %endif

  

- # qca2 renamed qca

- Obsoletes: qca2 < 2.1.0

- Provides:  qca2 = %{version}-%{release}

- Provides:  qca2%{?_isa} = %{version}-%{release}

- 

- %if ! 0%{?botan}

- Obsoletes: qca-qt5-botan < %{version}-%{release}

- %endif

- 

- # most runtime consumers seem to assume the ossl plugin be present

- Recommends: %{name}-ossl%{?_isa}

  

  %description

  Taking a hint from the similarly-named Java Cryptography Architecture,
@@ -60,82 +49,14 @@ 

  or upgrade crypto implementations without even needing to recompile the

  application!

  

- %package devel

- Summary: Qt Cryptographic Architecture development files

- # qca2 renamed qca

- Obsoletes: qca2-devel < 2.1.0

- Provides:  qca2-devel = %{version}-%{release}

- Provides:  qca2-devel%{?_isa} = %{version}-%{release}

- Requires:  %{name}%{?_isa} = %{version}-%{release}

- %description devel

- This packages contains the development files for QCA.

- 

- %package doc

- Summary: QCA API documentation

- BuildArch: noarch

- %description doc

- This package includes QCA API documentation in HTML

- 

- %if 0%{?botan}

- %package botan

- Summary: Botan plugin for the Qt Cryptographic Architecture

- BuildRequires: pkgconfig(botan-2)

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description botan

- %{summary}.

- %endif

- 

- %package cyrus-sasl

- Summary: Cyrus-SASL plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description cyrus-sasl

- %{summary}.

- 

- %package gcrypt

- Summary: Gcrypt plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description gcrypt

- %{summary}.

- 

- %package gnupg

- Summary: Gnupg plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- Requires: gnupg

- %description gnupg

- %{summary}.

- 

- %package logger

- Summary: Logger plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description logger

- %{summary}.

- 

- %package nss

- Summary: Nss plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description nss

- %{summary}.

- 

- %package ossl

- Summary: Openssl plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description ossl

- %{summary}.

- 

- %package pkcs11

- Summary: Pkcs11 plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description pkcs11

- %{summary}.

- 

- %package softstore

- Summary: Pkcs11 plugin for the Qt Cryptographic Architecture

- Requires: %{name}%{?_isa} = %{version}-%{release}

- %description softstore

- %{summary}.

  

+ %if %{with qt5}

  %package qt5

  Summary: Qt5 Cryptographic Architecture

+ BuildRequires: pkgconfig(Qt5Core)

+ %if ! 0%{?botan}

+ Obsoletes: qca-qt5-botan < %{version}-%{release}

+ %endif

  # most runtime consumers seem to assume the ossl plugin be present

  Recommends: %{name}-qt5-ossl%{?_isa}

  %description qt5
@@ -211,6 +132,90 @@ 

  Requires: %{name}-qt5%{?_isa} = %{version}-%{release}

  %description qt5-softstore

  %{summary}.

+ %endif

+ 

+ 

+ %if %{with qt6}

+ %package qt6

+ BuildRequires: pkgconfig(Qt6Core)

+ Summary: Qt6 Cryptographic Architecture

+ # most runtime consumers seem to assume the ossl plugin be present

+ Recommends: %{name}-qt6-ossl%{?_isa}

+ %description qt6

+ Taking a hint from the similarly-named Java Cryptography Architecture,

+ QCA aims to provide a straightforward and cross-platform crypto API,

+ using Qt datatypes and conventions. QCA separates the API from the

+ implementation, using plugins known as Providers. The advantage of this

+ model is to allow applications to avoid linking to or explicitly depending

+ on any particular cryptographic library. This allows one to easily change

+ or upgrade crypto implementations without even needing to recompile the

+ application!

+ 

+ %package qt6-devel

+ Summary: Qt6 Cryptographic Architecture development files

+ Requires:  %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-devel

+ %{summary}.

+ 

+ %if 0%{?botan}

+ %package qt6-botan

+ Summary: Botan plugin for the Qt6 Cryptographic Architecture

+ BuildRequires: pkgconfig(botan-2)

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-botan

+ %{summary}.

+ %endif

+ 

+ %package qt6-cyrus-sasl

+ Summary: Cyrus-SASL plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-cyrus-sasl

+ %{summary}.

+ 

+ %package qt6-gcrypt

+ Summary: Gcrypt plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-gcrypt

+ %{summary}.

+ 

+ %package qt6-gnupg

+ Summary: Gnupg plugin for the Qt Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ Requires: gnupg

+ %description qt6-gnupg

+ %{summary}.

+ 

+ %package qt6-logger

+ Summary: Logger plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-logger

+ %{summary}.

+ 

+ %package qt6-nss

+ Summary: Nss plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-nss

+ %{summary}.

+ 

+ %package qt6-ossl

+ Summary: Openssl plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-ossl

+ %{summary}.

+ 

+ %package qt6-pkcs11

+ Summary: Pkcs11 plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-pkcs11

+ %{summary}.

+ 

+ %package qt6-softstore

+ Summary: Pkcs11 plugin for the Qt6 Cryptographic Architecture

+ Requires: %{name}-qt6%{?_isa} = %{version}-%{release}

+ %description qt6-softstore

+ %{summary}.

+ 

+ %endif

  

  

  %prep
@@ -218,21 +223,33 @@ 

  

  

  %build

- %cmake \

-   -Wno-dev \

+ cmake_opts="-Wno-dev \

    -DBUILD_TESTS:BOOL=%{?tests:ON}%{!?tests:OFF} \

-   -DQCA_INCLUDE_INSTALL_DIR:PATH=%{_qt5_headerdir} \

    -DQCA_INSTALL_IN_QT_PREFIX:BOOL=ON \

    -DQCA_BINARY_INSTALL_DIR:STRING=%{_bindir} \

    -DQCA_MAN_INSTALL_DIR:PATH=%{_mandir} \

-   -DQCA_PRIVATE_INCLUDE_INSTALL_DIR:PATH=%{_qt5_headerdir} \

-   -DWITH_botan_PLUGIN:BOOL=%{?botan:ON}%{?!botan:OFF}

+   -DWITH_botan_PLUGIN:BOOL=%{?botan:ON}%{?!botan:OFF}"

+ %if %{with qt5}

+ %define _vpath_builddir %{_target_platform}-qt5

+ %cmake $cmake_opts \

+   -DQCA_INCLUDE_INSTALL_DIR:PATH=%{_qt5_headerdir} \

+   -DQCA_PRIVATE_INCLUDE_INSTALL_DIR:PATH=%{_qt5_headerdir}

  

- #  -DQCA_FEATURE_INSTALL_DIR:PATH=%{_qt5_archdatadir}/mkspecs/features \

- #  -DQCA_LIBRARY_INSTALL_DIR:PATH=%{_qt5_libdir} \

- #  -DQCA_PLUGINS_INSTALL_DIR:PATH=%{_qt5_plugindir} \

+ %cmake_build

+ %endif

+ 

+ 

+ %if %{with qt6}

+ %define _vpath_builddir %{_target_platform}-qt6

+ %cmake $cmake_opts \

+   -DQT6=ON \

+   -DQCA_INCLUDE_INSTALL_DIR:PATH=%{_qt6_headerdir} \

+   -DQCA_PRIVATE_INCLUDE_INSTALL_DIR:PATH=%{_qt6_headerdir}

  

  %cmake_build

+ %endif

+ 

+ 

  

  %if 0%{?doc}

  %cmake_build --target doc
@@ -240,7 +257,14 @@ 

  

  

  %install

+ %define _vpath_builddir %{_target_platform}-qt5

+ %cmake_install

+ 

+ %if %{with qt6}

+ %define _vpath_builddir %{_target_platform}-qt6

  %cmake_install

+ %endif

+ 

  

  %if 0%{?doc}

  # no make install target for docs yet
@@ -251,7 +275,9 @@ 

  

  

  %check

+ %if %{with qt5}

  %if 0%{?test}

+ %define _vpath_builddir %{_target_platform}-qt5

  export CTEST_OUTPUT_ON_FAILURE=1

  export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig

  # skip slow archs
@@ -260,6 +286,20 @@ 

  %ctest --timeout 180

  %endif

  %endif

+ %endif

+ 

+ %if %{with qt6}

+ %if 0%{?test}

+ %define _vpath_builddir %{_target_platform}-qt6

+ export CTEST_OUTPUT_ON_FAILURE=1

+ export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig

+ # skip slow archs

+ %ifnarch %{arm} ppc64 s390x

+ test "$(pkg-config --modversion qca2-qt6)" = "%{version}"

+ %ctest --timeout 180

+ %endif

+ %endif

+ %endif

  

  

  %if 0%{?doc}
@@ -267,8 +307,8 @@ 

  %{_docdir}/qca/html/

  %endif

  

- %ldconfig_scriptlets qt5

  

+ %if %{with qt5}

  %files qt5

  %doc README TODO

  %license COPYING
@@ -321,9 +361,67 @@ 

  %files qt5-softstore

  %doc plugins/qca-softstore/README

  %{_qt5_plugindir}/crypto/libqca-softstore.so

+ %endif

+ 

  

+ %if %{with qt6}

+ %files qt6

+ %doc README TODO

+ %license COPYING

+ %{_bindir}/mozcerts-qt6

+ %{_bindir}/qcatool-qt6

+ %{_mandir}/man1/qcatool-qt6.1*

+ %{_qt6_libdir}/libqca-qt6.so.2*

+ %dir %{_qt6_plugindir}/crypto/

+ 

+ %files qt6-devel

+ %{_qt6_headerdir}/QtCrypto

+ %{_qt6_libdir}/libqca-qt6.so

+ %{_libdir}/pkgconfig/qca2-qt6.pc

+ %{_libdir}/cmake/Qca-qt6/

+ 

+ %if 0%{?botan}

+ %files qt6-botan

+ %doc plugins/qca-botan/README

+ %{_qt6_plugindir}/crypto/libqca-botan.so

+ %endif

+ 

+ %files qt6-cyrus-sasl

+ %doc plugins/qca-gcrypt/README

+ %{_qt6_plugindir}/crypto/libqca-cyrus-sasl.so

+ 

+ %files qt6-gcrypt

+ %{_qt6_plugindir}/crypto/libqca-gcrypt.so

+ 

+ %files qt6-gnupg

+ %doc plugins/qca-cyrus-sasl/README

+ %{_qt6_plugindir}/crypto/libqca-gnupg.so

+ 

+ %files qt6-logger

+ %doc plugins/qca-logger/README

+ %{_qt6_plugindir}/crypto/libqca-logger.so

+ 

+ %files qt6-nss

+ %doc plugins/qca-nss/README

+ %{_qt6_plugindir}/crypto/libqca-nss.so

+ 

+ %files qt6-ossl

+ %doc plugins/qca-ossl/README

+ %{_qt6_plugindir}/crypto/libqca-ossl.so

+ 

+ %files qt6-pkcs11

+ %doc plugins/qca-pkcs11/README

+ %{_qt6_plugindir}/crypto/libqca-pkcs11.so

+ 

+ %files qt6-softstore

+ %doc plugins/qca-softstore/README

+ %{_qt6_plugindir}/crypto/libqca-softstore.so

+ %endif

  

  %changelog

+ * Tue Nov 29 2022 Sandro Mani <manisandro@gmail.com> - 2.3.4-4

+ - Add qt6 build

+ 

  * Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.4-3

  - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

  

no initial comment

Pull-Request has been merged by rdieter

a year ago
Metadata