blob: cabe69415d38f80661f9173de82b563fc0e75629 (
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
|
# Maintainer: Bipin Kumar <kbipinkumar@pm.me>
# Previous Maintainer: Clint Valentine <valentine.clint@gmail.com>
pkgname=snpeff
_pkgname=SnpEff
_pkg2=SnpSift
pkgver=5.4c
_pkgver2=5.4b
pkgrel=3
pkgdesc="Genetic variant annotation and effect prediction toolbox. doi:10.4161/fly.19695"
arch=('any')
url="https://pcingola.github.io/SnpEff/"
provides=('SnpSift')
license=('MIT')
depends=('java-runtime>=21' 'python' 'perl' 'antlr4')
makedepends=('maven' 'java-environment>=21' 'git')
source=("$_pkgname-$pkgver.tar.gz::https://github.com/pcingola/SnpEff/archive/refs/tags/v$pkgver.tar.gz"
"$_pkg2-${_pkgver2}.tar.gz::https://github.com/pcingola/SnpSift/archive/refs/tags/v${_pkgver2}.tar.gz"
"https.patch::https://patch-diff.githubusercontent.com/raw/pcingola/SnpSift/pull/84.patch"
"snpSift.sh"
"snpEff.sh"
)
sha512sums=('01b2958af4e48da7939b33b6936dd2339461c0452a5a68abe09b45f33452910bd812b0274db4d2dc0057f32d6e441b72d2d6bf0817af2131091099c94d72695b'
'93edac1813220045330d571576f17554d31323db59af8fc23012f18cd015be20c533014e4cb9748b5349ab0941db58443c6730164dd4b35eb5602fbd9168daa6'
'eb802167761ea7de0b7fdb60b0cc9440d40ea21fe6ed164dc900452e224d71039a8e187e1b7a6499b91338580378c33aa678a23b81f3e27f0f939a4cd3ef6a0c'
'a4efd1aa0418ed5b156b5f85c6299bd3d3e2422364446ee5cb58d827f60512b7bfc8c44b23add54795ccd093c104574cd210c552a5c978c8d11195f38ad29d43'
'53304f77ba01ad45008ca0b86f84e9797093abc09e0b72689bbb14c0b876aac77be19ffe2a968ce9958d776c1aa29aa056d1faba04609f9a53dfca7b26b00884')
prepare() {
cd "${srcdir}/$_pkgname-$pkgver"
# add correct version in pom.xml of SnpEff
sed -i "6s/\(<version>\).*\(<\/version>\)/\1${pkgver}\2/g" pom.xml
# fix pom.xml of SnpSift
cd "${srcdir}/$_pkg2-${_pkgver2}"
## fix http sources for dependencies
patch -p1 < ${srcdir}/https.patch
## add correct version
sed -i "6s/\(<version>\).*\(<\/version>\)/\1${_pkgver2}\2/g" pom.xml
## set correct snpeff version as dependency
export snpver=$(sed -n '41p' pom.xml | cut -d '>' -f 2 | cut -d '<' -f 1)
sed -i "41s/${snpver}/[${pkgver},)/g" pom.xml
}
build() {
# Find a suitable Java compiler (requires JDK >= 21)
local java_home=""
if [ -x /usr/bin/javac ]; then
local default_ver=$(javac -version 2>&1 | cut -d' ' -f2 | cut -d. -f1)
if [ -n "$default_ver" ] && [ "$default_ver" -ge 21 ]; then
java_home="/usr/lib/jvm/default"
fi
fi
if [ -z "$java_home" ]; then
for jvm in /usr/lib/jvm/java-*-openjdk /usr/lib/jvm/java-*; do
if [ -x "$jvm/bin/javac" ]; then
local jvm_ver=$(basename "$jvm" | sed -E 's/java-([0-9]+)-.*/\1/')
case "$jvm_ver" in
[0-9]*)
if [ "$jvm_ver" -ge 21 ]; then
java_home="$jvm"
break
fi
;;
esac
fi
done
fi
if [ -z "$java_home" ]; then
echo "No Java Development Kit (JDK) >= 21 found to build this package." >&2
return 1
fi
echo "Using JDK: $java_home"
export JAVA_HOME="$java_home"
export PATH="$JAVA_HOME/bin:$PATH"
# Build SnpEff
cd "${srcdir}/$_pkgname-$pkgver"
mvn -e clean compile assembly:single jar:jar
# Install SnpEff.jar file in local Maven repo as dependency for building SnpSift
mvn install:install-file \
-Dfile=target/SnpEff-${pkgver}.jar \
-DgroupId=org.snpeff \
-DartifactId=SnpEff \
-Dversion=$pkgver \
-Dpackaging=jar \
-DgeneratePom=true \
--quiet
# Build SnpSift
cd "${srcdir}/$_pkg2-${_pkgver2}"
mvn -e clean compile assembly:single jar:jar
}
package() {
install -Dm644 ${srcdir}/$_pkgname-$pkgver/target/SnpEff-${pkgver}-jar-with-dependencies.jar "${pkgdir}"/usr/share/java/snpEff/snpEff.jar
install -Dm644 ${srcdir}/$_pkg2-${_pkgver2}/target/SnpSift-${_pkgver2}-jar-with-dependencies.jar "${pkgdir}"/usr/share/java/snpEff/snpSift.jar
install -Dm644 ${srcdir}/$_pkgname-$pkgver/config/snpEff.config "${pkgdir}"/usr/share/java/snpEff/snpEff.config
install -Dm644 ${srcdir}/$_pkgname-$pkgver/LICENSE.md "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
install -Dm755 snpEff.sh "${pkgdir}"/usr/bin/snpeff
install -Dm755 snpSift.sh "${pkgdir}"/usr/bin/snpsift
}
|