Blob Blame History Raw
%global __provides_exclude_from ^%{_libdir}/gala/.*\\.so$

%global commit      155076146519bf25345edc152cdf85cf72922115
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commitdate  20240113

Name:           gala
Version:        7.1.3
Release:        %autorelease -s %{commitdate}.git%{shortcommit}
Summary:        Gala window manager
License:        GPL-3.0-or-later AND LGPL-3.0-or-later

URL:            https://github.com/elementary/gala
Source:         %{url}/archive/%{commit}/gala-%{shortcommit}.tar.gz

BuildRequires:  desktop-file-utils
BuildRequires:  gcc
BuildRequires:  libappstream-glib
BuildRequires:  meson
BuildRequires:  systemd-rpm-macros
BuildRequires:  vala >= 0.46

%if 0%{?fedora} >= 40
BuildRequires:  pkgconfig(libmutter-14)
BuildRequires:  pkgconfig(mutter-clutter-14)
BuildRequires:  pkgconfig(mutter-cogl-14)
BuildRequires:  pkgconfig(mutter-cogl-pango-14)
BuildRequires:  pkgconfig(mutter-mtk-14)
%endif
%if 0%{?fedora} == 39
BuildRequires:  pkgconfig(libmutter-13)
BuildRequires:  pkgconfig(mutter-clutter-13)
BuildRequires:  pkgconfig(mutter-cogl-13)
BuildRequires:  pkgconfig(mutter-cogl-pango-13)
BuildRequires:  pkgconfig(mutter-mtk-13)
%endif
%if 0%{?fedora} == 38
BuildRequires:  pkgconfig(libmutter-12)
BuildRequires:  pkgconfig(mutter-clutter-12)
BuildRequires:  pkgconfig(mutter-cogl-12)
BuildRequires:  pkgconfig(mutter-cogl-pango-12)
%endif

BuildRequires:  pkgconfig(gee-0.8)
BuildRequires:  pkgconfig(gexiv2)
BuildRequires:  pkgconfig(gio-2.0) >= 2.44.0
BuildRequires:  pkgconfig(gio-unix-2.0) >= 2.44.0
BuildRequires:  pkgconfig(glib-2.0) >= 2.44.0
BuildRequires:  pkgconfig(gmodule-2.0)
BuildRequires:  pkgconfig(gnome-desktop-3.0)
BuildRequires:  pkgconfig(gnome-settings-daemon) >= 3.15.2
BuildRequires:  pkgconfig(gobject-2.0) >= 2.44.0
BuildRequires:  pkgconfig(granite) >= 5.4.0
BuildRequires:  pkgconfig(gtk+-3.0) >= 3.10.0
BuildRequires:  pkgconfig(libcanberra)
BuildRequires:  pkgconfig(libsystemd)
BuildRequires:  pkgconfig(sqlite3)

# gala's multitasking view is activated via dbus
Requires:       dbus

# GTK-based notifications use this new notifications server
Requires:       elementary-notifications

# https://bugzilla.redhat.com/show_bug.cgi?id=605675
Provides:       firstboot(windowmanager) = gala

%description
Gala is Pantheon's Window Manager, part of the elementary project.


%package        x11
Summary:        Gala window manager X11 support
BuildArch:      noarch

Requires:       %{name} = %{version}-%{release}
Requires:       gnome-session
Requires:       xorg-x11-server-Xorg

%description    x11
Gala is Pantheon's Window Manager, part of the elementary project.

This package contains the support files for running gala on X11.


%package        wayland
Summary:        Gala window manager Wayland support
BuildArch:      noarch

Requires:       %{name} = %{version}-%{release}
Requires:       gnome-session
Requires:       xorg-x11-server-Xwayland

%description    wayland
Gala is Pantheon's Window Manager, part of the elementary project.

This package contains the support files for running gala on Wayland.


%package        devel
Summary:        Gala window manager development files
Requires:       %{name}%{?_isa} = %{version}-%{release}
%description    devel
Gala is Pantheon's Window Manager, part of the elementary project.

This package contains the development headers.


%prep
%autosetup -n gala-%{commit} -p1


%build
%meson
%meson_build


%install
%meson_install

%find_lang gala

# remove the specified stock icon from appdata (invalid in libappstream-glib)
sed -i '/icon type="stock"/d' %{buildroot}/%{_datadir}/metainfo/%{name}.metainfo.xml


%check
desktop-file-validate \
    %{buildroot}/%{_datadir}/applications/gala*.desktop

desktop-file-validate \
    %{buildroot}/%{_sysconfdir}/xdg/autostart/gala-daemon.desktop

appstream-util validate-relax --nonet \
    %{buildroot}/%{_datadir}/metainfo/%{name}.metainfo.xml


%post x11
%systemd_user_post io.elementary.gala@x11.service

%post wayland
%systemd_user_post io.elementary.gala@wayland.service

%preun x11
%systemd_user_preun io.elementary.gala@x11.service

%preun wayland
%systemd_user_preun io.elementary.gala@wayland.service

%postun x11
%systemd_user_postun io.elementary.gala@x11.service

%postun wayland
%systemd_user_postun io.elementary.gala@wayland.service


%files -f gala.lang
%license COPYING
%doc AUTHORS
%doc HACKING
%doc README.md

%config(noreplace) %{_sysconfdir}/xdg/autostart/gala-daemon.desktop

%{_bindir}/gala
%{_bindir}/gala-daemon

%{_libdir}/gala/
%{_libdir}/libgala.so.0
%{_libdir}/libgala.so.0.0.0

%{_datadir}/applications/gala*.desktop
%{_datadir}/glib-2.0/schemas/org.pantheon.desktop.gala.gschema.xml
%{_datadir}/glib-2.0/schemas/20_elementary.pantheon.wm.gschema.override
%{_datadir}/metainfo/%{name}.metainfo.xml

%{_userunitdir}/io.elementary.gala.target

%files x11
%{_userunitdir}/io.elementary.gala@x11.service

%files wayland
%{_userunitdir}/io.elementary.gala@wayland.service

%files devel
%{_includedir}/gala/

%{_libdir}/libgala.so
%{_libdir}/pkgconfig/gala.pc

%dir %{_datadir}/vala
%dir %{_datadir}/vala/vapi
%{_datadir}/vala/vapi/gala.deps
%{_datadir}/vala/vapi/gala.vapi


%changelog
%autochangelog