aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/Makefile1
-rw-r--r--misc/mbuffer/Makefile31
-rw-r--r--misc/mbuffer/distinfo3
-rw-r--r--misc/mbuffer/files/patch-mbuffer.c75
-rw-r--r--misc/mbuffer/pkg-descr12
5 files changed, 122 insertions, 0 deletions
diff --git a/misc/Makefile b/misc/Makefile
index 06ecc28e73c4..1a0b95564385 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -315,6 +315,7 @@
SUBDIR += magicpoint
SUBDIR += man.el
SUBDIR += mango
+ SUBDIR += mbuffer
SUBDIR += mc
SUBDIR += mc-light
SUBDIR += menushki
diff --git a/misc/mbuffer/Makefile b/misc/mbuffer/Makefile
new file mode 100644
index 000000000000..7c633771c7b8
--- /dev/null
+++ b/misc/mbuffer/Makefile
@@ -0,0 +1,31 @@
+# New ports collection makefile for: mbuffer
+# Date created: Dec 14 2006
+# Whom: Rong-En Fan <rafan@FreeBSD.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= mbuffer
+PORTVERSION= 2006.07.28
+CATEGORIES= misc
+MASTER_SITES= http://www.maier-komor.de/software/mbuffer/
+DISTNAME= ${PORTNAME}-${PORTVERSION:S/.//g}
+EXTRACT_SUFX= .tgz
+
+MAINTAINER= rafan@FreeBSD.org
+COMMENT= A tool for buffering data streams
+
+USE_GMAKE= yes
+GNU_CONFIGURE= yes
+
+PLIST_FILES= bin/mbuffer
+
+MAN1= ${PORTNAME}.1
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "amd64" || ${ARCH} == "sparc64" || ${ARCH} == "ia64"
+CFLAGS+= -m64
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/misc/mbuffer/distinfo b/misc/mbuffer/distinfo
new file mode 100644
index 000000000000..183ce66b98d8
--- /dev/null
+++ b/misc/mbuffer/distinfo
@@ -0,0 +1,3 @@
+MD5 (mbuffer-20060728.tgz) = 92310e1e06b248a22b37ad76f13c1339
+SHA256 (mbuffer-20060728.tgz) = b5584ccba77d151e160f1b6ef16ec9690b965a322c05fd7b2dbcfc5a7278691b
+SIZE (mbuffer-20060728.tgz) = 77820
diff --git a/misc/mbuffer/files/patch-mbuffer.c b/misc/mbuffer/files/patch-mbuffer.c
new file mode 100644
index 000000000000..04b2a034199e
--- /dev/null
+++ b/misc/mbuffer/files/patch-mbuffer.c
@@ -0,0 +1,75 @@
+--- mbuffer.c.orig Fri Jul 28 23:05:14 2006
++++ mbuffer.c Mon Dec 18 13:22:57 2006
+@@ -16,15 +16,18 @@
+ #include <stdlib.h>
+ #include <strings.h>
+ #include <string.h>
+-#include <stropts.h>
+ #include <sys/mman.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
++#include <sys/types.h>
++#include <sys/sysctl.h>
+ #include <termios.h>
+ #include <unistd.h>
+
+ #ifdef HAVE_SENDFILE
+-#include <sys/sendfile.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/uio.h>
+ /* if this sendfile implementation does not support sending from buffers,
+ disable sendfile support */
+ #ifndef SFV_FD_SELF
+@@ -1033,11 +1036,13 @@
+ totalmem = calcint(argv,c,totalmem);
+ optMset = 1;
+ if (totalmem < 100) {
+- long pgsz, nump;
++ long pgsz;
++ unsigned long nump;
++ size_t nump_size = sizeof(nump_size);
+ pgsz = sysconf(_SC_PAGESIZE);
+ assert(pgsz > 0);
+- nump = sysconf(_SC_PHYS_PAGES);
+- assert(pgsz > 0);
++ sysctlbyname("hw.availptotals", &nump, &nump_size, NULL, 0);
++ assert(nump > 0);
+ debugmsg("total # of phys pages: %li (pagesize %li)\n",nump,pgsz);
+ totalmem = ((unsigned long long) nump * pgsz * totalmem) / 100 ;
+ }
+@@ -1046,8 +1051,8 @@
+ Numblocks = (atoi(argv[c])) ? ((unsigned long long) atoll(argv[c])) : Numblocks;
+ optBset = 1;
+ debugmsg("Numblocks = %llu\n",Numblocks);
+-#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
+ } else if (!argcheck("-d",argv,&c)) {
++#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
+ setOutsize = 1;
+ debugmsg("setting output size according to the blocksize of the device\n");
+ #else
+@@ -1112,7 +1117,7 @@
+ Status = 0;
+ } else if (!strcmp("-c",argv[c])) {
+ debugmsg("enabling full synchronous I/O\n");
+- OptSync = O_DSYNC;
++ OptSync = O_FSYNC;
+ } else if (!argcheck("-a",argv,&c)) {
+ Autoloader = 1;
+ Autoload_time = atoi(argv[c]);
+@@ -1202,7 +1207,14 @@
+ fatal("multi volume support for input needs an explicit given input device (option -i)\n");
+
+ /* check that we stay within system limits */
+- mxnrsem = sysconf(_SC_SEM_VALUE_MAX);
++ {
++ int semvmx;
++ size_t semvmx_size = sizeof(semvmx);
++ if (sysctlbyname("kern.ipc.semvmx", &semvmx, &semvmx_size, NULL, 0) == -1)
++ mxnrsem = -1;
++ else
++ mxnrsem = semvmx;
++ }
+ if (-1 == mxnrsem) {
+ warningmsg("unable to determine maximum value of semaphores\n");
+ } else if (Numblocks > (unsigned long long) mxnrsem)
diff --git a/misc/mbuffer/pkg-descr b/misc/mbuffer/pkg-descr
new file mode 100644
index 000000000000..4ff7ddaf4ba8
--- /dev/null
+++ b/misc/mbuffer/pkg-descr
@@ -0,0 +1,12 @@
+mbuffer is a tool for buffering data streams. It is also a raplacement
+for buffer with additional functionality:
+
+- display of i/o speed
+- optional use of memory mapped i/o for huge buffer files
+- multithreaded instead of sharedmemory ipc
+- multi-volume support
+- auto-loader support
+- network support
+- buffer compatible command-line options
+
+WWW: http://www.maier-komor.de/mbuffer.html