From dda0923eebd3d36a06ed4976cd4ab98d7cdec679 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 25 Apr 2016 17:13:15 -0800 Subject: [PATCH] debify --- 69-bcache.rules | 29 ---- Makefile | 33 ++-- bcache-test.c | 320 ------------------------------------ bcacheadm.8 => bcache.8 | 0 debian/.gitignore | 3 + debian/bcache-tools.dirs | 2 + debian/bcache-tools.preinst | 25 +++ debian/changelog | 44 +++++ debian/compat | 1 + debian/control | 23 +++ debian/copyright | 86 ++++++++++ debian/gbp.conf | 5 + debian/rules | 7 + debian/watch | 8 + dracut/module-setup.sh | 34 ---- initramfs/bcache | 22 --- probe-bcache.8 | 17 -- probe-bcache.c | 87 ---------- 18 files changed, 218 insertions(+), 528 deletions(-) delete mode 100644 69-bcache.rules delete mode 100644 bcache-test.c rename bcacheadm.8 => bcache.8 (100%) create mode 100644 debian/.gitignore create mode 100644 debian/bcache-tools.dirs create mode 100644 debian/bcache-tools.preinst create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/gbp.conf create mode 100755 debian/rules create mode 100644 debian/watch delete mode 100644 dracut/module-setup.sh delete mode 100755 initramfs/bcache delete mode 100644 probe-bcache.8 delete mode 100644 probe-bcache.c diff --git a/69-bcache.rules b/69-bcache.rules deleted file mode 100644 index b83f6bc..0000000 --- a/69-bcache.rules +++ /dev/null @@ -1,29 +0,0 @@ -# register bcache devices as they come up -# man 7 udev for syntax - -SUBSYSTEM!="block", GOTO="bcache_end" -ACTION=="remove", GOTO="bcache_end" - -# blkid was run by the standard udev rules -# It recognised bcache (util-linux 2.24+) -ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found" -# It recognised something else; bail -ENV{ID_FS_TYPE}=="?*", GOTO="bcache_backing_end" - -# Backing devices: scan, symlink, register -IMPORT{program}="probe-bcache -o udev $tempnode" -ENV{ID_FS_TYPE}!="bcache", GOTO="bcache_backing_end" -ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" - -LABEL="bcache_backing_found" -RUN+="bcache-register $tempnode" -LABEL="bcache_backing_end" - -# Cached devices: symlink -DRIVER=="bcache", ENV{CACHED_UUID}=="?*", \ - SYMLINK+="bcache/by-uuid/$env{CACHED_UUID}" -DRIVER=="bcache", ENV{CACHED_LABEL}=="?*", \ - SYMLINK+="bcache/by-label/$env{CACHED_LABEL}" - -LABEL="bcache_end" - diff --git a/Makefile b/Makefile index 70900d0..248ff20 100644 --- a/Makefile +++ b/Makefile @@ -1,25 +1,23 @@ PREFIX=/usr -UDEVLIBDIR=/lib/udev -DRACUTLIBDIR=/lib/dracut INSTALL=install CFLAGS+=-std=gnu99 -O2 -Wall -g -D_FILE_OFFSET_BITS=64 -I. LDFLAGS+=-static -all: bcache probe-bcache +ifeq ($(PREFIX), "/usr") + ROOT_SBINDIR=/sbin +else + ROOT_SBINDIR=$(PREFIX)/sbin +endif -install: bcache probe-bcache - $(INSTALL) -m0755 bcache $(DESTDIR)${PREFIX}/bin/ - #$(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/ - #$(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/ - #-$(INSTALL) -T -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache - if [ -d $(DESTDIR)$(DRACUTLIBDIR)/modules.d ]; then\ - $(INSTALL) -D -m0755 dracut/module-setup.sh $(DESTDIR)$(DRACUTLIBDIR)/modules.d/90bcache/module-setup.sh; \ - fi - $(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/ +all: bcache + +install: bcache + $(INSTALL) -m0755 bcache $(DESTDIR)$(ROOT_SBINDIR) + $(INSTALL) -m0644 -- bcache.8 $(DESTDIR)$(PREFIX)/share/man/man8/ clean: - $(RM) -f probe-bcache bcache bcache-test *.o *.a + $(RM) -f bcache *.o *.a CCANSRCS=$(wildcard ccan/*/*.c) CCANOBJS=$(patsubst %.c,%.o,$(CCANSRCS)) @@ -33,13 +31,10 @@ bcache.o: CFLAGS += `pkg-config --cflags libnih` bcache-objs = bcache.o bcache-assemble.o bcache-device.o bcache-format.o\ bcache-fs.o bcache-run.o -# have to build ccan first, as headers require config.h to be generated: -#$(bcache-objs): ccan/libccan.a - bcache: LDLIBS += `pkg-config --libs uuid blkid libnih` bcache: $(bcache-objs) util.o libccan.a -probe-bcache.o: CFLAGS += `pkg-config --cflags uuid blkid` -probe-bcache: LDLIBS += `pkg-config --libs uuid blkid` - bcache-test: LDLIBS += `pkg-config --libs openssl` + +deb: + debuild -nc -us -uc -i -I diff --git a/bcache-test.c b/bcache-test.c deleted file mode 100644 index ccc25bb..0000000 --- a/bcache-test.c +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Author: Kent Overstreet - * - * GPLv2 - */ - -#define _FILE_OFFSET_BITS 64 -#define _XOPEN_SOURCE 500 -#define _GNU_SOURCE - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -static const unsigned char bcache_magic[] = { - 0xc6, 0x85, 0x73, 0xf6, 0x4e, 0x1a, 0x45, 0xca, - 0x82, 0x65, 0xf5, 0x7f, 0x48, 0xba, 0x6d, 0x81 }; - -unsigned char zero[4096]; - -bool klog = false; - -#define Pread(fd, buf, size, offset) do { \ - int _read = 0, _r; \ - while (_read < size) { \ - _r = pread(fd, buf, (size) - _read, (offset) + _read); \ - if (_r <= 0) \ - goto err; \ - _read += _r; \ - } \ -} while (0) - -#define Pwrite(fd, buf, size, offset) do { \ - int _write = 0, _r; \ - while (_write < size) { \ - _r = pwrite(fd, buf, (size) - _write, offset + _write); \ - if (_r < 0) \ - goto err; \ - _write += _r; \ - } \ -} while (0) - -/* Marsaglia polar method - */ -double normal() -{ - double x, y, s; - static double n = 0 / (double) 0; - - if (n == n) { - x = n; - n = 0 / (double) 0; - return x; - } - - do { - x = random() / (double) (RAND_MAX / 2) - 1; - y = random() / (double) (RAND_MAX / 2) - 1; - - s = x * x + y * y; - } while (s >= 1); - - s = sqrt(-2 * log(s) / s); - n = y * s; - return x * s; -} - -long getblocks(int fd) -{ - long ret; - struct stat statbuf; - if (fstat(fd, &statbuf)) { - perror("stat error"); - exit(EXIT_FAILURE); - } - ret = statbuf.st_size / 512; - if (S_ISBLK(statbuf.st_mode)) - if (ioctl(fd, BLKGETSIZE, &ret)) { - perror("ioctl error"); - exit(EXIT_FAILURE); - } - return ret; -} - -struct pagestuff { - unsigned char csum[16]; - unsigned char oldcsum[16]; - int readcount; - int writecount; -}; - -void flushlog(void) -{ - char logbuf[1 << 21]; - int w = 0, len; - static int fd; - - if (!klog) - return; - - if (!fd) { - klogctl(8, 0, 6); - - sprintf(logbuf, "log.%i", abs(random()) % 1000); - fd = open(logbuf, O_WRONLY|O_CREAT|O_TRUNC, 0644); - - if (fd == -1) { - perror("Error opening log file"); - exit(EXIT_FAILURE); - } - } - - len = klogctl(4, logbuf, 1 << 21); - - if (len == -1) { - perror("Error reading kernel log"); - exit(EXIT_FAILURE); - } - - while (w < len) { - int r = write(fd, logbuf + w, len - w); - if (r == -1) { - perror("Error writing log"); - exit(EXIT_FAILURE); - } - w += r; - } -} - -void aio_loop(int nr) -{ - -} - -void usage() -{ - exit(EXIT_FAILURE); -} - -int main(int argc, char **argv) -{ - bool walk = false, randsize = false, verbose = false, csum = false, rtest = false, wtest = false; - int fd1, fd2 = 0, direct = 0, nbytes = 4096, j, o; - unsigned long size, i, offset = 0, done = 0, unique = 0, benchmark = 0; - void *buf1 = NULL, *buf2 = NULL; - struct pagestuff *pages, *p; - unsigned char c[16]; - time_t last_printed = 0; - extern char *optarg; - - RC4_KEY writedata; - RC4_set_key(&writedata, 16, bcache_magic); - - while ((o = getopt(argc, argv, "dnwvscwlb:")) != EOF) - switch (o) { - case 'd': - direct = O_DIRECT; - break; - case 'n': - walk = true; - break; - case 'v': - verbose = true; - break; - case 's': - randsize = true; - break; - case 'c': - csum = true; - break; - case 'w': - wtest = true; - break; - case 'r': - rtest = true; - break; - case 'l': - klog = true; - break; - case 'b': - benchmark = atol(optarg); - break; - default: - usage(); - } - - argv += optind; - argc -= optind; - - if (!rtest && !wtest) - rtest = true; - - if (argc < 1) { - printf("Please enter a device to test\n"); - exit(EXIT_FAILURE); - } - - if (!csum && !benchmark && argc < 2) { - printf("Please enter a device to compare against\n"); - exit(EXIT_FAILURE); - } - - fd1 = open(argv[0], (wtest ? O_RDWR : O_RDONLY)|direct); - if (!csum && !benchmark) - fd2 = open(argv[1], (wtest ? O_RDWR : O_RDONLY)|direct); - - if (fd1 == -1 || fd2 == -1) { - perror("Error opening device"); - exit(EXIT_FAILURE); - } - - size = getblocks(fd1); - if (!csum && !benchmark) - size = MIN(size, getblocks(fd2)); - - size = size / 8 - 16; - pages = calloc(size + 16, sizeof(*pages)); - printf("size %li\n", size); - - if (posix_memalign(&buf1, 4096, 4096 * 16) || - posix_memalign(&buf2, 4096, 4096 * 16)) { - printf("Could not allocate buffers\n"); - exit(EXIT_FAILURE); - } - //setvbuf(stdout, NULL, _IONBF, 0); - - for (i = 0; !benchmark || i < benchmark; i++) { - bool writing = (wtest && (i & 1)) || !rtest; - nbytes = randsize ? drand48() * 16 + 1 : 1; - nbytes <<= 12; - - offset >>= 12; - offset += walk ? normal() * 20 : random(); - offset %= size; - offset <<= 12; - - if (!(i % 200)) - flushlog(); - - if (!verbose) { - time_t now = time(NULL); - if (now - last_printed >= 2) { - last_printed = now; - goto print; - } - } else -print: printf("Loop %6li offset %9li sectors %3i, %6lu mb done, %6lu mb unique\n", - i, offset >> 9, nbytes >> 9, done >> 11, unique >> 11); - - done += nbytes >> 9; - - if (!writing) - Pread(fd1, buf1, nbytes, offset); - if (!writing && !csum && !benchmark) - Pread(fd2, buf2, nbytes, offset); - - for (j = 0; j < nbytes; j += 4096) { - p = &pages[(offset + j) / 4096]; - - if (writing) - RC4(&writedata, 4096, zero, buf1 + j); - - if (csum) { - MD4(buf1 + j, 4096, &c[0]); - - if (writing || - (!p->readcount && !p->writecount)) { - memcpy(&p->oldcsum[0], &p->csum[0], 16); - memcpy(&p->csum[0], c, 16); - } else if (memcmp(&p->csum[0], c, 16)) - goto bad; - } else if (!writing && !benchmark && - memcmp(buf1 + j, - buf2 + j, - 4096)) - goto bad; - - if (!p->writecount && !p->readcount) - unique += 8; - - writing ? p->writecount++ : p->readcount++; - } - if (writing) - Pwrite(fd1, buf1, nbytes, offset); - if (writing && !csum && !benchmark) - Pwrite(fd2, buf2, nbytes, offset); - } - printf("Loop %6li offset %9li sectors %3i, %6lu mb done, %6lu mb unique\n", - i, offset >> 9, nbytes >> 9, done >> 11, unique >> 11); - exit(EXIT_SUCCESS); -err: - perror("IO error"); - flushlog(); - exit(EXIT_FAILURE); -bad: - printf("Bad read! loop %li offset %li readcount %i writecount %i\n", - i, (offset + j) >> 9, p->readcount, p->writecount); - - if (!memcmp(&p->oldcsum[0], c, 16)) - printf("Matches previous csum\n"); - - flushlog(); - exit(EXIT_FAILURE); -} diff --git a/bcacheadm.8 b/bcache.8 similarity index 100% rename from bcacheadm.8 rename to bcache.8 diff --git a/debian/.gitignore b/debian/.gitignore new file mode 100644 index 0000000..957abf0 --- /dev/null +++ b/debian/.gitignore @@ -0,0 +1,3 @@ +bcache-tools* +debhelper-build-stamp +files diff --git a/debian/bcache-tools.dirs b/debian/bcache-tools.dirs new file mode 100644 index 0000000..ea98e98 --- /dev/null +++ b/debian/bcache-tools.dirs @@ -0,0 +1,2 @@ +sbin/ +usr/share/man/man8/ diff --git a/debian/bcache-tools.preinst b/debian/bcache-tools.preinst new file mode 100644 index 0000000..d2e7095 --- /dev/null +++ b/debian/bcache-tools.preinst @@ -0,0 +1,25 @@ +#!/bin/sh + +oldscript=/etc/initramfs-tools/hooks/bcache +dpkg-maintscript-helper rm_conffile $oldscript 1.0.1-1~ -- "$@" +case "$1" in + install|upgrade) + if [ -f $oldscript ]; then + for hash in ca5a1c3f716e3ec69057f657cb79cee2f47c7ef6619983d86e647ac1f9f1f099 \ + 74c5338e21c926d3cbbc1b44c5525667dc964fe91189ffa6b11352974ef56950 + do + if echo "$hash $oldscript" | + sha256sum --check --status -; then + # Old conffile was not modified, let's just remove it + rm -f $oldscript + fi + done + if [ -f $oldscript ]; then + # Otherwise, disable and rename it + chmod -x $oldscript + mv $oldscript $oldscript.dpkg-remove + fi + fi + ;; +esac +#DEBHELPER# diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..7896510 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,44 @@ +bcache-tools (1.0.8-2~bpo8+1) jessie-backports; urgency=medium + + * Rebuild for jessie-backports. + + -- Mathieu Parent Mon, 21 Sep 2015 21:18:39 +0200 + +bcache-tools (1.0.8-2) unstable; urgency=medium + + * Only run update-initramfs if installed. Fix dracut. (Closes: #788442) + + -- David Mohr Thu, 11 Jun 2015 10:23:48 -0600 + +bcache-tools (1.0.8-1) unstable; urgency=medium + + [ James Page ] + * d/control: Add Vcs fields. + + [ David Mohr ] + * Don't depend on initramfs-tools, instead recommend it (Closes: #775674) + * New upstream release 1.0.8 + * Update changelog + * Add patch to clean bcache-register + * Update changelog + * Adding dep3 headers to the 0001 patch + * Update watch to use http://evilpiepirate.org/git/bcache-tools.git + * Add patch for gcc-5 compatability. + Thanks to James Cowgill (Closes: #777798) + + -- David Mohr Tue, 26 May 2015 20:57:58 -0600 + +bcache-tools (1.0.7-1) unstable; urgency=medium + + [ David Mohr ] + * Based on work by Gabriel de Perthuis + * Initial release. (Closes: #708132) + + [ Robie Basak ] + * Remove unnecessary file bcache-tools.postrm. + * debian/copyright fixes. + * Add shebang to bcache-tools.preinst. + * Drop Vcs-* for now. + * Add self to Uploaders. + + -- Robie Basak Mon, 27 Oct 2014 13:32:08 +0000 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..4a138f6 --- /dev/null +++ b/debian/control @@ -0,0 +1,23 @@ +Source: bcache-tools +Maintainer: David Mohr +Uploaders: Robie Basak +Section: utils +Priority: optional +Standards-Version: 3.9.5 +Build-Depends: debhelper (>= 9), pkg-config, uuid-dev, libblkid-dev +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/bcache-tools.git +Vcs-Git: git://anonscm.debian.org/collab-maint/bcache-tools.git +Homepage: http://bcache.evilpiepirate.org/ + +Package: bcache-tools +Architecture: linux-any +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: initramfs-tools | linux-initramfs-tool +Description: bcache userspace tools + Bcache allows the use of SSDs to cache other block devices. + . + Documentation for the run-time interface is included in the kernel tree; in + Documentation/bcache.txt. + . + This package includes udev rules, initramfs support, and the utilities to + create a new bcache as well as inspect existing bcache partitions. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..1491ae8 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,86 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Contact: kmo@daterainc.com + linux-bcache@vger.kernel.org +Source: http://evilpiepirate.org/git/bcache-tools.git + +Files: * +Copyright: 2013 Kent Overstreet +License: GPL-2 + +Files: bcache-super-show.c +Copyright: 2013 Gabriel de Perthuis +License: GPL-2 + +Files: bcache.c +Copyright: 1996-2001, PostgreSQL Global Development Group +License: PostgreSQL + +Files: debian/* +Copyright: 2014 Tom Strickx , + 2014 David Mohr +License: GPL-2+ + +License: GPL-2 + This program is free software; you can redistribute it + and/or modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; + version 2 of the License. + . + This program is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the GNU General Public License for more + details. + . + You should have received a copy of the GNU General Public + License along with this package; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301 USA + . + On Debian systems, the full text of the GNU General Public + License version 2 can be found in the file + `/usr/share/common-licenses/GPL-2'. + +License: GPL-2+ + This program is free software; you can redistribute it + and/or modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later + version. + . + This program is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the GNU General Public License for more + details. + . + You should have received a copy of the GNU General Public + License along with this package; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301 USA + . + On Debian systems, the full text of the GNU General Public + License version 2 can be found in the file + `/usr/share/common-licenses/GPL-2'. + +License: PostgreSQL + Permission to use, copy, modify, and distribute this + software and its documentation for any purpose, without fee, + and without a written agreement is hereby granted, provided + that the above copyright notice and this paragraph and the + following two paragraphs appear in all copies. + . + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO + ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT + OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF + THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + . + THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" + BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS + TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR + MODIFICATIONS. diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..a347f10 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,5 @@ +[DEFAULT] +pristine-tar = True +upstream-tag = v%(version)s +ignore-branch = True + diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..61f3011 --- /dev/null +++ b/debian/rules @@ -0,0 +1,7 @@ +#!/usr/bin/make -f +%: + dh $@ + +override_dh_auto_install: + dh_auto_install -- DRACUTLIBDIR=/usr/lib/dracut + diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..e5d5511 --- /dev/null +++ b/debian/watch @@ -0,0 +1,8 @@ +version=3 + +http://evilpiepirate.org/git/bcache-tools.git/refs/ /git/bcache-tools.git/tag/\?id=v(\d[\d.]*) + +# tag/\?id=(v?\d[\d.]*) +#opts="filenamemangle=s/(?:.*)?v?(\d[\d\.]*)\.tar\.gz/bcache-tools-$1.tar.gz/" \ +# (?:.*/)?v?(\d[\d\.]*)\.tar\.gz +# http://evilpiepirate.org/git/bcache-tools.git/tag/?id=v1.0.8 diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh deleted file mode 100644 index 5a067cb..0000000 --- a/dracut/module-setup.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- -# ex: ts=8 sw=4 sts=4 et filetype=sh - -# -# At some point (util-linux v2.24) blkid will be able to identify bcache -# but until every system has this version of util-linux, probe-bcache is -# provided as an alternative. -# - -check() { - if [[ $hostonly ]] || [[ $mount_needs ]] - then - for fs in "${host_fs_types[@]}"; do - [[ $fs = "bcache" ]] && return 0 - done - return 255 - fi - - return 0 -} - -depends() { - return 0 -} - -installkernel() { - instmods bcache -} - -install() { - inst_multiple ${udevdir}/probe-bcache ${udevdir}/bcache-register - inst_rules 69-bcache.rules -} diff --git a/initramfs/bcache b/initramfs/bcache deleted file mode 100755 index e618e1a..0000000 --- a/initramfs/bcache +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -PREREQ="udev" - -prereqs() -{ - echo "$PREREQ" -} - -case $1 in -prereqs) - prereqs - exit 0 - ;; -esac - -. /usr/share/initramfs-tools/hook-functions - -cp -pt "${DESTDIR}/lib/udev/rules.d" /lib/udev/rules.d/69-bcache.rules -copy_exec /lib/udev/bcache-register -copy_exec /lib/udev/probe-bcache -manual_add_modules bcache diff --git a/probe-bcache.8 b/probe-bcache.8 deleted file mode 100644 index 17273f0..0000000 --- a/probe-bcache.8 +++ /dev/null @@ -1,17 +0,0 @@ -.TH probe-bcache 8 -.SH NAME -probe-bcache \- probe a bcache device -.SH SYNOPSIS -.B probe-bcache -[\fB \-o\ \fIudev\fR ] -.I device -.SH OPTIONS -.TP -.BR \-o -return UUID in udev style for invocation by udev rule as IMPORT{program} -.SH USAGE -Return UUID if device identified as bcache-formatted. - -Only necessary until support for the bcache superblock is included -in blkid; in the meantime, provides just enough functionality for a udev script -to create the /dev/disk/by-uuid symlink. diff --git a/probe-bcache.c b/probe-bcache.c deleted file mode 100644 index 6ff882a..0000000 --- a/probe-bcache.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Author: Kent Overstreet - * - * GPLv2 - */ - -#define _FILE_OFFSET_BITS 64 -#define __USE_FILE_OFFSET64 -#define _XOPEN_SOURCE 500 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "bcache.h" - -int main(int argc, char **argv) -{ - bool udev = false; - int i, o; - extern char *optarg; - struct cache_sb sb; - char uuid[40]; - blkid_probe pr; - - while ((o = getopt(argc, argv, "o:")) != EOF) - switch (o) { - case 'o': - if (strcmp("udev", optarg)) { - printf("Invalid output format %s\n", optarg); - exit(EXIT_FAILURE); - } - udev = true; - break; - } - - - argv += optind; - argc -= optind; - - for (i = 0; i < argc; i++) { - int fd = open(argv[i], O_RDONLY); - if (fd == -1) - continue; - - if (!(pr = blkid_new_probe())) - continue; - if (blkid_probe_set_device(pr, fd, 0, 0)) - continue; - /* probe partitions too */ - if (blkid_probe_enable_partitions(pr, true)) - continue; - /* bail if anything was found - * probe-bcache isn't needed once blkid recognizes bcache */ - if (!blkid_do_probe(pr)) { - continue; - } - - if (pread(fd, &sb, sizeof(sb), SB_SECTOR << 9) != sizeof(sb)) - continue; - - if (memcmp(&sb.magic, &BCACHE_MAGIC, sizeof(sb.magic))) - continue; - - uuid_unparse(sb.disk_uuid.b, uuid); - - if (udev) - printf("ID_FS_UUID=%s\n" - "ID_FS_UUID_ENC=%s\n" - "ID_FS_TYPE=bcache\n", - uuid, uuid); - else - printf("%s: UUID=\"\" TYPE=\"bcache\"\n", uuid); - } - - return 0; -} -- 2.39.2