diff --git a/.SRCINFO b/.SRCINFO index 913c250d55791..b630770790f9b 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -2,12 +2,13 @@ pkgbase = rstudio-desktop pkgdesc = A powerful and productive integrated development environment (IDE) for R programming language pkgver = 2024.04.1.748 pkgrel = 4 - url = https://www.rstudio.com/products/rstudio/ + url = https://github.com/rstudio/rstudio arch = x86_64 - license = AGPL3 + license = AGPL-3.0-only makedepends = git makedepends = cmake>=3.29 makedepends = boost + makedepends = ninja makedepends = desktop-file-utils makedepends = jdk8-openjdk makedepends = apache-ant @@ -41,15 +42,11 @@ pkgbase = rstudio-desktop 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-pandoc_version.patch source = 0002-allow_system_node.patch - source = 0003-fortify_source.patch sha256sums = 5c1190ae22e3a25740727ff1f341ef568f47359a0d1358958ec22f7e5b59b75b sha256sums = SKIP sha256sums = 4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928 sha256sums = 723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921 - sha256sums = 286925c442c1818979714feeec1577f03ae8a3527d2478b0f55238e2272a0b9e sha256sums = ad4bd3076ff2bff7d075e3928a7e55c618fa744e3bf5d3d387bf70e01ff96c2f - sha256sums = c657f75f26f95c5dae3a3f5605305af2f47954a9d266de8ffc8fc2f0b47e8bd4 pkgname = rstudio-desktop diff --git a/0001-pandoc_version.patch b/0001-pandoc_version.patch deleted file mode 100644 index c3110a0517692..0000000000000 --- a/0001-pandoc_version.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- rstudio-2022.07.0-548/CMakeGlobals.txt 2022-07-07 07:59:49.000000000 +1200 -+++ rstudio-2022.07.0-548.patched/CMakeGlobals.txt 2022-07-08 09:24:27.069195093 +1200 -@@ -231,7 +231,7 @@ - endif() - - # pandoc version --set(PANDOC_VERSION "2.18" CACHE INTERNAL "Pandoc version") -+set(PANDOC_VERSION "current" CACHE INTERNAL "Pandoc version") - - # detect Centos 7, because we don't support Quarto on Centos7 - set(IS_CENTOS7 FALSE) diff --git a/0003-fortify_source.patch b/0003-fortify_source.patch deleted file mode 100644 index fd0b308e8567f..0000000000000 --- a/0003-fortify_source.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru a/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt b/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt ---- a/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt 2024-05-07 06:31:08.000000000 +1200 -+++ b/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt 2024-05-28 17:44:46.567294045 +1200 -@@ -139,7 +139,7 @@ - # gcc hardending options (see: http://wiki.debian.org/Hardening) - if(NOT APPLE) - add_definitions(-Wformat -Wformat-security) -- add_definitions(-D_FORTIFY_SOURCE=2) -+ add_definitions(-D_FORTIFY_SOURCE=3) - add_definitions(-fstack-protector-strong) - add_definitions(-fPIC) - if(CMAKE_BUILD_TYPE STREQUAL Debug) diff --git a/PKGBUILD b/PKGBUILD index b43fa3172abd5..da9ecc2226f21 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -16,10 +16,10 @@ _quarto="FALSE" pkgrel=4 pkgdesc="A powerful and productive integrated development environment (IDE) for R programming language" arch=('x86_64') -url="https://www.rstudio.com/products/rstudio/" -license=('AGPL3') +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' 'desktop-file-utils' 'jdk8-openjdk' 'apache-ant' 'unzip' 'openssl' 'libcups' 'pam' 'patchelf' 'wget' 'yarn') +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' @@ -29,31 +29,27 @@ source=("rstudio-$pkgver.tar.gz::https://github.com/rstudio/rstudio/archive/refs "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-pandoc_version.patch" - "0002-allow_system_node.patch" - "0003-fortify_source.patch") + "0002-allow_system_node.patch") sha256sums=('5c1190ae22e3a25740727ff1f341ef568f47359a0d1358958ec22f7e5b59b75b' 'SKIP' '4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928' '723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921' - '286925c442c1818979714feeec1577f03ae8a3527d2478b0f55238e2272a0b9e' - 'ad4bd3076ff2bff7d075e3928a7e55c618fa744e3bf5d3d387bf70e01ff96c2f' - 'c657f75f26f95c5dae3a3f5605305af2f47954a9d266de8ffc8fc2f0b47e8bd4') + 'ad4bd3076ff2bff7d075e3928a7e55c618fa744e3bf5d3d387bf70e01ff96c2f') options=('!emptydirs' '!debug') prepare() { cd ${srcdir}/${_srcname} - # Do not use outdated version name of pandoc - patch -p1 < ${srcdir}/0001-pandoc_version.patch + 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 - # Suppress _FORTIFY_SOURCE mismatch warnings - patch -p3 < ${srcdir}/0003-fortify_source.patch - cd "${srcdir}/${_srcname}/dependencies/common" install -d pandoc/${_pandocver} @@ -61,20 +57,16 @@ prepare() { ln -sfT /usr/share/mathjax2 mathjax-27 ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/pandoc - # Nodejs - ##install -d node/${_nodever} - ##cp -r "${srcdir}/node-v${_nodever}-linux-x64/"* node/${_nodever} - # 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 now from Quarto repo + # Panmirror is picked up from Quarto repo ln -sfT "${srcdir}/quarto" "${srcdir}/${_srcname}/src/gwt/lib/quarto" - } build() { @@ -95,29 +87,28 @@ build() { fi cd "${srcdir}/${_srcname}/dependencies/soci-${_sociver}" - msg "Buildind SOCI libs" - mkdir build - cd build + msg "Building SOCI libs..." - cmake \ - -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 \ - .. + 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 --build . --target all + 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" @@ -155,22 +146,24 @@ build() { # Following override works for cmake >3.29 export CMAKE_INSTALL_PREFIX=/usr/lib/rstudio - - cmake -S "${srcdir}/${_srcname}" -B build \ - -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 + 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 } package() { # Install the program - make -C build DESTDIR="${pkgdir}" install + DESTDIR="${pkgdir}" cmake --install build # Install the license install -Dm 644 "${srcdir}/${_srcname}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"