summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/haveged/APKBUILD51
-rw-r--r--user/haveged/fix-cpu-cache-size-detection.patch15
-rw-r--r--user/haveged/haveged.confd5
-rw-r--r--user/haveged/haveged.initd11
4 files changed, 82 insertions, 0 deletions
diff --git a/user/haveged/APKBUILD b/user/haveged/APKBUILD
new file mode 100644
index 000000000..7a40a3fc4
--- /dev/null
+++ b/user/haveged/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Contributor: Danilo Godec <danilo.godec@agenda.si>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: multiplexd <multi@in-addr.xyz>
+pkgname=haveged
+pkgver=1.9.4
+pkgrel=1
+pkgdesc="Entropy harvesting daemon using CPU timings"
+url="http://www.issihosts.com/haveged/"
+arch="all"
+license="GPL-3.0+"
+subpackages="$pkgname-doc $pkgname-openrc"
+makedepends="linux-headers"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jirka-h/haveged/archive/$pkgver.tar.gz
+ fix-cpu-cache-size-detection.patch
+ haveged.initd
+ haveged.confd"
+
+build() {
+ cd "$builddir"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+package() {
+ cd "$builddir"
+
+ make DESTDIR="$pkgdir" install
+
+ rm "$pkgdir"/usr/lib/libhavege.la
+
+ install -Dm755 "$srcdir"/haveged.initd \
+ "$pkgdir"/etc/init.d/haveged
+ install -Dm644 "$srcdir"/haveged.confd \
+ "$pkgdir"/etc/conf.d/haveged
+}
+
+sha512sums="20017c7637779c0cfa414233bb67efb2976f92c08e4eb1b7ea41ccd483dad755629d8e05fb8560a2db811fc2ded7d05fa081ab10c59341cb4c206595a964641d haveged-1.9.4.tar.gz
+6279296b057f19daf25020ac14997268230af4b11510d6e5c4a86989c119d6b081d2501069af198772302d5cce1464514c749033a4928fb95671268825a84ba8 fix-cpu-cache-size-detection.patch
+5d1e4186580951d4e6e01193e9c8827ceddaf3c2e28a981fc9176cb446bed32b059304796a77d9db6fb761a21f8fd27dd3d31e06a0fb7a5985b4ea94978fcd64 haveged.initd
+57201472fc659aaab919562a00d474d3823d5becea62e8b13ef93eda05e1fd667721c968f224fcae871d13cfcd16d1924403d9181e0899fa214fa00bf4fefc75 haveged.confd"
diff --git a/user/haveged/fix-cpu-cache-size-detection.patch b/user/haveged/fix-cpu-cache-size-detection.patch
new file mode 100644
index 000000000..07da2b46d
--- /dev/null
+++ b/user/haveged/fix-cpu-cache-size-detection.patch
@@ -0,0 +1,15 @@
+Some ARM cpus does not report the cache size or say it is -1
+
+diff --git a/src/havegetune.c b/src/havegetune.c
+index f1a99f2..de39c53 100644
+--- a/src/havegetune.c
++++ b/src/havegetune.c
+@@ -795,6 +795,8 @@ static int vfs_configInfoCache(
+ ctype = vfs_configFile(pAnchor, path, vfs_configType);
+ strcpy(path+plen, "size");
+ size = vfs_configFile(pAnchor, path, vfs_configInt);
++ if (size == -1)
++ size = ctype == 'I' ? GENERIC_ICACHE : GENERIC_DCACHE;
+ cfg_cacheAdd(pAnchor, SRC_VFS_INDEX, pArgs[1], level, ctype, size);
+ }
+ }
diff --git a/user/haveged/haveged.confd b/user/haveged/haveged.confd
new file mode 100644
index 000000000..c4c1e0a3b
--- /dev/null
+++ b/user/haveged/haveged.confd
@@ -0,0 +1,5 @@
+# Config file for /etc/init.d/haveged
+
+# Any extra options you want to pass to haveged
+# on start-up should be put here.
+HAVEGED_OPTS="-w 1024"
diff --git a/user/haveged/haveged.initd b/user/haveged/haveged.initd
new file mode 100644
index 000000000..86660e9c3
--- /dev/null
+++ b/user/haveged/haveged.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+command="/usr/sbin/haveged"
+command_args="$HAVEGED_OPTS"
+command_background="yes"
+
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+}