From 15c6b53823e57bbb7d620c1b0fd8d523238919fb Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Oct 17 2019 20:01:03 +0000 Subject: Modernize R spec template. This matches what is produced by R2spec more closely, namely: * Update URL to current CRAN guidelines. * Add %{rlibdir} macro. Also, removed the duplicated arch/noarch templates; there are only two differences between them. --- diff --git a/guidelines/modules/ROOT/pages/R.adoc b/guidelines/modules/ROOT/pages/R.adoc index b2c2a6d..946d790 100644 --- a/guidelines/modules/ROOT/pages/R.adoc +++ b/guidelines/modules/ROOT/pages/R.adoc @@ -27,73 +27,24 @@ If you are interested in packaging R modules, or if you are looking for R librar == Spec Templates for R packages There are two types of R packages: arch-specific and noarch. - -=== Arch specific R packaging spec template +The following template shows how to package an arch-specific R package; +there are very minor differences for noarch packages, which are noted below the template. .... %global packname foo -%global packrel 1 +%global rlibdir %{_libdir}/R/library Name: R-%{packname} Version: 1.6.6 Release: 1%{?dist} -Source0: ftp://cran.r-project.org/pub/R/contrib/main/%{packname}_%{version}-%{packrel}.tar.gz -License: GPLv2+ -URL: https://cran.r-project.org/src/contrib Summary: Adds foo functionality for R -BuildRequires: R-devel, tex(latex) - -%description -R Interface to foo, enables bar! - -%prep -%setup -q -c -n %{packname} - -%build - -%install -mkdir -p %{buildroot}%{_libdir}/R/library -%{_bindir}/R CMD INSTALL -l %{buildroot}%{_libdir}/R/library %{packname} -test -d %{packname}/src && (cd %{packname}/src; rm -f *.o *.so) -rm -rf %{buildroot}%{_libdir}/R/library/R.css - -%check -%{_bindir}/R CMD check %{packname} -%files -%dir %{_libdir}/R/library/%{packname} -%doc %{_libdir}/R/library/%{packname}/doc -%doc %{_libdir}/R/library/%{packname}/html -%doc %{_libdir}/R/library/%{packname}/NEWS -%{_libdir}/R/library/%{packname}/DESCRIPTION -%{_libdir}/R/library/%{packname}/INDEX -%{_libdir}/R/library/%{packname}/NAMESPACE -%{_libdir}/R/library/%{packname}/Meta -%{_libdir}/R/library/%{packname}/R -%{_libdir}/R/library/%{packname}/R-ex -%{_libdir}/R/library/%{packname}/help - -%changelog -* Fri Jul 6 2007 Tom "spot" Callaway - 1.6.6-1 -- Initial package creation -.... - -=== Noarch R packaging spec template - -.... -%global packname foo -%global packrel 1 - -Name: R-%{packname} -Version: 1.6.6 -Release: 1%{?dist} -Source0: ftp://cran.r-project.org/pub/R/contrib/main/%{packname}_%{version}-%{packrel}.tar.gz License: GPLv2+ -URL: https://cran.r-project.org/src/contrib -Summary: Adds foo functionality for R -BuildRequires: R-devel, tex(latex) -BuildArch: noarch -Requires: R-core +URL: https://CRAN.R-project.org/package=%{packname} +Source0: https://cran.r-project.org/src/contrib/%{packname}_%{version}.tar.gz + +BuildRequires: R-devel +BuildRequires: tex(latex) %description R Interface to foo, enables bar! @@ -104,36 +55,38 @@ R Interface to foo, enables bar! %build %install -mkdir -p %{buildroot}%{_datadir}/R/library -%{_bindir}/R CMD INSTALL -l %{buildroot}%{_datadir}/R/library %{packname} +mkdir -p %{buildroot}%{rlibdir} +%{_bindir}/R CMD INSTALL -l %{buildroot}%{rlibdir} %{packname} test -d %{packname}/src && (cd %{packname}/src; rm -f *.o *.so) -rm -rf %{buildroot}%{_datadir}/R/library/R.css +rm -f %{buildroot}%{rlibdir}/R.css %check %{_bindir}/R CMD check %{packname} %files -%dir %{_datadir}/R/library/%{packname} -%doc %{_datadir}/R/library/%{packname}/doc -%doc %{_datadir}/R/library/%{packname}/html -%doc %{_datadir}/R/library/%{packname}/NEWS -%{_datadir}/R/library/%{packname}/DESCRIPTION -%{_datadir}/R/library/%{packname}/INDEX -%{_datadir}/R/library/%{packname}/NAMESPACE -%{_datadir}/R/library/%{packname}/Meta -%{_datadir}/R/library/%{packname}/R -%{_datadir}/R/library/%{packname}/R-ex -%{_datadir}/R/library/%{packname}/help +%dir %{rlibdir}/%{packname} +%doc %{rlibdir}/%{packname}/doc +%doc %{rlibdir}/%{packname}/html +%{rlibdir}/%{packname}/DESCRIPTION +%doc %{rlibdir}/%{packname}/NEWS +%{rlibdir}/%{packname}/INDEX +%{rlibdir}/%{packname}/NAMESPACE +%{rlibdir}/%{packname}/Meta +%{rlibdir}/%{packname}/R +%{rlibdir}/%{packname}/R-ex +%{rlibdir}/%{packname}/help %changelog * Fri Jul 6 2007 Tom "spot" Callaway - 1.6.6-1 - Initial package creation .... -=== Summary of differences between arch-specific and noarch R packages +=== Differences between arch-specific and noarch R packages * Noarch packages set `+BuildArch: noarch+`. -* Noarch packages install into `+%{_datadir}/R/library/%{packname}+`; arch-specific packages install into `+%{_libdir}/R/library/%{packname}+`. +* Noarch packages install into `+%{_datadir}/R/library/%{packname}+`; + arch-specific packages install into `+%{_libdir}/R/library/%{packname}+`. + + Change the `+%global rlibdir+` at the top of the file to use `+%{_datadir}+` instead of `+%{_libdir}+`. * Noarch packages have `+Requires: R-core+`. For arch-specific packages, RPM will automatically add an appropriate dependency on the needed shared libraries but noarch packages need this added manually. === R2spec