# mutiara-gnome-extensions.spec Name: mutiara-gnome-extensions Version: 6.0 Release: 2%{?dist} Summary: A collection of default GNOME Shell extensions for MutiaraOS. License: GPLv3 URL: https://github.com/mutiaraproject Source0: %{name}.tar.xz BuildArch: noarch %description This package bundles all non-official GNOME Shell extensions used by MutiaraOS into a single, maintainable RPM package. %prep %setup -q -n %{name}-%{version} %install # 1. Install extension code to the GNOME global extension directory mkdir -p %{buildroot}%{_datadir}/gnome-shell/extensions/ # Move ALL the contents (the nine UUID folders and LICENSES.txt) cp -r * %{buildroot}%{_datadir}/gnome-shell/extensions/ # 2. **CRITICAL FIX:** Install the schemas to the Dconf global directory # The glib-compile-schemas command in %post requires the XML files here. mkdir -p %{buildroot}%{_datadir}/glib-2.0/schemas/ # Use find to locate every single .gschema.xml file buried in the extension directories # and copy them up to the global schema directory. find %{buildroot}%{_datadir}/gnome-shell/extensions/ -name "*.gschema.xml" -exec install -m 0644 {} %{buildroot}%{_datadir}/glib-2.0/schemas/ \; %files # The global schema directory must be owned and its contents listed %dir %{_datadir}/glib-2.0/schemas/ # List all the .gschema.xml files explicitly so they are tracked by RPM %{_datadir}/glib-2.0/schemas/*.gschema.xml # Extension files (as you had them before) %{_datadir}/gnome-shell/extensions/LICENSES.txt %{_datadir}/gnome-shell/extensions/autohide-battery@sitnik.ru %{_datadir}/gnome-shell/extensions/blur-my-shell@aunetx/ %{_datadir}/gnome-shell/extensions/CoverflowAltTab@palatis.blogspot.com/ %{_datadir}/gnome-shell/extensions/emoji-copy@felipeftn/ %{_datadir}/gnome-shell/extensions/hide-dash-overview@PendaGTP/ %{_datadir}/gnome-shell/extensions/just-perfection-desktop@just-perfection/ %{_datadir}/gnome-shell/extensions/panel-corners@aunetx/ %{_datadir}/gnome-shell/extensions/quick-settings-tweaks@qwreey/ %{_datadir}/gnome-shell/extensions/statistig@mustafaaycll.github.io %post # This command is correct, but only works if the files are in the right place (step 2 above). glib-compile-schemas %{_datadir}/glib-2.0/schemas/