File gamescope-session-steam-system-update.spec of Package gamescope-session-steam-system-update

#
# spec file for package gamescope-session-steam-system-update
#
# Copyright (c) 2026 SUSE LLC and contributors
#
# 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/
#


Name:           gamescope-session-steam-system-update
Version:        0+git20260123.800d504
Release:        0
Summary:        Support for system updates within gamescope-session-steam
License:        GPL-3.0-only
URL:            https://github.com/YugaLinux/gamescope-session-steam-system-update
Requires:       gamescope-session-steam-shared
Recommends:     gamescope-session-steam
Supplements:    gamescope-session-steam
BuildRequires:  gamescope-session-steam-shared
BuildRequires:  polkit
Requires:       polkit
BuildArch:      noarch
Source0:        %{name}-%{version}.tar.xz
Source1:        %{name}.rpmlintrc

%description
Tools to support updating the system from within gamescope-session-steam.
This package only provides the framework to allow other packages to actually
support updating the system with their custom logic.

%package backend-transactional-update
Summary:        Implementation of system updates through transactional-update
Requires:       gamescope-session-steam-system-update = %{version}
Requires:       gamescope-session-steam-system-update-branch-config
Requires:       transactional-update
Supplements:    gamescope-session-steam-system-update
Provides:       gamescope-session-steam-system-update-backend
Conflicts:      gamescope-session-steam-system-update-backend

%description backend-transactional-update
This package provides the tools to update a system using transactional-update

%package branch-config-generic
Summary:        Example branch selection implementation
Requires:       gamescope-session-steam-system-update = %{version}
Supplements:    gamescope-session-steam-system-update
Provides:       gamescope-session-steam-system-update-branch-config
Conflicts:      gamescope-session-steam-system-update-branch-config

%description branch-config-generic
This package provides example branch selection implementation.
It contains three empty branch configs for the official SteamOS
branches rel, beta and rc.

%prep
%autosetup -p1

%build

%install

# Config
install -d -m 0755 %{buildroot}%{_sysconfdir}/gamescope-session-steam
install -m 0644 etc/gamescope-session-steam/source.conf %{buildroot}%{_sysconfdir}/gamescope-session-steam/source.conf

# Libexec scripts
install -d -m 0755 %{buildroot}%{_libexecdir}/gamescope-session-steam
install -m 0755 usr/libexec/gamescope-session-steam/system-select-branch %{buildroot}%{_libexecdir}/gamescope-session-steam/system-select-branch

# Backend implementation
install -m 0755 usr/libexec/gamescope-session-steam/system-updater %{buildroot}%{_libexecdir}/gamescope-session-steam/system-updater

# Polkit helper scripts and convenience links/wrappers
install -d -m 0755 %{buildroot}%{_bindir}/steamos-polkit-helpers
install -m 0755 usr/bin/steamos-polkit-helpers/steamos-select-branch %{buildroot}%{_bindir}/steamos-polkit-helpers/steamos-select-branch
install -m 0755 usr/bin/steamos-polkit-helpers/steamos-update %{buildroot}%{_bindir}/steamos-polkit-helpers/steamos-update
install -m 0755 usr/bin/steamos-select-branch %{buildroot}%{_bindir}/steamos-select-branch
install -m 0755 usr/bin/steamos-update %{buildroot}%{_bindir}/steamos-update

# Polkit policy
install -d -m 0755 %{buildroot}%{_datadir}/polkit-1/actions
install -m 0644 usr/share/polkit-1/actions/org.gamescope-session-steam-system-update.update.policy %{buildroot}%{_datadir}/polkit-1/actions/org.gamescope-session-steam-system-update.update.policy
install -m 0644 usr/share/polkit-1/actions/org.gamescope-session-steam-system-update.select-branch.policy %{buildroot}%{_datadir}/polkit-1/actions/org.gamescope-session-steam-system-update.select-branch.policy

# Branch configs
install -d -m 0755 %{buildroot}%{_prefix}/lib/gamescope-session-steam
install -m 0644 usr/lib/gamescope-session-steam/beta.conf %{buildroot}%{_prefix}/lib/gamescope-session-steam/beta.conf
install -m 0644 usr/lib/gamescope-session-steam/rc.conf %{buildroot}%{_prefix}/lib/gamescope-session-steam/rc.conf
install -m 0644 usr/lib/gamescope-session-steam/rel.conf %{buildroot}%{_prefix}/lib/gamescope-session-steam/rel.conf

%files
%license LICENSE
%doc README.md
%config(noreplace) %{_sysconfdir}/gamescope-session-steam/source.conf

%{_bindir}/steamos-polkit-helpers/steamos-update
%{_bindir}/steamos-polkit-helpers/steamos-select-branch

%files backend-transactional-update
%{_bindir}/steamos-update

%{_libexecdir}/gamescope-session-steam/system-updater

%{_datadir}/polkit-1/actions/org.gamescope-session-steam-system-update.update.policy

%files branch-config-generic
%{_bindir}/steamos-select-branch

%{_libexecdir}/gamescope-session-steam/system-select-branch

%{_prefix}/lib/gamescope-session-steam/beta.conf
%{_prefix}/lib/gamescope-session-steam/rc.conf
%{_prefix}/lib/gamescope-session-steam/rel.conf

%{_datadir}/polkit-1/actions/org.gamescope-session-steam-system-update.select-branch.policy

%changelog
openSUSE Build Service is sponsored by