# Maintainer: Artem Klevtsov # Maintainer: Stephen Martin # Contributor: Conor Anderson pkgname=rstudio-desktop-git _gitname=rstudio pkgver=41984.06e08648c1 _nodever=18.18.2 _pandocver="current" pkgrel=1 pkgdesc="A powerful and productive integrated development environment (IDE) for R programming language" arch=('i686' 'x86_64') url="https://www.rstudio.com/products/rstudio/" license=('AGPL3') depends=('r>=3.0.3' boost-libs qt5-sensors qt5-svg qt5-webengine qt5-xmlpatterns postgresql-libs sqlite3 soci clang hunspell-en_US mathjax2 pandoc yaml-cpp quarto-cli-bin libldap) makedepends=(git 'cmake>=3.1.0' boost desktop-file-utils jdk8-openjdk apache-ant unzip openssl libcups pam patchelf wget yarn nodejs ninja) optdepends=('git: for git support' 'subversion: for subversion support' 'openssh-askpass: for a git ssh access') provides=('rstudio-desktop') conflicts=('rstudio-desktop' 'rstudio-desktop-bin' 'rstudio-desktop-preview') source=("git+https://github.com/rstudio/rstudio.git" "qt.conf" "pandoc_version.patch") sha256sums=('SKIP' '723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921' '286925c442c1818979714feeec1577f03ae8a3527d2478b0f55238e2272a0b9e') pkgver() { cd "${srcdir}/${_gitname}" printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { cd ${srcdir}/${_gitname} # Do not use outdated version name of pandoc patch -p1 < ${srcdir}/pandoc_version.patch git clone https://github.com/quarto-dev/quarto src/gwt/lib/quarto cd "${srcdir}/${_gitname}/dependencies/common" install -d pandoc/${_pandocver} install -d node/${_nodever}/bin ln -sfT /usr/share/myspell/dicts dictionaries ln -sfT /usr/share/mathjax2 mathjax-27 ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/pandoc ln -sfT /usr/bin/node node/${_nodever}/bin/node ln -sfT /usr/bin/corepack node/${_nodever}/bin/corepack cd "${srcdir}/${_gitname}/dependencies" ln -sfT common/dictionaries dictionaries ln -sfT common/mathjax-27 mathjax-27 install -d quarto/bin/tools ln -sfT /usr/bin/quarto quarto/bin/quarto ln -sfT /usr/bin/pandoc quarto/bin/tools/pandoc } build() { cd ${srcdir} msg "Downloading and installing R packages..." export R_LIBS_USER="${srcdir}/${_srcname}/dependencies/R" _JOBS="$(grep -oP -- "-j\s*\K[0-9]+" <<< "${MAKEFLAGS}")" || _JOBS="1" mkdir -p "${R_LIBS_USER}" for RPKG in rmarkdown renv testthat xml2 yaml; do RINSTALLCMD="if("'!'"require($RPKG, quietly = TRUE)) { options(Ncpus = ${_JOBS} ); install.packages('$RPKG', lib='$R_LIBS_USER', repos='https://cran.rstudio.com/') }" echo "> $RINSTALLCMD" Rscript -e "$RINSTALLCMD" done export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:${PATH} export JAVA_TOOL_OPTIONS="-Djava.util.prefs.userRoot=${srcdir}" export BUILD_ID="local" export PACKAGE_OS=$(uname -om) cmake -S "${srcdir}/${_gitname}" -B build \ -GNinja \ -DRSTUDIO_TARGET=Desktop \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/lib/rstudio \ -DRSTUDIO_USE_SYSTEM_BOOST=yes \ -DRSTUDIO_USE_SYSTEM_YAML_CPP=yes \ -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake \ -DBoost_NO_BOOST_CMAKE=ON \ -DQUARTO_ENABLED=TRUE \ -DRSTUDIO_USE_SYSTEM_SOCI=yes \ -DRSTUDIO_BUNDLE_QT=FALSE cd ${srcdir}/build ninja } package() { # Install the program cd ${srcdir}/build DESTDIR="${pkgdir}" ninja install # Install the license install -Dm 644 "${srcdir}/${_gitname}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" # Symlink main binary install -d "${pkgdir}/usr/bin" ln -s "/usr/lib/rstudio/bin/rstudio" "${pkgdir}/usr/bin/rstudio" # BUGFIX: qt5-webengine isn't init'ing properly. Likely an Rstudio bug. install -Dm 644 "${srcdir}/qt.conf" "${pkgdir}/usr/lib/qt/libexec/qt.conf" }