%global upstream_version 0.0.43-nightly.20260920.37671bd3993c %global pr_set 2829 %global pr_list 2829 %global flavor v2-prs # RPM release fields cannot contain a hyphen, so a hyphenated flavor name # lands as underscores there while the package keeps its real name. %global release_flavor %(echo %{flavor} | tr '-' '_') %global flavor_note with the new orchestrator, the Pi provider, and the Command Code and Oh My Pi integrations %global flavor_detail The pull request set is the unmerged orchestrator rewrite, and the local patches add the Command Code provider and the bundled Oh My Pi ACP registry entry, which main-side pull requests cannot supply because those drivers target main's adapter interface. # The AppImage is a prebuilt opaque ELF bundle without a build ID. %global _build_id_links none %global debug_package %{nil} %global __brp_strip %{nil} %global __brp_strip_comment_note %{nil} %global __brp_strip_lto %{nil} Name: t3code-%{flavor}-nightly Version: %(echo %{upstream_version} | sed 's/-.*//') Release: 1.%{release_flavor}.%{pr_set}.%(echo %{upstream_version} | sed 's/.*-nightly\.//')%{?dist} Summary: Minimal GUI for coding agents (nightly %{flavor_note}) License: MIT URL: https://github.com/pingdotgg/t3code Source0: T3-Code-%{upstream_version}-x86_64.AppImage Source1: t3code Source2: t3code.desktop Source3: LICENSE Source4: upstream-prs.txt ExclusiveArch: x86_64 # Every T3 Code package here owns the same paths, so dnf will not hold two of # them at once: switching flavors is an explicit `dnf swap`. The retired names # are obsoleted so their users land on a maintained package. Provides: t3code = %{version}-%{release} Obsoletes: t3code-nightly <= %{version}-%{release} Obsoletes: t3code-cmd-nightly <= %{version}-%{release} %description T3 Code is a minimal GUI for coding agents. This unofficial package is built from upstream sources with the upstream pull requests %{pr_list} layered on top, followed by the local patches carried by this packaging repository.%{flavor_detail} %{_docdir}/%{name}/upstream-prs.txt names every upstream commit, local patch, and conflict carry that went into the build. It is otherwise the same x86_64 nightly desktop build and provides the same `t3code` entry point. %prep %autosetup -c -T %install install -Dpm0755 %{SOURCE0} %{buildroot}%{_libexecdir}/t3code/t3code.AppImage install -Dpm0755 %{SOURCE1} %{buildroot}%{_bindir}/t3code install -Dpm0644 %{SOURCE2} %{buildroot}%{_datadir}/applications/t3code.desktop install -Dpm0644 %{SOURCE3} %{buildroot}%{_licensedir}/%{name}/LICENSE install -Dpm0644 %{SOURCE4} %{buildroot}%{_docdir}/%{name}/upstream-prs.txt # Install application icons from the AppImage (FUSE-free extract). extractdir="%{_builddir}/%{name}-icons" mkdir -p "$extractdir" ( cd "$extractdir" %{buildroot}%{_libexecdir}/t3code/t3code.AppImage --appimage-extract \ 'usr/share/icons/hicolor/*/apps/t3code.png' ) for icon in "$extractdir"/squashfs-root/usr/share/icons/hicolor/*/apps/t3code.png; do size="$(basename "$(dirname "$(dirname "$icon")")")" install -Dpm0644 "$icon" \ "%{buildroot}%{_datadir}/icons/hicolor/${size}/apps/t3code.png" done %files %license %{_licensedir}/%{name}/LICENSE %doc %{_docdir}/%{name}/upstream-prs.txt %{_bindir}/t3code %{_libexecdir}/t3code/t3code.AppImage %{_datadir}/applications/t3code.desktop %{_datadir}/icons/hicolor/*/apps/t3code.png %changelog * Sun Sep 20 2026 T3 Code COPR Maintainers - %{version}-%{release} - Package upstream nightly %{upstream_version} with pull requests %{pr_list}