## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # Generated by go2rpm 1.19.0 %bcond check 1 # https://github.com/c-premus/retrosaver %global goipath github.com/c-premus/retrosaver Version: 0.7.0 %gometa -L -f Name: retrosaver Release: %autorelease Summary: Retro XScreenSaver display modules for GNOME on Wayland # Generated by go-vendor-tools License: BSD-2-Clause AND BSD-3-Clause AND MIT URL: %{gourl} Source0: %{gosource} # Generated by go-vendor-tools; `go_vendor_archive create retrosaver.spec`, # run by .copr/Makefile when the SRPM is built. Source1: %{archivename}-vendor.tar.bz2 Source2: go-vendor-tools.toml BuildRequires: go-vendor-tools BuildRequires: systemd-rpm-macros BuildRequires: python3 BuildRequires: desktop-file-utils BuildRequires: libappstream-glib # Fedora's split of upstream's Debian Depends. atlantis is in -gl-extras, # flame and ifs in -extras. These pull in xscreensaver-base and with it the # daemon upstream's .deb Conflicts with; it stays inert here because its # autostart entry is OnlyShowIn=X-NODEFAULT. Requires: xscreensaver-extras Requires: xscreensaver-gl-extras Requires: unclutter-xfixes %description Brings back late-1990s XScreenSaver display modules (fractals, the atlantis fish tank, flying toasters, spinning pipes) on GNOME desktops running Wayland, where the traditional screensaver daemon no longer functions. Reuses the display modules Fedora already packages and supplies only the idle trigger GNOME dropped. Run `retrosaver setup` once per user after installing. %package gtk Summary: Settings app for retrosaver License: MIT BuildArch: noarch # The app's only interface is the output of `retrosaver config` and # `retrosaver list --json`, which change in lockstep with the binary. Requires: retrosaver = %{version}-%{release} Requires: python3-gobject # Gtk's typelib needs cairo-1.0.typelib, which python3-gobject doesn't pull in. Requires: gobject-introspection Requires: gtk4 Requires: libadwaita >= 1.2 %description gtk A GTK 4 and libadwaita window for retrosaver: turn the screensaver on and off, set when it starts, how often it switches modules, when the session locks and the display turns off, and pick which modules can appear, with a preview of each. %prep %goprep -p1 tar -xf %{S:1} %generate_buildrequires %go_vendor_license_buildrequires -c %{S:2} %build %global gomodulesmode GO111MODULE=on export GO_LDFLAGS="-X main.version=%{version}" %gobuild -o %{gobuilddir}/bin/retrosaver %{goipath}/cmd/retrosaver %install %go_vendor_license_install -c %{S:2} install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/retrosaver %{buildroot}%{_bindir}/ install -m 0644 -vDp systemd/retrosaver.service %{buildroot}%{_userunitdir}/retrosaver.service install -m 0644 -vDp docs/retrosaver.1 %{buildroot}%{_mandir}/man1/retrosaver.1 install -m 0644 -vDp config/retrosaver.conf.example \ %{buildroot}%{_datadir}/retrosaver/retrosaver.conf.example install -m 0755 -vDp gui/retrosaver-settings %{buildroot}%{_bindir}/retrosaver-settings install -m 0644 -vDp gui/us.prem.Retrosaver.desktop \ %{buildroot}%{_datadir}/applications/us.prem.Retrosaver.desktop install -m 0644 -vDp gui/us.prem.Retrosaver.metainfo.xml \ %{buildroot}%{_metainfodir}/us.prem.Retrosaver.metainfo.xml install -m 0644 -vDp gui/icons/hicolor/scalable/apps/us.prem.Retrosaver.svg \ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/us.prem.Retrosaver.svg install -m 0644 -vDp gui/icons/hicolor/symbolic/apps/us.prem.Retrosaver-symbolic.svg \ %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/us.prem.Retrosaver-symbolic.svg install -m 0644 -vDp docs/retrosaver-settings.1 %{buildroot}%{_mandir}/man1/retrosaver-settings.1 %check %go_vendor_license_check -c %{S:2} desktop-file-validate %{buildroot}%{_datadir}/applications/us.prem.Retrosaver.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/us.prem.Retrosaver.metainfo.xml %if %{with check} %gocheck2 # The window tests skip without a display, leaving the GTK-free settings logic. python3 -m unittest discover -s gui -v %endif # Preset-driven, and Fedora's user presets end in `disable *`, so install never # enables the unit: that and taking over idle-delay stay `retrosaver setup`'s # job, per user. %post %systemd_user_post retrosaver.service # Runs `disable --now` in every running user manager while the binary still # exists, so ExecStopPost=retrosaver stop can hand idle-delay back to GNOME. # Without it, removal deletes the binary under a running daemon and the # session is left with idle-delay 0: no auto-lock at all. %preun %systemd_user_preun retrosaver.service # Restarts only a daemon that is already running, so an upgrade never leaves # the old binary in place. %postun %systemd_user_postun_with_restart retrosaver.service %files -f %{go_vendor_license_filelist} %doc README.md CHANGELOG.md %{_bindir}/retrosaver %{_userunitdir}/retrosaver.service %{_mandir}/man1/retrosaver.1* %{_datadir}/retrosaver/ %files gtk %license LICENSE %{_bindir}/retrosaver-settings %{_datadir}/applications/us.prem.Retrosaver.desktop %{_metainfodir}/us.prem.Retrosaver.metainfo.xml %{_datadir}/icons/hicolor/scalable/apps/us.prem.Retrosaver.svg %{_datadir}/icons/hicolor/symbolic/apps/us.prem.Retrosaver-symbolic.svg %{_mandir}/man1/retrosaver-settings.1* %changelog ## START: Generated by rpmautospec * Mon Oct 19 2026 Christof Damian - 0.7.0-1 - Update to 0.7.0 and add retrosaver-gtk subpackage * Sat Oct 17 2026 Renovate Bot - 0.6.2-1 - Update dependency https://github.com/c-premus/retrosaver to v0.6.2 * Thu Oct 15 2026 Renovate Bot - 0.6.1-1 - Update dependency https://github.com/c-premus/retrosaver to v0.6.1 * Sun Oct 11 2026 Renovate Bot - 0.6.0-1 - Update dependency https://github.com/c-premus/retrosaver to v0.6.0 * Fri Oct 02 2026 Renovate Bot - 0.5.0-1 - Update dependency https://github.com/c-premus/retrosaver to v0.5.0 * Fri Oct 02 2026 Christof Damian - 0.3.0-2 - Open retrosaver update PRs immediately for every release * Thu Oct 01 2026 Christof Damian - 0.3.0-1 - Bump retrosaver to 0.3.0 * Wed Sep 30 2026 Christof Damian - 0.2.4-1 - Bump retrosaver to 0.2.4 * Thu Sep 24 2026 Renovate Bot - 0.2.3-8 - Update https://code.forgejo.org/actions/checkout action to v7 * Thu Sep 24 2026 Christof Damian - 0.2.3-7 - Restore dynamic BuildRequires step in CI * Thu Sep 24 2026 Christof Damian - 0.2.3-6 - Track upstream tags with git-tags, no GitHub token needed * Thu Sep 24 2026 Christof Damian - 0.2.3-5 - Fix SRPM build on COPR: install go-vendor-tools+all * Thu Sep 24 2026 Christof Damian - 0.2.3-4 - Add Forgejo CI building and linting the package * Thu Sep 24 2026 Christof Damian - 0.2.3-3 - Follow Fedora Go and scriptlet guidelines - Set the version via GO_LDFLAGS; the Go guidelines forbid $LDFLAGS. - Run tests with %%gocheck2 instead of %%gotest. - Add %%systemd_user_post and %%systemd_user_preun. The preun is a fix, not just compliance: it stops the daemon in running sessions while the binary still exists, so its ExecStopPost can hand idle-delay back to GNOME. Without it, removal left sessions with no auto-lock. - Add retrosaver.rpmlintrc for three false positives, each explained. - Document how Source1 is generated, as fedora-review asks. * Thu Sep 24 2026 Christof Damian - 0.2.3-2 - Add README, MIT license and Renovate version bumps * Thu Sep 24 2026 Christof Damian - 0.2.3-1 - Add retrosaver 0.2.3 spec for COPR ## END: Generated by rpmautospec