Support reading host schemas when built as flatpak
https://bugzilla.redhat.com/show_bug.cgi?id=1727551 https://github.com/flathub/ca.desrt.dconf-editor/issues/3
This commit is contained in:
parent
91191189b8
commit
c8bb8c385d
@ -10,6 +10,7 @@ Summary: Configuration editor for dconf
|
||||
License: GPLv3+ and CC0
|
||||
URL: https://wiki.gnome.org/Projects/dconf
|
||||
Source0: https://download.gnome.org/sources/dconf-editor/3.36/dconf-editor-%{version}.tar.xz
|
||||
Source1: https://raw.githubusercontent.com/flathub/ca.desrt.dconf-editor/master/start-dconf-editor.sh
|
||||
|
||||
BuildRequires: /usr/bin/appstream-util
|
||||
BuildRequires: desktop-file-utils
|
||||
@ -42,6 +43,10 @@ Graphical tool for editing the dconf configuration database.
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
%if 0%{?flatpak}
|
||||
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/start-dconf-editor
|
||||
%endif
|
||||
|
||||
%find_lang dconf-editor
|
||||
|
||||
%check
|
||||
@ -51,6 +56,9 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/ca.desrt.dconf-edi
|
||||
%files -f dconf-editor.lang
|
||||
%license COPYING
|
||||
%{_bindir}/dconf-editor
|
||||
%if 0%{?flatpak}
|
||||
%{_bindir}/start-dconf-editor
|
||||
%endif
|
||||
%{_datadir}/applications/ca.desrt.dconf-editor.desktop
|
||||
%{_datadir}/bash-completion/
|
||||
%{_datadir}/dbus-1/services/ca.desrt.dconf-editor.service
|
||||
|
25
start-dconf-editor.sh
Normal file
25
start-dconf-editor.sh
Normal file
@ -0,0 +1,25 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
IFS=: read -ra host_data_dirs < <(flatpak-spawn --host sh -c 'echo $XDG_DATA_DIRS')
|
||||
|
||||
# To avoid potentially muddying up $XDG_DATA_DIRS too much, we link the schema paths
|
||||
# into a temporary directory.
|
||||
bridge_dir=$XDG_RUNTIME_DIR/dconf-bridge
|
||||
mkdir -p "$bridge_dir"
|
||||
|
||||
for dir in "${host_data_dirs[@]}"; do
|
||||
if [[ "$dir" == /usr/* ]]; then
|
||||
dir=/run/host/"$dir"
|
||||
fi
|
||||
|
||||
schemas="$dir/glib-2.0/schemas"
|
||||
if [[ -d "$schemas" ]]; then
|
||||
bridged=$(mktemp -d XXXXXXXXXX -p "$bridge_dir")
|
||||
mkdir -p "$bridged"/glib-2.0
|
||||
ln -s "$schemas" "$bridged"/glib-2.0
|
||||
XDG_DATA_DIRS=$XDG_DATA_DIRS:"$bridged"
|
||||
fi
|
||||
done
|
||||
|
||||
export XDG_DATA_DIRS
|
||||
exec dconf-editor "$@"
|
Loading…
Reference in New Issue
Block a user