summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorxiota2024-09-27 21:06:04 +0000
committerxiota2024-09-27 22:01:54 +0000
commit7bef3ed6a250336829295561ee9dc5e85155a862 (patch)
tree6deaea3ed72028ec2146326bf5814d04be0ca0de
parent15411b8475e866fa92956214df0eeed023e2b605 (diff)
downloadaur-7bef3ed6a250336829295561ee9dc5e85155a862.tar.gz
2024.09.0+375
-rw-r--r--.SRCINFO46
-rw-r--r--.gitignore4
-rw-r--r--.nvchecker.toml6
-rw-r--r--0001-enable_system_node.patch96
-rw-r--r--PKGBUILD405
-rw-r--r--qt.conf8
6 files changed, 270 insertions, 295 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 8750384e610c..da05f4558c61 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,57 +1,43 @@
pkgbase = rstudio-desktop
pkgdesc = A powerful and productive integrated development environment (IDE) for R programming language
- pkgver = 2024.09.0.375
- pkgrel = 5
+ pkgver = 2024.09.0
+ pkgrel = 1
url = https://github.com/rstudio/rstudio
arch = x86_64
license = AGPL-3.0-only
- makedepends = git
- makedepends = cmake>=3.29
+ makedepends = apache-ant
makedepends = boost
- makedepends = ninja
- makedepends = npm
- makedepends = gyp
- makedepends = desktop-file-utils
+ makedepends = cmake
+ makedepends = git
makedepends = jdk11-openjdk
- makedepends = apache-ant
- makedepends = unzip
- makedepends = openssl
- makedepends = python-setuptools
makedepends = libcups
+ makedepends = ninja
+ makedepends = nvm
+ makedepends = openssl
makedepends = pam
- makedepends = patchelf
+ makedepends = python
+ makedepends = python-setuptools
makedepends = wget
makedepends = yarn
- depends = r>=3.3.0
- depends = boost-libs
- depends = qt5-sensors
- depends = qt5-svg
- depends = qt5-webengine
- depends = qt5-xmlpatterns
- depends = postgresql-libs
- depends = sqlite3
- depends = clang
depends = hunspell-en_US
depends = mathjax2
depends = pandoc
- depends = yaml-cpp
+ depends = r
optdepends = git: for git support
optdepends = subversion: for subversion support
optdepends = openssh-askpass: for a git ssh access
optdepends = quarto: for Quarto projects support
+ provides = rstudio-desktop
+ conflicts = rstudio-desktop
options = !emptydirs
options = !debug
- source = rstudio-2024.09.0.375.tar.gz::https://github.com/rstudio/rstudio/archive/refs/tags/v2024.09.0+375.tar.gz
- source = git+https://github.com/quarto-dev/quarto.git#branch=release/rstudio-cherry-blossom
- source = https://github.com/SOCI/soci/archive/refs/tags/v4.0.3.tar.gz
- source = qt.conf
- source = 0001-enable_system_node.patch
+ source = rstudio-2024.09.0-375.tar.gz::https://github.com/rstudio/rstudio/archive/refs/tags/v2024.09.0+375.tar.gz
+ source = quarto::git+https://github.com/quarto-dev/quarto.git#branch=release/rstudio-cranberry-hibiscus
+ source = soci-4.0.3.tar.gz::https://github.com/SOCI/soci/archive/refs/tags/v4.0.3.tar.gz
source = 0003-fix_boost_186.patch
sha256sums = 8a29b77c53a3db8379d824a9f4a491843036003d105ed71981cd40fe39d2c8c8
sha256sums = SKIP
sha256sums = 4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928
- sha256sums = 723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921
- sha256sums = fa20d753ba2d2dcf64705bd8cd0bd4d01090bfee9c8173d4312d1050d26121f3
sha256sums = 7b3384fc7349a69e866ef0db21f196a2cafa3a9e2fb7f1edaead773b991dac72
pkgname = rstudio-desktop
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..018a3de08144
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*
+!PKGBUILD
+!.SRCINFO
+!.gitignore
diff --git a/.nvchecker.toml b/.nvchecker.toml
new file mode 100644
index 000000000000..8dc4979dba4c
--- /dev/null
+++ b/.nvchecker.toml
@@ -0,0 +1,6 @@
+[rstudio-desktop]
+source = "git"
+git = "https://github.com/rstudio/rstudio.git"
+prefix = "v"
+from_pattern = '\+\S+'
+to_pattern = ''
diff --git a/0001-enable_system_node.patch b/0001-enable_system_node.patch
deleted file mode 100644
index e3ccda1dfac8..000000000000
--- a/0001-enable_system_node.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-diff -ru rstudio-2024.09.0-375/src/cpp/conf/rsession-dev.conf rstudio-2024.09.0-375.new/src/cpp/conf/rsession-dev.conf
---- rstudio-2024.09.0-375/src/cpp/conf/rsession-dev.conf 2024-09-17 05:02:32.000000000 +1200
-+++ rstudio-2024.09.0-375.new/src/cpp/conf/rsession-dev.conf 2024-09-24 11:25:57.648251605 +1200
-@@ -41,7 +41,7 @@
- external-libclang-path=${RSTUDIO_DEPENDENCIES_DIR}/common/libclang
-
- # node version below should match RSTUDIO_INSTALLED_NODE_VERSION
--external-node-path=${RSTUDIO_DEPENDENCIES_DIR}/common/node/20.15.1-patched/bin/node
-+external-node-path=/usr/bin/node
-
- # enable copilot
- copilot-enabled=1
-diff -ru rstudio-2024.09.0-375/src/cpp/session/CMakeLists.txt rstudio-2024.09.0-375.new/src/cpp/session/CMakeLists.txt
---- rstudio-2024.09.0-375/src/cpp/session/CMakeLists.txt 2024-09-17 05:02:32.000000000 +1200
-+++ rstudio-2024.09.0-375.new/src/cpp/session/CMakeLists.txt 2024-09-24 11:27:41.827637114 +1200
-@@ -700,10 +700,12 @@
- DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
-
- # install node
-- install(
-- DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/node/${RSTUDIO_INSTALLED_NODE_VERSION}-patched/"
-- DESTINATION "${RSTUDIO_INSTALL_BIN}/node"
-- USE_SOURCE_PERMISSIONS)
-+ if(NOT RSTUDIO_USE_SYSTEM_NODE)
-+ install(
-+ DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/node/${RSTUDIO_INSTALLED_NODE_VERSION}/"
-+ DESTINATION "${RSTUDIO_INSTALL_BIN}/node"
-+ USE_SOURCE_PERMISSIONS)
-+ endif()
-
- # install quarto (or pandoc if quarto disabled)
- if(QUARTO_ENABLED)
-diff -ru rstudio-2024.09.0-375/src/cpp/session/SessionOptions.cpp rstudio-2024.09.0-375.new/src/cpp/session/SessionOptions.cpp
---- rstudio-2024.09.0-375/src/cpp/session/SessionOptions.cpp 2024-09-17 05:02:32.000000000 +1200
-+++ rstudio-2024.09.0-375.new/src/cpp/session/SessionOptions.cpp 2024-09-24 11:28:57.490536726 +1200
-@@ -713,7 +713,7 @@
- {
- #if defined(__linux__) && !defined(RSTUDIO_PACKAGE_BUILD)
- // node version should match RSTUDIO_INSTALLED_NODE_VERSION
-- FilePath dependenciesPath = resourcePath.completePath("../../dependencies/common/node/20.15.1-patched");
-+ FilePath dependenciesPath = resourcePath.completePath("/usr");
- resolvePath(dependenciesPath, pPath);
- #else
- resolvePath(resourcePath, pPath);
-diff -ru rstudio-2024.09.0-375/src/gwt/build.xml rstudio-2024.09.0-375.new/src/gwt/build.xml
---- rstudio-2024.09.0-375/src/gwt/build.xml 2024-09-17 05:02:32.000000000 +1200
-+++ rstudio-2024.09.0-375.new/src/gwt/build.xml 2024-09-24 11:30:26.016707136 +1200
-@@ -85,8 +85,8 @@
-
- <!-- panmirror typescript library -->
- <!-- ensure version matches RSTUDIO_NODE_VERSION -->
-- <property name="node.version" value="20.14.0"/>
-- <property name="node.dir" value="../../dependencies/common/node/${node.version}"/>
-+ <property name="node.version" value="Current"/>
-+ <property name="node.dir" value="/usr"/>
- <!-- use yarn from system but will prefer yarn from dependencies if available -->
- <condition property="yarn.bin" value="yarn">
- <not>
-diff -ru rstudio-2024.09.0-375/src/node/CMakeNodeTools.txt rstudio-2024.09.0-375.new/src/node/CMakeNodeTools.txt
---- rstudio-2024.09.0-375/src/node/CMakeNodeTools.txt 2024-09-17 05:02:32.000000000 +1200
-+++ rstudio-2024.09.0-375.new/src/node/CMakeNodeTools.txt 2024-09-24 11:30:51.146568219 +1200
-@@ -19,7 +19,7 @@
-
- # set the node version
- if(NOT DEFINED RSTUDIO_NODE_VERSION)
-- set(RSTUDIO_NODE_VERSION "20.14.0")
-+ set(RSTUDIO_NODE_VERSION "Current")
- endif()
- if(DEFINED ENV{RSTUDIO_NODE_VERSION})
- set(RSTUDIO_NODE_VERSION $ENV{RSTUDIO_NODE_VERSION})
-@@ -45,7 +45,7 @@
- NO_DEFAULT_PATH PATH_SUFFIXES "bin"
- PATHS "/opt/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
- "c:/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
-- "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/common/node/${RSTUDIO_NODE_VERSION}")
-+ "/usr")
-
- find_program(NPM
- NAMES npm
-@@ -53,7 +53,7 @@
- NO_DEFAULT_PATH
- PATHS "/opt/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
- "c:/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
-- "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/common/node/${RSTUDIO_NODE_VERSION}")
-+ "/usr")
-
- find_program(NPX
- NAMES npx
-@@ -61,7 +61,7 @@
- NO_DEFAULT_PATH
- PATHS "/opt/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
- "c:/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
-- "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/common/node/${RSTUDIO_NODE_VERSION}")
-+ "/usr")
-
- endif()
diff --git a/PKGBUILD b/PKGBUILD
index 0ba1c2c187f6..385142ad3cf9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,182 +1,265 @@
-# Maintainer: Aleksandr Beliaev <trap000d@gmail.com>
-
-pkgname=rstudio-desktop
-_vermajor=2024
-_verminor=09
-_verpatch=0
-_versuffix=375
-_gitcommit=c8fc7ae
-_gitname=rstudio-rstudio-${_gitcommit}
-pkgver=${_vermajor}.${_verminor}.${_verpatch}.${_versuffix}
-_srcname=rstudio-${_vermajor}.${_verminor}.${_verpatch}-${_versuffix}
-_pandocver="current"
-_sociver="4.0.3"
-_quarto="FALSE"
-
-pkgrel=5
+# Maintainer:
+# Contributor: Aleksandr Beliaev <trap000d@gmail.com>
+
+## links
+# https://posit.co/products/open-source/rstudio/
+# https://github.com/rstudio/rstudio
+
+## options
+: ${_nodeversion:=22}
+: ${_pandocver:=current}
+: ${_sociver:=4.0.3}
+: ${_quarto_branch:=release/rstudio-cranberry-hibiscus}
+: ${_quarto:=false}
+
+: ${_pkgver=2024.09.0+375}
+
+## basic info
+_pkgname="rstudio-desktop"
+pkgname="$_pkgname"
+pkgver="${_pkgver%%+*}"
+pkgrel=1
pkgdesc="A powerful and productive integrated development environment (IDE) for R programming language"
-arch=('x86_64')
url="https://github.com/rstudio/rstudio"
license=('AGPL-3.0-only')
-depends=('r>=3.3.0' 'boost-libs' 'qt5-sensors' 'qt5-svg' 'qt5-webengine' 'qt5-xmlpatterns' 'postgresql-libs' 'sqlite3' 'clang' 'hunspell-en_US' 'mathjax2' 'pandoc' 'yaml-cpp')
-makedepends=('git' 'cmake>=3.29' 'boost' 'ninja' 'npm' 'gyp' 'desktop-file-utils' 'jdk11-openjdk' 'apache-ant' 'unzip' 'openssl' 'python-setuptools' 'libcups' 'pam' 'patchelf' 'wget' 'yarn')
-optdepends=('git: for git support'
- 'subversion: for subversion support'
- 'openssh-askpass: for a git ssh access'
- 'quarto: for Quarto projects support')
-
-source=("rstudio-$pkgver.tar.gz::https://github.com/rstudio/rstudio/archive/refs/tags/v${_vermajor}.${_verminor}.${_verpatch}+${_versuffix}.tar.gz"
- "git+https://github.com/quarto-dev/quarto.git#branch=release/rstudio-cherry-blossom"
- "https://github.com/SOCI/soci/archive/refs/tags/v${_sociver}.tar.gz"
- "qt.conf"
- "0001-enable_system_node.patch"
- "0003-fix_boost_186.patch")
-
-sha256sums=('8a29b77c53a3db8379d824a9f4a491843036003d105ed71981cd40fe39d2c8c8'
- 'SKIP'
- '4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'
- '723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921'
- 'fa20d753ba2d2dcf64705bd8cd0bd4d01090bfee9c8173d4312d1050d26121f3'
- '7b3384fc7349a69e866ef0db21f196a2cafa3a9e2fb7f1edaead773b991dac72')
+arch=('x86_64')
+
+depends=(
+ 'hunspell-en_US'
+ 'mathjax2'
+ 'pandoc'
+ 'r'
+)
+makedepends=(
+ 'apache-ant'
+ 'boost'
+ 'cmake'
+ 'git'
+ 'jdk11-openjdk'
+ 'libcups'
+ 'ninja'
+ 'nvm' # AUR
+ 'openssl'
+ 'pam'
+ 'python'
+ 'python-setuptools'
+ 'wget'
+ 'yarn'
+)
+optdepends=(
+ 'git: for git support'
+ 'subversion: for subversion support'
+ 'openssh-askpass: for a git ssh access'
+ 'quarto: for Quarto projects support'
+)
+
+if [[ "${_quarto::1}" == "t" ]]; then
+ makedepends+=(
+ 'quarto' # AUR
+ )
+fi
+
+provides=("$_pkgname")
+conflicts=("$_pkgname")
options=('!emptydirs' '!debug')
-prepare() {
- cd ${srcdir}/${_srcname}
+_pkgsrc="rstudio-${_pkgver//+/-}"
+_pkgext="tar.gz"
+source=(
+ "$_pkgsrc.$_pkgext"::"https://github.com/rstudio/rstudio/archive/refs/tags/v$_pkgver.$_pkgext"
+ "quarto"::"git+https://github.com/quarto-dev/quarto.git#branch=${_quarto_branch}"
+ "soci-$_sociver.tar.gz"::"https://github.com/SOCI/soci/archive/refs/tags/v${_sociver}.tar.gz"
+ '0003-fix_boost_186.patch'
+)
+sha256sums=(
+ '8a29b77c53a3db8379d824a9f4a491843036003d105ed71981cd40fe39d2c8c8'
+ 'SKIP'
+ '4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'
+ '7b3384fc7349a69e866ef0db21f196a2cafa3a9e2fb7f1edaead773b991dac72'
+)
+
+_nvm_env() {
+ export HOME="$SRCDEST/node-home"
+ export NVM_DIR="$SRCDEST/node-nvm"
- msg "Suppress _FORTIFY_SOURCE mismatch warnings"
- sed -i 's/D_FORTIFY_SOURCE=2/D_FORTIFY_SOURCE=3/' "${srcdir}/${_srcname}/src/cpp/CMakeLists.txt"
-
- sed -i 's/add_subdirectory(package)/# add_subdirectory(package)/' "${srcdir}/${_srcname}/CMakeLists.txt"
+ # set up nvm
+ source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
+ nvm install $_nodeversion
+ nvm use $_nodeversion
- # Add option to use system node
- patch -p1 < ${srcdir}/0001-enable_system_node.patch
+ _npm_path="$(which npm | sed -E 's&/[^/]+$&&')"
+ export RSTUDIO_NODE_VERSION=$(echo "$_npm_path" | sed -E 's&^\S+/v([0-9\.]+)/\S+$&\1&')
+}
- # fix boost 1.86 incompatibility
- patch -p1 < ${srcdir}/0003-fix_boost_186.patch
+prepare() (
+ _nvm_env
+ npm install yarn
- cd "${srcdir}/${_srcname}/dependencies/common"
- install -d pandoc/${_pandocver}
-
- ln -sfT /usr/share/myspell/dicts dictionaries
- ln -sfT /usr/share/mathjax2 mathjax-27
- ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/pandoc
+ cd "$_pkgsrc"
+ # Do not use outdated version name of pandoc
+ sed -i '/PANDOC_VERSION/s/2.18/current/' "cmake/globals.cmake"
- # Fix links for src/cpp/session/CMakeLists.txt
- cd "${srcdir}/${_srcname}/dependencies"
- ln -sfT /usr/share/myspell/dicts dictionaries
- ln -sfT /usr/share/mathjax2 mathjax-27
+ # Suppress _FORTIFY_SOURCE mismatch warnings
+ sed -i 's/D_FORTIFY_SOURCE=2/D_FORTIFY_SOURCE=3/' "src/cpp/CMakeLists.txt"
- # Bundled SOCI libs
- ln -sfT "${srcdir}/soci-${_sociver}" "soci-${_sociver}"
+ # fix npm/node paths
+ install -dm755 "$srcdir/$_pkgsrc/dependencies/common/node"
+ ln -sfT "$NVM_DIR/versions/node/v$RSTUDIO_NODE_VERSION" "$srcdir/$_pkgsrc/dependencies/common/node/${RSTUDIO_NODE_VERSION}-patched"
- # Panmirror is picked up from Quarto repo
- ln -sfT "${srcdir}/quarto" "${srcdir}/${_srcname}/src/gwt/lib/quarto"
-}
+ sed -E -e 's&PATHS "/opt/rstudio-tools/dependencies/common/node/\$\{RSTUDIO_NODE_VERSION\}"&PATHS "'"${_npm_path}"'"&' \
+ -i src/node/CMakeNodeTools.txt
+
+ sed -E -e 's&(common/node)/([0-9\.]+)-(patched)&\1/'"${RSTUDIO_NODE_VERSION}"'-\3&' \
+ -i src/cpp/conf/rsession-dev.conf src/cpp/session/SessionOptions.cpp
+
+ sed -E -e '/"node\.version"/s&value="[0-9\.]+"&value="'"${RSTUDIO_NODE_VERSION}"'"&' \
+ -i src/gwt/build.xml
+
+ sed -E -e 's&set\(RSTUDIO_NODE_VERSION "[0-9\.]+"\)&set(RSTUDIO_NODE_VERSION "'"${RSTUDIO_NODE_VERSION}"'")&' \
+ -i src/node/CMakeNodeTools.txt
+
+ # fix os-release path
+ sed -E 's&(STRINGS) "/etc/os-release" (OS_RELEASE)&\1 "/usr/lib/os-release" \2&' \
+ -i cmake/modules/OsRelease.cmake
-build() {
- # Quarto set up
- if (pacman -Q quarto >/dev/null 2>/dev/null) ; then
- _quarto="TRUE"
- msg "Quarto is installed, include it to build"
- cd "${srcdir}/${_srcname}/dependencies"
- install -d quarto/bin/tools
- ln -sfT /usr/bin/quarto quarto/bin/quarto
- ln -sfT /usr/bin/pandoc quarto/bin/tools/pandoc
- else
- _quarto="FALSE"
- msg "Quarto is not installed, use Pandoc"
- cd "${srcdir}/${_srcname}/dependencies"
- install -d pandoc/${_pandocver}/bin/tools
- ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/bin/tools/pandoc
- fi
-
- cd "${srcdir}/${_srcname}/dependencies/soci-${_sociver}"
- msg "Building SOCI libs..."
-
- local _CMAKE_SOCI_OPTIONS=(
- -DCMAKE_POLICY_DEFAULT_CMP0063="NEW"
- -DCMAKE_POLICY_DEFAULT_CMP0074="NEW"
- -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
- -DCMAKE_CXX_VISIBILITY_PRESET="$COMPILE_VISIBILITY"
- -DSOCI_TESTS=OFF
- -DSOCI_CXX11=ON
- -DSOCI_EMPTY=OFF
- -DWITH_BOOST=ON
- -DWITH_POSTGRESQL=ON
- -DWITH_SQLITE3=ON
- -DWITH_DB2=OFF
- -DWITH_MYSQL=OFF
- -DWITH_ORACLE=OFF
- -DWITH_FIREBIRD=OFF
- -DWITH_ODBC=OFF
- )
-
- cmake -G Ninja -S "${srcdir}/${_srcname}/dependencies/soci-${_sociver}" -B build "${_CMAKE_SOCI_OPTIONS[@]}"
- cmake --build build --target all
-
- export LDFLAGS="${LDFLAGS} -L${srcdir}/${_srcname}/dependencies/soci-${_sociver}/build/lib"
-
- 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-11-openjdk/jre/bin/:${PATH}
- export RSTUDIO_TOOLS_ROOT="${srcdir}/${_srcname}/dependencies"
- export RSTUDIO_NODE_PATH=/usr/
- export RSTUDIO_VERSION_MAJOR=${_vermajor}
- export RSTUDIO_VERSION_MINOR=${_verminor}
- export RSTUDIO_VERSION_PATCH=${_verpatch}
- export RSTUDIO_VERSION_SUFFIX="+${_versuffix}"
- export GIT_COMMIT=${_gitcommit}
- export PACKAGE_OS=$(uname -om)
-
- # node-gyp or node have a bug that prevents building with "text file busy"
- # if the kernel is too fast, so we have to disable IO_URING support. This
- # is cleary a hack and needs to be removed as soon as possible
- # nodejs/node#48444 is the necro bumped thread
- # originally from docker
- # https://github.com/nodejs/node/issues/48444
- export UV_USE_IO_URING=0
-
- # -DCMAKE_INSTALL_PREFIX seems ignored for sub-dependencies,
- # which results as empty '/usr/local/bin' in package
- # Following override works for cmake >3.29
- export CMAKE_INSTALL_PREFIX=/usr/lib/rstudio
-
- local _CMAKE_RSTUDIO_OPTIONS=(
- -DRSTUDIO_TARGET=Electron
- -DCMAKE_BUILD_TYPE=Release
- -DRSTUDIO_USE_SYSTEM_BOOST=yes
- -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake
- -DBoost_NO_BOOST_CMAKE=ON
- -DQUARTO_ENABLED=${_quarto}
- -DRSTUDIO_USE_SYSTEM_NODE=yes
- -DRSTUDIO_BUNDLE_QT=FALSE
- )
- cmake -G Ninja -S "${srcdir}/${_srcname}" -B build "${_CMAKE_RSTUDIO_OPTIONS[@]}"
- cmake --build build
+ # fix boost 1.86 incompatibility
+ patch -p1 -i "$srcdir/0003-fix_boost_186.patch"
+
+ cd "$srcdir/$_pkgsrc/dependencies/common"
+ install -d pandoc/${_pandocver}
+
+ ln -sfT /usr/share/myspell/dicts dictionaries
+ ln -sfT /usr/share/mathjax2 mathjax-27
+ ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/pandoc
+
+ # Fix links for src/cpp/session/CMakeLists.txt
+ cd "$srcdir/$_pkgsrc/dependencies"
+ ln -sfT /usr/share/myspell/dicts dictionaries
+ ln -sfT /usr/share/mathjax2 mathjax-27
+
+ # Bundled SOCI libs
+ ln -sfT "${srcdir}/soci-${_sociver}" "soci-${_sociver}"
+
+ # Panmirror is picked up now from Quarto repo
+ ln -sfT "${srcdir}/quarto" "$srcdir/$_pkgsrc/src/gwt/lib/quarto"
+)
+
+_build_soci() {
+ echo "Building SOCI libs..."
+
+ local _opts_soci=(
+ -B "soci-${_sociver}/build"
+ -S "soci-${_sociver}"
+ -G Ninja
+ -DCMAKE_BUILD_TYPE=None
+ -DCMAKE_INSTALL_PREFIX='/usr'
+ -DSOCI_TESTS=OFF
+ -DSOCI_CXX11=ON
+ -DSOCI_EMPTY=OFF
+ -DWITH_BOOST=ON
+ -DWITH_POSTGRESQL=ON
+ -DWITH_SQLITE3=ON
+ -DWITH_DB2=OFF
+ -DWITH_MYSQL=OFF
+ -DWITH_ORACLE=OFF
+ -DWITH_FIREBIRD=OFF
+ -DWITH_ODBC=OFF
+ -Wno-dev
+ )
+
+ cmake "${_opts_soci[@]}"
+ cmake --build "soci-${_sociver}/build"
}
-package() {
+build() (
+ _nvm_env
+ # Quarto set up
+ if (pacman -Q quarto > /dev/null 2> /dev/null); then
+ _quarto="ON"
+ echo "Quarto is installed, linking for build"
+ cd "$srcdir/$_pkgsrc/dependencies"
+ install -d quarto/bin/tools
+ ln -sfT /usr/bin/quarto quarto/bin/quarto
+ ln -sfT /usr/bin/pandoc quarto/bin/tools/pandoc
+ else
+ _quarto="OFF"
+ echo "Quarto is not installed, using Pandoc"
+ cd "$srcdir/$_pkgsrc/dependencies"
+ install -d pandoc/${_pandocver}/bin/tools
+ ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/bin/tools/pandoc
+ fi
+
+ _build_soci
+
+ export LDFLAGS+=" -L$srcdir/$_pkgsrc/dependencies/soci-${_sociver}/build/lib"
+
+ cd "${srcdir}"
+ echo "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}"
+ local RPACKAGES=(
+ digest
+ purrr
+ rmarkdown
+ testthat
+ xml2
+ yaml
+ )
+ for RPKG in ${RPACKAGES[*]}; 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
- # Install the program
- DESTDIR="${pkgdir}" cmake --install build
+ export PATH="/usr/lib/jvm/java-11-openjdk/jre/bin/:${PATH}"
+ export RSTUDIO_TOOLS_ROOT="$srcdir/$_pkgsrc/dependencies"
+ export RSTUDIO_NODE_PATH=/usr/
+ export RSTUDIO_VERSION_MAJOR=$(cut -d'.' -f1 <<< "$pkgver")
+ export RSTUDIO_VERSION_MINOR=$(cut -d'.' -f2 <<< "$pkgver")
+ export RSTUDIO_VERSION_PATCH=$(cut -d'.' -f3 <<< "$pkgver")
+ export RSTUDIO_VERSION_SUFFIX="+$(cut -d'.' -f4 <<< "$pkgver")"
+ export GIT_COMMIT=$(echo "$pkgver" | cut -d'.' -f6 | sed 's/^g//')
+ export PACKAGE_OS=$(uname -om)
- # Install the license
- install -Dm 644 "${srcdir}/${_srcname}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+ # node-gyp or node have a bug that prevents building with "text file busy"
+ # if the kernel is too fast, so we have to disable IO_URING support. This
+ # is cleary a hack and needs to be removed as soon as possible
+ # nodejs/node#48444 is the necro bumped thread
+ # originally from docker
+ # https://github.com/nodejs/node/issues/48444
+ export UV_USE_IO_URING=0
- # Symlink main binary
- install -d "${pkgdir}/usr/bin"
- ln -s "/usr/lib/rstudio/rstudio" "${pkgdir}/usr/bin/rstudio"
+ # -DCMAKE_INSTALL_PREFIX seems ignored for sub-dependencies,
+ # which results as empty '/usr/local/bin' in package
+ # Following override works for cmake >3.29
+ export CMAKE_INSTALL_PREFIX=/usr/lib/rstudio
+
+ local _opts_rstudio=(
+ -B build
+ -S "$_pkgsrc"
+ -G Ninja
+ -DCMAKE_BUILD_TYPE=None
+ -DRSTUDIO_TARGET=Electron
+ -DRSTUDIO_USE_SYSTEM_BOOST=YES
+ -DRSTUDIO_USE_SYSTEM_SOCI=NO
+ -DRSTUDIO_USE_SYSTEM_NODE=YES
+ -DRSTUDIO_NODE_VERSION="$RSTUDIO_NODE_VERSION"
+ -DRSTUDIO_INSTALLED_NODE_VERSION="$RSTUDIO_NODE_VERSION"
+ -DQUARTO_ENABLED=${_quarto}
+ -DBUILD_TESTING=OFF
+ -Wno-dev
+ )
+ cmake "${_opts_rstudio[@]}"
+ cmake --build build
+)
+
+package() {
+ # Install the program
+ DESTDIR="${pkgdir}" cmake --install build
- # 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"
+ # Symlink main binary
+ install -d "${pkgdir}/usr/bin"
+ ln -s "/usr/lib/rstudio/rstudio" "$pkgdir/usr/bin/rstudio"
}
diff --git a/qt.conf b/qt.conf
deleted file mode 100644
index 840a682a802b..000000000000
--- a/qt.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[Paths]
-Headers = /usr/include/qt/
-Data = /usr/share/qt/
-Libraries = /usr/lib/qt/
-LibraryExecutables = /usr/lib/qt/libexec/
-Plugins = /usr/lib/qt/plugins/
-Qml2Imports = /usr/lib/qt/qml/
-Translations = /usr/share/qt/translations/