summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 89ef26476bbb7ec3a8a665af7603a322dd0e1b30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Maintainer: Artem Klevtsov <a.a.klevtso@gmail.com>
# Maintainer: Stephen Martin <hwkiller@gmail.com>
# Contributor: Conor Anderson <conor@conr.ca>

pkgname=rstudio-desktop-git
_gitname=rstudio
pkgver=1.4.1103.r898
_gwtver=2.8.2
_ginver=2.1.2
_nodever=10.19.0
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.1' boost-libs qt5-sensors qt5-svg qt5-webengine qt5-xmlpatterns postgresql-libs sqlite3 soci clang hunspell-en_US mathjax2 pandoc yaml-cpp)
makedepends=(git 'cmake>=3.1.0' boost 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')
provides=('rstudio-desktop')
conflicts=('rstudio-desktop' 'rstudio-desktop-bin' 'rstudio-desktop-preview')
source=("git+https://github.com/rstudio/rstudio.git"
        "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-gin/gin-${_ginver}.zip"
        "https://storage.googleapis.com/gwt-releases/gwt-${_gwtver}.zip"
	"https://nodejs.org/dist/v${_nodever}/node-v${_nodever}-linux-x64.tar.gz"
	"qt.conf"
	"cran_multithread.patch")
sha256sums=('SKIP'
            'b98e704164f54be596779696a3fcd11be5785c9907a99ec535ff6e9525ad5f9a'
            '970701dacc55170088f5eb327137cb4a7581ebb4734188dfcc2fad9941745d1b'
            '36d90bc58f0418f31dceda5b18eb260019fcc91e59b0820ffa66700772a8804b'
            '723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921'
            'c907e6eec5ef324ad498b44fb9926bb5baafc4e0778ca01f6ba9b49dd3a2a980')
noextract=("gin-${_ginver}.zip")

pkgver() {
    cd "${srcdir}/${_gitname}"
    git describe --long --tags | sed 's/^v//;s/\([^-]*\)-g.*/r\1/;s/-/./g'
}

prepare() {
    cd ${srcdir}/${_gitname}
    local JOBS; JOBS="$(grep -oP -- "-j\s*\K[0-9]+" <<< "${MAKEFLAGS}")" || JOBS="1"
    sed "s/@@proc_num@@/${JOBS}/" -i ${srcdir}/cran_multithread.patch
    git apply -v ${srcdir}/cran_multithread.patch

    msg "Extracting dependencies..."
    cd "${srcdir}/${_gitname}/src/gwt"
    install -d lib/gin/${_ginver} lib/gwt/${_gwtver}
    unzip -qo "${srcdir}/gin-${_ginver}.zip" -d lib/gin/${_ginver}
    cp -r "${srcdir}/gwt-${_gwtver}/"* lib/gwt/${_gwtver}

    cd "${srcdir}/${_gitname}/dependencies/common"
    _pandocver=$(grep -oP "(?<=PANDOC_VERSION=\").*(?=\"$)" install-pandoc)
    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
    ln -sfT /usr/bin/pandoc-citeproc pandoc/${_pandocver}/pandoc-citeproc

    # Nodejs
    install -d node/${_nodever}
    cp -r "${srcdir}/node-v${_nodever}-linux-x64/"* node/${_nodever}
    cd "${srcdir}/${_gitname}/src/gwt/panmirror/src/editor"
    yarn config set ignore-engines true
    yarn install

    # Fix links for src/cpp/session/CMakeLists.txt
    cd "${srcdir}/${_gitname}/dependencies"
    ln -sfT common/dictionaries dictionaries
    ln -sfT common/mathjax-27 mathjax-27
    ln -sfT common/pandoc pandoc
}

build() {
    msg "Downloading and installing R packages..."
    bash "${srcdir}/${_gitname}"/dependencies/common/install-packages

    export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:${PATH}

    cmake -S "${srcdir}/${_gitname}" -B build \
          -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 \
          -DRSTUDIO_USE_SYSTEM_SOCI=yes \
          -DRSTUDIO_BUNDLE_QT=FALSE
#   make -C build
}

package() {
    # Install the program
    make -C build DESTDIR="${pkgdir}" 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"
}