Blob Blame History Raw
%define po_package gnome-session-46

%if 0%{?fedora}
%else
%global with_session_selector 1
%endif

%global tarball_version %%(echo %{version} | tr '~' '.')

Name:           gnome-session
Version:        46~alpha
Release:        %autorelease
Summary:        GNOME session manager

License:        GPL-2.0-or-later
URL:            https://gitlab.gnome.org/GNOME/gnome-session
Source:         https://download.gnome.org/sources/gnome-session/46/%{name}-%{tarball_version}.tar.xz

# Blacklist NV30: https://bugzilla.redhat.com/show_bug.cgi?id=745202
Patch:          gnome-session-3.3.92-nv30.patch
Patch:          gnome-session-3.6.2-swrast.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=772421
Patch:          0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch
# For https://fedoraproject.org/w/index.php?title=Changes/HiddenGrubMenu
# This should go upstream once systemd has a generic interface for this
Patch:          0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch

BuildRequires:  meson
BuildRequires:  gcc
BuildRequires:  pkgconfig(egl)
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glesv2)
BuildRequires:  pkgconfig(gnome-desktop-3.0)
BuildRequires:  pkgconfig(gtk+-3.0)
BuildRequires:  pkgconfig(libsystemd)
BuildRequires:  pkgconfig(ice)
BuildRequires:  pkgconfig(json-glib-1.0)
BuildRequires:  pkgconfig(sm)
BuildRequires:  pkgconfig(systemd)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xau)
BuildRequires:  pkgconfig(xcomposite)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xrender)
BuildRequires:  pkgconfig(xtrans)
BuildRequires:  pkgconfig(xtst)

# this is so the configure checks find /usr/bin/halt etc.
BuildRequires:  usermode

BuildRequires:  gettext
BuildRequires:  intltool
BuildRequires:  xmlto
BuildRequires:  /usr/bin/xsltproc

# an artificial requires to make sure we get dconf, for now
Requires: dconf

Requires: system-logos
# Needed for gnome-settings-daemon
Requires: control-center-filesystem

Requires: gsettings-desktop-schemas >= 0.1.7

Requires: dbus

# https://github.com/containers/composefs/pull/229#issuecomment-1838735764
%if 0%{?rhel} >= 10
ExcludeArch:    %{ix86}
%endif


%description
gnome-session manages a GNOME desktop or GDM login session. It starts up
the other core GNOME components and handles logout and saving the session.

%package xsession
Summary: Desktop file for gnome-session
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: xorg-x11-server-Xorg%{?_isa}
Requires: gnome-shell
# The X11 session is deprecated and eventually will be removed
Provides: deprecated()

%description xsession
Desktop file to add GNOME to display manager session menu.

%package wayland-session
Summary: Desktop file for wayland based gnome session
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: xorg-x11-server-Xwayland%{?_isa} >= 1.20.99.1
Requires: gnome-shell

%description wayland-session
Desktop file to add GNOME on wayland to display manager session menu.

%prep
%autosetup -p1 -n %{name}-%{tarball_version}

%build
%meson \
%if 0%{?with_session_selector}
    -Dsession_selector=true \
%endif
  %{nil}
%meson_build

%install
%meson_install

%find_lang %{po_package}

%ldconfig_scriptlets

%files xsession
%{_datadir}/xsessions/*

%files wayland-session
%{_datadir}/wayland-sessions/*

%files -f %{po_package}.lang
%doc AUTHORS NEWS README
%license COPYING
%{_bindir}/gnome-session*
%{_libexecdir}/gnome-session-binary
%{_libexecdir}/gnome-session-check-accelerated
%{_libexecdir}/gnome-session-check-accelerated-gl-helper
%{_libexecdir}/gnome-session-check-accelerated-gles-helper
%{_libexecdir}/gnome-session-ctl
%{_libexecdir}/gnome-session-failed
%{_mandir}/man1/gnome-session*1.*
%{_datadir}/gnome-session/
%dir %{_datadir}/xdg-desktop-portal
%{_datadir}/xdg-desktop-portal/gnome-portals.conf
%{_datadir}/doc/gnome-session/
%{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml
%{_userunitdir}/gnome-session*
%{_userunitdir}/gnome-launched-.scope.d/

%changelog
%autochangelog