summaryrefslogtreecommitdiff
path: root/user/mbuffer
diff options
context:
space:
mode:
Diffstat (limited to 'user/mbuffer')
-rw-r--r--user/mbuffer/APKBUILD39
-rw-r--r--user/mbuffer/clamp-32-bit-parameters.patch39
-rw-r--r--user/mbuffer/test-static-file-instead.patch11
3 files changed, 89 insertions, 0 deletions
diff --git a/user/mbuffer/APKBUILD b/user/mbuffer/APKBUILD
new file mode 100644
index 000000000..3652e22d3
--- /dev/null
+++ b/user/mbuffer/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: CyberLeo <cyberleo@cyberleo.net>
+# Maintainer: CyberLeo <cyberleo@cyberleo.net>
+pkgname=mbuffer
+pkgver=20220418
+pkgrel=1
+pkgdesc="mbuffer is a tool for buffering data streams."
+url="https://www.maier-komor.de/mbuffer.html"
+arch="all"
+license="GPL-3.0-only"
+depends=""
+makedepends="cmd:which openssl-dev"
+subpackages="$pkgname-doc"
+source="https://www.maier-komor.de/software/$pkgname/$pkgname-$pkgver.tgz
+ test-static-file-instead.patch
+ clamp-32-bit-parameters.patch
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="aad7f764c82e3bdd4ee3fc5ac8174e716fd44cdb0418f1994d3f506d2e58264a13e15596bc8e78e9e8bb2d181875294448085bab122a2a31356d4336bb8b54a4 mbuffer-20220418.tgz
+28b7c7c7ee2b2130315cd6c4765d492e9d29376670a03ab0a1ab862a1ec5dea93e91e9de5e08604db69fe4139370eedb2a0754f16e5ebec3de9b48dc2a1dbea7 test-static-file-instead.patch
+73a8a854c8f1aae866abf2b52aa5fc2d276dd5a0cc8595e176bb852e731ba4b310833a9b58260b323abf413b0fec74bdb39f89d708ffb81fc5ea82680c535268 clamp-32-bit-parameters.patch"
diff --git a/user/mbuffer/clamp-32-bit-parameters.patch b/user/mbuffer/clamp-32-bit-parameters.patch
new file mode 100644
index 000000000..3dc2d0eac
--- /dev/null
+++ b/user/mbuffer/clamp-32-bit-parameters.patch
@@ -0,0 +1,39 @@
+In addition to clamping NumP and AvP, this patch reorders
+shift operations to prevent possible overflow when given
+values that are found in some environments where a 64-bit
+system is running with a 32-bit personality.
+
+It should not be construed as fixing any bug in mbuffer.
+
+--- a/mbuffer.c
++++ b/mbuffer.c
+@@ -984,7 +984,14 @@
+
+ /* get physical memory size */
+ #if defined(_SC_PHYS_PAGES)
+- NumP = sysconf(_SC_PHYS_PAGES);
++ if (sizeof(void *) == 4)
++ {
++ NumP = (unsigned)-1 / PgSz; /* 4GB worth of pages */
++ }
++ else
++ {
++ NumP = sysconf(_SC_PHYS_PAGES);
++ }
+ if (NumP < 0) {
+ warningmsg("unable to determine number of total memory pages: %s\n",strerror(errno));
+ NumP = 0;
+@@ -1004,8 +1011,12 @@
+ char *at = strstr(tmp,"MemAvailable:");
+ if (at) {
+ AvP = strtol(at+13,0,0);
+- AvP <<= 10;
+ AvP /= PgSz;
++ AvP <<= 10;
++ if (sizeof(void *) == 4 && AvP > NumP)
++ {
++ AvP = NumP;
++ }
+ debugmsg("available memory: %lu pages\n",AvP);
+ }
+ }
diff --git a/user/mbuffer/test-static-file-instead.patch b/user/mbuffer/test-static-file-instead.patch
new file mode 100644
index 000000000..9c549bfaa
--- /dev/null
+++ b/user/mbuffer/test-static-file-instead.patch
@@ -0,0 +1,11 @@
+--- mbuffer-20200929/Makefile.in.orig 2020-11-08 07:47:44.512670020 +0000
++++ mbuffer-20200929/Makefile.in 2020-11-08 07:48:33.032115323 +0000
+@@ -101,7 +101,7 @@
+ test.tar test.md5 mbuffer.md5 idev.so tapetest.so have-af
+
+ test.tar:
+- $(TAR) cf test.tar --ignore-failed-read $(TESTTREE)
++ truncate -s 10M test.tar
+
+ test.md5: test.tar
+ openssl md5 < test.tar > test.md5