%global __brp_check_rpaths %{nil} %global __requires_exclude ^libmpi %global packname sourcoise %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: Source a Script and Cache License: MIT + file LICENSE URL: https://cran.r-project.org/package=%{packname} Source0: %{url}&version=%{packver}#/%{packname}_%{packver}.tar.gz BuildRequires: R-devel >= 4.2.0 Requires: R-core >= 4.2.0 BuildArch: noarch BuildRequires: R-CRAN-cli BuildRequires: R-CRAN-digest BuildRequires: R-CRAN-dplyr BuildRequires: R-CRAN-fs BuildRequires: R-CRAN-glue BuildRequires: R-CRAN-jsonlite BuildRequires: R-CRAN-knitr BuildRequires: R-CRAN-lobstr BuildRequires: R-CRAN-logger BuildRequires: R-CRAN-lubridate BuildRequires: R-CRAN-memoise BuildRequires: R-CRAN-purrr BuildRequires: R-CRAN-qs2 BuildRequires: R-CRAN-quarto BuildRequires: R-CRAN-RcppSimdJson BuildRequires: R-CRAN-rlang BuildRequires: R-CRAN-rprojroot BuildRequires: R-CRAN-scales BuildRequires: R-CRAN-stringr BuildRequires: R-CRAN-tibble BuildRequires: R-CRAN-tidyr BuildRequires: R-utils Requires: R-CRAN-cli Requires: R-CRAN-digest Requires: R-CRAN-dplyr Requires: R-CRAN-fs Requires: R-CRAN-glue Requires: R-CRAN-jsonlite Requires: R-CRAN-knitr Requires: R-CRAN-lobstr Requires: R-CRAN-logger Requires: R-CRAN-lubridate Requires: R-CRAN-memoise Requires: R-CRAN-purrr Requires: R-CRAN-qs2 Requires: R-CRAN-quarto Requires: R-CRAN-RcppSimdJson Requires: R-CRAN-rlang Requires: R-CRAN-rprojroot Requires: R-CRAN-scales Requires: R-CRAN-stringr Requires: R-CRAN-tibble Requires: R-CRAN-tidyr Requires: R-utils %description Provides a function that behaves nearly as base::source() but implements a caching mechanism on disk, project based. It allows to quasi source() R scripts that gather data but can fail or consume to much time to respond even if nothing new is expected. It comes with tools to check and execute on demand or when cache is invalid the script. %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}