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
|
License: GPLv3+ and CC0
|
||||||
URL: https://wiki.gnome.org/Projects/dconf
|
URL: https://wiki.gnome.org/Projects/dconf
|
||||||
Source0: https://download.gnome.org/sources/dconf-editor/3.36/dconf-editor-%{version}.tar.xz
|
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: /usr/bin/appstream-util
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
@ -42,6 +43,10 @@ Graphical tool for editing the dconf configuration database.
|
|||||||
%install
|
%install
|
||||||
%meson_install
|
%meson_install
|
||||||
|
|
||||||
|
%if 0%{?flatpak}
|
||||||
|
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/start-dconf-editor
|
||||||
|
%endif
|
||||||
|
|
||||||
%find_lang dconf-editor
|
%find_lang dconf-editor
|
||||||
|
|
||||||
%check
|
%check
|
||||||
@ -51,6 +56,9 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/ca.desrt.dconf-edi
|
|||||||
%files -f dconf-editor.lang
|
%files -f dconf-editor.lang
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%{_bindir}/dconf-editor
|
%{_bindir}/dconf-editor
|
||||||
|
%if 0%{?flatpak}
|
||||||
|
%{_bindir}/start-dconf-editor
|
||||||
|
%endif
|
||||||
%{_datadir}/applications/ca.desrt.dconf-editor.desktop
|
%{_datadir}/applications/ca.desrt.dconf-editor.desktop
|
||||||
%{_datadir}/bash-completion/
|
%{_datadir}/bash-completion/
|
||||||
%{_datadir}/dbus-1/services/ca.desrt.dconf-editor.service
|
%{_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