summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: d424a7c356013b5ba071c758aba0601f58240683 (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
# Maintainer: William Tang <galaxyking0419@gmail.com>
# Contributor: Chris Severance <aur.severach@spamgourmet.com>
# Contributor: David Roheim <david.roheim@gmail.com>

pkgname=hadoop
pkgver=3.3.5
pkgrel=2
pkgdesc='An open-source software for reliable, scalable, distributed computing'
arch=('x86_64')
url='https://hadoop.apache.org/'
license=('APACHE')
conflicts=('yarn')
makedepends=('cmake' 'gcc12' 'java-environment=11' 'make' 'maven' 'pkgconfig')
depends=('inetutils' 'java-runtime-headless=11' 'openssh' 'protobuf')

source=("https://github.com/apache/hadoop/archive/refs/tags/rel/release-$pkgver.tar.gz"
        "${pkgname}" "${pkgname}.sh"
        hadoop-{datanode,historyserver,namenode,resourcemanager,secondarynamenode}.service)
sha256sums=('004008d5b730253f20b28443c0aa4c38554ee20c58cf954b0512e6453ef91fbf'
            '1ec173297234b0d587255c1fac978b3929e967146ac542e2e1b44323f80e0bc5'
            '3d20dd2ad1b773e7d4cb855c7556613e36ff56081749fe7b01c6e4fd0c743cc5'
            '876d40b0a2ec9b9cec9b667d7909591ee0ef1acbd5417a0357c33539d8a54e1a'
            'f8f3b3a93a9e455da198ee93a873012399878459e78a3a7de0e396d69e81b61f'
            '3d4aa2a660bd509e658c8109d9e91c00b0f0eee3a2ecab71a4785a76529ea242'
            '2f6b8893a4b4e2ef120193ecfc2d929a8558d2a1c5b0af12e9224342ca90a158'
            'ed1e7f13d2023d49a51dc04c4459d12a53bff258a05b852a3e10a9fd2d18bbb8')

install=$pkgname.install

build() {
    export CC=/usr/bin/gcc-12
    export CXX=/usr/bin/g++-12
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk

    cd hadoop-rel-release-${pkgver}
    mvn package -Pdist,native \
        -Drequire.openssl -Drequire.zstd \
        -Dmaven.javadoc.skip=true -DskipTests
}

package() {
    # Copy files to /usr
    mkdir "$pkgdir"/usr
    mv hadoop-rel-release-$pkgver/hadoop-dist/target/hadoop-$pkgver/* "$pkgdir"/usr/

    # Move sbin files to bin
    cd "$pkgdir"/usr
    mv sbin/* bin/
    rmdir sbin

    # Move native libraries to /usr/lib
    mv lib/native/* lib/
    rmdir lib/native

    # Move license and notice files
    mkdir -p "$pkgdir"/usr/share/licenses/$pkgname/
    mv licenses-binary/* LICENSE* NOTICE* README.txt "$pkgdir"/usr/share/licenses/$pkgname/
    rmdir licenses-binary

    # Remove windows batch files
    rm {etc/hadoop,bin,libexec,share/hadoop/tools/resourceestimator/bin}/*.cmd

    # Move etc directory
    mv "$pkgdir"/usr/etc "$pkgdir"/

    # Install profile script
    cd "$srcdir"
    mkdir "$pkgdir"/etc/profile.d
    cp $pkgname.sh "$pkgdir"/etc/profile.d/

    # Install eviroment file
    mkdir "$pkgdir"/etc/conf.d
    cp $pkgname "$pkgdir"/etc/conf.d/

    # Install systemd service files
    mkdir -p "$pkgdir"/usr/lib/systemd/system
    cp $pkgname-{datanode,historyserver,namenode,resourcemanager,secondarynamenode}.service "$pkgdir"/usr/lib/systemd/system/

    # Create required directories
    mkdir -p "$pkgdir"/var/{lib,log}/hadoop
}