%bcond_with gcc
%global framework kwallet
%bcond_with compat

Name:    kf6-%{framework}
Version: 6.9.0
Release: 1%{?dist}
Summary: KDE Frameworks 6 Tier 3 solution for password management

License: BSD-3-Clause AND CC0-1.0 AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-or-later
URL:     https://invent.kde.org/frameworks/%{framework}

Source0: https://download.kde.org/stable/frameworks/%{majmin_ver_kf6}/%{framework}-%{version}.tar.xz

BuildRequires:  cmake(Qca-qt6)
BuildRequires:  cmake(Qt6Core5Compat)

BuildRequires:  cmake(KF6ConfigWidgets)

BuildRequires:  extra-cmake-modules
%if %{with gcc}
BuildRequires:  gcc-toolset-14-gcc-c++
%else
BuildRequires:  clang
%endif

BuildRequires:  libgcrypt-devel
BuildRequires:  cmake
BuildRequires:  qt6-qtbase-devel

BuildRequires:  cmake(Qt6Core5Compat)

BuildRequires:  cmake(KF6Config)
BuildRequires:  cmake(KF6Config)
BuildRequires:  cmake(KF6CoreAddons)
BuildRequires:  cmake(KF6DBusAddons)
BuildRequires:  cmake(KF6DocTools)
BuildRequires:  cmake(KF6I18n)
BuildRequires:  cmake(KF6Notifications)
BuildRequires:  cmake(KF6Service)
BuildRequires:  cmake(KF6WidgetsAddons)
BuildRequires:  cmake(KF6WindowSystem)
BuildRequires:  kf6-rpm-macros
BuildRequires:  cmake(KF6ColorScheme)
BuildRequires:  pkgconfig(xkbcommon)
BuildRequires:  cmake(Gpgmepp) >= 1.22
BuildRequires:  cmake(Qt6Qml)

Requires:       %{name}-libs%{?_isa} = %{version}-%{release}
Requires:       kf6-filesystem
Requires:       pinentry-gui
Recommends:     %{name}-compat5

%description
KWallet is a secure and unified container for user passwords.

%package        libs
Summary:        KWallet framework libraries
Requires:       %{name}%{?_isa} = %{version}-%{release}
Requires:       (rx-gpgmepp or gpgmepp >= 1.22)

%description    libs
Provides API to access KWallet data from applications.

%package        devel
Summary:        Development files for %{name}
Requires:       %{name}-libs%{?_isa} = %{version}-%{release}
Requires:       qt6-qtbase-devel

%description    devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%if %{with compat}
%package        compat5
Summary:        KF5 compatibility layer
Requires:       %{name}%{?_isa} = %{version}-%{release}
Conflicts:      kf5-kwallet

%description    compat5
KF5 compatibility layer.
%endif

%package        doc
Summary:        Developer Documentation files for %{name}
%description    doc
Developer Documentation files for %{name} for use with KDevelop or QtCreator.

%prep
%autosetup -n %{framework}-%{version} -p1

%build
%if %{with gcc}
%enable_devtoolset14
export CC=gcc
export CXX=c++
%endif

%global _rxlibdir /opt/rx/%{_lib}
export LDFLAGS="-L%{_rxlibdir} -Wl,-rpath=%{_rxlibdir} ${LDFLAGS}"
export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
%cmake_kf6
%cmake_build


%install
%cmake_install
%find_lang %{name} --all-name --with-man

%if %{with compat}
mv %{buildroot}%{_kf6_bindir}/kwallet-query %{buildroot}%{_kf6_bindir}/kwallet6-query
mv %{buildroot}%{_mandir}/man1/kwallet-query.1 %{buildroot}%{_mandir}/man1/kwallet6-query.1
ln -sf kwallet6-query %{buildroot}%{_kf6_bindir}/kwallet-query
%endif

