From e0ee3bc7235adbee000095eacb4099624c3ef702 Mon Sep 17 00:00:00 2001 From: Nikos Giotis Date: Sat, 28 Feb 2015 11:31:49 +0700 Subject: [PATCH] system/bcache-tools: Added (block layer cache userspace utilities). Signed-off-by: Willy Sudiarto Raharjo --- system/bcache-tools/README | 34 ++++++ system/bcache-tools/bcache-tools.SlackBuild | 100 ++++++++++++++++++ system/bcache-tools/bcache-tools.info | 10 ++ ...initramfs-initcpio-dracut-install.patch.gz | Bin 0 -> 409 bytes system/bcache-tools/slack-desc | 19 ++++ 5 files changed, 163 insertions(+) create mode 100644 system/bcache-tools/README create mode 100644 system/bcache-tools/bcache-tools.SlackBuild create mode 100644 system/bcache-tools/bcache-tools.info create mode 100644 system/bcache-tools/no-initramfs-initcpio-dracut-install.patch.gz create mode 100644 system/bcache-tools/slack-desc diff --git a/system/bcache-tools/README b/system/bcache-tools/README new file mode 100644 index 0000000000..7db39a5263 --- /dev/null +++ b/system/bcache-tools/README @@ -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. diff --git a/system/bcache-tools/bcache-tools.SlackBuild b/system/bcache-tools/bcache-tools.SlackBuild new file mode 100644 index 0000000000..ffe21a9bcf --- /dev/null +++ b/system/bcache-tools/bcache-tools.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh +# Copyright 2014 Nikos Giotis +# 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} diff --git a/system/bcache-tools/bcache-tools.info b/system/bcache-tools/bcache-tools.info new file mode 100644 index 0000000000..e370867f29 --- /dev/null +++ b/system/bcache-tools/bcache-tools.info @@ -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" diff --git a/system/bcache-tools/no-initramfs-initcpio-dracut-install.patch.gz b/system/bcache-tools/no-initramfs-initcpio-dracut-install.patch.gz new file mode 100644 index 0000000000000000000000000000000000000000..e4f20e57738e74eff7b7dbbfaff1a9ee9e9b582e GIT binary patch literal 409 zcmV;K0cQRmiwFqxUGG!?18#3EX>MtBa$#*|b1i9ZX>?<7X>ToLa$#e2bS-Iab97;B zY%XwNbYo}$wUSS7f-o3|&+;jn=)sMZ7PJVQbi*YiZdv@Z>{_r&BT&=AY1wxl3L59o zB}+U2dBgAbqRkGQ=aHi3>Uj5S@? zkFAEnz_1A>t~DTTT^J4lG_8kn+`r3_XDX*j;(@f}z%Zgw%)nNP@HkW-4YWGl;B_`1 zO(u5$rg%U|Qw~bD<|=2hRp$NiZ0-lsyH0oEkKZT3<8DB|P7G&p7{g0lr$=Gl!|4k1S*ynTSLXCm+$)1(bHmnP*){) z@?2b@&&!(LzLAz|;QxBL#Jq(V&~8}&dgF7Z^5&fjc~&l}2BL(~%+tOB{~IAW