summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 3fce9d99569bf3f2a14bfff1b2b2028c6166b6cc (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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Maintainer: Alexander Phinikarides (alexisph -at- gmail -dot- com)

pkgname=microsoft-r-open
pkgver=4.0.2
pkgrel=1
_majorver=4.0
_mrandate=2020-07-16
pkgdesc="Language and environment for statistical computing and graphics, enhanced by Microsoft"
arch=('x86_64')
license=('GPL')
url='https://mran.revolutionanalytics.com/open/'
provides=("r=${pkgver}")
conflicts=('r' 'r-mkl')
depends=('bzip2'
         'curl'
         'desktop-file-utils'
         'gcc-libs'
         'icu60'
         'libjpeg'
         'libpng'
         'libpng12'
         'libtiff'
         'libxmu'
         'libxt'
         'ncurses5-compat-libs'
         'pango'
         'pcre'
         'perl'
         'readline'
         'unzip'
         'xz'
         'zip'
         'zlib')
makedepends=('java-environment'
             'gcc-fortran'
             'tk')
optdepends=('tk: tcl/tk interface'
            'texlive-bin: latex sty files')
backup=('etc/R/Makeconf'
        'etc/R/Renviron'
        'etc/R/ldpaths'
        'etc/R/repositories'
        'etc/R/javaconf')
options=('!emptydirs')
install=microsoft-r-open.install
source=("https://mran.blob.core.windows.net/install/mro/${pkgver}/Rhel/microsoft-r-open-${pkgver}.tar.gz"
        'mro.desktop'
        'mro.png'
        'R.conf')
md5sums=('ab6dd10b93d265361ebacc8141cd8373'
         '70e8f9d0b1eebeb1f0b45f4568bc0701'
         '8e0c51650b8a63f110fa7b09e699e9c4'
         '1dfa62c812aed9642f6e4ac34999b9fe')
sha512sums=('4ee8448a59b2848d6d2b22fbc8d9922b56bff4b93a2ef12074b9271989c683f1e0e155efda234e0ed58b18c6659835100ebebb224af3dd943661dca64f36c52b'
            '2b0221bd1e0fdd399284333e6f2020bb9ad11395ad39dd2fca688b7ebc68fbbc60de59a757e1898be8bcd9e2926afccc121043f38445e7693f177c3076f92b61'
            '1491b01d3d14b86d26c383e00e2305858a52ddd498158c9f7f6b33026ee01f246408b1676cffea73f7783c8c4cf546285705c43c0286adbd75ad77706918b5fe'
            'aae388c5b6c02d9fb857914032b0cd7d68a9f21e30c39ba11f5a29aaf1d742545482054b57ce18872eabb6605bbb359b2fc1e9be5ce6881443fdbdf6b67fab3b')

prepare() {
  cd ${pkgname}
  # extract rpms
  bsdtar -xf "rpm/rhel/${pkgname}-mro-${pkgver}.rpm"
  bsdtar -xf "rpm/rhel/${pkgname}-mkl-${pkgver}.rpm"
  bsdtar -xf "rpm/rhel/${pkgname}-sparklyr-${pkgver}.rpm"
}

package() {
  cd ${pkgname}
  mv opt/microsoft/ropen/${pkgver}/lib64 opt/microsoft/ropen/${pkgver}/lib
  mv opt/microsoft/ropen/${pkgver} "${pkgdir}/usr"

  # Install MKL libs
  install -d "${pkgdir}/usr/lib/R/backup/lib"
  mv ${pkgdir}/usr/lib/R/lib/*.so "${pkgdir}/usr/lib/R/backup/lib"
  install -Dm644 "${pkgdir}/usr/lib/R/backup/lib/libR.so" "${pkgdir}/usr/lib/R/lib/libR.so"
  install -Dm644 ${pkgdir}/usr/stage/Linux/bin/x64/*.so "${pkgdir}/usr/lib/R/lib"
  rm -rf ${pkgdir}/usr/stage

  # Link R binaries to system path
  install -d "${pkgdir}/usr/bin"
  cd "${pkgdir}/usr/bin"
  ln -s ../lib/R/bin/R
  ln -s ../lib/R/bin/Rscript

  # Create etc config directory
  install -d "${pkgdir}/etc/R"
  cd "${pkgdir}/usr/lib/R/etc"
  for i in *; do
    mv -f ${i} "${pkgdir}/etc/R"
    ln -s /etc/R/${i} ${i}
  done

  # Ensure other applications can access the shared libs
  install -Dm644 "${srcdir}/R.conf" "${pkgdir}/etc/ld.so.conf.d/R.conf"

  # Install pkgconfig file
  cd "${pkgdir}/usr/lib/"
  sed -i "s|rhome=.*$|rhome=/usr/lib/R|" pkgconfig/libR.pc
  sed -i "s|rincludedir=.*$|rincludedir=/usr/include/R|" pkgconfig/libR.pc
  sed -i "s|-L/builddir/vendor/build/lib||" pkgconfig/libR.pc

  # Install header files
  install -d "${pkgdir}/usr/include/R"
  cp -r ${pkgdir}/usr/lib/R/include/* "${pkgdir}/usr/include/R/"

  # Install man pages
  cd "${pkgdir}/usr/share/man/man1"
  gzip -9 *

  # Install shared files
  install -d "${pkgdir}/usr/share/R"
  cp -r "${pkgdir}/usr/lib/R/share/dictionaries" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/encodings" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/java" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/licenses" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/make" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/R" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/Rd" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/sh" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/tcl8.6" "${pkgdir}/usr/share/R/"
  cp -r "${pkgdir}/usr/lib/R/share/tk8.6" "${pkgdir}/usr/share/R/"
  # LaTeX templates
  cp -r "${pkgdir}/usr/lib/R/share/texmf" "${pkgdir}/usr/share/"

  # Install docs
  install -d "${pkgdir}/usr/share/doc/R"
  cp -r ${pkgdir}/usr/lib/R/doc/* "${pkgdir}/usr/share/doc/R/"
  # Copy EULAs
  install -m644 ${srcdir}/${pkgname}/*.txt "${pkgdir}/usr/share/doc/R/"

  # Install freedesktop.org compatibility
  install -Dm644 "${srcdir}/mro.desktop" "${pkgdir}/usr/share/applications/mro.desktop"
  install -Dm644 "${srcdir}/mro.png" "${pkgdir}/usr/share/pixmaps/mro.png"
}