public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/budgie-desktop] f45: Add support for oo7 secret service provider
@ 2026-09-07 16:57 Joshua Strobl
  0 siblings, 0 replies; only message in thread
From: Joshua Strobl @ 2026-09-07 16:57 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/budgie-desktop
Branch : f45
Commit : 205162cfbfa5ddb52cf846f5afce5064b71b8cca
Author : Joshua Strobl <me@joshuastrobl.com>
Date   : 2026-09-07T19:38:55+03:00
Stats  : +208/-3 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/budgie-desktop/c/205162cfbfa5ddb52cf846f5afce5064b71b8cca?branch=f45

Log:
Add support for oo7 secret service provider

---
diff --git a/0001-feat-build-add-opt-in-oo7-secret-service-support.patch b/0001-feat-build-add-opt-in-oo7-secret-service-support.patch
new file mode 100644
index 0000000..a91ee6b
--- /dev/null
+++ b/0001-feat-build-add-opt-in-oo7-secret-service-support.patch
@@ -0,0 +1,198 @@
+From adb20980d66d758eb2f470c532f9df49de80cf0d Mon Sep 17 00:00:00 2001
+From: Joshua Strobl <me@joshuastrobl.com>
+Date: Sun, 6 Sep 2026 11:21:46 +0300
+Subject: [PATCH 1/3] feat(build): add opt-in oo7 Secret Service support
+
+oo7 is being adopted as the preferred keyring / SecretService solution in Fedora. This commits adds conditional (off by default) support for it across our portals.conf (moved to .in) and budgie-desktop launch script.
+
+Similar to xdg-desktop-portal, we need to explicitly fire up oo7-daemon during launch due to its systemd user service requiring xdg-desktop-portal (which requires graphical target to be satisfied)
+
+Added oo7 libexecdir so that could be specified like you can with gsd and xdp. Defaults to libexecdir.
+
+Signed-off-by: Joshua Strobl <me@joshuastrobl.com>
+---
+ ...budgie-portals.conf => budgie-portals.conf.in} |  1 +
+ data/meson.build                                  | 15 +++++++++++++--
+ meson.build                                       | 10 ++++++++++
+ meson_options.txt                                 |  2 ++
+ src/session/budgie-desktop.in                     |  1 +
+ src/session/meson.build                           |  7 +++++++
+ 6 files changed, 34 insertions(+), 2 deletions(-)
+ rename data/{budgie-portals.conf => budgie-portals.conf.in} (93%)
+
+diff --git a/data/budgie-portals.conf b/data/budgie-portals.conf.in
+similarity index 93%
+rename from data/budgie-portals.conf
+rename to data/budgie-portals.conf.in
+index aa046f63..373ff2b3 100644
+--- a/data/budgie-portals.conf
++++ b/data/budgie-portals.conf.in
+@@ -4,3 +4,4 @@ default=gtk
+ # ... except for the ScreenCast and Screenshot
+ org.freedesktop.impl.portal.ScreenCast=wlr
+ org.freedesktop.impl.portal.Screenshot=wlr
++@secret_portal@
+diff --git a/data/meson.build b/data/meson.build
+index 82840086..b38c5f7d 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -16,7 +16,18 @@ install_data(
+     install_dir: join_paths(datadir, 'budgie')
+ )
+ 
+-install_data(
+-    'budgie-portals.conf',
++# The Secret portal is only routed to oo7 when oo7 support is enabled
++portals_data = configuration_data()
++
++if oo7 == true
++    portals_data.set('secret_portal', 'org.freedesktop.impl.portal.Secret=oo7-portal')
++else
++    portals_data.set('secret_portal', '')
++endif
++
++configure_file(
++    input: 'budgie-portals.conf.in',
++    output: 'budgie-portals.conf',
++    configuration: portals_data,
+     install_dir: join_paths(datadir, 'xdg-desktop-portal')
+ )
+diff --git a/meson.build b/meson.build
+index 9ba288b1..0434abb1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -180,6 +180,15 @@ if with_bluetooth == true
+     add_project_arguments('-D', 'WITH_BLUETOOTH', language: 'vala')
+ endif
+ 
++# oo7 provides the Secret Service and the xdg-desktop-portal Secret backend.
++oo7 = get_option('oo7')
++
++# Set the libexecdir for the oo7-* executables
++oo7_libexecdir = get_option('oo7-libexecdir')
++if oo7_libexecdir == ''
++    oo7_libexecdir = libexecdirroot
++endif
++
+ # GVC rpath. it's evil, but gvc will bomb out glib2 due to static linking weirdness now,
+ # so we have to use a shared library to prevent multiple registration of the same types..
+ rpath_libdir = join_paths(libdir, meson.project_name())
+@@ -241,6 +250,7 @@ report = [
+     '    gtk-doc:                                                                     @0@'.format(with_gtk_doc),
+     '    stateless:                                                                   @0@'.format(with_stateless),
+     '    bluetooth:                                                                   @0@'.format(with_bluetooth),
++    '    oo7:                                                                         @0@'.format(oo7),
+ ]
+ 
+ 
+diff --git a/meson_options.txt b/meson_options.txt
+index dabc5760..dfa754d1 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,4 +1,6 @@
+ option('ci', type: 'boolean', value: false, description: 'Continuous Integration flag (internal use only)')
++option('oo7', type: 'boolean', value: false, description: 'Enable support for oo7 Secret Service provider')
++option('oo7-libexecdir', type: 'string', description: 'Directory containing the oo7-* executables, particularly oo7-daemon')
+ option('gsd-libexecdir', type: 'string', description: 'Directory containing the gsd-* executables')
+ option('labwc-bindir', type: 'string', description: 'Directory containing the labwc executable')
+ #option('magpie-bindir', type: 'string', description: 'Directory containing the magpie-wm executable')
+diff --git a/src/session/budgie-desktop.in b/src/session/budgie-desktop.in
+index 845b42b5..6fab6848 100755
+--- a/src/session/budgie-desktop.in
++++ b/src/session/budgie-desktop.in
+@@ -20,5 +20,6 @@ compositor="@gsd_libexecdir@/budgie-session-compositor-ready"
+ if command -v "$compositor" > /dev/null 2>&1 && "$compositor"; then
+   @bindir@/org.buddiesofbudgie.Services &
+   @libexecdirroot@/xdg-desktop-portal &
++@oo7_daemon@
+   exec budgie-session --builtin --session=org.buddiesofbudgie.BudgieDesktop $*
+ fi
+diff --git a/src/session/meson.build b/src/session/meson.build
+index fec1d2b7..c2fba981 100644
+--- a/src/session/meson.build
++++ b/src/session/meson.build
+@@ -68,6 +68,13 @@ if gsd_libexecdir == ''
+ endif
+ session_data.set('gsd_libexecdir', gsd_libexecdir)
+ 
++# Start oo7-daemon with the session when oo7 support is enabled
++if oo7 == true
++    session_data.set('oo7_daemon', '  ' + join_paths(oo7_libexecdir, 'oo7-daemon') + ' &')
++else
++    session_data.set('oo7_daemon', '')
++endif
++
+ # Write the budgie-desktop.session.in file from the .in.in
+ session_conf = configure_file(
+     input: 'budgie-desktop.session.in.in',
+
+From a7b026c757e37106dbc53c2a7dd2909262f12c64 Mon Sep 17 00:00:00 2001
+From: Joshua Strobl <me@joshuastrobl.com>
+Date: Sun, 6 Sep 2026 11:37:25 +0300
+Subject: [PATCH 2/3] chore: add oo7 bins to runtime deps check with both oo7
+ and rundeps are turned on
+
+Otherwise we aren't checking for them like we are all the others
+
+Signed-off-by: Joshua Strobl <me@joshuastrobl.com>
+---
+ meson.build | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 0434abb1..f83331cc 100644
+--- a/meson.build
++++ b/meson.build
+@@ -189,6 +189,11 @@ if oo7_libexecdir == ''
+     oo7_libexecdir = libexecdirroot
+ endif
+ 
++if oo7 == true and get_option('with-runtime-dependencies')
++    find_program(join_paths(oo7_libexecdir, 'oo7-daemon'), required: true)
++    find_program(join_paths(oo7_libexecdir, 'oo7-portal'), required: true)
++endif
++
+ # GVC rpath. it's evil, but gvc will bomb out glib2 due to static linking weirdness now,
+ # so we have to use a shared library to prevent multiple registration of the same types..
+ rpath_libdir = join_paths(libdir, meson.project_name())
+
+From bef26242767ac6051e2ed825cd8a7bc72962ed43 Mon Sep 17 00:00:00 2001
+From: Joshua Strobl <me@joshuastrobl.com>
+Date: Mon, 7 Sep 2026 19:13:26 +0300
+Subject: [PATCH 3/3] fix(build): change oo7 to with-oo7 for consistency
+
+Signed-off-by: Joshua Strobl <me@joshuastrobl.com>
+---
+ meson.build       | 2 +-
+ meson_options.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index f83331cc..a8f2a4b0 100644
+--- a/meson.build
++++ b/meson.build
+@@ -181,7 +181,7 @@ if with_bluetooth == true
+ endif
+ 
+ # oo7 provides the Secret Service and the xdg-desktop-portal Secret backend.
+-oo7 = get_option('oo7')
++oo7 = get_option('with-oo7')
+ 
+ # Set the libexecdir for the oo7-* executables
+ oo7_libexecdir = get_option('oo7-libexecdir')
+diff --git a/meson_options.txt b/meson_options.txt
+index dfa754d1..f78e1ef0 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,10 +1,10 @@
+ option('ci', type: 'boolean', value: false, description: 'Continuous Integration flag (internal use only)')
+-option('oo7', type: 'boolean', value: false, description: 'Enable support for oo7 Secret Service provider')
+ option('oo7-libexecdir', type: 'string', description: 'Directory containing the oo7-* executables, particularly oo7-daemon')
+ option('gsd-libexecdir', type: 'string', description: 'Directory containing the gsd-* executables')
+ option('labwc-bindir', type: 'string', description: 'Directory containing the labwc executable')
+ #option('magpie-bindir', type: 'string', description: 'Directory containing the magpie-wm executable')
+ option('use-old-zenity', type: 'boolean', value: false, description: 'Use old zenity CLI API for out-of-process dialog handling')
++option('with-oo7', type: 'boolean', value: false, description: 'Enable support for oo7 Secret Service provider')
+ option('with-bluetooth', type: 'boolean', value: true, description: 'Enable Bluetooth (Vala option)')
+ option('with-gtk-doc', type: 'boolean', value: true, description: 'Build gtk-doc documentation')
+ option('with-hibernate', type: 'boolean', value: true, description: 'Include support for system hibernation')

diff --git a/budgie-desktop.spec b/budgie-desktop.spec
index a03282c..8491f00 100644
--- a/budgie-desktop.spec
+++ b/budgie-desktop.spec
@@ -8,7 +8,7 @@
 
 Name:           budgie-desktop
 Version:        10.10.2
-Release:        3%{?dist}
+Release:        4%{?dist}
 Summary:        A feature-rich, modern desktop designed to keep out the way of the user
 
 # GPL-2.0-or-later:
@@ -29,6 +29,8 @@ Source0:        %{url}/releases/download/v%{version}/%{name}-v%{version}.tar.xz
 Source1:        %{url}/releases/download/v%{version}/%{name}-v%{version}.tar.xz.asc
 Source2:        https://forge.moderndesktop.dev/BuddiesOfBudgie/keyrings/raw/branch/main/JoshuaStrobl.gpg
 
+Patch0:         0001-feat-build-add-opt-in-oo7-secret-service-support.patch
+
 # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
 ExcludeArch:    %{ix86}
 
@@ -67,6 +69,7 @@ BuildRequires:  gtklock
 BuildRequires:  intltool
 BuildRequires:  magpie-devel
 BuildRequires:  meson
+BuildRequires:  oo7-portal
 BuildRequires:  sassc
 BuildRequires:  slurp
 BuildRequires:  swaybg
@@ -79,12 +82,13 @@ Requires:       gammastep
 Requires:       grim
 Requires:       gnome-settings-daemon
 Requires:       gsettings-desktop-schemas
-Requires:       gnome-keyring-pam
 Requires:       hicolor-icon-theme
 Requires:       labwc
 # mutter-common is required for gschemas that the labwc bridge uses
 Requires:       mutter-common
 Requires:       network-manager-applet
+Requires:       oo7-portal
+Requires:       pam_oo7
 Requires:       python3-psutil
 Requires:       slurp
 Requires:       swaybg
@@ -135,7 +139,7 @@ Documentation for budgie-desktop
 %autosetup -p1
 
 %build
-%meson -Dwith-hibernate=false
+%meson -Dwith-hibernate=false -Dwith-oo7=true
 %meson_build
 
 %install
@@ -228,6 +232,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
 %{_datadir}/gtk-doc/html/%{name}/*
 
 %changelog
+* Mon Sep 07 2026 Joshua Strobl <joshua@buddiesofbudgie.org> - 10.10.2-4
+- Add support for oo7 secret service provider
+
 * Wed Jul 15 2026 Fedora Release Engineering <releng@fedoraproject.org> - 10.10.2-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-07 16:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-07 16:57 [rpms/budgie-desktop] f45: Add support for oo7 secret service provider Joshua Strobl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox