ports/142892: New port: misc/libeatmydata
Attila Nagy
bra at fsn.hu
Sat Jan 16 20:30:02 UTC 2010
>Number: 142892
>Category: ports
>Synopsis: New port: misc/libeatmydata
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sat Jan 16 20:30:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Attila Nagy
>Release: 8.0
>Organization:
>Environment:
>Description:
libeatmydata is a small LD_PRELOAD library designed to (transparently) disable fsync (and friends, like open(O_SYNC)). This has two side-effects: making software that writes data safely to disk a lot quicker and making this software no longer crash safe.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# libeatmydata
# libeatmydata/Makefile
# libeatmydata/distinfo
# libeatmydata/pkg-descr
# libeatmydata/files
# libeatmydata/files/patch-eatmydata.c
# libeatmydata/files/patch-Makefile
#
echo c - libeatmydata
mkdir -p libeatmydata > /dev/null 2>&1
echo x - libeatmydata/Makefile
sed 's/^X//' >libeatmydata/Makefile << '23000e760d2aedf0324e135fcd1f06fc'
X# New ports collection makefile for: libeatmydata
X# Date created: Sat Jan 16 20:41:35 CET 2010
X# Whom: Attila Nagy <bra at fsn.hu>
X#
X# $FreeBSD$
X#
X
XPORTNAME= libeatmydata
XPORTVERSION= 9
XCATEGORIES= misc
XMASTER_SITES= http://www.flamingspork.com/projects/libeatmydata/
XUSE_BZIP2= yes
XNO_MTREE= yes
X
XMAINTAINER= bra at fsn.hu
XCOMMENT= a small LD_PRELOAD library designed to (transparently) disable fsync
X
XPLIST_FILES= lib/libeatmydata.so \
X lib/libeatmydata.so.1 \
X lib/libeatmydata.so.1.0
X
Xdo-install:
X ${INSTALL_DATA} ${WRKSRC}/libeatmydata.so.1.0 ${PREFIX}/lib
X
Xpost-install:
X $(LN) ${PREFIX}/lib/libeatmydata.so.1.0 ${PREFIX}/lib/libeatmydata.so.1
X $(LN) ${PREFIX}/lib/libeatmydata.so.1.0 ${PREFIX}/lib/libeatmydata.so
X
X.include <bsd.port.mk>
23000e760d2aedf0324e135fcd1f06fc
echo x - libeatmydata/distinfo
sed 's/^X//' >libeatmydata/distinfo << 'f51a7c2b5e6e762f143e5d58eafc156a'
XMD5 (libeatmydata-9.tar.bz2) = 61456c6939acd227deeee9ec471514ef
XSHA256 (libeatmydata-9.tar.bz2) = 9dc1fcc14e77fe354e9561c9b19a6c2eb9ba0b305c63651b1a35d004f797cf08
XSIZE (libeatmydata-9.tar.bz2) = 12130
f51a7c2b5e6e762f143e5d58eafc156a
echo x - libeatmydata/pkg-descr
sed 's/^X//' >libeatmydata/pkg-descr << '7ea46d42ed44640e9ac7584119c29889'
Xlibeatmydata is a small LD_PRELOAD library designed to (transparently) disable fsync (and friends, like open(O_SYNC)). This has two side-effects: making software that writes data safely to disk a lot quicker and making this software no longer crash safe.
X
XDO NOT use libeatmydata on software where you care about what it stores. It's called libEAT-MY-DATA for a reason.
7ea46d42ed44640e9ac7584119c29889
echo c - libeatmydata/files
mkdir -p libeatmydata/files > /dev/null 2>&1
echo x - libeatmydata/files/patch-eatmydata.c
sed 's/^X//' >libeatmydata/files/patch-eatmydata.c << 'c487a2b9a9449ba4660afd00e8e38007'
X--- eatmydata.c.orig 2009-05-12 03:11:01.000000000 +0200
X+++ eatmydata.c 2010-01-16 20:33:45.000000000 +0100
X@@ -53,10 +53,15 @@
X mode_t mode;
X
X va_start(ap, flags);
X- mode= va_arg(ap, mode_t);
X+ mode= va_arg(ap, int);
X va_end(ap);
X
X+#if defined(O_DSYNC)
X flags &= ~(O_SYNC|O_DSYNC);
X+#else
X+ flags &= ~(O_SYNC);
X+#endif
X+
X
X if(!libc_open)
X eatmydata_init();
c487a2b9a9449ba4660afd00e8e38007
echo x - libeatmydata/files/patch-Makefile
sed 's/^X//' >libeatmydata/files/patch-Makefile << 'db1e707b2d68cb7fba07c7e7f2f81c0a'
X--- Makefile.orig 2010-01-16 20:34:10.000000000 +0100
X+++ Makefile 2010-01-16 20:38:43.000000000 +0100
X@@ -1,10 +1,10 @@
X-all: libs fsynctest
X+all: libs
X
X clean:
X rm -f libeatmydata.so* fsynctest
X
X libs: eatmydata.c
X- gcc -shared -Wl,-soname,libeatmydata.so.1 -ldl -o libeatmydata.so.1.0 eatmydata.c -fPIC
X+ gcc -shared -Wl,-soname,libeatmydata.so.1 -o libeatmydata.so.1.0 eatmydata.c -fPIC
X @rm -f libeatmydata.so.1 libeatmydata.so
X ln -s libeatmydata.so.1.0 libeatmydata.so.1
X ln -s libeatmydata.so.1 libeatmydata.so
db1e707b2d68cb7fba07c7e7f2f81c0a
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list