summaryrefslogtreecommitdiff
path: root/sys-block/buffer
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-block/buffer
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-block/buffer')
-rw-r--r--sys-block/buffer/Manifest6
-rw-r--r--sys-block/buffer/buffer-1.19-r2.ebuild32
-rw-r--r--sys-block/buffer/files/1.19-deb-gentoo.patch293
-rw-r--r--sys-block/buffer/metadata.xml8
4 files changed, 339 insertions, 0 deletions
diff --git a/sys-block/buffer/Manifest b/sys-block/buffer/Manifest
new file mode 100644
index 000000000000..2bfed8b62d8d
--- /dev/null
+++ b/sys-block/buffer/Manifest
@@ -0,0 +1,6 @@
+AUX 1.19-deb-gentoo.patch 8422 SHA256 51a2495dfdc8b61af9a4856a8d247a735ae4f8c3ebd9969c6f3f925707d6d999 SHA512 791d7990f900d70a229d77ea0eda67c99ea81697ca65f83bceea1131d0d5da94484c796ad601d8031da72fe24b2add6b0e4e86956c0ddb2fbe76cee6574ccb34 WHIRLPOOL 14af02480a73133e712399d4b0f2d455cd3db17c38a9643fa53d05386626292df897dc06d9de12a516f54d2756ef9797410159e0b5668e6ea9934b38b6822f38
+DIST buffer-1.19.tgz 34960 SHA256 ec7da9f9737cd03c11a26f8380ab7d567b252b862b989da430b1e92db79b42c8 SHA512 9321f6e399cb3e58f3ffebb031b4d2b2fdda26149fb142515961a09b81b47c1bce01dd770da579bf49c3e71f8cee29c5dc2cc4063e67494e98a599f29076cc5c WHIRLPOOL 47de346dd1d546b8da7861d33e46d2697e88c55b3c7ee823ce6938db3c1c987b7f8d4636d3e7ca1a1d5210bdf0bec68f2ebe9b2652abb6893c36ccb4241d47bd
+EBUILD buffer-1.19-r2.ebuild 677 SHA256 7a1aee0262ccdc34bbdcb1306d131d563c25ed84af15455e29d39642e69153be SHA512 57d4eff4a4babbff749f0f8fe837835711fd50cb31d27796fa6513bbbe9353f40af6e1f0678f955ae58b5f1ae9ed8635602d2f6491fac823b6c8350158877c1a WHIRLPOOL 5ceadafc9203d04954a9d452706b025bb6b482083342a0281636995c3e76f1f056f5363e60a207d8a3ae5fc8f53e797e172e4b7c3eb2c2b8714eeff7d8be8033
+MISC ChangeLog 2958 SHA256 2cbd6c98f952052e67a294fd8bd60d8c91028dd6ce6c977dfcdfc9b7e7a7127f SHA512 dd931a53c539f76f272a197112d79190a2008a9330aa08124858707825ff2e635ee94cc504b7b57946aceb2b3771fc4bccdb958343446690f79c61633930be64 WHIRLPOOL 957b695988016414fd6ca8586058eec7158c0fa05e00f5ec292917009c1fdf6c74043d4fe8d4c2b271dfc0b35883615b81a68295b003b7aa8c8d88b1cfc557fe
+MISC ChangeLog-2015 2058 SHA256 224ca7017eddcc4bf97a46cf75a34cbf01e6829b55cec8fad0a36b64f6949ffd SHA512 82474da2bfc07d3da149b08da15792940d139fe4231f132cc3c98cac7c62fc5c5dd83ff8555f3f9b439ba80d4486adad4da587186a5c9eba23c7d77122575568 WHIRLPOOL 60739ad361b889c50bb3a9dc6d81032d70894291233c64268fb25760c8ed79c570dc67f7ea7cecd54abb335d908d98b21c1adccda118ccf5076a90b691293f55
+MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8
diff --git a/sys-block/buffer/buffer-1.19-r2.ebuild b/sys-block/buffer/buffer-1.19-r2.ebuild
new file mode 100644
index 000000000000..92729884d174
--- /dev/null
+++ b/sys-block/buffer/buffer-1.19-r2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=4
+
+inherit eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="a tapedrive tool for speeding up reading from and writing to tape"
+HOMEPAGE="http://www.microwerks.net/~hugo/"
+SRC_URI="mirror://gentoo/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm ppc sparc x86"
+IUSE=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PV}-deb-gentoo.patch
+ sed -i -e 's/$(CFLAGS)/\0 $(LDFLAGS)/' Makefile || die
+ emake clean
+}
+
+src_compile() {
+ append-lfs-flags
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin buffer
+ dodoc README
+ newman buffer.man buffer.1
+}
diff --git a/sys-block/buffer/files/1.19-deb-gentoo.patch b/sys-block/buffer/files/1.19-deb-gentoo.patch
new file mode 100644
index 000000000000..66ea66433bc6
--- /dev/null
+++ b/sys-block/buffer/files/1.19-deb-gentoo.patch
@@ -0,0 +1,293 @@
+diff -ur buffer-1.19.orig/buffer.c buffer-1.19/buffer.c
+--- buffer-1.19.orig/buffer.c 2004-08-21 01:45:29.938082048 -0400
++++ buffer-1.19/buffer.c 2004-08-21 01:45:39.444118464 -0400
+@@ -109,6 +109,9 @@
+ * Initial revision
+ *
+ */
++#include <stdlib.h>
++#include <string.h>
++#include <limits.h>
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -120,6 +123,7 @@
+ #include <sys/shm.h>
+ #include <sys/sem.h>
+ #include <sys/wait.h>
++#include <sys/time.h>
+ #include "sem.h"
+
+ #ifndef lint
+@@ -127,8 +131,8 @@
+ #endif
+
+-#ifndef __alpha
++#ifndef __linux__
+ extern char *shmat();
+-#endif /* __alpha */
++#endif /* __linux__ */
+
+ /* General macros */
+ #define TRUE 1
+@@ -136,6 +140,14 @@
+ #define K *1024
+ #define M *1024*1024
+
++#if defined __GNUC__ || __STDC_VERSION__ >= 199901L
++#define NUM_K_TYPE unsigned long long
++#define NUM_K_FMT "llu"
++#else
++#define NUM_K_TYPE unsigned long
++#define NUM_K_FMT "lu"
++#endif
++
+ /* Some forward declarations */
+ void byee();
+ void start_reader_and_writer();
+@@ -250,7 +262,9 @@
+
+ char print_total = 0;
+ /* Number of K output */
+-unsigned long outk = 0;
++NUM_K_TYPE outk = 0;
++
++struct timeval starttime;
+
+ int
+ main( argc, argv )
+@@ -262,6 +276,8 @@
+ set_handlers();
+
+ buffer_allocate();
++
++ gettimeofday(&starttime, NULL);
+
+ start_reader_and_writer();
+
+@@ -384,8 +400,8 @@
+ fprintf( stderr, "Usage: %s [-B] [-t] [-S size] [-m memsize] [-b blocks] [-p percent] [-s blocksize] [-u pause] [-i infile] [-o outfile] [-z size]\n",
+ progname );
+ fprintf( stderr, "-B = blocked device - pad out last block\n" );
+- fprintf( stderr, "-t = show total amount writen at end\n" );
+- fprintf( stderr, "-S size = show amount writen every size bytes\n" );
++ fprintf( stderr, "-t = show total amount written at end\n" );
++ fprintf( stderr, "-S size = show amount written every size bytes\n" );
+ fprintf( stderr, "-m size = size of shared mem chunk to grab\n" );
+ fprintf( stderr, "-b num = number of blocks in queue\n" );
+ fprintf( stderr, "-p percent = don't start writing until percent blocks filled\n" );
+@@ -397,6 +413,11 @@
+ byee( -1 );
+ }
+ }
++
++ if (argc > optind) {
++ fprintf( stderr, "too many arguments\n" );
++ byee( -1 );
++ }
+
+ if (zflag) showevery = blocksize;
+
+@@ -507,9 +528,9 @@
+ get_buffer();
+
+ if( debug )
+- fprintf( stderr, "%s pbuffer is 0x%08x, buffer_size is %d [%d x %d]\n",
++ fprintf( stderr, "%s pbuffer is 0x%08lx, buffer_size is %d [%d x %d]\n",
+ proc_string,
+- (char *)pbuffer, buffer_size, blocks, blocksize );
++ (unsigned long)pbuffer, buffer_size, blocks, blocksize );
+
+ #ifdef SYS5
+ memset( (char *)pbuffer, '\0', buffer_size );
+@@ -528,7 +549,17 @@
+ pbuffer->blocks_free_lock = 1;
+ /* start this off so lock() can be called on it for each block
+ * till all the blocks are used up */
++ /* Initializing the semaphore to "blocks - 1" causes a hang when using option
++ * "-p 100" because it always keeps one block free, so we'll never reach 100% fill
++ * level. However, there doesn't seem to be a good reason to keep one block free,
++ * so we initialize the semaphore to "blocks" instead.
++ * <mbuck@debian.org> 2004-01-11
++ */
++#if 0
+ sem_set( pbuffer->semid, pbuffer->blocks_free_lock, blocks - 1 );
++#else
++ sem_set( pbuffer->semid, pbuffer->blocks_free_lock, blocks );
++#endif
+
+ /* Detattach the shared memory so the fork doesnt do anything odd */
+ shmdt( (char *)pbuffer );
+@@ -648,7 +679,7 @@
+ int
+ fill_block()
+ {
+- int bytes;
++ int bytes = 0;
+ char *start;
+ int toread;
+ static char eof_reached = 0;
+@@ -707,7 +738,7 @@
+ {
+ int filled = 0;
+ int maxfilled = (blocks * percent) / 100;
+- int first_block;
++ int first_block = 0;
+
+ if( debug )
+ fprintf( stderr, "\tW: Entering writer\n blocks = %d\n maxfilled = %d\n",
+@@ -742,7 +773,7 @@
+ }
+
+ if( print_total ){
+- fprintf( stderr, "Kilobytes Out %lu\n", outk );
++ fprintf( stderr, "Kilobytes Out %" NUM_K_FMT "\n", outk );
+ }
+
+ if( debug )
+@@ -783,14 +814,14 @@
+ void
+ write_block_to_stdout()
+ {
+- static unsigned long out = 0;
++ unsigned long out = 0;
+ static unsigned long last_gb = 0;
+- static unsigned long next_k = 0;
++ static NUM_K_TYPE next_k = 0;
+ int written;
+
+ if( next_k == 0 && showevery ){
+ if( debug > 3 )
+- fprintf( stderr, "W: next_k = %lu showevery = %d\n", next_k, showevery );
++ fprintf( stderr, "W: next_k = %" NUM_K_FMT " showevery = %d\n", next_k, showevery );
+ showevery = showevery / 1024;
+ next_k = showevery;
+ }
+@@ -798,7 +829,7 @@
+ if( (written = write( fdout, curr_block->data, curr_block->bytes )) != curr_block->bytes ){
+ report_proc();
+ perror( "write of data failed" );
+- fprintf( stderr, "bytes to write=%d, bytes written=%d, total written %10luK\n", curr_block->bytes, written, outk );
++ fprintf( stderr, "bytes to write=%d, bytes written=%d, total written %10" NUM_K_FMT "K\n", curr_block->bytes, written, outk );
+ byee( -1 );
+ }
+
+@@ -825,7 +856,7 @@
+ }
+ if( showevery ){
+ if( debug > 3 )
+- fprintf( stderr, "W: outk = %lu, next_k = %lu\n",
++ fprintf( stderr, "W: outk = %" NUM_K_FMT ", next_k = %" NUM_K_FMT "\n",
+ outk, next_k );
+ if( outk >= next_k ){
+ pr_out();
+@@ -914,13 +945,12 @@
+ do_size( arg )
+ char *arg;
+ {
+- char format[ 20 ];
+- int ret;
++ int ret = 0;
+
+- *format = '\0';
+- sscanf( arg, "%d%s", &ret, format );
++ char unit = '\0';
++ sscanf( arg, "%d%c", &ret, &unit );
+
+- switch( *format ){
++ switch( unit ){
+ case 'm':
+ case 'M':
+ ret = ret K K;
+@@ -941,7 +971,36 @@
+ void
+ pr_out()
+ {
+- fprintf( stderr, " %10luK\r", outk );
++ struct timeval now;
++ unsigned long ms_delta, k_per_s;
++
++ gettimeofday(&now, NULL);
++ ms_delta = (now.tv_sec - starttime.tv_sec) * 1000
++ + (now.tv_usec - starttime.tv_usec) / 1000;
++ if (ms_delta) {
++ /* Use increased accuracy for small amounts of data,
++ * decreased accuracy for *huge* throughputs > 4.1GB/s
++ * to avoid division by 0. This will overflow if your
++ * machine's throughput exceeds 4TB/s - you deserve to
++ * loose if you're still using 32 bit longs on such a
++ * beast ;-)
++ * <mbuck@debian.org>
++ */
++ if (outk < ULONG_MAX / 1000) {
++ k_per_s = (outk * 1000) / ms_delta;
++ } else if (ms_delta >= 1000) {
++ k_per_s = outk / (ms_delta / 1000);
++ } else {
++ k_per_s = (outk / ms_delta) * 1000;
++ }
++ fprintf( stderr, " %10" NUM_K_FMT "K, %10luK/s\r", outk, k_per_s );
++ } else {
++ if (outk) {
++ fprintf( stderr, " %10" NUM_K_FMT "K, ?K/s\r", outk );
++ } else {
++ fprintf( stderr, " 0K, 0K/s\r");
++ }
++ }
+ }
+
+ #ifdef SYS5
+diff -ur buffer-1.19.orig/buffer.man buffer-1.19/buffer.man
+--- buffer-1.19.orig/buffer.man 2004-08-21 01:45:29.935085504 -0400
++++ buffer-1.19/buffer.man 2004-08-21 01:45:39.441121920 -0400
+@@ -37,7 +37,8 @@
+ Use the given file as the output file. The default is stdout.
+ .TP
+ .B \-S size
+-After every chunk this size has been writen print out how much been writen so far.
++After every chunk of this size has been written, print out how much has
++been written so far. Also prints the total througput.
+ By default this is not set.
+ .TP
+ .B \-s size
+@@ -71,9 +72,9 @@
+ throughput on some drives.)
+ .TP
+ .B \-B
+-Force each block writen to be padded out to the blocksize. This is needed by some tape
++Force each block written to be padded out to the blocksize. This is needed by some tape
+ and cartridge drives. Defaults to unpadded. This only affects the
+-last block writen.
++last block written.
+ .TP
+ .B \-t
+ On exiting print to stderr a brief message showing the total number of
+@@ -82,7 +83,7 @@
+ .B \-Z
+ If reading/writing directly to a character device (like a tape drive)
+ then after each gigabyte perform an lseek to the start of the file.
+-Use this flag with extreme care. If can only be used on devices where
++Use this flag with extreme care. It can only be used on devices where
+ an lseek does not rewind the tape but does reset the kernels position
+ flags. It is used to allow more than 2 gigabytes to be written.
+ .PP
+diff -ur buffer-1.19.orig/sem.c buffer-1.19/sem.c
+--- buffer-1.19.orig/sem.c 2004-08-21 01:45:29.939080896 -0400
++++ buffer-1.19/sem.c 2004-08-21 01:47:41.265618240 -0400
+@@ -27,6 +27,7 @@
+ * semaphores */
+
+ #include <stdio.h>
++#include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/ipc.h>
+@@ -95,7 +96,7 @@
+ return sem;
+ }
+
+-static
++static void
+ do_sem( sem_id, pbuf, err )
+ int sem_id;
+ struct sembuf *pbuf;
diff --git a/sys-block/buffer/metadata.xml b/sys-block/buffer/metadata.xml
new file mode 100644
index 000000000000..56c124413057
--- /dev/null
+++ b/sys-block/buffer/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>