Name: goose-proxy Version: 0.1.0 Release: 1.20260416173136903971.pr50%{?dist} Summary: A proxy API for RHEL command line assistant License: Apache-2.0 AND GPL-3.0-or-later URL: https://github.com/rhel-lightspeed/goose-proxy Source: goose-proxy-0.1.0.tar.gz # Vendored dependency wheels. Using wheels (not sdists) avoids needing build # backends (hatchling, pdm-backend) and their transitive dependencies at build # time, which are not available in RHEL. Source1: https://files.pythonhosted.org/packages/26/a3/0bd5f0cdb0bbc92650e8dc457e9250358411ee5d1b65e42b6632387daf81/fastapi-0.136.0-py3-none-any.whl Source2: https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl Source3: https://files.pythonhosted.org/packages/b7/23/a5bbd9600dd607411fa644c06ff4951bec3a4d82c4b852374024359c19c0/uvicorn-0.44.0-py3-none-any.whl BuildArch: noarch # Build dependencies BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-wheel BuildRequires: pyproject-rpm-macros BuildRequires: systemd-units # Test dependencies BuildRequires: python3-pytest # Docs dependencies # Sphinx is used to build the manpages for the project. BuildRequires: python3-sphinx %global _description %{expand: A lightweight API translation proxy that bridges Goose with backend servers that speak the Responses API from OpenAI, such as Lightspeed Stack.} %description %_description %prep %autosetup -p1 -n goose-proxy-0.1.0 # Remove options from pytest as some of them are not available in Fedora at all sed -i '/^addopts = \[/,/^\]/d' pyproject.toml # Remove asyncio_mode as pytest-asyncio is not available in Fedora sed -i '/^asyncio_mode = /d' pyproject.toml # Swap the dynamic version property to version property, as we are pulling # sources from github and not a pypi distribution release. sed -i 's/^dynamic = \["version"\]/version = "%{version}"/' pyproject.toml # Drop extras from fastapi as standard-no-fastapi-cloud-cli is not available as # an extra in Fedora. sed -i 's/fastapi\[standard-no-fastapi-cloud-cli\]/fastapi/' pyproject.toml # Install vendored dependency wheels into the _vendor directory so they are # included in the wheel built by %%pyproject_wheel. %{python3} -m pip install --no-deps --target src/goose_proxy/_vendor \ %{SOURCE1} %{SOURCE2} %{SOURCE3} %build %pyproject_wheel # Build the manpages sphinx-build -b man docs/man docs/build/man %install %pyproject_install %pyproject_save_files -l goose_proxy # Install the manpages for goose-proxy and goose-proxy-config %{__install} -D -m 0644 docs/build/man/%{name}-config.5 %{buildroot}%{_mandir}/man5/%{name}-config.5 %{__install} -D -m 0644 docs/build/man/%{name}.7 %{buildroot}%{_mandir}/man7/%{name}.7 # System units %{__install} -D -m 0644 data/release/systemd/%{name}.service %{buildroot}/%{_unitdir}/%{name}.service # Config file %{__install} -d -m 0700 %{buildroot}/%{_sysconfdir}/xdg/%{name} %{__install} -D -m 0600 data/release/xdg/config.toml %{buildroot}/%{_sysconfdir}/xdg/%{name}/config.toml # Red Hat specific configs # Install the goose-init shell script inside /etc/profile.d for automatic # placement of the goose-config and custom_goose-proxy on user home directory. %{__install} -Dpm 0755 data/release/goose/goose-init.sh %{buildroot}%{_sysconfdir}/profile.d/goose-init.sh # Install the sources into /usr/share/goose-redhat %{__install} -Dpm 0644 data/release/goose/config.yaml %{buildroot}%{_datadir}/goose-redhat/config.yaml %{__install} -Dpm 0644 data/release/goose/custom_goose-proxy.json %{buildroot}%{_datadir}/goose-redhat/custom_goose-proxy.json %check %pytest %files -f %{pyproject_files} %{_bindir}/goose-proxy %doc README.md # Manpages %{_mandir}/man5/%{name}-config.5* %{_mandir}/man7/%{name}.7* # Needed directories %dir %attr(0700, root, root) %{_sysconfdir}/xdg/%{name} # System units %{_unitdir}/%{name}.service # Config file %config(noreplace) %attr(0600, root, root) %{_sysconfdir}/xdg/%{name}/config.toml # ---------------- Red Hat package %package -n goose-redhat Summary: %{summary} Requires: goose Requires: %{name} = %{version}-%{release} %description -n goose-redhat This package contains Red Hat specific configurations for %{name}, which enable the communication with RHEL Lightspeed services. %files -n goose-redhat %{_sysconfdir}/profile.d/goose-init.sh %{_datadir}/goose-redhat/config.yaml %{_datadir}/goose-redhat/custom_goose-proxy.json %changelog %autochangelog