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"
}
|