%global __brp_check_rpaths %{nil} %global __requires_exclude ^libmpi %global packname btw %global packver 1.0.0 %global rlibdir /usr/local/lib/R/library Name: R-CRAN-%{packname} Version: 1.0.0 Release: 1%{?dist}%{?buildtag} Summary: A Toolkit for Connecting R and Large Language Models License: MIT + file LICENSE URL: https://cran.r-project.org/package=%{packname} Source0: %{url}&version=%{packver}#/%{packname}_%{packver}.tar.gz BuildRequires: R-devel >= 4.1.0 Requires: R-core >= 4.1.0 BuildArch: noarch BuildRequires: R-CRAN-rlang >= 1.1.0 BuildRequires: R-CRAN-ellmer >= 0.3.0 BuildRequires: R-CRAN-cli BuildRequires: R-CRAN-clipr BuildRequires: R-CRAN-dplyr BuildRequires: R-CRAN-fs BuildRequires: R-CRAN-jsonlite BuildRequires: R-CRAN-lifecycle BuildRequires: R-CRAN-mcptools BuildRequires: R-CRAN-pkgsearch BuildRequires: R-CRAN-rmarkdown BuildRequires: R-CRAN-rstudioapi BuildRequires: R-CRAN-S7 BuildRequires: R-CRAN-sessioninfo BuildRequires: R-CRAN-skimr BuildRequires: R-CRAN-tibble BuildRequires: R-utils BuildRequires: R-CRAN-withr BuildRequires: R-CRAN-xml2 Requires: R-CRAN-rlang >= 1.1.0 Requires: R-CRAN-ellmer >= 0.3.0 Requires: R-CRAN-cli Requires: R-CRAN-clipr Requires: R-CRAN-dplyr Requires: R-CRAN-fs Requires: R-CRAN-jsonlite Requires: R-CRAN-lifecycle Requires: R-CRAN-mcptools Requires: R-CRAN-pkgsearch Requires: R-CRAN-rmarkdown Requires: R-CRAN-rstudioapi Requires: R-CRAN-S7 Requires: R-CRAN-sessioninfo Requires: R-CRAN-skimr Requires: R-CRAN-tibble Requires: R-utils Requires: R-CRAN-withr Requires: R-CRAN-xml2 %description A complete toolkit for connecting 'R' environments with Large Language Models (LLMs). Provides utilities for describing 'R' objects, package documentation, and workspace state in plain text formats optimized for LLM consumption. Supports multiple workflows: interactive copy-paste to external chat interfaces, programmatic tool registration with 'ellmer' chat clients, batteries-included chat applications via 'shinychat', and exposure to external coding agents through the Model Context Protocol. Project configuration files enable stable, repeatable conversations with project-specific context and preferred LLM settings. %prep %setup -q -c -n %{packname} # fix end of executable files find -type f -executable -exec grep -Iq . {} \; -exec sed -i -e '$a\' {} \; # prevent binary stripping [ -d %{packname}/src ] && find %{packname}/src -type f -exec \ sed -i 's@/usr/bin/strip@/usr/bin/true@g' {} \; || true [ -d %{packname}/src ] && find %{packname}/src/Make* -type f -exec \ sed -i 's@-g0@@g' {} \; || true # don't allow local prefix in executable scripts find -type f -executable -exec sed -Ei 's@#!( )*/usr/local/bin@#!/usr/bin@g' {} \; %build %install mkdir -p %{buildroot}%{rlibdir} %{_bindir}/R CMD INSTALL -l %{buildroot}%{rlibdir} %{packname} test -d %{packname}/src && (cd %{packname}/src; rm -f *.o *.so) rm -f %{buildroot}%{rlibdir}/R.css # remove buildroot from installed files find %{buildroot}%{rlibdir} -type f -exec sed -i "s@%{buildroot}@@g" {} \; %files %{rlibdir}/%{packname}