rstudio-desktop: auto updated to 2024.12.1-1

This commit is contained in:
Lilac 2025-02-23 08:24:46 +00:00
parent f9327289b7
commit a5411330ca
4 changed files with 298 additions and 247 deletions

View file

@ -0,0 +1,6 @@
[rstudio-desktop]
source = "git"
git = "https://github.com/rstudio/rstudio.git"
prefix = "v"
from_pattern = '\+'
to_pattern = '.'

View file

@ -1,97 +0,0 @@
diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf
--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf 2024-05-07 06:31:08.000000000 +1200
+++ rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf 2024-05-21 19:32:00.206198890 +1200
@@ -39,7 +39,7 @@
external-pandoc-path=${RSTUDIO_DEPENDENCIES_PANDOC_DIR}
external-quarto-path=${RSTUDIO_DEPENDENCIES_QUARTO_DIR}
external-libclang-path=${RSTUDIO_DEPENDENCIES_DIR}/common/libclang
-external-node-path=${RSTUDIO_DEPENDENCIES_DIR}/common/node/18.18.2/bin/node
+external-node-path=/usr/bin/node
# enable copilot
copilot-enabled=1
diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt
--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt 2024-05-07 06:31:08.000000000 +1200
+++ rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt 2024-05-21 10:33:50.351362947 +1200
@@ -697,10 +697,12 @@
DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
# install node
- install(
- DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/node/${RSTUDIO_INSTALLED_NODE_VERSION}/"
- 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-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp
--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp 2024-05-07 06:31:08.000000000 +1200
+++ rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp 2024-05-21 19:33:46.308996710 +1200
@@ -709,7 +709,7 @@
std::string* pPath)
{
#if defined(__linux__) && !defined(RSTUDIO_PACKAGE_BUILD)
- FilePath dependenciesPath = resourcePath.completePath("../../dependencies/common/node/18.18.2");
+ FilePath dependenciesPath = resourcePath.completePath("/usr");
resolvePath(dependenciesPath, pPath);
#else
resolvePath(resourcePath, pPath);
diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/gwt/build.xml rstudio-desktop/src/rstudio-2024.04.1-748/src/gwt/build.xml
--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/gwt/build.xml 2024-05-07 06:31:08.000000000 +1200
+++ rstudio-desktop/src/rstudio-2024.04.1-748/src/gwt/build.xml 2024-05-21 19:28:10.023896075 +1200
@@ -85,8 +85,8 @@
<!-- panmirror typescript library -->
<!-- ensure version matches RSTUDIO_NODE_VERSION -->
- <property name="node.version" value="18.18.2"/>
- <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-desktop.original/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt rstudio-desktop/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt
--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt 2024-05-07 06:31:08.000000000 +1200
+++ rstudio-desktop/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt 2024-05-21 19:28:34.497148803 +1200
@@ -19,7 +19,7 @@
# set the node version
if(NOT DEFINED RSTUDIO_NODE_VERSION)
- set(RSTUDIO_NODE_VERSION "18.18.2")
+ 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()

View file

@ -1,99 +1,99 @@
# Maintainer: Aleksandr Beliaev <trap000d@gmail.com>
# Maintainer:
# Contributor: Aleksandr Beliaev <trap000d@gmail.com>
pkgname=rstudio-desktop
_vermajor=2024
_verminor=04
_verpatch=2
_versuffix=764
_gitcommit=e4392fc
_gitname=rstudio-rstudio-${_gitcommit}
pkgver=${_vermajor}.${_verminor}.${_verpatch}.${_versuffix}
_srcname=rstudio-${_vermajor}.${_verminor}.${_verpatch}-${_versuffix}
_pandocver="current"
_sociver="4.0.3"
_quarto="FALSE"
## links
# https://posit.co/products/open-source/rstudio/
# https://github.com/rstudio/rstudio
## options
: ${_nodeversion:=23}
: ${_pandocver:=current}
: ${_soci_version:=4.0.3}
: ${_quarto_branch:=release/rstudio-cranberry-hibiscus}
: ${_quarto:=false}
: ${_commit:=c5bcd0ec4fb959b2a9fcd656f12eb62092f0617e}
_pkgname="rstudio-desktop"
pkgname="$_pkgname"
pkgver=2024.12.1
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=("boost-libs" "clang" "hunspell-en_US" "mathjax2" "pandoc" "postgresql-libs" "qt5-sensors" "qt5-svg" "qt5-webengine" "qt5-xmlpatterns" "quarto-cli" "r>=3.3.0" "sqlite3" "yaml-cpp")
makedepends=('git' 'cmake>=3.29' 'boost' 'ninja' 'desktop-file-utils' 'jdk8-openjdk' 'apache-ant' 'unzip' 'openssl' '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')
arch=('x86_64')
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"
"0002-allow_system_node.patch")
depends=("quarto-cli"
'boost-libs'
'dbus'
'hicolor-icon-theme'
'hunspell-en_US'
'libcups'
'mathjax2'
'nspr'
'nss'
'pandoc'
'r'
)
makedepends=(
'apache-ant'
'boost'
'cmake'
'git'
'java-environment'
'libcups'
'ninja'
'nvm' # AUR
'openssl'
'pam'
'python'
'python-setuptools'
'wget'
'yarn'
)
optdepends=(
'git: for git support'
'nodejs: for copilot support'
'openssh-askpass: for a git ssh access'
'quarto: for Quarto projects support'
'subversion: for subversion support'
)
sha256sums=('89b0d6741b6bd4dac52fd8bd9372d4f1919c97dd41056a03c975d0570eaf439e'
'SKIP'
'4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'
'723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921'
'ad4bd3076ff2bff7d075e3928a7e55c618fa744e3bf5d3d387bf70e01ff96c2f')
if [[ "${_quarto::1}" == "t" ]]; then
makedepends+=('quarto') # AUR
fi
provides=("$_pkgname")
conflicts=("$_pkgname")
options=('!emptydirs' '!debug')
prepare() {
cd ${srcdir}/${_srcname}
msg "Do not use outdated version name of pandoc"
sed -i '/PANDOC_VERSION/s/2.18/current/' "${srcdir}/${_srcname}/CMakeGlobals.txt"
msg "Suppress _FORTIFY_SOURCE mismatch warnings"
sed -i 's/D_FORTIFY_SOURCE=2/D_FORTIFY_SOURCE=3/' "${srcdir}/${_srcname}/src/cpp/CMakeLists.txt"
# Add option to use system node
patch -p3 < ${srcdir}/0002-allow_system_node.patch
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
# 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
# Bundled SOCI libs
ln -sfT "${srcdir}/soci-${_sociver}" "soci-${_sociver}"
# Panmirror is picked up from Quarto repo
ln -sfT "${srcdir}/quarto" "${srcdir}/${_srcname}/src/gwt/lib/quarto"
_source_main() {
_pkgsrc="rstudio-$_commit"
local _pkgext="tar.gz"
source=(
"rstudio-$pkgver-${_commit::7}.$_pkgext"::"https://github.com/rstudio/rstudio/archive/$_commit.$_pkgext"
"quarto"::"git+https://github.com/quarto-dev/quarto.git#branch=${_quarto_branch}"
)
sha256sums=(
'SKIP'
'SKIP'
)
}
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
_source_soci() {
local _pkgext_soci="tar.gz"
source+=("soci-$_soci_version.$_pkgext_soci"::"https://github.com/SOCI/soci/archive/refs/tags/v$_soci_version.$_pkgext_soci")
sha256sums+=('4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928')
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"
_build_soci() (
echo "Building SOCI..."
local _opts_soci=(
-B "soci-$_soci_version/build"
-S "soci-$_soci_version"
-G Ninja
-DCMAKE_BUILD_TYPE=None
-DCMAKE_INSTALL_PREFIX='/usr'
-DSOCI_TESTS=OFF
-DSOCI_CXX11=ON
-DSOCI_EMPTY=OFF
@ -105,73 +105,223 @@ build() {
-DWITH_ORACLE=OFF
-DWITH_FIREBIRD=OFF
-DWITH_ODBC=OFF
-DBUILD_SHARED_LIBS=OFF
-Wno-dev
)
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-8-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=Desktop
-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
cmake "${_opts_soci[@]}"
cmake --build "soci-$_soci_version/build"
)
}
_source_main
_source_soci
_nvm_env() {
export HOME="$SRCDEST/node-home"
export NVM_DIR="$SRCDEST/node-nvm"
# set up nvm
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
nvm install $_nodeversion
nvm use $_nodeversion
_npm_path="$(which npm | sed -E 's&/[^/]+$&&')"
export RSTUDIO_NODE_VERSION=$(echo "$_npm_path" | sed -E 's&^\S+/v([0-9\.]+)/\S+$&\1&')
}
prepare() (
_nvm_env
#npm install yarn
cd "$_pkgsrc"
# Do not use outdated version name of pandoc
sed -E -e '/PANDOC_VERSION/s/2.[0-9]+/current/' -i "cmake/globals.cmake"
# Suppress _FORTIFY_SOURCE mismatch warnings
sed -i 's/D_FORTIFY_SOURCE=2/D_FORTIFY_SOURCE=3/' "src/cpp/CMakeLists.txt"
# fix npm/node paths
sed -E -e 's&set\(RSTUDIO_NODE_PATH .*\)&set(RSTUDIO_NODE_PATH "/usr/bin")&' \
-i cmake/globals.cmake
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"
sed -E -e 's&^external-node-path=.*$&external-node-path=/usr/bin/node&' \
-i src/cpp/conf/rsession-dev.conf
sed -E -e 's&DIRECTORY "\$\{RSTUDIO_DEPENDENCIES_DIR\}/common/node/\$\{RSTUDIO_INSTALLED_NODE_VERSION\}-patched/"&DIRECTORY "/usr"&' \
-e 's&(# install node)&\1\nif(FALSE)&' \
-e 's&(# install quarto)&endif()\n\1&' \
-i src/cpp/session/CMakeLists.txt
sed -E -e 's&"\S+/common/node/\S+"&"/usr"&' \
-i src/cpp/session/SessionOptions.cpp
sed -E -e '/"node\.version"/s&value="[0-9\.]+"&value="Current"&' \
-e '/"node\.dir"/s&value="\S+"&value="/usr"&' \
-e 's&"\S+/common/node/\S+/bin/yarn"&"/usr/bin/yarn"&' \
-i src/gwt/build.xml
sed -E -e 's&PATHS "/opt/rstudio-tools/dependencies/common/node/\$\{RSTUDIO_NODE_VERSION\}"&PATHS "'"${_npm_path}"'"&' \
-e 's&"\S+CMAKE_CURRENT_LIST_DIR\S+/dependencies/common/node/\S+"&"'"${_npm_path}"'"&g' \
-e 's&set\(RSTUDIO_NODE_VERSION "[0-9\.]+"\)&set(RSTUDIO_NODE_VERSION "Current")&' \
-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
# fix boost 1.86 incompatibility
sed -E -e 's&return afterResponse_;&return (bool)afterResponse_;&' \
-i src/cpp/core/json/JsonRpc.cpp
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 libs
ln -sfT "$srcdir/soci-$_soci_version" "soci-$_soci_version"
# Panmirror is picked up now from Quarto repo
ln -sfT "$srcdir/quarto" "$srcdir/$_pkgsrc/src/gwt/lib/quarto"
)
build() (
_nvm_env
_run_if_exists _build_soci
# 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
local _ldflags=(
-L"$srcdir/$_pkgsrc/dependencies/soci-$_soci_version/build/lib"
)
export LDFLAGS+=" ${_ldflags[@]}"
cd "${srcdir}"
echo "Downloading and installing R packages..."
export R_LIBS_USER="$srcdir/$_pkgsrc/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
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="${_commit::7}"
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 _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_NODE_VERSION="Current"
-DRSTUDIO_INSTALLED_NODE_VERSION="Current"
-DQUARTO_ENABLED=${_quarto}
-DRSTUDIO_UNIT_TESTS_ENABLED=OFF
-DBUILD_TESTING=OFF
-Wno-dev
)
cmake "${_opts_rstudio[@]}"
cmake --build build
)
package() {
DESTDIR="$pkgdir" cmake --install build
# Install the program
DESTDIR="${pkgdir}" cmake --install build
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/rstudio" << END
#!/usr/bin/env bash
# Install the license
install -Dm 644 "${srcdir}/${_srcname}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
# See following script for potentially useful flags.
# https://github.com/ozankiratli/dotfiles/blob/master/.config/sway/scripts/rstudio-wayland
# Symlink main binary
install -d "${pkgdir}/usr/bin"
ln -s "/usr/lib/rstudio/bin/rstudio" "${pkgdir}/usr/bin/rstudio"
#!/usr/bin/bash
# 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"
name=rstudio
flags_file="\${XDG_CONFIG_HOME:-\$HOME/.config}/\${name}-flags.conf"
fallback_file="\${XDG_CONFIG_HOME:-\$HOME/.config}/electron-flags.conf"
lines=()
if [[ -f "\${flags_file}" ]]; then
mapfile -t lines < "\${flags_file}"
elif [[ -f "\${fallback_file}" ]]; then
mapfile -t lines < "\${fallback_file}"
fi
flags=()
for line in "\${lines[@]}"; do
if [[ ! "\${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "\${line}" ]]; then
flags+=("\${line}")
fi
done
: \${ELECTRON_IS_DEV:=0}
export ELECTRON_IS_DEV
: \${ELECTRON_FORCE_IS_PACKAGED:=true}
export ELECTRON_FORCE_IS_PACKAGED
exec /usr/lib/rstudio/rstudio "\${flags[@]}" "\$@"
END
}
_run_if_exists() {
if declare -F "$1" > /dev/null; then
eval "$1"
fi
}

View file

@ -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/