From 183e60665d7b81fa45110a67fc3178ddaddf54ea Mon Sep 17 00:00:00 2001 From: Eriq Taing Date: Wed, 3 Dec 2025 20:11:33 -0500 Subject: [PATCH] Introduce uwsm package --- .gitea/workflows/build-uwsm.yml | 32 +++++++++++++ uwsm.spec | 82 +++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 .gitea/workflows/build-uwsm.yml create mode 100644 uwsm.spec diff --git a/.gitea/workflows/build-uwsm.yml b/.gitea/workflows/build-uwsm.yml new file mode 100644 index 0000000..88ce465 --- /dev/null +++ b/.gitea/workflows/build-uwsm.yml @@ -0,0 +1,32 @@ +name: Build uwsm +on: + push: + branches: + - main + paths: + - .gitea/workflows/build-uwsm.yml + - "uwsm.spec" + workflow_dispatch: + +jobs: + build_push: + name: Build and push image + runs-on: ubuntu-latest + + steps: + - name: Setup environment + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y podman iptables + + # These stage versions are pinned by https://github.com/renovatebot/renovate + - name: Checkout + uses: actions/checkout@v6 # v5 + + - name: Build RPM and Upload + uses: https://git.hydrosaber.com/hydros/build-rpm@main + with: + spec-file-path: ./uwsm.spec + repository-user: eriq12 + repository-user-token: ${{ secrets.RPM_PACKAGE_TOKEN }} diff --git a/uwsm.spec b/uwsm.spec new file mode 100644 index 0000000..bb7703b --- /dev/null +++ b/uwsm.spec @@ -0,0 +1,82 @@ +Name: uwsm +Version: 0.24.3 +Release: %autorelease +Summary: Universal Wayland Session Manager + +License: MIT +URL: https://github.com/Vladimir-csp/uwsm +Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +BuildArch: noarch + +BuildRequires: desktop-file-utils +BuildRequires: meson +BuildRequires: python-rpm-macros +BuildRequires: python3 +BuildRequires: python3-dbus +BuildRequires: python3-pyxdg +BuildRequires: scdoc +BuildRequires: systemd-rpm-macros + +Requires: python3 +Requires: python3-dbus +Requires: python3-pyxdg +Requires: util-linux + +Recommends: /usr/bin/notify-send +Recommends: /usr/bin/whiptail +Recommends: wofi + +%description +Wraps standalone Wayland compositors into a set of Systemd units on the fly. +This provides robust session management including environment, XDG autostart +support, bi-directional binding with login session, and clean shutdown. +For compositors this is an opportunity to offload Systemd integration and +session/XDG autostart management in Systemd-managed environments. + +%prep +%autosetup -p1 + +%build +%meson -Duuctl=enabled -Dfumon=enabled -Duwsm-app=enabled +%meson_build + +%install +%meson_install +%py_byte_compile %{python3} %{buildroot}%{_datadir}/%{name}/modules + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop + +%post +%systemd_user_post fumon.service + +%preun +%systemd_user_preun fumon.service + +%postun +%systemd_user_postun fumon.service + +%files +%doc %{_docdir}/%{name}/ +%license LICENSE +%{_bindir}/%{name} +%{_bindir}/%{name}-app +%{_bindir}/%{name}-terminal +%{_bindir}/%{name}-terminal-scope +%{_bindir}/%{name}-terminal-service +%{_bindir}/fumon +%{_bindir}/uuctl +%{_datadir}/%{name}/ +%{_datadir}/applications/uuctl.desktop +%{_mandir}/man1/%{name}.1.* +%{_mandir}/man1/fumon.1.* +%{_mandir}/man1/uuctl.1.* +%{_mandir}/man1/uwsm-app.1.* +%{_mandir}/man3/%{name}-plugins.3.* +%{_userunitdir}/fumon.service +%{_userunitdir}/*-graphical.slice +%{_userunitdir}/wayland-*.service +%{_userunitdir}/wayland-*.target + +%changelog +%autochangelog