diff options
Diffstat (limited to 'community')
-rw-r--r-- | community/low-memory-monitor/APKBUILD | 39 | ||||
-rw-r--r-- | community/low-memory-monitor/low-memory-monitor.initd | 18 | ||||
-rw-r--r-- | community/low-memory-monitor/musl.patch | 22 |
3 files changed, 79 insertions, 0 deletions
diff --git a/community/low-memory-monitor/APKBUILD b/community/low-memory-monitor/APKBUILD new file mode 100644 index 0000000000..4c31230ab9 --- /dev/null +++ b/community/low-memory-monitor/APKBUILD @@ -0,0 +1,39 @@ +# Contributor: Leo <thinkabit.ukim@gmail.com> +# Maintainer: Leo <thinkabit.ukim@gmail.com> +pkgname=low-memory-monitor +pkgver=2.0 +pkgrel=1 +pkgdesc="Daemon to monitor memory usage and signal processes and the kernel" +options="!check" # No testsuite +url="https://gitlab.freedesktop.org/hadess/low-memory-monitor" +arch="all" +license="GPL-3.0-or-later" +makedepends="meson glib-dev" +subpackages="$pkgname-openrc" +source="https://gitlab.freedesktop.org/hadess/low-memory-monitor/-/archive/$pkgver/low-memory-monitor-$pkgver.tar.gz + low-memory-monitor.initd + musl.patch + " + +build() { + meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + -Dgtk_doc=false \ + -Dsystemdsystemunitdir=/DELETEME \ + . output + ninja -C output +} + +package() { + DESTDIR="$pkgdir" ninja -C output install + + # Remove systemd service + rm -rf "$pkgdir"/DELETEME + + install -Dm0755 "$srcdir"/low-memory-monitor.initd "$pkgdir"/etc/init.d/low-memory-monitor +} +sha512sums="f63d0ccd9e3978b3321150d03ef9e0df82a4c453116c29d008b64b8133f7cb5c32874d4f6400384bd22b5530c761327b50e252c2ff171061e0338bc9ccc8daee low-memory-monitor-2.0.tar.gz +3a214208355d138365af14d90ea790e49e04c3e3fb979796d6ce8f49c116212f1c98edaf05eb346ff033dd14a3d489d2f79a2844a572c5bc8e075f33958ac094 low-memory-monitor.initd +7cd0bfa4e2b374a3b7d252a18fc83ff4ecbd52d22c40e406e10ba776daad80e7dc3d3c339b556a89a97786fe541e2aff7f32097aed5473a069612344d981ab23 musl.patch" diff --git a/community/low-memory-monitor/low-memory-monitor.initd b/community/low-memory-monitor/low-memory-monitor.initd new file mode 100644 index 0000000000..62f39560d3 --- /dev/null +++ b/community/low-memory-monitor/low-memory-monitor.initd @@ -0,0 +1,18 @@ +#!/sbin/openrc-run +supervisor=supervise-daemon + +name="Low Memory Monitor" +description="Read memory pressure information and signal user processes and kernel OOM accordingly" + +command=/usr/libexec/low-memory-monitor + +depend() { + need localmount +} + +start_pre() { + # We need /proc/pressure directory that contains information about memory + # pressure. this requires CONFIG_PSI=y, if CONFIG_PSI_DEFAULT_DISABLED is + # also used then you need to pass psi=1 on the kernel cmdline + checkpath --directory /proc/pressure +} diff --git a/community/low-memory-monitor/musl.patch b/community/low-memory-monitor/musl.patch new file mode 100644 index 0000000000..b2faac74dd --- /dev/null +++ b/community/low-memory-monitor/musl.patch @@ -0,0 +1,22 @@ +diff --git a/src/memory-pressure-monitor.c b/src/memory-pressure-monitor.c +index f59af0a..0863c13 100644 +--- a/src/memory-pressure-monitor.c ++++ b/src/memory-pressure-monitor.c +@@ -12,6 +12,16 @@ + #include <glib-unix.h> + #include <errno.h> + ++/* taken from glibc unistd.h and fixes musl */ ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) \ ++ (__extension__ \ ++ ({ long int __result; \ ++ do __result = (long int) (expression); \ ++ while (__result == -1L && errno == EINTR); \ ++ __result; })) ++#endif ++ + /* Constants */ + #define MEMORY_PRESSURE_PATH "/proc/pressure/memory" + + |