[Pkg-ceph-commits] [ceph-dkms] 01/07: Initial commit
Dmitry Smirnov
onlyjob at moszumanska.debian.org
Thu May 8 20:10:24 UTC 2014
This is an automated email from the git hooks/post-receive script.
onlyjob pushed a commit to branch master
in repository ceph-dkms.
commit d159130
Author: Dmitry Smirnov <onlyjob at member.fsf.org>
Date: Wed May 7 21:26:20 2014
Initial commit
---
debian/Makefile | 15 +
debian/README.Debian | 16 +
debian/changelog | 5 +
debian/compat | 1 +
debian/control | 25 +
debian/copyright | 65 ++
debian/dkms | 18 +
debian/patches/out-of-tree.patch | 1739 ++++++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
debian/rules | 73 ++
debian/source/format | 1 +
debian/watch | 9 +
12 files changed, 1968 insertions(+)
diff --git a/debian/Makefile b/debian/Makefile
new file mode 100644
index 0000000..b79bdc6
--- /dev/null
+++ b/debian/Makefile
@@ -0,0 +1,15 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+#
+# Makefile for Ceph FS and RBD kernel device drivers.
+#
+
+all:
+ KERNELDIR=$(KERNELDIR) $(MAKE) -C libceph
+ KERNELDIR=$(KERNELDIR) $(MAKE) -C ceph
+ KERNELDIR=$(KERNELDIR) $(MAKE) -C rbd
+
+clean:
+ $(MAKE) -C libceph clean
+ $(MAKE) -C ceph clean
+ $(MAKE) -C rbd clean
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000..0057d88
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,16 @@
+Note that modules
+
+ libceph
+ ceph
+ rbd
+
+are also shipped with Linux kernel.
+Modules are not re-loaded automatically.
+To use new modules reboot or unload in-kernel modules using `modprobe`:
+
+ modprobe -vr ceph
+ modprobe -vr rbd
+ modprobe -vr libceph
+
+Usually there is no need to manually load modules as Ceph scripts do it
+automatically.
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..a42b724
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+ceph-dkms (0+git20140429-1) unstable; urgency=low
+
+ * Initial release (Closes: #______).
+
+ -- Dmitry Smirnov <onlyjob at debian.org> Wed, 07 May 2014 11:22:53 +1000
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..da2c58c
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,25 @@
+Source: ceph-dkms
+Section: kernel
+Priority: optional
+Maintainer: Ceph Maintainers <ceph-maintainers at lists.ceph.com>
+Uploaders: Dmitry Smirnov <onlyjob at debian.org>
+Build-Depends: debhelper (>= 9), dkms
+Standards-Version: 3.9.5
+Homepage: https://github.com/ceph/ceph-client
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-ceph/ceph-dkms.git
+Vcs-Git: git://anonscm.debian.org/pkg-ceph/ceph-dkms.git
+
+Package: ceph-dkms
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: ceph-common
+Description: Ceph FS and RBD Linux kernel drivers (DKMS version)
+ DKMS drivers allow to use Ceph file system and RBD devices with jerasure
+ pools that natively supported only by Linux kernel 3.15+.
+ .
+ This package provides DKMS kernel modules for Linux Kernel 3.13+.
+ .
+ Ceph is a scalable distributed storage system; RBD is a block device
+ striped across multiple distributed objects in RADOS, a reliable,
+ autonomic distributed object storage cluster developed as part of the Ceph
+ distributed storage system.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..e272d71
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,65 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: ceph-client
+Source: https://github.com/ceph/ceph-client
+
+Files: *
+Copyright: 2004-2014 Sage Weil <sage at newdream.net>
+ 2013 Adfin Solutions, Inc.
+ 2013 Guangliang Zhao, <lucienchao at gmail.com>
+ 2009 Red Hat, Inc.
+License: GPL-2
+
+Files: rbd/rbd_types.h:
+Copyright: 2004-2010 Sage Weil <sage at newdream.net>
+License: LGPL-2.1
+
+Files: debian/*
+Copyright: 2014 Dmitry Smirnov <onlyjob at debian.org>
+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; under 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.
+ .
+ The complete text of the GNU General Public License version 2
+ can be found in "/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 program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ The complete text of the GNU General Public License version 2
+ can be found in "/usr/share/common-licenses/GPL-2".
+
+License: LGPL-2.1
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License version 2.1 as published by the Free Software Foundation.
+ .
+ This library 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
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ The complete text of the GNU Lesser General Public License
+ can be found in "/usr/share/common-licenses/LGPL-2.1".
diff --git a/debian/dkms b/debian/dkms
new file mode 100644
index 0000000..d6de97e
--- /dev/null
+++ b/debian/dkms
@@ -0,0 +1,18 @@
+PACKAGE_NAME="ceph"
+PACKAGE_VERSION="#MODULE_VERSION#"
+AUTOINSTALL="yes"
+REMAKE_INITRD="no"
+
+MAKE="KERNELDIR=$kernel_source_dir make V=1"
+
+BUILT_MODULE_NAME[0]="ceph"
+BUILT_MODULE_LOCATION[0]="ceph"
+DEST_MODULE_LOCATION[0]="/updates"
+
+BUILT_MODULE_NAME[1]="rbd"
+BUILT_MODULE_LOCATION[1]="rbd"
+DEST_MODULE_LOCATION[1]="/updates"
+
+BUILT_MODULE_NAME[2]="libceph"
+BUILT_MODULE_LOCATION[2]="libceph"
+DEST_MODULE_LOCATION[2]="/updates"
diff --git a/debian/patches/out-of-tree.patch b/debian/patches/out-of-tree.patch
new file mode 100644
index 0000000..002c98a
--- /dev/null
+++ b/debian/patches/out-of-tree.patch
@@ -0,0 +1,1739 @@
+Last-Update: 2014-05-07
+Forwarded: not-needed
+Author: Dmitry Smirnov <onlyjob at member.fsf.org>
+Description: adaptation to build modules outside of kernel tree (e.g. for DKMS)
+
+--- a/linux/ceph/libceph.h
++++ b/linux/ceph/libceph.h
+@@ -1,8 +1,8 @@
+ #ifndef _FS_CEPH_LIBCEPH_H
+ #define _FS_CEPH_LIBCEPH_H
+
+-#include <linux/ceph/ceph_debug.h>
++#include "ceph_debug.h"
+
+ #include <asm/unaligned.h>
+ #include <linux/backing-dev.h>
+ #include <linux/completion.h>
+@@ -14,14 +14,14 @@
+ #include <linux/wait.h>
+ #include <linux/writeback.h>
+ #include <linux/slab.h>
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/msgpool.h>
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/osd_client.h>
+-#include <linux/ceph/ceph_fs.h>
++#include "types.h"
++#include "messenger.h"
++#include "msgpool.h"
++#include "mon_client.h"
++#include "osd_client.h"
++#include "ceph_fs.h"
+
+ /*
+ * mount options
+ */
+--- a/rbd/rbd.c
++++ b/rbd/rbd.c
+@@ -27,12 +27,12 @@
+ Documentation/ABI/testing/sysfs-bus-rbd
+
+ */
+
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/osd_client.h>
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/decode.h>
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/osd_client.h"
++#include "../linux/ceph/mon_client.h"
++#include "../linux/ceph/decode.h"
+ #include <linux/parser.h>
+ #include <linux/bsearch.h>
+
+ #include <linux/kernel.h>
+--- a/linux/ceph/decode.h
++++ b/linux/ceph/decode.h
+@@ -5,9 +5,9 @@
+ #include <linux/bug.h>
+ #include <linux/time.h>
+ #include <asm/unaligned.h>
+
+-#include <linux/ceph/types.h>
++#include "types.h"
+
+ /*
+ * in all cases,
+ * void **p pointer to position pointer
+--- a/linux/ceph/mon_client.h
++++ b/linux/ceph/mon_client.h
+@@ -4,9 +4,9 @@
+ #include <linux/completion.h>
+ #include <linux/kref.h>
+ #include <linux/rbtree.h>
+
+-#include <linux/ceph/messenger.h>
++#include "messenger.h"
+
+ struct ceph_client;
+ struct ceph_mount_args;
+ struct ceph_auth_client;
+--- a/linux/ceph/osd_client.h
++++ b/linux/ceph/osd_client.h
+@@ -5,13 +5,13 @@
+ #include <linux/kref.h>
+ #include <linux/mempool.h>
+ #include <linux/rbtree.h>
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/osdmap.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/auth.h>
+-#include <linux/ceph/pagelist.h>
++#include "types.h"
++#include "osdmap.h"
++#include "messenger.h"
++#include "auth.h"
++#include "pagelist.h"
+
+ struct ceph_msg;
+ struct ceph_snap_context;
+ struct ceph_osd_request;
+--- a/linux/ceph/auth.h
++++ b/linux/ceph/auth.h
+@@ -1,9 +1,9 @@
+ #ifndef _FS_CEPH_AUTH_H
+ #define _FS_CEPH_AUTH_H
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/buffer.h>
++#include "types.h"
++#include "buffer.h"
+
+ /*
+ * Abstract interface for communicating with the authenticate module.
+ * There is some handshake that takes place between us and the monitor
+--- a/linux/ceph/ceph_fs.h
++++ b/linux/ceph/ceph_fs.h
+@@ -11,10 +11,10 @@
+
+ #ifndef CEPH_FS_H
+ #define CEPH_FS_H
+
+-#include <linux/ceph/msgr.h>
+-#include <linux/ceph/rados.h>
++#include "msgr.h"
++#include "rados.h"
+
+ /*
+ * subprotocol versions. when specific messages types or high-level
+ * protocols change, bump the affected components. we keep rev
+--- a/linux/ceph/debugfs.h
++++ b/linux/ceph/debugfs.h
+@@ -1,9 +1,9 @@
+ #ifndef _FS_CEPH_DEBUGFS_H
+ #define _FS_CEPH_DEBUGFS_H
+
+-#include <linux/ceph/ceph_debug.h>
+-#include <linux/ceph/types.h>
++#include "ceph_debug.h"
++#include "types.h"
+
+ #define CEPH_DEFINE_SHOW_FUNC(name) \
+ static int name##_open(struct inode *inode, struct file *file) \
+ { \
+--- a/linux/ceph/mdsmap.h
++++ b/linux/ceph/mdsmap.h
+@@ -1,9 +1,9 @@
+ #ifndef _FS_CEPH_MDSMAP_H
+ #define _FS_CEPH_MDSMAP_H
+
+ #include <linux/bug.h>
+-#include <linux/ceph/types.h>
++#include "types.h"
+
+ /*
+ * mds map - describe servers in the mds cluster.
+ *
+--- a/linux/ceph/messenger.h
++++ b/linux/ceph/messenger.h
+@@ -8,10 +8,10 @@
+ #include <linux/radix-tree.h>
+ #include <linux/uio.h>
+ #include <linux/workqueue.h>
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/buffer.h>
++#include "types.h"
++#include "buffer.h"
+
+ struct ceph_msg;
+ struct ceph_connection;
+
+--- a/linux/ceph/msgpool.h
++++ b/linux/ceph/msgpool.h
+@@ -1,9 +1,9 @@
+ #ifndef _FS_CEPH_MSGPOOL
+ #define _FS_CEPH_MSGPOOL
+
+ #include <linux/mempool.h>
+-#include <linux/ceph/messenger.h>
++#include "messenger.h"
+
+ /*
+ * we use memory pools for preallocating messages we may receive, to
+ * avoid unexpected OOM conditions.
+--- a/linux/ceph/osdmap.h
++++ b/linux/ceph/osdmap.h
+@@ -1,12 +1,12 @@
+ #ifndef _FS_CEPH_OSDMAP_H
+ #define _FS_CEPH_OSDMAP_H
+
+ #include <linux/rbtree.h>
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/ceph_fs.h>
+-#include <linux/crush/crush.h>
++#include "types.h"
++#include "decode.h"
++#include "ceph_fs.h"
++#include "../crush/crush.h"
+
+ /*
+ * The osd map describes the current membership of the osd cluster and
+ * specifies the mapping of objects to placement groups and placement
+--- a/linux/ceph/rados.h
++++ b/linux/ceph/rados.h
+@@ -5,9 +5,9 @@
+ * Data types for the Ceph distributed object storage layer RADOS
+ * (Reliable Autonomic Distributed Object Store).
+ */
+
+-#include <linux/ceph/msgr.h>
++#include "msgr.h"
+
+ /*
+ * fs id
+ */
+--- a/linux/ceph/types.h
++++ b/linux/ceph/types.h
+@@ -6,11 +6,11 @@
+ #include <linux/types.h>
+ #include <linux/fcntl.h>
+ #include <linux/string.h>
+
+-#include <linux/ceph/ceph_fs.h>
+-#include <linux/ceph/ceph_frag.h>
+-#include <linux/ceph/ceph_hash.h>
++#include "ceph_fs.h"
++#include "ceph_frag.h"
++#include "ceph_hash.h"
+
+ /*
+ * Identify inodes by both their ino AND snapshot id (a u64).
+ */
+--- a/linux/crush/mapper.h
++++ b/linux/crush/mapper.h
+@@ -7,9 +7,9 @@
+ *
+ * LGPL2
+ */
+
+-#include <linux/crush/crush.h>
++#include "crush.h"
+
+ extern int crush_find_rule(const struct crush_map *map, int ruleset, int type, int size);
+ extern int crush_do_rule(const struct crush_map *map,
+ int ruleno,
+--- a/ceph/acl.c
++++ b/ceph/acl.c
+@@ -17,9 +17,9 @@
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 021110-1307, USA.
+ */
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+ #include <linux/fs.h>
+ #include <linux/string.h>
+ #include <linux/xattr.h>
+ #include <linux/posix_acl_xattr.h>
+--- a/ceph/addr.c
++++ b/ceph/addr.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/backing-dev.h>
+ #include <linux/fs.h>
+ #include <linux/mm.h>
+@@ -11,9 +11,9 @@
+
+ #include "super.h"
+ #include "mds_client.h"
+ #include "cache.h"
+-#include <linux/ceph/osd_client.h>
++#include "../linux/ceph/osd_client.h"
+
+ /*
+ * Ceph address space ops.
+ *
+--- a/ceph/caps.c
++++ b/ceph/caps.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/fs.h>
+ #include <linux/kernel.h>
+ #include <linux/sched.h>
+@@ -10,10 +10,10 @@
+
+ #include "super.h"
+ #include "mds_client.h"
+ #include "cache.h"
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/messenger.h>
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/messenger.h"
+
+ /*
+ * Capability management
+ *
+--- a/ceph/ceph_frag.c
++++ b/ceph/ceph_frag.c
+@@ -1,9 +1,9 @@
+ /*
+ * Ceph 'frag' type
+ */
+ #include <linux/module.h>
+-#include <linux/ceph/types.h>
++#include "../linux/ceph/types.h"
+
+ int ceph_frag_compare(__u32 a, __u32 b)
+ {
+ unsigned va = ceph_frag_value(a);
+--- a/ceph/debugfs.c
++++ b/ceph/debugfs.c
+@@ -1,17 +1,17 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/device.h>
+ #include <linux/slab.h>
+ #include <linux/module.h>
+ #include <linux/ctype.h>
+ #include <linux/debugfs.h>
+ #include <linux/seq_file.h>
+
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/auth.h>
+-#include <linux/ceph/debugfs.h>
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/mon_client.h"
++#include "../linux/ceph/auth.h"
++#include "../linux/ceph/debugfs.h"
+
+ #include "super.h"
+
+ #ifdef CONFIG_DEBUG_FS
+--- a/ceph/dir.c
++++ b/ceph/dir.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/spinlock.h>
+ #include <linux/fs_struct.h>
+ #include <linux/namei.h>
+--- a/ceph/export.c
++++ b/ceph/export.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/exportfs.h>
+ #include <linux/slab.h>
+ #include <asm/unaligned.h>
+--- a/ceph/file.c
++++ b/ceph/file.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+--- a/ceph/inode.c
++++ b/ceph/inode.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/fs.h>
+ #include <linux/slab.h>
+@@ -13,9 +13,9 @@
+
+ #include "super.h"
+ #include "mds_client.h"
+ #include "cache.h"
+-#include <linux/ceph/decode.h>
++#include "../linux/ceph/decode.h"
+
+ /*
+ * Ceph inode operations
+ *
+--- a/ceph/ioctl.c
++++ b/ceph/ioctl.c
+@@ -1,9 +1,9 @@
+ #include <linux/in.h>
+
+ #include "super.h"
+ #include "mds_client.h"
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include "ioctl.h"
+
+
+--- a/ceph/locks.c
++++ b/ceph/locks.c
+@@ -1,13 +1,13 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/file.h>
+ #include <linux/namei.h>
+ #include <linux/random.h>
+
+ #include "super.h"
+ #include "mds_client.h"
+-#include <linux/ceph/pagelist.h>
++#include "../linux/ceph/pagelist.h"
+
+ static u64 lock_secret;
+
+ static inline u64 secure_addr(void *addr)
+--- a/ceph/mds_client.c
++++ b/ceph/mds_client.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/fs.h>
+ #include <linux/wait.h>
+ #include <linux/slab.h>
+@@ -10,14 +10,14 @@
+
+ #include "super.h"
+ #include "mds_client.h"
+
+-#include <linux/ceph/ceph_features.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/pagelist.h>
+-#include <linux/ceph/auth.h>
+-#include <linux/ceph/debugfs.h>
++#include "../linux/ceph/ceph_features.h"
++#include "../linux/ceph/messenger.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/pagelist.h"
++#include "../linux/ceph/auth.h"
++#include "../linux/ceph/debugfs.h"
+
+ /*
+ * A cluster of MDS (metadata server) daemons is responsible for
+ * managing the file system namespace (the directory hierarchy and
+--- a/ceph/mds_client.h
++++ b/ceph/mds_client.h
+@@ -7,12 +7,12 @@
+ #include <linux/mutex.h>
+ #include <linux/rbtree.h>
+ #include <linux/spinlock.h>
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/mdsmap.h>
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/types.h"
++#include "../linux/ceph/messenger.h"
++#include "../linux/ceph/mdsmap.h"
++#include "../linux/ceph/auth.h"
+
+ /*
+ * Some lock dependencies:
+ *
+--- a/ceph/mdsmap.c
++++ b/ceph/mdsmap.c
+@@ -1,15 +1,15 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/bug.h>
+ #include <linux/err.h>
+ #include <linux/random.h>
+ #include <linux/slab.h>
+ #include <linux/types.h>
+
+-#include <linux/ceph/mdsmap.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/decode.h>
++#include "../linux/ceph/mdsmap.h"
++#include "../linux/ceph/messenger.h"
++#include "../linux/ceph/decode.h"
+
+ #include "super.h"
+
+
+--- a/ceph/snap.c
++++ b/ceph/snap.c
+@@ -1,13 +1,13 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/sort.h>
+ #include <linux/slab.h>
+
+ #include "super.h"
+ #include "mds_client.h"
+
+-#include <linux/ceph/decode.h>
++#include "../linux/ceph/decode.h"
+
+ /*
+ * Snapshots in ceph are driven in large part by cooperation from the
+ * client. In contrast to local file systems or file servers that
+--- a/ceph/strings.c
++++ b/ceph/strings.c
+@@ -1,9 +1,9 @@
+ /*
+ * Ceph fs string constants
+ */
+ #include <linux/module.h>
+-#include <linux/ceph/types.h>
++#include "../linux/ceph/types.h"
+
+
+ const char *ceph_mds_state_name(int s)
+ {
+--- a/ceph/super.c
++++ b/ceph/super.c
+@@ -1,6 +1,6 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/backing-dev.h>
+ #include <linux/ctype.h>
+ #include <linux/fs.h>
+@@ -18,13 +18,13 @@
+ #include "super.h"
+ #include "mds_client.h"
+ #include "cache.h"
+
+-#include <linux/ceph/ceph_features.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/auth.h>
+-#include <linux/ceph/debugfs.h>
++#include "../linux/ceph/ceph_features.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/mon_client.h"
++#include "../linux/ceph/auth.h"
++#include "../linux/ceph/debugfs.h"
+
+ /*
+ * Ceph superblock operations
+ *
+--- a/ceph/super.h
++++ b/ceph/super.h
+@@ -1,8 +1,8 @@
+ #ifndef _FS_CEPH_SUPER_H
+ #define _FS_CEPH_SUPER_H
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <asm/unaligned.h>
+ #include <linux/backing-dev.h>
+ #include <linux/completion.h>
+@@ -14,9 +14,9 @@
+ #include <linux/writeback.h>
+ #include <linux/slab.h>
+ #include <linux/posix_acl.h>
+
+-#include <linux/ceph/libceph.h>
++#include "../linux/ceph/libceph.h"
+
+ #ifdef CONFIG_CEPH_FSCACHE
+ #include <linux/fscache.h>
+ #endif
+--- a/ceph/xattr.c
++++ b/ceph/xattr.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include "super.h"
+ #include "mds_client.h"
+
+--- a/ceph/Makefile
++++ b/ceph/Makefile
+@@ -1,8 +1,9 @@
+ #
+ # Makefile for CEPH filesystem.
+ #
+
++ifneq ($(KERNELRELEASE),)
+ obj-$(CONFIG_CEPH_FS) += ceph.o
+
+ ceph-y := super.o inode.o dir.o file.o locks.o addr.o ioctl.o \
+ export.o caps.o snap.o xattr.o \
+@@ -10,4 +11,21 @@
+ debugfs.o
+
+ ceph-$(CONFIG_CEPH_FSCACHE) += cache.o
+ ceph-$(CONFIG_CEPH_FS_POSIX_ACL) += acl.o
++else
++
++KERNELRELEASE ?= $(shell uname -r)
++KERNELDIR ?= /lib/modules/$(KERNELRELEASE)/build
++
++default: all
++
++all:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) CONFIG_CEPH_FS=m CONFIG_CEPH_FS_POSIX_ACL=y modules
++
++modules_install:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) CONFIG_CEPH_FS=m CONFIG_CEPH_FS_POSIX_ACL=y modules_install
++
++clean:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) clean
++
++endif
+--- a/libceph/Makefile
++++ b/libceph/Makefile
+@@ -1,7 +1,9 @@
+ #
+-# Makefile for CEPH filesystem.
++# Makefile for libceph module.
+ #
++
++ifneq ($(KERNELRELEASE),)
+ obj-$(CONFIG_CEPH_LIB) += libceph.o
+
+ libceph-y := ceph_common.o messenger.o msgpool.o buffer.o pagelist.o \
+ mon_client.o \
+@@ -12,4 +14,21 @@
+ auth_x.o \
+ ceph_fs.o ceph_strings.o ceph_hash.o \
+ pagevec.o snapshot.o
+
++else
++
++KERNELRELEASE ?= $(shell uname -r)
++KERNELDIR ?= /lib/modules/$(KERNELRELEASE)/build
++
++default: all
++
++all:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) CONFIG_CEPH_LIB=m modules
++
++modules_install:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) CONFIG_CEPH_LIB=m modules_install
++
++clean:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) clean
++
++endif
+--- a/libceph/auth.c
++++ b/libceph/auth.c
+@@ -1,14 +1,14 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/err.h>
+ #include <linux/slab.h>
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/messenger.h>
++#include "../linux/ceph/types.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/messenger.h"
+ #include "auth_none.h"
+ #include "auth_x.h"
+
+
+--- a/libceph/auth_none.c
++++ b/libceph/auth_none.c
+@@ -1,14 +1,14 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/err.h>
+ #include <linux/module.h>
+ #include <linux/random.h>
+ #include <linux/slab.h>
+
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/auth.h"
+
+ #include "auth_none.h"
+
+ static void reset(struct ceph_auth_client *ac)
+--- a/libceph/auth_none.h
++++ b/libceph/auth_none.h
+@@ -1,9 +1,9 @@
+ #ifndef _FS_CEPH_AUTH_NONE_H
+ #define _FS_CEPH_AUTH_NONE_H
+
+ #include <linux/slab.h>
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/auth.h"
+
+ /*
+ * null security mode.
+ *
+--- a/libceph/auth_x.c
++++ b/libceph/auth_x.c
+@@ -1,14 +1,14 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/err.h>
+ #include <linux/module.h>
+ #include <linux/random.h>
+ #include <linux/slab.h>
+
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/auth.h"
+
+ #include "crypto.h"
+ #include "auth_x.h"
+ #include "auth_x_protocol.h"
+--- a/libceph/auth_x.h
++++ b/libceph/auth_x.h
+@@ -2,9 +2,9 @@
+ #define _FS_CEPH_AUTH_X_H
+
+ #include <linux/rbtree.h>
+
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/auth.h"
+
+ #include "crypto.h"
+ #include "auth_x_protocol.h"
+
+--- a/libceph/buffer.c
++++ b/libceph/buffer.c
+@@ -1,13 +1,13 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/slab.h>
+
+-#include <linux/ceph/buffer.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/libceph.h> /* for ceph_kv{malloc,free} */
++#include "../linux/ceph/buffer.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/libceph.h" /* for ceph_kv{malloc,free} */
+
+ struct ceph_buffer *ceph_buffer_new(size_t len, gfp_t gfp)
+ {
+ struct ceph_buffer *b;
+--- a/libceph/ceph_common.c
++++ b/libceph/ceph_common.c
+@@ -1,13 +1,13 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+ #include <linux/backing-dev.h>
+ #include <linux/ctype.h>
+ #include <linux/fs.h>
+ #include <linux/inet.h>
+ #include <linux/in6.h>
+ #include <linux/key.h>
+-#include <keys/ceph-type.h>
++#include "../keys/ceph-type.h"
+ #include <linux/module.h>
+ #include <linux/mount.h>
+ #include <linux/parser.h>
+ #include <linux/sched.h>
+@@ -19,14 +19,14 @@
+ #include <linux/nsproxy.h>
+ #include <net/net_namespace.h>
+
+
+-#include <linux/ceph/ceph_features.h>
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/debugfs.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/ceph_features.h"
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/debugfs.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/mon_client.h"
++#include "../linux/ceph/auth.h"
+ #include "crypto.h"
+
+
+ /*
+--- a/libceph/ceph_fs.c
++++ b/libceph/ceph_fs.c
+@@ -1,9 +1,9 @@
+ /*
+ * Some non-inline ceph helpers
+ */
+ #include <linux/module.h>
+-#include <linux/ceph/types.h>
++#include "../linux/ceph/types.h"
+
+ /*
+ * return true if @layout appears to be valid
+ */
+--- a/libceph/ceph_hash.c
++++ b/libceph/ceph_hash.c
+@@ -1,6 +1,6 @@
+
+-#include <linux/ceph/types.h>
++#include "../linux/ceph/types.h"
+ #include <linux/module.h>
+
+ /*
+ * Robert Jenkin's hash function.
+--- a/libceph/ceph_strings.c
++++ b/libceph/ceph_strings.c
+@@ -1,9 +1,9 @@
+ /*
+ * Ceph string constants
+ */
+ #include <linux/module.h>
+-#include <linux/ceph/types.h>
++#include "../linux/ceph/types.h"
+
+ const char *ceph_entity_type_name(int type)
+ {
+ switch (type) {
+--- a/libceph/crypto.c
++++ b/libceph/crypto.c
+@@ -1,15 +1,15 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/err.h>
+ #include <linux/scatterlist.h>
+ #include <linux/slab.h>
+ #include <crypto/hash.h>
+ #include <linux/key-type.h>
+
+-#include <keys/ceph-type.h>
+-#include <linux/ceph/decode.h>
++#include "../keys/ceph-type.h"
++#include "../linux/ceph/decode.h"
+ #include "crypto.h"
+
+ int ceph_crypto_key_clone(struct ceph_crypto_key *dst,
+ const struct ceph_crypto_key *src)
+--- a/libceph/crypto.h
++++ b/libceph/crypto.h
+@@ -1,9 +1,9 @@
+ #ifndef _FS_CEPH_CRYPTO_H
+ #define _FS_CEPH_CRYPTO_H
+
+-#include <linux/ceph/types.h>
+-#include <linux/ceph/buffer.h>
++#include "../linux/ceph/types.h"
++#include "../linux/ceph/buffer.h"
+
+ /*
+ * cryptographic secret
+ */
+--- a/libceph/debugfs.c
++++ b/libceph/debugfs.c
+@@ -1,17 +1,17 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/device.h>
+ #include <linux/slab.h>
+ #include <linux/module.h>
+ #include <linux/ctype.h>
+ #include <linux/debugfs.h>
+ #include <linux/seq_file.h>
+
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/auth.h>
+-#include <linux/ceph/debugfs.h>
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/mon_client.h"
++#include "../linux/ceph/auth.h"
++#include "../linux/ceph/debugfs.h"
+
+ #ifdef CONFIG_DEBUG_FS
+
+ /*
+--- a/libceph/messenger.c
++++ b/libceph/messenger.c
+@@ -1,5 +1,5 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/crc32c.h>
+ #include <linux/ctype.h>
+ #include <linux/highmem.h>
+@@ -14,13 +14,13 @@
+ #endif /* CONFIG_BLOCK */
+ #include <linux/dns_resolver.h>
+ #include <net/tcp.h>
+
+-#include <linux/ceph/ceph_features.h>
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/pagelist.h>
++#include "../linux/ceph/ceph_features.h"
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/messenger.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/pagelist.h"
+ #include <linux/export.h>
+
+ #define list_entry_next(pos, member) \
+ list_entry(pos->member.next, typeof(*pos), member)
+--- a/libceph/mon_client.c
++++ b/libceph/mon_client.c
+@@ -1,17 +1,17 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/slab.h>
+ #include <linux/random.h>
+ #include <linux/sched.h>
+
+-#include <linux/ceph/mon_client.h>
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/debugfs.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/auth.h>
++#include "../linux/ceph/mon_client.h"
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/debugfs.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/auth.h"
+
+ /*
+ * Interact with Ceph monitor cluster. Handle requests for new map
+ * versions, and periodically resend as needed. Also implement
+--- a/libceph/msgpool.c
++++ b/libceph/msgpool.c
+@@ -1,12 +1,12 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/err.h>
+ #include <linux/sched.h>
+ #include <linux/types.h>
+ #include <linux/vmalloc.h>
+
+-#include <linux/ceph/msgpool.h>
++#include "../linux/ceph/msgpool.h"
+
+ static void *msgpool_alloc(gfp_t gfp_mask, void *arg)
+ {
+ struct ceph_msgpool *pool = arg;
+--- a/libceph/osd_client.c
++++ b/libceph/osd_client.c
+@@ -1,6 +1,6 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/err.h>
+ #include <linux/highmem.h>
+@@ -11,14 +11,14 @@
+ #ifdef CONFIG_BLOCK
+ #include <linux/bio.h>
+ #endif
+
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/osd_client.h>
+-#include <linux/ceph/messenger.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/ceph/auth.h>
+-#include <linux/ceph/pagelist.h>
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/osd_client.h"
++#include "../linux/ceph/messenger.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/ceph/auth.h"
++#include "../linux/ceph/pagelist.h"
+
+ #define OSD_OP_FRONT_LEN 4096
+ #define OSD_OPREPLY_FRONT_LEN 512
+
+--- a/libceph/osdmap.c
++++ b/libceph/osdmap.c
+@@ -1,16 +1,16 @@
+
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/slab.h>
+ #include <asm/div64.h>
+
+-#include <linux/ceph/libceph.h>
+-#include <linux/ceph/osdmap.h>
+-#include <linux/ceph/decode.h>
+-#include <linux/crush/hash.h>
+-#include <linux/crush/mapper.h>
++#include "../linux/ceph/libceph.h"
++#include "../linux/ceph/osdmap.h"
++#include "../linux/ceph/decode.h"
++#include "../linux/crush/hash.h"
++#include "../linux/crush/mapper.h"
+
+ char *ceph_osdmap_state_str(char *str, int len, int state)
+ {
+ if (!len)
+--- a/libceph/pagelist.c
++++ b/libceph/pagelist.c
+@@ -1,9 +1,9 @@
+ #include <linux/module.h>
+ #include <linux/gfp.h>
+ #include <linux/pagemap.h>
+ #include <linux/highmem.h>
+-#include <linux/ceph/pagelist.h>
++#include "../linux/ceph/pagelist.h"
+
+ static void ceph_pagelist_unmap_tail(struct ceph_pagelist *pl)
+ {
+ if (pl->mapped_tail) {
+--- a/libceph/pagevec.c
++++ b/libceph/pagevec.c
+@@ -1,14 +1,14 @@
+-#include <linux/ceph/ceph_debug.h>
++#include "../linux/ceph/ceph_debug.h"
+
+ #include <linux/module.h>
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/file.h>
+ #include <linux/namei.h>
+ #include <linux/writeback.h>
+
+-#include <linux/ceph/libceph.h>
++#include "../linux/ceph/libceph.h"
+
+ /*
+ * build a vector of user pages
+ */
+--- a/libceph/snapshot.c
++++ b/libceph/snapshot.c
+@@ -21,9 +21,9 @@
+ #include <stddef.h>
+
+ #include <linux/types.h>
+ #include <linux/export.h>
+-#include <linux/ceph/libceph.h>
++#include "../linux/ceph/libceph.h"
+
+ /*
+ * Ceph snapshot contexts are reference counted objects, and the
+ * returned structure holds a single reference. Acquire additional
+--- a/libceph/crush/crush.c
++++ b/libceph/crush/crush.c
+@@ -7,9 +7,9 @@
+ # define kfree(x) do { if (x) free(x); } while (0)
+ # define BUG_ON(x) assert(!(x))
+ #endif
+
+-#include <linux/crush/crush.h>
++#include "../../linux/crush/crush.h"
+
+ const char *crush_bucket_alg_name(int alg)
+ {
+ switch (alg) {
+--- a/libceph/crush/hash.c
++++ b/libceph/crush/hash.c
+@@ -1,7 +1,7 @@
+
+ #include <linux/types.h>
+-#include <linux/crush/hash.h>
++#include "../../linux/crush/hash.h"
+
+ /*
+ * Robert Jenkins' function for mixing 32-bit values
+ * http://burtleburtle.net/bob/hash/evahash.html
+--- a/libceph/crush/mapper.c
++++ b/libceph/crush/mapper.c
+@@ -17,11 +17,11 @@
+ # define kmalloc(x, f) malloc(x)
+ # define kfree(x) free(x)
+ #endif
+
+-#include <linux/crush/crush.h>
+-#include <linux/crush/hash.h>
+-#include <linux/crush/mapper.h>
++#include "../../linux/crush/crush.h"
++#include "../../linux/crush/hash.h"
++#include "../../linux/crush/mapper.h"
+
+ /*
+ * Implement the core CRUSH mapping algorithm.
+ */
+--- a/rbd/Kconfig
++++ b/rbd/Kconfig
+@@ -1,536 +1,8 @@
+ #
+-# Block device driver configuration
++# Rados block device driver configuration
+ #
+
+-menuconfig BLK_DEV
+- bool "Block devices"
+- depends on BLOCK
+- default y
+- ---help---
+- Say Y here to get to see options for various different block device
+- drivers. This option alone does not add any kernel code.
+-
+- If you say N, all options in this submenu will be skipped and disabled;
+- only do this if you know what you are doing.
+-
+-if BLK_DEV
+-
+-config BLK_DEV_NULL_BLK
+- tristate "Null test block driver"
+-
+-config BLK_DEV_FD
+- tristate "Normal floppy disk support"
+- depends on ARCH_MAY_HAVE_PC_FDC
+- ---help---
+- If you want to use the floppy disk drive(s) of your PC under Linux,
+- say Y. Information about this driver, especially important for IBM
+- Thinkpad users, is contained in
+- <file:Documentation/blockdev/floppy.txt>.
+- That file also contains the location of the Floppy driver FAQ as
+- well as location of the fdutils package used to configure additional
+- parameters of the driver at run time.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called floppy.
+-
+-config AMIGA_FLOPPY
+- tristate "Amiga floppy support"
+- depends on AMIGA
+-
+-config ATARI_FLOPPY
+- tristate "Atari floppy support"
+- depends on ATARI
+-
+-config MAC_FLOPPY
+- tristate "Support for PowerMac floppy"
+- depends on PPC_PMAC && !PPC_PMAC64
+- help
+- If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple)
+- floppy controller, say Y here. Most commonly found in PowerMacs.
+-
+-config BLK_DEV_SWIM
+- tristate "Support for SWIM Macintosh floppy"
+- depends on M68K && MAC
+- help
+- You should select this option if you want floppy support
+- and you don't have a II, IIfx, Q900, Q950 or AV series.
+-
+-config AMIGA_Z2RAM
+- tristate "Amiga Zorro II ramdisk support"
+- depends on ZORRO
+- help
+- This enables support for using Chip RAM and Zorro II RAM as a
+- ramdisk or as a swap partition. Say Y if you want to include this
+- driver in the kernel.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called z2ram.
+-
+-config GDROM
+- tristate "SEGA Dreamcast GD-ROM drive"
+- depends on SH_DREAMCAST
+- help
+- A standard SEGA Dreamcast comes with a modified CD ROM drive called a
+- "GD-ROM" by SEGA to signify it is capable of reading special disks
+- with up to 1 GB of data. This drive will also read standard CD ROM
+- disks. Select this option to access any disks in your GD ROM drive.
+- Most users will want to say "Y" here.
+- You can also build this as a module which will be called gdrom.
+-
+-config PARIDE
+- tristate "Parallel port IDE device support"
+- depends on PARPORT_PC
+- ---help---
+- There are many external CD-ROM and disk devices that connect through
+- your computer's parallel port. Most of them are actually IDE devices
+- using a parallel port IDE adapter. This option enables the PARIDE
+- subsystem which contains drivers for many of these external drives.
+- Read <file:Documentation/blockdev/paride.txt> for more information.
+-
+- If you have said Y to the "Parallel-port support" configuration
+- option, you may share a single port between your printer and other
+- parallel port devices. Answer Y to build PARIDE support into your
+- kernel, or M if you would like to build it as a loadable module. If
+- your parallel port support is in a loadable module, you must build
+- PARIDE as a module. If you built PARIDE support into your kernel,
+- you may still build the individual protocol modules and high-level
+- drivers as loadable modules. If you build this support as a module,
+- it will be called paride.
+-
+- To use the PARIDE support, you must say Y or M here and also to at
+- least one high-level driver (e.g. "Parallel port IDE disks",
+- "Parallel port ATAPI CD-ROMs", "Parallel port ATAPI disks" etc.) and
+- to at least one protocol driver (e.g. "ATEN EH-100 protocol",
+- "MicroSolutions backpack protocol", "DataStor Commuter protocol"
+- etc.).
+-
+-source "drivers/block/paride/Kconfig"
+-
+-source "drivers/block/mtip32xx/Kconfig"
+-
+-source "drivers/block/zram/Kconfig"
+-
+-config BLK_CPQ_DA
+- tristate "Compaq SMART2 support"
+- depends on PCI && VIRT_TO_BUS && 0
+- help
+- This is the driver for Compaq Smart Array controllers. Everyone
+- using these boards should say Y here. See the file
+- <file:Documentation/blockdev/cpqarray.txt> for the current list of
+- boards supported by this driver, and for further information on the
+- use of this driver.
+-
+-config BLK_CPQ_CISS_DA
+- tristate "Compaq Smart Array 5xxx support"
+- depends on PCI
+- select CHECK_SIGNATURE
+- help
+- This is the driver for Compaq Smart Array 5xxx controllers.
+- Everyone using these boards should say Y here.
+- See <file:Documentation/blockdev/cciss.txt> for the current list of
+- boards supported by this driver, and for further information
+- on the use of this driver.
+-
+-config CISS_SCSI_TAPE
+- bool "SCSI tape drive support for Smart Array 5xxx"
+- depends on BLK_CPQ_CISS_DA && PROC_FS
+- depends on SCSI=y || SCSI=BLK_CPQ_CISS_DA
+- help
+- When enabled (Y), this option allows SCSI tape drives and SCSI medium
+- changers (tape robots) to be accessed via a Compaq 5xxx array
+- controller. (See <file:Documentation/blockdev/cciss.txt> for more details.)
+-
+- "SCSI support" and "SCSI tape support" must also be enabled for this
+- option to work.
+-
+- When this option is disabled (N), the SCSI portion of the driver
+- is not compiled.
+-
+-config BLK_DEV_DAC960
+- tristate "Mylex DAC960/DAC1100 PCI RAID Controller support"
+- depends on PCI
+- help
+- This driver adds support for the Mylex DAC960, AcceleRAID, and
+- eXtremeRAID PCI RAID controllers. See the file
+- <file:Documentation/blockdev/README.DAC960> for further information
+- about this driver.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called DAC960.
+-
+-config BLK_DEV_UMEM
+- tristate "Micro Memory MM5415 Battery Backed RAM support"
+- depends on PCI
+- ---help---
+- Saying Y here will include support for the MM5415 family of
+- battery backed (Non-volatile) RAM cards.
+- <http://www.umem.com/>
+-
+- The cards appear as block devices that can be partitioned into
+- as many as 15 partitions.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called umem.
+-
+- The umem driver has not yet been allocated a MAJOR number, so
+- one is chosen dynamically.
+-
+-config BLK_DEV_UBD
+- bool "Virtual block device"
+- depends on UML
+- ---help---
+- The User-Mode Linux port includes a driver called UBD which will let
+- you access arbitrary files on the host computer as block devices.
+- Unless you know that you do not need such virtual block devices say
+- Y here.
+-
+-config BLK_DEV_UBD_SYNC
+- bool "Always do synchronous disk IO for UBD"
+- depends on BLK_DEV_UBD
+- ---help---
+- Writes to the virtual block device are not immediately written to the
+- host's disk; this may cause problems if, for example, the User-Mode
+- Linux 'Virtual Machine' uses a journalling filesystem and the host
+- computer crashes.
+-
+- Synchronous operation (i.e. always writing data to the host's disk
+- immediately) is configurable on a per-UBD basis by using a special
+- kernel command line option. Alternatively, you can say Y here to
+- turn on synchronous operation by default for all block devices.
+-
+- If you're running a journalling file system (like reiserfs, for
+- example) in your virtual machine, you will want to say Y here. If
+- you care for the safety of the data in your virtual machine, Y is a
+- wise choice too. In all other cases (for example, if you're just
+- playing around with User-Mode Linux) you can choose N.
+-
+-config BLK_DEV_COW_COMMON
+- bool
+- default BLK_DEV_UBD
+-
+-config BLK_DEV_LOOP
+- tristate "Loopback device support"
+- ---help---
+- Saying Y here will allow you to use a regular file as a block
+- device; you can then create a file system on that block device and
+- mount it just as you would mount other block devices such as hard
+- drive partitions, CD-ROM drives or floppy drives. The loop devices
+- are block special device files with major number 7 and typically
+- called /dev/loop0, /dev/loop1 etc.
+-
+- This is useful if you want to check an ISO 9660 file system before
+- burning the CD, or if you want to use floppy images without first
+- writing them to floppy. Furthermore, some Linux distributions avoid
+- the need for a dedicated Linux partition by keeping their complete
+- root file system inside a DOS FAT file using this loop device
+- driver.
+-
+- To use the loop device, you need the losetup utility, found in the
+- util-linux package, see
+- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.
+-
+- The loop device driver can also be used to "hide" a file system in
+- a disk partition, floppy, or regular file, either using encryption
+- (scrambling the data) or steganography (hiding the data in the low
+- bits of, say, a sound file). This is also safe if the file resides
+- on a remote file server.
+-
+- There are several ways of encrypting disks. Some of these require
+- kernel patches. The vanilla kernel offers the cryptoloop option
+- and a Device Mapper target (which is superior, as it supports all
+- file systems). If you want to use the cryptoloop, say Y to both
+- LOOP and CRYPTOLOOP, and make sure you have a recent (version 2.12
+- or later) version of util-linux. Additionally, be aware that
+- the cryptoloop is not safe for storing journaled filesystems.
+-
+- Note that this loop device has nothing to do with the loopback
+- device used for network connections from the machine to itself.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called loop.
+-
+- Most users will answer N here.
+-
+-config BLK_DEV_LOOP_MIN_COUNT
+- int "Number of loop devices to pre-create at init time"
+- depends on BLK_DEV_LOOP
+- default 8
+- help
+- Static number of loop devices to be unconditionally pre-created
+- at init time.
+-
+- This default value can be overwritten on the kernel command
+- line or with module-parameter loop.max_loop.
+-
+- The historic default is 8. If a late 2011 version of losetup(8)
+- is used, it can be set to 0, since needed loop devices can be
+- dynamically allocated with the /dev/loop-control interface.
+-
+-config BLK_DEV_CRYPTOLOOP
+- tristate "Cryptoloop Support"
+- select CRYPTO
+- select CRYPTO_CBC
+- depends on BLK_DEV_LOOP
+- ---help---
+- Say Y here if you want to be able to use the ciphers that are
+- provided by the CryptoAPI as loop transformation. This might be
+- used as hard disk encryption.
+-
+- WARNING: This device is not safe for journaled file systems like
+- ext3 or Reiserfs. Please use the Device Mapper crypto module
+- instead, which can be configured to be on-disk compatible with the
+- cryptoloop device.
+-
+-source "drivers/block/drbd/Kconfig"
+-
+-config BLK_DEV_NBD
+- tristate "Network block device support"
+- depends on NET
+- ---help---
+- Saying Y here will allow your computer to be a client for network
+- block devices, i.e. it will be able to use block devices exported by
+- servers (mount file systems on them etc.). Communication between
+- client and server works over TCP/IP networking, but to the client
+- program this is hidden: it looks like a regular local file access to
+- a block device special file such as /dev/nd0.
+-
+- Network block devices also allows you to run a block-device in
+- userland (making server and client physically the same computer,
+- communicating using the loopback network device).
+-
+- Read <file:Documentation/blockdev/nbd.txt> for more information,
+- especially about where to find the server code, which runs in user
+- space and does not need special kernel support.
+-
+- Note that this has nothing to do with the network file systems NFS
+- or Coda; you can say N here even if you intend to use NFS or Coda.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called nbd.
+-
+- If unsure, say N.
+-
+-config BLK_DEV_NVME
+- tristate "NVM Express block device"
+- depends on PCI
+- ---help---
+- The NVM Express driver is for solid state drives directly
+- connected to the PCI or PCI Express bus. If you know you
+- don't have one of these, it is safe to answer N.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called nvme.
+-
+-config BLK_DEV_SKD
+- tristate "STEC S1120 Block Driver"
+- depends on PCI
+- depends on 64BIT
+- ---help---
+- Saying Y or M here will enable support for the
+- STEC, Inc. S1120 PCIe SSD.
+-
+- Use device /dev/skd$N amd /dev/skd$Np$M.
+-
+-config BLK_DEV_OSD
+- tristate "OSD object-as-blkdev support"
+- depends on SCSI_OSD_ULD
+- ---help---
+- Saying Y or M here will allow the exporting of a single SCSI
+- OSD (object-based storage) object as a Linux block device.
+-
+- For example, if you create a 2G object on an OSD device,
+- you can then use this module to present that 2G object as
+- a Linux block device.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called osdblk.
+-
+- If unsure, say N.
+-
+-config BLK_DEV_SX8
+- tristate "Promise SATA SX8 support"
+- depends on PCI
+- ---help---
+- Saying Y or M here will enable support for the
+- Promise SATA SX8 controllers.
+-
+- Use devices /dev/sx8/$N and /dev/sx8/$Np$M.
+-
+-config BLK_DEV_RAM
+- tristate "RAM block device support"
+- ---help---
+- Saying Y here will allow you to use a portion of your RAM memory as
+- a block device, so that you can make file systems on it, read and
+- write to it and do all the other things that you can do with normal
+- block devices (such as hard drives). It is usually used to load and
+- store a copy of a minimal root file system off of a floppy into RAM
+- during the initial install of Linux.
+-
+- Note that the kernel command line option "ramdisk=XX" is now obsolete.
+- For details, read <file:Documentation/blockdev/ramdisk.txt>.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called brd. An alias "rd" has been defined
+- for historical reasons.
+-
+- Most normal users won't need the RAM disk functionality, and can
+- thus say N here.
+-
+-config BLK_DEV_RAM_COUNT
+- int "Default number of RAM disks"
+- default "16"
+- depends on BLK_DEV_RAM
+- help
+- The default value is 16 RAM disks. Change this if you know what you
+- are doing. If you boot from a filesystem that needs to be extracted
+- in memory, you will need at least one RAM disk (e.g. root on cramfs).
+-
+-config BLK_DEV_RAM_SIZE
+- int "Default RAM disk size (kbytes)"
+- depends on BLK_DEV_RAM
+- default "4096"
+- help
+- The default value is 4096 kilobytes. Only change this if you know
+- what you are doing.
+-
+-config BLK_DEV_XIP
+- bool "Support XIP filesystems on RAM block device"
+- depends on BLK_DEV_RAM
+- default n
+- help
+- Support XIP filesystems (such as ext2 with XIP support on) on
+- top of block ram device. This will slightly enlarge the kernel, and
+- will prevent RAM block device backing store memory from being
+- allocated from highmem (only a problem for highmem systems).
+-
+-config CDROM_PKTCDVD
+- tristate "Packet writing on CD/DVD media"
+- depends on !UML
+- help
+- If you have a CDROM/DVD drive that supports packet writing, say
+- Y to include support. It should work with any MMC/Mt Fuji
+- compliant ATAPI or SCSI drive, which is just about any newer
+- DVD/CD writer.
+-
+- Currently only writing to CD-RW, DVD-RW, DVD+RW and DVDRAM discs
+- is possible.
+- DVD-RW disks must be in restricted overwrite mode.
+-
+- See the file <file:Documentation/cdrom/packet-writing.txt>
+- for further information on the use of this driver.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called pktcdvd.
+-
+-config CDROM_PKTCDVD_BUFFERS
+- int "Free buffers for data gathering"
+- depends on CDROM_PKTCDVD
+- default "8"
+- help
+- This controls the maximum number of active concurrent packets. More
+- concurrent packets can increase write performance, but also require
+- more memory. Each concurrent packet will require approximately 64Kb
+- of non-swappable kernel memory, memory which will be allocated when
+- a disc is opened for writing.
+-
+-config CDROM_PKTCDVD_WCACHE
+- bool "Enable write caching"
+- depends on CDROM_PKTCDVD
+- help
+- If enabled, write caching will be set for the CD-R/W device. For now
+- this option is dangerous unless the CD-RW media is known good, as we
+- don't do deferred write error handling yet.
+-
+-config ATA_OVER_ETH
+- tristate "ATA over Ethernet support"
+- depends on NET
+- help
+- This driver provides Support for ATA over Ethernet block
+- devices like the Coraid EtherDrive (R) Storage Blade.
+-
+-config MG_DISK
+- tristate "mGine mflash, gflash support"
+- depends on ARM && GPIOLIB
+- help
+- mGine mFlash(gFlash) block device driver
+-
+-config MG_DISK_RES
+- int "Size of reserved area before MBR"
+- depends on MG_DISK
+- default 0
+- help
+- Define size of reserved area that usually used for boot. Unit is KB.
+- All of the block device operation will be taken this value as start
+- offset
+- Examples:
+- 1024 => 1 MB
+-
+-config SUNVDC
+- tristate "Sun Virtual Disk Client support"
+- depends on SUN_LDOMS
+- help
+- Support for virtual disk devices as a client under Sun
+- Logical Domains.
+-
+-source "drivers/s390/block/Kconfig"
+-
+-config XILINX_SYSACE
+- tristate "Xilinx SystemACE support"
+- depends on 4xx || MICROBLAZE
+- help
+- Include support for the Xilinx SystemACE CompactFlash interface
+-
+-config XEN_BLKDEV_FRONTEND
+- tristate "Xen virtual block device support"
+- depends on XEN
+- default y
+- select XEN_XENBUS_FRONTEND
+- help
+- This driver implements the front-end of the Xen virtual
+- block device driver. It communicates with a back-end driver
+- in another domain which drives the actual block device.
+-
+-config XEN_BLKDEV_BACKEND
+- tristate "Xen block-device backend driver"
+- depends on XEN_BACKEND
+- help
+- The block-device backend driver allows the kernel to export its
+- block devices to other guests via a high-performance shared-memory
+- interface.
+-
+- The corresponding Linux frontend driver is enabled by the
+- CONFIG_XEN_BLKDEV_FRONTEND configuration option.
+-
+- The backend driver attaches itself to a any block device specified
+- in the XenBus configuration. There are no limits to what the block
+- device as long as it has a major and minor.
+-
+- If you are compiling a kernel to run in a Xen block backend driver
+- domain (often this is domain 0) you should say Y here. To
+- compile this driver as a module, chose M here: the module
+- will be called xen-blkback.
+-
+-
+-config VIRTIO_BLK
+- tristate "Virtio block driver"
+- depends on VIRTIO
+- ---help---
+- This is the virtual block driver for virtio. It can be used with
+- lguest or QEMU based VMMs (like KVM or Xen). Say Y or M.
+-
+-config BLK_DEV_HD
+- bool "Very old hard disk (MFM/RLL/IDE) driver"
+- depends on HAVE_IDE
+- depends on !ARM || ARCH_RPC || BROKEN
+- help
+- This is a very old hard disk driver that lacks the enhanced
+- functionality of the newer ones.
+-
+- It is required for systems with ancient MFM/RLL/ESDI drives.
+-
+- If unsure, say N.
+-
+ config BLK_DEV_RBD
+ tristate "Rados block device (RBD)"
+ depends on INET && BLOCK
+ select CEPH_LIB
+@@ -545,16 +17,4 @@
+
+ More information at http://ceph.newdream.net/.
+
+ If unsure, say N.
+-
+-config BLK_DEV_RSXX
+- tristate "IBM Flash Adapter 900GB Full Height PCIe Device Driver"
+- depends on PCI
+- help
+- Device driver for IBM's high speed PCIe SSD
+- storage device: Flash Adapter 900GB Full Height.
+-
+- To compile this driver as a module, choose M here: the
+- module will be called rsxx.
+-
+-endif # BLK_DEV
+--- a/rbd/Makefile
++++ b/rbd/Makefile
+@@ -1,49 +1,25 @@
+ #
+-# Makefile for the kernel block device drivers.
++# Makefile for CEPH kernel block device driver.
+ #
+-# 12 June 2000, Christoph Hellwig <hch at infradead.org>
+-# Rewritten to use lists instead of if-statements.
+-#
+-
+-obj-$(CONFIG_MAC_FLOPPY) += swim3.o
+-obj-$(CONFIG_BLK_DEV_SWIM) += swim_mod.o
+-obj-$(CONFIG_BLK_DEV_FD) += floppy.o
+-obj-$(CONFIG_AMIGA_FLOPPY) += amiflop.o
+-obj-$(CONFIG_PS3_DISK) += ps3disk.o
+-obj-$(CONFIG_PS3_VRAM) += ps3vram.o
+-obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o
+-obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o
+-obj-$(CONFIG_BLK_DEV_RAM) += brd.o
+-obj-$(CONFIG_BLK_DEV_LOOP) += loop.o
+-obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o
+-obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o
+-obj-$(CONFIG_BLK_DEV_DAC960) += DAC960.o
+-obj-$(CONFIG_XILINX_SYSACE) += xsysace.o
+-obj-$(CONFIG_CDROM_PKTCDVD) += pktcdvd.o
+-obj-$(CONFIG_MG_DISK) += mg_disk.o
+-obj-$(CONFIG_SUNVDC) += sunvdc.o
+-obj-$(CONFIG_BLK_DEV_NVME) += nvme.o
+-obj-$(CONFIG_BLK_DEV_SKD) += skd.o
+-obj-$(CONFIG_BLK_DEV_OSD) += osdblk.o
+-
+-obj-$(CONFIG_BLK_DEV_UMEM) += umem.o
+-obj-$(CONFIG_BLK_DEV_NBD) += nbd.o
+-obj-$(CONFIG_BLK_DEV_CRYPTOLOOP) += cryptoloop.o
+-obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o
+-
+-obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
+-obj-$(CONFIG_BLK_DEV_HD) += hd.o
+-
+-obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
+-obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/
+-obj-$(CONFIG_BLK_DEV_DRBD) += drbd/
++
++ifneq ($(KERNELRELEASE),)
++
+ obj-$(CONFIG_BLK_DEV_RBD) += rbd.o
+-obj-$(CONFIG_BLK_DEV_PCIESSD_MTIP32XX) += mtip32xx/
+
+-obj-$(CONFIG_BLK_DEV_RSXX) += rsxx/
+-obj-$(CONFIG_BLK_DEV_NULL_BLK) += null_blk.o
+-obj-$(CONFIG_ZRAM) += zram/
+-
+-nvme-y := nvme-core.o nvme-scsi.o
+-skd-y := skd_main.o
+-swim_mod-y := swim.o swim_asm.o
++else
++
++KERNELRELEASE ?= $(shell uname -r)
++KERNELDIR ?= /lib/modules/$(KERNELRELEASE)/build
++
++default: all
++
++all:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) CONFIG_BLK_DEV_RBD=m modules
++
++modules_install:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) CONFIG_BLK_DEV_RBD=m modules_install
++
++clean:
++ $(MAKE) -C $(KERNELDIR) M=$(CURDIR) clean
++
++endif
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..916b366
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+out-of-tree.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..4366c80
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,73 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+##export DH_VERBOSE=1
+
+PKD = $(abspath $(dir $(MAKEFILE_LIST)))
+PKG = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
+VER ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{Version:\s*([\d.]+(?:\+git\d+|\+dfsg\d+))}')
+
+%:
+ dh $@ --with dkms
+
+override_dh_dkms:
+ dh_dkms -V $(VER)
+
+override_dh_install:
+ dh_install ceph keys libceph linux rbd debian/Makefile /usr/src/ceph-$(VER)
+
+## http://wiki.debian.org/onlyjob/get-orig-source
+DTYPE =
+UURL = https://github.com/ceph/ceph-client.git
+UDATE = $(shell date --rfc-3339=seconds --date='TZ="UTC" $(shell echo $(VER) | perl -ne 'print "$$1-$$2-$$3" if m/\+(?:git|svn|hg)(\d{4})(\d{2})(\d{2})/')')
+.PHONY: get-orig-source
+get-orig-source: $(PKG)_$(VER)$(DTYPE).orig.tar.xz $(info I: $(PKG)_$(VER)$(DTYPE))
+ @
+
+$(PKG)_$(VER)$(DTYPE).orig.tar.xz: $(info I: UDATE=$(UDATE))
+ $(if $(wildcard $(PKG)-$(VER)),$(error $(PKG)-$(VER) exist, aborting..))
+ @echo "# Downloading..."
+ ( git clone file:///home/$${USER}/dev/upstream/_github/ceph-client/ --single-branch --branch for-linus --depth 128 $(PKG)-$(VER) \
+ || git clone $(UURL) --single-branch --branch for-linus --depth 128 $(PKG)-$(VER) \
+ ) || $(RM) -r $(PKG)-$(VER)
+ cd $(PKG)-$(VER) \
+ && git checkout $$(git log --branches=for-linus -n1 --format=%h --before="$(UDATE)") \
+ && [ -s ChangeLog ] || ( echo "# Generating ChangeLog..." \
+ ; git log --pretty="format:%ad %aN <%aE>%n%n%x09* %s%n" --date=short > ChangeLog \
+ ; touch -d "$$(git log -1 --format='%ci')" ChangeLog) \
+ && echo "# Setting times (4 threads)..." \
+ && ( count=0; for F in $$(git ls-tree -r --name-only HEAD); do \
+ ( [ -e "$$F" ] && touch --no-dereference -d "$$(git log -1 --format="%ai" -- "$$F")" "$$F" ) & \
+ [ $$(((count+=1) % 4)) -eq 0 ] && wait || [ 1 -eq 1 ]; done ) \
+ && echo "# Cleaning-up..." \
+ && tar -caf ../$(PKG)_$(VER)$(DTYPE).orig-tmp.tar.xz \
+ drivers/block/rbd.c \
+ drivers/block/rbd_types.h \
+ drivers/block/Makefile \
+ drivers/block/Kconfig \
+ fs/ceph \
+ include/linux/ceph \
+ include/linux/crush \
+ include/keys/ceph-type.h \
+ net/ceph \
+ ChangeLog \
+ && $(RM) -r .gitignore .mailmap .git * \
+ && tar -xf ../$(PKG)_$(VER)$(DTYPE).orig-tmp.tar.xz \
+ && $(RM) -v ../$(PKG)_$(VER)$(DTYPE).orig-tmp.tar.xz \
+ && echo "# Correcting layout..." \
+ && mkdir linux \
+ && mv -v include/linux/ceph ./linux/ \
+ && mv -v include/linux/crush ./linux/ \
+ && mkdir keys \
+ && mv -v include/keys/ceph-type.h ./keys/ \
+ && mv -v fs/ceph ./ \
+ && mkdir rbd \
+ && mv -v drivers/block/* ./rbd/ \
+ && mkdir libceph \
+ && mv -v net/ceph/* ./libceph/ \
+ && $(RM) -rv drivers include fs net
+ @echo "# Packing..."
+ find -L "$(PKG)-$(VER)" -xdev -type f -print | sort \
+ | XZ_OPT="-6v" tar -caf "$(PKG)_$(VER)$(DTYPE).orig.tar.xz" -T- --owner=root --group=root --mode=a+rX \
+ && $(RM) -r "$(PKG)-$(VER)"
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..b1e2410
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,9 @@
+# uscan(1) configuration file.
+version=3
+
+## Upstream do not provide tarballs hence use "debian/rules get-orig-source"
+## to generate source archive.
+
+opts=\
+dversionmangle=s/\+git(\d+)/$1/,\
+ https://github.com/ceph/ceph-client/releases .*/archive/v?(\d[-\d\.]+)\.tar\.gz
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ceph/ceph-dkms.git
More information about the Pkg-ceph-commits
mailing list