%global packname rmarkdown
%global packver 2.24
%global rlibdir %{_datadir}/R/library
%global __suggests_exclude ^R\\((dygraphs)\\)
# Recursive dependencies.
%global with_suggests 0
Name: R-%{packname}
Version: %{packver}
Release: %autorelease
Summary: Dynamic Documents for R
# Main is GPLv3; see bundled Provides below for others.
License: GPL-3.0-or-later AND Apache-2.0 AND BSD-3-Clause AND MIT AND W3C
URL: https://CRAN.R-project.org/package=%{packname}
Source0: https://cran.r-project.org/src/contrib/%{packname}_%{packver}.tar.gz
Patch0001: 0001-Remove-unused-minified-ioslides-files.patch
Patch0004: 0004-Add-original-non-minified-Bootswatch-themes.patch
Patch0006: 0006-Add-source-for-code-prettify.patch
Patch0007: 0007-Skip-shiny-tests.patch
# Here's the R view of the dependencies world:
# Depends:
# Imports: R-bslib >- 0.2.51, R-evaluate >= 0.13, R-fontawesome >= 0.5.0, R-htmltools >= 0.5.1, R-jquerylib, R-jsonlite, R-knitr >= 1.22, R-methods, R-stringr >= 1.2.0, R-tinytex >= 0.31, R-tools, R-utils, R-xfun >= 0.36, R-yaml >= 2.1.19
# Suggests: R-shiny >= 1.6.0, R-tufte, R-testthat >= 3.0.3, R-digest, R-dygraphs, R-vctrs, R-tibble, R-fs, R-rsconnect, R-withr >= 2.4.2, R-sass >= 0.4.0, R-downlit >= 0.4.0, R-katex >= 1.4.0
# LinkingTo:
# Enhances:
BuildArch: noarch
Requires: pandoc >= 1.14
BuildRequires: git-core
BuildRequires: R-devel
BuildRequires: tex(latex)
BuildRequires: pandoc >= 1.14
BuildRequires: golang-github-tdewolff-minify
BuildRequires: R-bslib >= 0.2.5.1
BuildRequires: R-evaluate >= 0.13
BuildRequires: R-fontawesome >= 0.5.0
BuildRequires: R-htmltools >= 0.5.1
BuildRequires: R-jquerylib
BuildRequires: R-jsonlite
BuildRequires: R-knitr >= 1.22
BuildRequires: R-methods
BuildRequires: R-stringr >= 1.2.0
BuildRequires: R-tinytex >= 0.31
BuildRequires: R-tools
BuildRequires: R-utils
BuildRequires: R-xfun >= 0.36
BuildRequires: R-yaml >= 2.1.19
%if %{with_suggests}
BuildRequires: R-digest
BuildRequires: R-dygraphs
BuildRequires: R-fs
BuildRequires: R-rsconnect
BuildRequires: R-downlit >= 0.4.0
BuildRequires: R-katex >= 1.4.0
BuildRequires: R-sass >= 0.4.0
BuildRequires: R-shiny >= 1.6.0
BuildRequires: R-testthat >= 3.0.3
BuildRequires: R-tibble
BuildRequires: R-tufte
BuildRequires: R-vctrs
BuildRequires: R-withr >= 2.4.2
%endif
# These are not all packaged, but should *probably* be the names if they are.
# MIT; inst/rmd/h/bootstrap/
# https://github.com/twbs/bootstrap/releases/tag/v3.3.5
Provides: bundled(xstatic-bootstrap-common) = 3.3.5
BuildRequires: adobe-source-sans-pro-fonts
Requires: adobe-source-sans-pro-fonts
BuildRequires: glyphicons-halflings-fonts
Requires: glyphicons-halflings-fonts
BuildRequires: glyphography-newscycle-fonts
Requires: glyphography-newscycle-fonts
BuildRequires: google-roboto-fonts
Requires: google-roboto-fonts
BuildRequires: impallari-raleway-fonts
Requires: impallari-raleway-fonts
BuildRequires: lato-fonts
Requires: lato-fonts
# BSD; inst/rmd/h/highlightjs/ (unbundled)
#BuildRequires: js-highlight
#Requires: js-highlight
# Currently broken in Fedora
Provides: bundled(js-highlight) = 9.12.0
# MIT; inst/rmd/h/ionicons/
# http://ionicons.com/
Provides: bundled(ionicons-fonts) = 2.0.1
# MIT; inst/rmd/h/jquery/
Provides: bundled(js-jquery1) = 1.12.4
# MIT; inst/rmd/h/jqueryui (outdated in Fedora)
Provides: bundled(xstatic-jquery-ui-common) = 1.11.4
# MIT; inst/rmd/h/navigation-1.1/tabsets.js
# https://github.com/aidanlister/jquery-stickytabs (partially)
Provides: bundled(js-jquery-stickytabs) = 1.2.4
# MIT; inst/rmd/h/tocify/
# http://gregfranko.com/jquery.tocify.js/
Provides: bundled(js-jquery-tocify) = 1.9.1
# ASL 2.0; inst/rmd/ioslides/ioslides-13.5.1/
Provides: bundled(js-ioslides) = 13.5.1
# MIT; inst/rmd/ioslides/ioslides-13.5.1/js/hammer.js
# https://hammerjs.github.io/
Provides: bundled(js-hammer) = 0.4
# MIT & BSD; inst/rmd/ioslides/ioslides-13.5.1/js/modernizr.custom.45394.js
# https://modernizr.com/
Provides: bundled(js-modernizr) = 2.5.3
# ASL 2.0; inst/rmd/ioslides/ioslides-13.5.1/js/prettify/
# https://github.com/google/code-prettify
Provides: bundled(js-code-prettify) = 20130304
BuildRequires: open-sans-fonts
Requires: open-sans-fonts
BuildRequires: adobe-source-code-pro-fonts
Requires: adobe-source-code-pro-fonts
# W3C; inst/rmd/slidy/Slidy2/
# https://www.w3.org/Talks/Tools/Slidy2/
Provides: bundled(js-slidy) = 2
%description
Convert R Markdown documents into a variety of formats.
%prep
%setup -q -c -n %{packname}
%autosetup -D -T -n %{packname}/%{packname} -S git
# Must be removed: https://bugzilla.redhat.com/show_bug.cgi?id=961642#c4
rm inst/rmd/h/bootstrap/css/fonts/Ubuntu.ttf
# Fix executable bits
chmod -x inst/rmd/h/ionicons/{LICENSE,css/*.css,fonts/*.ttf}
chmod -x inst/rmd/ioslides/ioslides-13.5.1/js/hammer.js
# This does nothing but reset the -n path.
%setup -q -D -T -n %{packname}
%build
gominify --type css \
< %{packname}/inst/rmd/h/ionicons/css/ionicons.css \
> %{packname}/inst/rmd/h/ionicons/css/ionicons.min.css
pushd %{packname}/inst/rmd/h/bootstrap/css/
for file in bootstrap bootstrap-theme cerulean cosmo darkly flatly journal lumen paper readable sandstone simplex spacelab united yeti; do
gominify --type css < ${file}.css > ${file}.min.css
done
popd
%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
# Replace fonts by system fonts (note that this cannot be done in prep because
# R CMD INSTALL copies symlink targets.)
pushd %{buildroot}%{rlibdir}/%{packname}
# Remove bundled fonts in ioslides.
pushd rmd/ioslides/ioslides-13.5.1/fonts
ln -sf /usr/share/fonts/open-sans/OpenSans-Regular.ttf OpenSans.ttf
for f in Italic SemiboldItalic Semibold; do
ln -sf /usr/share/fonts/open-sans/OpenSans-${f}.ttf OpenSans${f}.ttf
done
rm -f SourceCodePro*.ttf
ln -sf /usr/share/fonts/adobe-source-code-pro/SourceCodePro-Regular.otf SourceCodePro.otf
sed -i "s/SourceCodePro.ttf) format('true/SourceCodePro.otf) format('open/" fonts.css
popd
# Remove bundled fonts from bootstrap.
pushd rmd/h/bootstrap/css/fonts
%if 0%{?fedora} > 38
ln -sf /usr/share/fonts/lato-fonts/Lato-Regular.ttf Lato.ttf
ln -sf /usr/share/fonts/lato-fonts/Lato-Bold.ttf LatoBold.ttf
ln -sf /usr/share/fonts/lato-fonts/Lato-Italic.ttf LatoItalic.ttf
%else
ln -sf /usr/share/fonts/lato/Lato-Regular.ttf Lato.ttf
ln -sf /usr/share/fonts/lato/Lato-Bold.ttf LatoBold.ttf
ln -sf /usr/share/fonts/lato/Lato-Italic.ttf LatoItalic.ttf
%endif
ln -sf /usr/share/fonts/glyphography-newscycle-fonts/newscycle-regular.ttf NewsCycle.ttf
ln -sf /usr/share/fonts/glyphography-newscycle-fonts/newscycle-bold.ttf NewsCycleBold.ttf
ln -sf /usr/share/fonts/open-sans/OpenSans-Regular.ttf OpenSans.ttf
for f in Bold BoldItalic Italic Light LightItalic; do
ln -sf /usr/share/fonts/open-sans/OpenSans-${f}.ttf OpenSans${f}.ttf
done
ln -sf /usr/share/fonts/impallari-raleway-fonts/Raleway-Regular.ttf Raleway.ttf
for f in Bold; do
ln -sf /usr/share/fonts/impallari-raleway-fonts/Raleway-${f}.ttf Raleway${f}.ttf
done
ln -sf /usr/share/fonts/google-roboto/Roboto-Regular.ttf Roboto.ttf
for f in Light Medium Bold; do
ln -sf /usr/share/fonts/google-roboto/Roboto-${f}.ttf Roboto${f}.ttf
done
rm -f SourceSansPro*.ttf
ln -sf /usr/share/fonts/adobe-source-sans-pro-fonts/SourceSans3-Regular.otf SourceSansPro.otf
ln -sf /usr/share/fonts/adobe-source-sans-pro-fonts/SourceSans3-It.otf SourceSansProItalic.otf
for f in Bold Light; do
ln -sf /usr/share/fonts/adobe-source-sans-pro-fonts/SourceSans3-${f}.otf SourceSansPro${f}.otf
done
sed -i ../{cosmo,lumen}.min.css \
-e "s/SourceSansPro.ttf) format('true/SourceSansPro.otf) format('open/" \
-e "s/SourceSansProLight.ttf) format('true/SourceSansProLight.otf) format('open/" \
-e "s/SourceSansProBold.ttf) format('true/SourceSansProBold.otf) format('open/" \
-e "s/SourceSansProItalic.ttf) format('true/SourceSansProItalic.otf) format('open/"
popd
pushd rmd/h/bootstrap/fonts
rm -f glyphicons-halflings*
ln -sf /usr/share/fonts/glyphicons-halflings/glyphicons-halflings-regular.ttf glyphicons-halflings-regular.ttf
popd
popd
%check
%if %{with_suggests}
%{_bindir}/R CMD check --ignore-vignettes --no-manual %{packname}
%else
_R_CHECK_FORCE_SUGGESTS_=0 %{_bindir}/R CMD check --ignore-vignettes --no-manual --no-tests %{packname}
%endif
%files
%dir %{rlibdir}/%{packname}
%doc %{rlibdir}/%{packname}/doc
%doc %{rlibdir}/%{packname}/html
%{rlibdir}/%{packname}/DESCRIPTION
%license %{rlibdir}/%{packname}/COPYING
%license %{rlibdir}/%{packname}/NOTICE
%doc %{rlibdir}/%{packname}/NEWS.md
%doc %{rlibdir}/%{packname}/CITATION
%{rlibdir}/%{packname}/INDEX
%{rlibdir}/%{packname}/NAMESPACE
%{rlibdir}/%{packname}/Meta
%{rlibdir}/%{packname}/R
%{rlibdir}/%{packname}/help
%{rlibdir}/%{packname}/rmarkdown
%dir %{rlibdir}/%{packname}/rmd
%{rlibdir}/%{packname}/rmd/fragment
%dir %{rlibdir}/%{packname}/rmd/h
%{rlibdir}/%{packname}/rmd/h/_navbar.html
%{rlibdir}/%{packname}/rmd/h/accessibility
%{rlibdir}/%{packname}/rmd/h/anchor-sections
%{rlibdir}/%{packname}/rmd/h/default.html
%{rlibdir}/%{packname}/rmd/h/bootstrap
%{rlibdir}/%{packname}/rmd/h/highlightjs
%{rlibdir}/%{packname}/rmd/h/ionicons
%{rlibdir}/%{packname}/rmd/h/jqueryui
# %%{rlibdir}/%%{packname}/rmd/h/jqueryui-AUTHORS.txt
%{rlibdir}/%{packname}/rmd/h/navigation-1.1
%{rlibdir}/%{packname}/rmd/h/pagedtable-1.1
%{rlibdir}/%{packname}/rmd/h/pandoc
%{rlibdir}/%{packname}/rmd/h/rmarkdown
%{rlibdir}/%{packname}/rmd/h/rsiframe-1.1
%{rlibdir}/%{packname}/rmd/h/shiny-header.html
%{rlibdir}/%{packname}/rmd/h/tabset/
%{rlibdir}/%{packname}/rmd/h/tocify
%{rlibdir}/%{packname}/rmd/ioslides
%{rlibdir}/%{packname}/rmd/latex
%{rlibdir}/%{packname}/rmd/site
%{rlibdir}/%{packname}/rmd/slidy
%{rlibdir}/%{packname}/rstudio
%changelog
%autochangelog