%files -f %{name}.lang
%doc README.md
%license LICENSES/*.txt
%if %{with compat}
%{_kf6_bindir}/kwallet6-query
%{_mandir}/man1/kwallet6-query.1*
%else
%{_kf6_bindir}/kwallet-query
%{_kf6_datadir}/dbus-1/services/org.kde.kwalletd5.service
%{_mandir}/man1/kwallet-query.1*
%endif
%{_kf6_bindir}/kwalletd6
%{_kf6_datadir}/applications/org.kde.kwalletd6.desktop
%{_kf6_datadir}/dbus-1/services/org.kde.kwalletd6.service
%{_kf6_datadir}/knotifications6/kwalletd6.notifyrc
%{_kf6_datadir}/qlogging-categories6/%{framework}*
%{_kf6_datadir}/xdg-desktop-portal/portals/kwallet.portal


%if %{with compat}
%files compat5
%{_kf6_bindir}/kwallet-query
%{_kf6_datadir}/dbus-1/services/org.kde.kwalletd5.service
%endif

%files libs
%{_kf6_libdir}/libKF6Wallet.so.*
%{_libdir}/libKF6WalletBackend.so.*

%files devel
%{_kf6_datadir}/dbus-1/interfaces/kf6_org.kde.KWallet.xml
%{_kf6_includedir}/KWallet/
%{_kf6_libdir}/cmake/KF6Wallet/
%{_kf6_libdir}/libKF6Wallet.so
%{_qt6_docdir}/*.tags
 
%files doc
%{_qt6_docdir}/*.qch

%changelog
* Sat Dec 14 2024 Raven <raven@sysadmins.ws> - 6.9.0-1
- 6.9.0

* Sat Nov  2 2024 Raven <raven@sysadmins.ws> - 6.8.0-1
- 6.8.0

* Tue Oct  8 2024 Raven <raven@sysadmins.ws> - 6.6.0-1
- 6.6.0

* Fri Aug 23 2024 Raven <raven@sysadmins.ws> - 6.5.0-1
- 6.5.0

* Wed Aug  7 2024 Raven <raven@sysadmins.ws> - 6.4.0-1
- 6.4.0

* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.0-4
- rebuild (libxkbcommon)

* Wed Jun 26 2024 Raven <raven@sysadmins.ws> - 6.3.0-3
- Rebuild (qt6)

* Fri Jun 21 2024 Raven <raven@sysadmins.ws> - 6.3.0-3
- Rebuild (libxkbcommon)

* Mon Jun 10 2024 Raven <raven@sysadmins.ws> - 6.3.0-1
- 6.3.0

* Mon Jun  3 2024 Raven <raven@sysadmins.ws> - 6.2.1-1
- 6.2.1

* Tue May 21 2024 Raven <raven@sysadmins.ws> - 6.2.0-1
- 6.2.0

* Mon Apr 29 2024 Raven <raven@sysadmins.ws> - 6.1.0-1
- 6.1.0

* Wed Feb 21 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 6.0.0-1
- 6.0.0

* Wed Jan 31 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.249.0-1
- 5.249.0

* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.248.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.248.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Jan 10 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.248.0-1
- 5.248.0

* Tue Jan 09 2024 Marie Loise Nolden <loise@kde.org> - 5.247.0-2
- add doc package for KF6 API

* Wed Dec 20 2023 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 5.247.0-1
- 5.247.0

* Sat Dec 02 2023 Justin Zobel <justin.zobel@gmail.com> - 5.246.0-1
- Update to 5.246.0

* Thu Nov 09 2023 Steve Cossette <farchord@gmail.com> - 5.245.0-1
- 5.245.0

* Sun Oct 15 2023 Justin Zobel <justin.zobel@gmail.com> - 5.240.0^20231012.021308.7a2c863-1

* Mon Oct 09 2023 Steve Cossette <farchord@gmail.com> - 5.240.0^20231003.213013.7c91f3d-1
- Initial Release
