File mate-session-manager.spec of Package mate-session-manager

#
# spec file for package mate-session-manager
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define _version 1.28

Name:           mate-session-manager
Version:        1.28.0
Release:        0
Summary:        MATE Session Manager
License:        GPL-2.0-or-later
Group:          System/GUI/Other
URL:            https://mate-desktop.org/
Source:         https://pub.mate-desktop.org/releases/%{_version}/%{name}-%{version}.tar.xz
# Not an upstream file. Only proposes upstream packages:
Source1:        mate-session-manager-upstream-mate_defaults.conf
# Some documentation for people writing branding packages, shipped in the branding-upstream package.
Source2:        README.Gsettings-overrides
# xinitrc.d/ script that add /usr/share/mate and /usr/local/share to XDG_DATA_DIRS
Source3:        55mate-session_materc.sh
# xinitrc.d/ script that finalizes everything before the MATE session starts (such as
# preparing to load the canberra-gtk-module and applying a clutter tweak).
Source4:        99mate-environment.sh
# PATCH-FIX-OPENSUSE mate-session-manager-qt-5.7-styleoverride.patch sor.alexei@meowr.ru -- On Qt 5.7+ use Gtk2 Platform Theme.
Patch0:         mate-session-manager-qt-5.7-styleoverride.patch
BuildRequires:  hicolor-icon-theme
BuildRequires:  mate-common >= %{_version}
BuildRequires:  pkgconfig
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(dbus-glib-1)
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(glesv2)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(gtk+-3.0)
BuildRequires:  pkgconfig(ice)
BuildRequires:  pkgconfig(libsystemd)
BuildRequires:  pkgconfig(sm)
BuildRequires:  pkgconfig(xau)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xtrans)
Requires:       %{name}-branding >= %{_version}
Requires:       %{name}-gschemas >= %{version}
# Make native styling in Qt5 happen.
Requires:       libqt5-qtstyleplugins-platformtheme-gtk2
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends:     %{name}-lang
%glib2_gsettings_schema_requires

%description
This package contains a session that can be started from a display
manager such as LightDM. It will load all necessary applications
for a full-featured user session.

%lang_package

%package branding-upstream
Summary:        Upstream definitions of default settings and applications
Requires:       %{name} = %{version}
Supplements:    (%{name} and branding-upstream)
Conflicts:      %{name}-branding
Provides:       %{name}-branding = %{version}
BuildArch:      noarch
#BRAND: The /etc/mate_defaults.conf allows to define arbitrary
#BRAND: applications as preferred defaults.
#BRAND: A /usr/share/glib-2.0/schemas/$NAME.gschema.override file can
#BRAND: be used to override the default value for GSettings keys. See
#BRAND: README.Gsettings-overrides for more details. The branding
#BRAND: package should then have proper Requires for features changed
#BRAND: with such an override file.

%description -n mate-session-manager-branding-upstream
This package provides upstream defaults for settings stored with
GSettings and applications used by the MIME system.

%package gschemas
Summary:        MATE Session Manager GSchemas
%glib2_gsettings_schema_requires
BuildArch:      noarch

%description gschemas
This package provides the GSettings schemas for
MATE Session Manager.

%prep
%autosetup -p1

cp -a %{SOURCE2} .
cp -a %{SOURCE1} mate_defaults.conf
cp -a %{SOURCE3} .
cp -a %{SOURCE4} .

%build
NOCONFIGURE=1 mate-autogen
%configure \
  --disable-static             \
  --enable-ipv6                \
  --with-default-wm=marco      \
  --enable-qt57-theme-support  \
  --with-systemd=yes
%make_build

%install
%make_install
install -Dpm 0644 mate_defaults.conf \
  %{buildroot}%{_sysconfdir}/mate_defaults.conf
install -Dpm 0755 55mate-session_materc.sh \
  %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/55mate-session_materc.sh
install -Dpm 0755 99mate-environment.sh \
  %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/99mate-environment.sh

mkdir -p %{buildroot}%{_sysconfdir}/alternatives/
touch %{buildroot}%{_sysconfdir}/alternatives/default-xsession.desktop
ln -s %{_sysconfdir}/alternatives/default-xsession.desktop \
  %{buildroot}%{_datadir}/xsessions/default.desktop

%find_lang %{name} %{?no_lang_C}
%suse_update_desktop_file mate-session-properties
%suse_update_desktop_file %{buildroot}%{_datadir}/xsessions/mate.desktop

%post
%{_sbindir}/update-alternatives --install %{_datadir}/xsessions/default.desktop \
  default-xsession.desktop %{_datadir}/xsessions/mate.desktop 20

%postun
if [ ! -f %{_datadir}/xsessions/mate.desktop ]; then
    %{_sbindir}/update-alternatives --remove default-xsession.desktop \
      %{_datadir}/xsessions/mate.desktop
fi

%files
%license COPYING
%doc NEWS README
%ghost %{_sysconfdir}/alternatives/default-xsession.desktop
%dir %{_sysconfdir}/X11/xinit
%dir %{_sysconfdir}/X11/xinit/xinitrc.d
%config %{_sysconfdir}/X11/xinit/xinitrc.d/55mate-session_materc.sh
%config %{_sysconfdir}/X11/xinit/xinitrc.d/99mate-environment.sh
%{_bindir}/mate-*
%{_datadir}/%{name}/
%{_datadir}/xsessions/*.desktop
%{_datadir}/applications/mate-session-properties.desktop
%{_datadir}/icons/hicolor/*/apps/mate-session-properties.*
%{_mandir}/man?/mate-*.?%{?ext_man}
%{_libexecdir}/mate-*

%files lang -f %{name}.lang

%files branding-upstream
%doc README.Gsettings-overrides
%config(noreplace) %{_sysconfdir}/mate_defaults.conf

%files gschemas
%{_datadir}/glib-2.0/schemas/*.xml

%changelog
openSUSE Build Service is sponsored by