summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b6e9fba1785d21a0b64a2356cfa72a5e6edf8988 (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
# Maintainer: Pekka Ristola <pekkarr [at] protonmail [dot] com>
# Contributor: Guoyi Zhang <guoyizhang at malacology dot net>
# Contributor: Alex Branham <branham@utexas.edu>
# Contributor: Phil Schaf <flying-sheep@web.de>
# Contributor: Oleg Smirnov <oleg.smirnov@gmail.com>

_pkgname=igraph
_pkgver=2.3.3
pkgname=r-${_pkgname,,}
pkgver=${_pkgver//-/.}
pkgrel=1
pkgdesc="Network Analysis and Visualization"
arch=(x86_64)
url="https://cran.r-project.org/package=$_pkgname"
license=('GPL-2.0-or-later')
depends=(
  blas
  glpk
  gmp
  lapack
  libxml2
  r-cli
  r-lifecycle
  r-magrittr
  r-pkgconfig
  r-rlang
  r-vctrs
  util-linux-libs
)
makedepends=(
  gcc-fortran
  r-cpp11
)
checkdepends=(
  r-graph
  r-rgl
  r-testthat
  r-vdiffr
)
optdepends=(
  r-ape
  r-callr
  r-decor
  r-digest
  r-igraphdata
  r-knitr
  r-rgl
  r-rmarkdown
  r-scales
  r-testthat
  r-vdiffr
  r-withr
)
source=("https://cran.r-project.org/src/contrib/${_pkgname}_${_pkgver}.tar.gz")
#        "igraph-system-libs20251202.patch")
md5sums=('afb847dd9d9cd2c0606573ebe214393d')
b2sums=('152b5a932858244cb3c8d692fa8fbd1aad5f283f18e41fb32d848ebb17a75a45c49a4d2a58c722a1009b2f301092684ffe2744c4b9ed2886debf81dc53131218')
#         '4f7de12ace8af846bafcfe0358f00dd3')
#        '1570ec5fd587860871962d5bf7a2c718b52e6b904a41d084f0df911f289d743bca51d6acc3d7e75f4faebeeb812cf869b2fb2eec20651f6b4ebb854e0935cb36')

#prepare() {
  # Build using system libraries
#  patch -Np1 -i igraph-system-libs20251202.patch
#}

prepare() {
  # Instead of patching, modify files directly with sed

  # 1. In igraph/configure: Remove ${MINI_GMP_SOURCES}
  sed -i "s/OBJECTS='\${IGRAPH_SOURCES} \${GLUE_C_SOURCES} \${GLUE_CPP_SOURCES} \${MINI_GMP_SOURCES}'/OBJECTS='\${IGRAPH_SOURCES} \${GLUE_C_SOURCES} \${GLUE_CPP_SOURCES}'/" igraph/configure

  # 2. In igraph/src/Makevars.in: Add -I/usr/include/uuid to PKG_CPPFLAGS
  sed -i 's|PKG_CPPFLAGS=-DUSING_R -I\. -Ivendor|PKG_CPPFLAGS=-DUSING_R -I/usr/include/uuid -I. -Ivendor|' igraph/src/Makevars.in

  # 3. In igraph/src/Makevars.in: Add -lgmp -luuid to PKG_LIBS
  sed -i 's|PKG_LIBS = @libs@ $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)|PKG_LIBS = @libs@ $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -lgmp -luuid|' igraph/src/Makevars.in

  # 4. In igraph/src/vendor/config.h: Remove INTERNAL_GMP definition
  sed -i '/^#define INTERNAL_GMP 1$/d' igraph/src/vendor/config.h

  # 5. In igraph/src/vendor/config.h: Fix indentation for HAVE___UINT128_T
  sed -i 's/^#  define HAVE___UINT128_T 1/#define HAVE___UINT128_T 1/' igraph/src/vendor/config.h
}


build() {
  mkdir build
  R CMD INSTALL -l build "$_pkgname"
}

check() {
  cd "$_pkgname/tests"
  R_LIBS="$srcdir/build" NOT_CRAN=true Rscript --vanilla testthat.R
}

package() {
  install -d "$pkgdir/usr/lib/R/library"
  cp -a --no-preserve=ownership "build/$_pkgname" "$pkgdir/usr/lib/R/library"
}