aboutsummaryrefslogtreecommitdiffstats
path: root/community/cloudi/APKBUILD
blob: 1f112345c6faa73bc02a750572d1e34cb8d8a608 (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
136
137
138
139
# Contributor: Michael Truog <mjtruog@protonmail.com>
# Maintainer: Michael Truog <mjtruog@protonmail.com>
#
# INFO
#
# Why is the cloudi.initd file not using the openrc default start-stop-daemon?
#
#   With the Erlang VM it is possible to use the -heart erl command line
#   argument (which is possible with cloudi configuration of the
#   /etc/cloudi/vm.args file).  To allow the use of the heartbeat monitoring
#   of the Erlang runtime system, it is necessary to rely upon the cloudi
#   script for handling the cloudi pid and not utilize openrc for pidfile
#   creation or signal-based termination.
#
#   With a typical Erlang VM release, it is normally expected to provide
#   the ability to attach to the Erlang VM shell of the running node using
#   pipes.  The setup of the Erlang VM shell pipes needs to be handled with
#   Erlang VM execution that also handles detaching the daemon process.
#   If the openrc default start-stop-daemon execution was used instead,
#   it would not be possible to easily setup the Erlang VM shell pipes.
#
#   The termination of cloudi utilizes a 65000 millisecond timeout, allowing
#   all services a maximum of 60000 milliseconds for termination with
#   5000 millisecond for internal Erlang VM delays.  The cloudi script does
#   block for this termination to complete.
#
#   The pid file path is set during the configuration step
#   (shown below with the assignment of CLOUDI_PID_FILE).

pkgname=cloudi
pkgver=1.7.4
pkgrel=1
pkgdesc="Cloud computing framework for efficient, scalable, and stable soft-realtime event processing."
url="https://cloudi.org/"
license="MIT"
arch="all !s390x"
depends="erlang
         g++"
makedepends="autoconf
             automake
             binutils-dev
             boost-dev
             boost-system
             boost-thread
             erlang-asn1
             erlang-common-test
             erlang-crypto
             erlang-dev
             erlang-erl-interface
             erlang-eunit
             erlang-inets
             erlang-jinterface
             erlang-public-key
             erlang-reltool
             erlang-sasl
             erlang-snmp
             erlang-ssh
             erlang-ssl
             erlang-syntax-tools
             erlang-tools
             erlang-xmerl
             gmp-dev
             go
             libexecinfo-dev
             libtool
             nodejs
             openjdk8
             perl
             php7
             python3
             python3-dev
             ruby
             "
install=""
subpackages=""
source="https://osdn.net/dl/$pkgname/$pkgname-$pkgver.tar.gz
        0005-Disable-tests-for-aports-buildservers.patch
	0001-Fix-autoconf-Erlang-version-check.patch
        $pkgname.initd"
builddir="$srcdir/cloudi-$pkgver/src"

# configure additional dependencies based on the package architecture
CONFIGURE_ARGS=""
# Enable OCaml on the appropriate architectures
case "$CTARGET_ARCH" in
x86 | armhf | s390x)
	;;
*)
	makedepends="$makedepends ocaml"
	CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-ocaml-support"
	;;
esac
case "$CTARGET_ARCH" in
x86_64)
	makedepends="$makedepends ghc cabal zlib-dev"
	CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-haskell-support"
	;;
esac

prepare() {
	cd "$builddir"
	default_prepare
	./autogen.sh
}

build() {
	cd "$builddir"
	export PATH="/usr/lib/jvm/java-1.8-openjdk/bin:$PATH"
	LIBS="-lexecinfo" CLOUDI_PID_FILE="/run/cloudi.pid" ./configure \
		--prefix=/usr \
		--sysconfdir=/etc \
		--localstatedir=/var \
		--bindir=/usr/sbin \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--host="$CHOST" \
		--build="$CBUILD" \
		--with-cxx-backtrace \
		--with-python-version=3 \
		--enable-go-support $CONFIGURE_ARGS
	make
}

check() {
	cd "$builddir"
	make ct
}

package() {
	cd "$builddir"
	make DESTDIR="$pkgdir" install
	install -m755 -D "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname
}

sha512sums="4215b47a696eb89dbba32f3b607e2cec756635544f6d80ddcd87c783f881b403a5700701a3c11df14f67bb1cca5af88830a144630fc1206dbe06285c7dc13f1a  cloudi-1.7.4.tar.gz
b2ef0cf07e207cbe62a34edb69ac4700bd5a75d9924e6597595e69f0988772d833d6af882cfa40278c9efe4b042da2952f9b7276b3c80c4b015b0c1490782b59  0005-Disable-tests-for-aports-buildservers.patch
c57ae763f4a5aa29b24bf92e255414de2e22a6b8114b322096be8e59c3af725a8b94802efb11c7c67945c46920183e454c6c55103004c3a0b9e8727f82307b17  0001-Fix-autoconf-Erlang-version-check.patch
053f860f656617012208a0e1909e43b2f8979d381a90d3fa5a745a9cf5021fe54556a641fef2badaa9955f2394d00e32183389cb9b501169dcbf8cbe4fbb0329  cloudi.initd"