system/bcache-tools: Added (block layer cache userspace utilities).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Nikos Giotis 2015-02-28 11:31:49 +07:00 committed by Willy Sudiarto Raharjo
parent 27d4a7b86a
commit e0ee3bc723
5 changed files with 163 additions and 0 deletions

View file

@ -0,0 +1,34 @@
These are the userspace tools required for bcache.
Bcache is a patch for the Linux kernel to use SSDs to cache other block
devices. For more information, see http://bcache.evilpiepirate.org.
Documentation for the run time interface is included in the kernel tree, in
Documentation/bcache.txt.
Included:
make-bcache
Formats a block device for use with bcache. A device can be formatted for use
as a cache or as a backing device (requires yet to be implemented kernel
support). The most important option is for specifying the bucket size.
Allocation is done in terms of buckets, and cache hits are counted per bucket;
thus a smaller bucket size will give better cache utilization, but poorer write
performance. The bucket size is intended to be equal to the size of your SSD's
erase blocks, which seems to be 128k-512k for most SSDs; feel free to
experiment.
bcache-super-show
Prints the bcache superblock of a cache device or a backing device.
Udev rules
The first half of the rules do auto-assembly and add uuid symlinks
to cache and backing devices. If util-linux's libblkid is
sufficiently recent (2.24) the rules will take advantage of
the fact that bcache has already been detected. Otherwise
they call a small probe-bcache program that imitates blkid.
The second half of the rules add symlinks to cached devices,
which are the devices created by the bcache kernel module.
Initramfs support
Currently initramfs-tools, mkinitcpio and dracut are supported.

View file

@ -0,0 +1,100 @@
#!/bin/sh
# Copyright 2014 Nikos Giotis <nikos.giotis@gmail.com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=bcache-tools
VERSION=${VERSION:-1.0.8}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i486 ;;
arm*) export ARCH=arm ;;
*) export ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz || tar xvf $CWD/v$VERSION.tar.gz
cd $PRGNAM-$VERSION
# Patch for slackware compatibility
# Disable initramfs, initcpio and dracut installations from 'make install' step
zcat $CWD/no-initramfs-initcpio-dracut-install.patch.gz | patch -p0 --verbose
# Fix permissions
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Build
cd $TMP/$PRGNAM-$VERSION
CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" make
mkdir -p $PKG/usr/sbin
mkdir -p $PKG/lib/udev
mkdir -p $PKG/lib/udev/rules.d
mkdir -p $PKG/usr/share/man/man8
make install DESTDIR=$PKG
# Man pages
mv $PKG/usr/share/man $PKG/usr/
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
rm -rf $PKG/usr/share
# Documentation
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $TMP/$PRGNAM-$VERSION/README > $PKG/usr/doc/$PRGNAM-$VERSION/README
cat $TMP/$PRGNAM-$VERSION/COPYING > $PKG/usr/doc/$PRGNAM-$VERSION/COPYING
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="bcache-tools"
VERSION="1.0.8"
HOMEPAGE="https://github.com/g2p/bcache-tools"
DOWNLOAD="https://github.com/g2p/bcache-tools/archive/v1.0.8.tar.gz"
MD5SUM="d1632a7c37214e0aa38f3cf95624fa46"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Nikos Giotis"
EMAIL="nikos.giotis@gmail.com"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
bcache-tools: bcache-tools (Linux kernel block layer cache userspace utilities)
bcache-tools:
bcache-tools: Bcache is a Linux kernel block layer cache. It allows one or more
bcache-tools: fast disk drives such as flash-based solid state drives (SSDs) to
bcache-tools: act as a cache for one or more slower hard disk drives.
bcache-tools:
bcache-tools:
bcache-tools:
bcache-tools:
bcache-tools:
bcache-tools: