diff --git a/signon-kwallet-extension/signon-kwallet-extension.spec b/signon-kwallet-extension/signon-kwallet-extension.spec new file mode 100644 index 0000000..4af4340 --- /dev/null +++ b/signon-kwallet-extension/signon-kwallet-extension.spec @@ -0,0 +1,60 @@ +%undefine __cmake_in_source_build + +Name: signon-kwallet-extension +Version: 26.04.3 +Release: 1%{?dist} +Summary: KWallet integration for Sign-on framework + +License: GPL-2.0-or-later +URL: https://invent.kde.org/network/%{name} + +%global revision %(echo %{version} | cut -d. -f3) +%if %{revision} >= 50 +%global stable unstable +%else +%global stable stable +%endif +Source0: https://download.kde.org/%{stable}/release-service/%{version}/src/%{name}-%{version}.tar.xz + +BuildRequires: make +BuildRequires: cmake +BuildRequires: sonic-frameworks-cmake-modules +BuildRequires: sonic-frameworks-keyring-devel +BuildRequires: qt6-qtbase-devel +BuildRequires: sonic-frameworks-sso-devel + +Supplements: (sonic-frameworks-keyring-libs and sonic-frameworks-sso) + +%description +%{summary}. + +%prep +%autosetup -p1 + +# Fix FindSignOnExtension.cmake to look for the actual header filename +# (upstream uses CamelCase but the SonicDE SSO fork installs lowercase headers) +sed -i 's|SignOn/AbstractSecretsStorage|SignOn/abstract-secrets-storage.h|' \ + cmake/modules/FindSignOnExtension.cmake + +# Fix includes: SonicDE SSO fork uses lowercase header names +sed -i 's|#include |#include |' \ + src/keyringplugin.h +sed -i 's|#include |#include |' \ + src/keyringplugin.cpp src/secretsstorage.h src/secretsstorage.cpp + +%build +%cmake_kf6 \ + -DQT_MAJOR_VERSION=6 + +%cmake_build + +%install +%cmake_install + +%files +%license COPYING +%{_libdir}/signond/extensions/libkeyring-kwallet.so + +%changelog +* Fri Aug 28 2026 SonicDE - 26.04.3-1 +- Build 26.04.3 for SonicDE, link against sonic-frameworks-sso and sonic-frameworks-keyring diff --git a/signon-plugin-oauth2/signon-plugin-oauth2.spec b/signon-plugin-oauth2/signon-plugin-oauth2.spec new file mode 100644 index 0000000..5f958ba --- /dev/null +++ b/signon-plugin-oauth2/signon-plugin-oauth2.spec @@ -0,0 +1,60 @@ +%global gitdate 20231216 +%global commit0 fab698862466994a8fdc9aa335c87b4f05430ce6 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) + +Name: signon-plugin-oauth2 +Version: 0.25^%{gitdate}.%{shortcommit0} +Release: 1%{?dist} +Summary: OAuth2 plugin for the Accounts framework + +License: LGPL-2.1-or-later +URL: https://gitlab.com/accounts-sso/signon-plugin-oauth2 + +Source0: https://gitlab.com/accounts-sso/signon-plugin-oauth2/-/archive/%{commit0}/%{name}-%{commit0}.tar.gz + +BuildRequires: make +BuildRequires: qt6-qtbase-devel +BuildRequires: sonic-frameworks-sso-devel +BuildRequires: doxygen +BuildRequires: graphviz +BuildRequires: libproxy-devel + +%description +%{summary}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +%description devel +%{summary}. + +%prep +%autosetup -n %{name}-%{commit0} -p1 + +%build +%qmake_qt6 \ + QMF_INSTALL_ROOT=%{_prefix} \ + CONFIG+=release \ + CONFIG+=nomake_tests \ + LIBDIR=%{?_libdir} \ + signon-oauth2.pro + +%make_build + +%install +%make_install INSTALL_ROOT=%{buildroot} + +# Delete examples (if built) +rm -fv %{buildroot}/%{_bindir}/oauthclient 2>/dev/null || true +rm -rvf %{buildroot}/%{_sysconfdir} 2>/dev/null || true + +%files +%{_libdir}/signond/liboauth2plugin.so + +%files devel +%{_includedir}/signon-plugins/*.h +%{_libdir}/pkgconfig/signon-oauth2plugin.pc + +%changelog +* Fri Aug 28 2026 SonicDE - 0.25^20231216.fab6988-1 +- Build for SonicDE, link against sonic-frameworks-sso diff --git a/sonic-frameworks-sso/sonic-frameworks-sso.spec b/sonic-frameworks-sso/sonic-frameworks-sso.spec index b0d5c52..a85d2e3 100644 --- a/sonic-frameworks-sso/sonic-frameworks-sso.spec +++ b/sonic-frameworks-sso/sonic-frameworks-sso.spec @@ -13,7 +13,7 @@ #Name: signon Name: sonic-frameworks-sso Version: 8.61.2 -Release: 6%{?dist} +Release: 9%{?dist} Summary: Accounts framework for Linux and POSIX based platforms License: LGPL-2.1-only @@ -87,6 +87,89 @@ sed -i '/^install(FILES$/,/dbus-1\/interfaces)/d' cmake/signond/CMakeLists.txt # create/own libdir/signond/extensions mkdir -p %{buildroot}%{_libdir}/signond/extensions/ +# Install plugin development files (CMake fork doesn't install these) +# Plugin headers +mkdir -p %{buildroot}%{_includedir}/signon-plugins/SignOn +cp -a %{_builddir}/%{reponame}-%{version}/lib/plugins/SignOn/*.h \ + %{buildroot}%{_includedir}/signon-plugins/SignOn/ +cp -a %{_builddir}/%{reponame}-%{version}/lib/plugins/*.h \ + %{buildroot}%{_includedir}/signon-plugins/ 2>/dev/null || true +cp -a %{_builddir}/%{reponame}-%{version}/src/plugins/example/exampledata.h \ + %{buildroot}%{_includedir}/signon-plugins/ 2>/dev/null || true +cp -a %{_builddir}/%{reponame}-%{version}/src/plugins/example/exampleplugin.h \ + %{buildroot}%{_includedir}/signon-plugins/ 2>/dev/null || true +cp -a %{_builddir}/%{reponame}-%{version}/src/plugins/password/passwordplugin.h \ + %{buildroot}%{_includedir}/signon-plugins/ 2>/dev/null || true +# Create CamelCase forwarding headers (upstream plugins use #include ) +# AuthPluginInterface -> authpluginif.h (note: not authplugininterface.h) +echo "#include " > %{buildroot}%{_includedir}/signon-plugins/SignOn/AuthPluginInterface +echo "#include " > %{buildroot}%{_includedir}/signon-plugins/SignOn/UiSessionData +# Error and SessionData are in signon-qt6, but plugins include them via SignOn/ +# Create forwarding headers that point to the qt6 versions +echo "#include " > %{buildroot}%{_includedir}/signon-plugins/SignOn/Error +echo "#include " > %{buildroot}%{_includedir}/signon-plugins/SignOn/SessionData +# Copy the actual qt6 headers that plugins need (signonerror.h, sessiondata.h, libsignoncommon.h) +# since the forwarding headers above include them from SignOn/ which resolves +# to signon-plugins/SignOn/ +cp -a %{buildroot}%{_includedir}/signon-qt6/SignOn/signonerror.h \ + %{buildroot}%{_includedir}/signon-plugins/SignOn/ 2>/dev/null || true +cp -a %{buildroot}%{_includedir}/signon-qt6/SignOn/sessiondata.h \ + %{buildroot}%{_includedir}/signon-plugins/SignOn/ 2>/dev/null || true +cp -a %{buildroot}%{_includedir}/signon-qt6/SignOn/libsignoncommon.h \ + %{buildroot}%{_includedir}/signon-plugins/SignOn/ 2>/dev/null || true +# Extension headers +mkdir -p %{buildroot}%{_includedir}/signon-extension/SignOn +cp -a %{_builddir}/%{reponame}-%{version}/lib/signond/SignOn/*.h \ + %{buildroot}%{_includedir}/signon-extension/SignOn/ +# signond internal headers (needed by some plugins) +mkdir -p %{buildroot}%{_includedir}/signond +cp -a %{_builddir}/%{reponame}-%{version}/src/signond/*.h \ + %{buildroot}%{_includedir}/signond/ 2>/dev/null || true +# Create pkgconfig files (the .pc.in templates use qmake $$ syntax, not CMake) +cat > %{buildroot}%{_libdir}/pkgconfig/signon-plugins.pc << 'PCEOF' +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/%{_lib} +includedir=${prefix}/include +plugin_includedir=${includedir}/signon-plugins/SignOn +plugindir=${libdir}/signond + +Name: signon-plugins +Description: SignonPlugins +Version: %{version} +Libs: -L${libdir} -lsignon-plugins-common +Cflags: -I${includedir}/signon-plugins -I${includedir}/signon-plugins/SignOn +PCEOF +cat > %{buildroot}%{_libdir}/pkgconfig/SignOnExtension.pc << 'PCEOF' +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/%{_lib} +includedir=${prefix}/include +plugindir=${libdir}/signond/extensions + +Name: SignOnExtension +Description: SignOn extension development +Version: %{version} +Requires: Qt6Core +Libs: -L${libdir} -lsignon-extension +Cflags: -I${includedir}/signon-extension +PCEOF +cat > %{buildroot}%{_libdir}/pkgconfig/signon-plugins-common.pc << 'PCEOF' +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/%{_lib} +includedir=${prefix}/include +plugin_includedir=${includedir}/signon-plugins/SignOn + +Name: signon-plugins-common +Description: SignonPluginsCommon +Version: %{version} +Libs: -L${libdir} -lsignon-plugins-common +Cflags: -I${includedir}/signon-plugins -I${includedir}/signon-plugins/SignOn +PCEOF +# Create libsignon-plugins.so symlink (plugins link against this) +ln -sf libsignon-plugins-common.so %{buildroot}%{_libdir}/libsignon-plugins.so + %files %license COPYING @@ -102,13 +185,30 @@ mkdir -p %{buildroot}%{_libdir}/signond/extensions/ %files devel %{_includedir}/signon-qt6/ +%{_includedir}/signon-plugins/ +%{_includedir}/signon-extension/ +%{_includedir}/signond/ %{_libdir}/cmake/SignOnQt6/ %{_libdir}/pkgconfig/libsignon-qt6.pc +%{_libdir}/pkgconfig/signon-plugins.pc +%{_libdir}/pkgconfig/SignOnExtension.pc +%{_libdir}/pkgconfig/signon-plugins-common.pc %{_libdir}/libsignon-qt6.so %{_libdir}/libsignon-extension.so %{_libdir}/libsignon-plugins-common.so +%{_libdir}/libsignon-plugins.so %changelog +* Fri Aug 28 2026 SonicDE - 8.61.2-9 +- Fix forwarding headers: AuthPluginInterface->authpluginif.h, add libsignoncommon.h + +* Fri Aug 28 2026 SonicDE - 8.61.2-8 +- Add CamelCase forwarding headers and qt6 headers for plugin builds + +* Fri Aug 28 2026 SonicDE - 8.61.2-7 +- Install plugin development files (headers, pkgconfig, symlinks) needed + to build signon-plugin-oauth2 and signon-kwallet-extension against SSO + * Thu Aug 27 2026 SonicDE - 8.61.2-6 - Add Conflicts: signon to prevent D-Bus service file clash with EPEL signon