Hi all parties, Ceph is packaged at three places: in Ubuntu, at upstream and in Debian. Its first 'stable' release, 0.48 is coming. At least as Sage wrote some days ago: "It looks like 0.48 will also be the basis for one of our first 'stable' releases.".
Hereby I would like to sync our Debian related packaging efforts, not only for the mentioned stable release. The OpenStack packaging team would like to add Ceph to their stack. Howtos, helping hands on forums needs it as well. I'm not subscribed to the lists, please keep me in the loop with Cc-s. First patch, 0002-Add-support-PPC.patch is for upstream. Would help the in tree leveldb to build on PowerPC architectures as well. Second patch reflect the homepage and git tree changes for Ubuntu. Third patch is from them, noted as "Switch from libcryptopp to libnss as libcryptopp is not seeded.". So libnss3-dev is used as build-dependency instead. Sage, would you commit it? I've separated gceph out, if someone needs the CLI only, then s/he can do that without the GTK+ libraries. See below. Ben, James, can you please share in some sentences why ceph-fuse is dropped in Ubuntu? Do you need it Sage? If it's feasible, you may drop that as well. As I see, you still ship d/librgw1.install , d/librgw1.postrm , d/librgw1.postinst and librgw-dev.install . They are not needed anymore. Maybe the biggest change is that ceph-mds was separated out and such, ceph-fs-common created for cephfs and mount.ceph . Please move the configure call to its target, as you can check in git. Add var/lib/ceph/mon , var/lib/ceph/osd and var/lib/ceph/mds to d/ceph.dirs . git patch is for Sage, upstream and contains what needed for the new packages. May I get commit rights to debian/ or should I go with git forks and you'll merge the changes? Also it seems that limit the architectures to build on is not allowed[1]. I'll write an email to this issue, how to go with failing leveldb build-dependency on some archs. Loic, do you need anything or do you have any objections with these changes? Regards, Laszlo/GCS [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677626
From 6805877f8913935071fb97c1b76e4f0ce992d8a6 Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu <[email protected]> Date: Wed, 28 Sep 2011 12:27:19 +0900 Subject: [PATCH 2/9] Add support PPC Signed-off-by: Nobuhiro Iwamatsu <[email protected]> --- port/atomic_pointer.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) --- leveldb.orig/port/atomic_pointer.h +++ leveldb/port/atomic_pointer.h @@ -36,6 +36,8 @@ #define ARCH_CPU_X86_FAMILY 1 #elif defined(__ARMEL__) #define ARCH_CPU_ARM_FAMILY 1 +#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) +#define ARCH_CPU_PPC_FAMILY 1 #endif namespace leveldb { @@ -102,6 +104,21 @@ inline void WriteMemoryBarrier() { } #define LEVELDB_HAVE_MEMORY_BARRIER +// PPC +#elif defined(ARCH_CPU_PPC_FAMILY) + +inline void ReadMemoryBarrier() { +#ifdef __powerpc64__ + __asm__ __volatile__ ("lwsync" : : : "memory"); +#else + __asm__ __volatile__ ("sync" : : : "memory"); +#endif +} +inline void WriteMemoryBarrier() { + __asm__ __volatile__ ("sync" : : : "memory"); +} +#define LEVELDB_HAVE_MEMORY_BARRIER + #endif // AtomicPointer built using platform-specific MemoryBarrier() @@ -156,6 +173,7 @@ class AtomicPointer { #undef LEVELDB_HAVE_MEMORY_BARRIER #undef ARCH_CPU_X86_FAMILY #undef ARCH_CPU_ARM_FAMILY +#undef ARCH_CPU_PPC_FAMILY } // namespace port } // namespace leveldb
diff -Nur ceph-0.47.2.orig/debian/control ceph-0.47.2/debian/control --- ceph-0.47.2.orig/debian/control 2012-06-08 18:08:07.000000000 +0200 +++ ceph-0.47.2/debian/control 2012-06-16 00:27:27.932254728 +0200 @@ -1,9 +1,9 @@ Source: ceph Section: admin Priority: optional -Homepage: http://ceph.newdream.net/ -Vcs-Git: git://github.com/NewDreamNetwork/ceph.git -Vcs-Browser: https://github.com/NewDreamNetwork/ceph +Homepage: http://ceph.com/ +Vcs-Git: git://github.com/ceph/ceph.git +Vcs-Browser: https://github.com/ceph/ceph Maintainer: Ubuntu Developers <[email protected]> XSBC-Original-Maintainer: Laszlo Boszormenyi (GCS) <[email protected]> Uploaders: Sage Weil <[email protected]>
diff --git a/debian/control b/debian/control index 023e134..927d2bd 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Vcs-Git: git://github.com/ceph/ceph.git Vcs-Browser: https://github.com/ceph/ceph Maintainer: Laszlo Boszormenyi (GCS) <[email protected]> Uploaders: Sage Weil <[email protected]> -Build-Depends: debhelper (>= 6.0.7~), autotools-dev, autoconf, automake, libfuse-dev, libboost-dev (>= 1.34), libedit-dev, libcrypto++-dev, libtool, libexpat1-dev, libfcgi-dev, libatomic-ops-dev, libgoogle-perftools-dev [i386 amd64], pkg-config, libcurl4-gnutls-dev, libkeyutils-dev, uuid-dev, libaio-dev, python (>= 2.6.6-3~), libxml2-dev +Build-Depends: debhelper (>= 6.0.7~), autotools-dev, autoconf, automake, libfuse-dev, libboost-dev (>= 1.34), libedit-dev, libnss3-dev, libtool, libexpat1-dev, libfcgi-dev, libatomic-ops-dev, libgoogle-perftools-dev [i386 amd64], pkg-config, libcurl4-gnutls-dev, libkeyutils-dev, uuid-dev, libaio-dev, python (>= 2.6.6-3~), libxml2-dev Standards-Version: 3.9.3 Package: ceph
diff --git a/debian/ceph-common.install b/debian/ceph-common.install
index 4772663..ffc4675 100644
--- a/debian/ceph-common.install
+++ b/debian/ceph-common.install
@@ -1,6 +1,4 @@
-sbin/mount.ceph
usr/bin/ceph
-usr/bin/cephfs
usr/bin/ceph-conf
usr/bin/ceph-syn
usr/bin/ceph-authtool
@@ -14,7 +12,5 @@ usr/share/man/man8/ceph-conf.8
usr/share/man/man8/ceph-dencoder.8
usr/share/man/man8/rados.8
usr/share/man/man8/rbd.8
-usr/share/man/man8/mount.ceph.8
-usr/share/man/man8/cephfs.8
etc/bash_completion.d/rados
etc/bash_completion.d/rbd
diff --git a/debian/ceph-fs-common.install b/debian/ceph-fs-common.install
new file mode 100644
index 0000000..9a50360
--- /dev/null
+++ b/debian/ceph-fs-common.install
@@ -0,0 +1,4 @@
+sbin/mount.ceph
+usr/bin/cephfs
+usr/share/man/man8/mount.ceph.8
+usr/share/man/man8/cephfs.8
diff --git a/debian/ceph-mds.install b/debian/ceph-mds.install
new file mode 100644
index 0000000..8a5d74e
--- /dev/null
+++ b/debian/ceph-mds.install
@@ -0,0 +1,2 @@
+usr/bin/ceph-mds
+usr/share/man/man8/ceph-mds.8
diff --git a/debian/ceph.install b/debian/ceph.install
index 51fb311..0a975aa 100644
--- a/debian/ceph.install
+++ b/debian/ceph.install
@@ -4,18 +4,14 @@ usr/bin/monmaptool
usr/bin/osdmaptool
usr/bin/ceph-run
usr/bin/ceph-mon
-usr/bin/ceph-mds
usr/bin/ceph-osd
usr/bin/ceph-debugpack
-sbin/ceph-disk-prepare usr/sbin/
-sbin/ceph-disk-activate usr/sbin/
sbin/mkcephfs
usr/lib/ceph/ceph_common.sh
usr/lib/rados-classes/*
usr/share/doc/ceph/sample.ceph.conf
usr/share/doc/ceph/sample.fetch_config
usr/share/man/man8/ceph-mon.8
-usr/share/man/man8/ceph-mds.8
usr/share/man/man8/ceph-osd.8
usr/share/man/man8/mkcephfs.8
usr/share/man/man8/ceph-run.8
diff --git a/debian/control b/debian/control
index 023e134..0b07a0f 100644
--- a/debian/control
+++ b/debian/control
@@ -10,18 +10,20 @@ Build-Depends: debhelper (>= 6.0.7~), autotools-dev, autoconf, automake, libfuse
Standards-Version: 3.9.3
Package: ceph
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}, sdparm | hdparm, binutils, ceph-common, uuid-runtime, python
-Recommends: ceph-fuse, libcephfs1, librados2, librbd1, btrfs-tools
-Description: distributed storage and file system
+Recommends: ceph-fuse, libcephfs1, librados2, librbd1, btrfs-tools, gceph
+Description: distributed storage
Ceph is a distributed storage and network file system designed to provide
excellent performance, reliability, and scalability.
.
This package contains all server daemons and management tools for creating,
- running, and administering a Ceph storage cluster.
+ running, and administering a Ceph storage cluster. This does not include
+ the POSIX filesystem server, as that has been split into the ceph-mds
+ package.
Package: ceph-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: ceph (= ${binary:Version}), ${misc:Depends}
@@ -31,8 +33,52 @@ Description: debugging symbols for ceph
.
This package contains the debugging symbols for ceph.
+Package: gceph
+Architecture: linux-any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: ceph
+Description: Graphical ceph cluster status utility
+ Ceph is a distributed network file system designed to provide
+ excellent performance, reliability, and scalability. This is a
+ gtk-based gui to monitor cluster status, similar to the 'ceph'
+ command.
+
+Package: gceph-dbg
+Architecture: linux-any
+Section: debug
+Priority: extra
+Depends: gceph (= ${binary:Version}), ${misc:Depends}
+Description: debugging symbols for gceph
+ Ceph is a distributed network file system designed to provide
+ excellent performance, reliability, and scalability. This is a
+ gtk-based gui to monitor cluster status, similar to the 'ceph'
+ command.
+ .
+ This package contains the debugging symbols for gceph.
+
+Package: ceph-mds
+Architecture: linux-any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ceph, ceph-fs-common
+Description: distributed filesystem service
+ Ceph is a distributed storage and network file system designed to provide
+ excellent performance, reliability, and scalability.
+ .
+ This package contains the ceph-mds daemon, used for serving the distributed
+ ceph filesystem on top of the distributed storage cluster.
+
+Package: ceph-mds-dbg
+Architecture: linux-any
+Section: debug
+Priority: extra
+Depends: ceph (= ${binary:Version}), ${misc:Depends}
+Description: debugging symbols for ceph
+ Ceph is a distributed storage and network file system designed to provide
+ excellent performance, reliability, and scalability.
+ .
+ This package contains the debugging symbols for ceph-mds
+
Package: ceph-fuse
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: fuse-utils
Suggests: ceph
@@ -49,7 +95,7 @@ Description: FUSE-based client for the Ceph distributed file system
do.
Package: ceph-fuse-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: ceph-fuse (= ${binary:Version}), ${misc:Depends}
@@ -62,7 +108,7 @@ Description: debugging symbols for ceph-fuse
This package contains the debugging symbols for ceph-fuse.
Package: ceph-common
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}, librbd1 (= ${binary:Version})
Conflicts: ceph-client-tools
Replaces: ceph-client-tools
@@ -74,7 +120,7 @@ Description: common utilities to mount and interact with a ceph filesystem
ceph fs with the kernel client.
Package: ceph-common-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ceph-common (= ${binary:Version}), ${misc:Depends}
Conflicts: ceph-client-tools-dbg
Replaces: ceph-client-tools-dbg
@@ -88,8 +134,37 @@ Description: debugging symbols for ceph-common
.
This package contains the debugging symbols for ceph-common.
+Package: ceph-fs-common
+Architecture: linux-any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ceph-common (= ${binary:Version})
+Conflicts: ceph-client-tools
+Replaces: ceph-client-tools
+Suggests: ceph
+Description: common utilities to mount and interact with a ceph filesystem
+ Ceph is a distributed network file system designed to provide
+ excellent performance, reliability, and scalability. This is a collection
+ of common tools, including the mount utility, that allows one to mount the
+ ceph fs with the kernel client.
+ .
+ This package contains common utilities for the Ceph filesystem.
+
+Package: ceph-fs-common-dbg
+Architecture: linux-any
+Depends: ceph-fs-common (= ${binary:Version}), ${misc:Depends}
+Conflicts: ceph-client-tools-dbg
+Replaces: ceph-client-tools-dbg
+Section: debug
+Priority: extra
+Description: debugging symbols for ceph-fs-common
+ Ceph is a distributed network file system designed to provide
+ excellent performance, reliability, and scalability. This is a collection
+ of common tools, including the mount utility, that allows one to mount the
+ ceph fs with the kernel client.
+ .
+ This package contains the debugging symbols for ceph-fs-common.
+
Package: ceph-resource-agents
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Recommends: pacemaker
Priority: extra
Depends: ceph (= ${binary:Version}), ${misc:Depends}, resource-agents
@@ -104,7 +179,7 @@ Description: OCF-compliant resource agents for Ceph
Package: librados2
Conflicts: librados, librados1
Replaces: librados, librados1
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: RADOS distributed object store client library
@@ -116,7 +191,7 @@ Description: RADOS distributed object store client library
Package: librados2-dbg
Conflicts: librados1-dbg
Replaces: librados1-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: librados2 (= ${binary:Version}), ${misc:Depends}
@@ -129,7 +204,7 @@ Description: debugging symbols for librados
This package contains debugging symbols for librados.
Package: librados-dev
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: libdevel
Depends: ${misc:Depends}, librados2 (= ${binary:Version})
Conflicts: librados1-dev, librados2-dev
@@ -144,7 +219,7 @@ Description: RADOS distributed object store client library (development files)
link against librados.
Package: librbd1
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}, librados2 (= ${binary:Version})
Description: RADOS block device client library
@@ -154,7 +229,7 @@ Description: RADOS block device client library
shared library allowing applications to manage these block devices.
Package: librbd1-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: librbd1 (= ${binary:Version}), ${misc:Depends}
@@ -167,7 +242,7 @@ Description: debugging symbols for librbd1
This package contains debugging symbols for librbd1.
Package: librbd-dev
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: libdevel
Depends: ${misc:Depends}, librbd1 (= ${binary:Version}), librados-dev
Conflicts: librbd1-dev
@@ -184,7 +259,7 @@ Description: RADOS block device client library (development files)
Package: libcephfs1
Conflicts: libcephfs, libceph, libceph1
Replaces: libcephfs, libceph, libceph1
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Ceph distributed file system client library
@@ -194,7 +269,7 @@ Description: Ceph distributed file system client library
file system via a POSIX-like interface.
Package: libcephfs1-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: libcephfs1 (= ${binary:Version}), ${misc:Depends}
@@ -209,7 +284,7 @@ Description: debugging symbols for libcephfs1
This package contains debugging symbols for libcephfs1.
Package: libcephfs-dev
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: libdevel
Depends: ${misc:Depends}, libcephfs1 (= ${binary:Version})
Conflicts: libcephfs1-dev, libceph1-dev, libceph-dev
@@ -224,7 +299,7 @@ Description: Ceph distributed file system client library (development files)
link against libcephfs.
Package: radosgw
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}, ceph-common
Description: REST gateway for RADOS distributed object store
RADOS is a distributed object store used by the Ceph distributed
@@ -235,7 +310,7 @@ Description: REST gateway for RADOS distributed object store
This package contains the proxy daemon and related tools only.
Package: radosgw-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: radosgw (= ${binary:Version}), ${misc:Depends}
@@ -248,13 +323,13 @@ Description: debugging symbols for radosgw
This package contains debugging symbols for radosgw.
Package: rest-bench
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ${shlibs:Depends}, ${misc:Depends}, ceph-common, xml2, curl
Description: RESTful bencher that can be used to benchmark
radosgw performance.
Package: rest-bench-dbg
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: debug
Priority: extra
Depends: ${shlibs:Depends}, ${misc:Depends}, ceph-common, xml2, curl
@@ -262,7 +337,7 @@ Description: RESTful bencher that can be used to benchmark
radosgw performance.
Package: obsync
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Depends: ${misc:Depends}, python, python-boto, python-ceph, python-pyxattr, python-lxml
Description: synchronize data between cloud object storage providers or a local directory
obsync is a tool to synchronize objects between cloud object
@@ -270,9 +345,9 @@ Description: synchronize data between cloud object storage providers or a local
Ceph RADOS cluster, or a local directory.
Package: python-ceph
-Architecture: amd64 armel armhf i386 ia64 mipsel
+Architecture: linux-any
Section: python
-Depends: ${python:Depends}, librados2, librbd1
+Depends: ${misc:Depends}, ${python:Depends}, librados2, librbd1
Description: Python libraries for the Ceph distributed filesystem
Ceph is a distributed storage and network file system designed to provide
excellent performance, reliability, and scalability.
diff --git a/debian/gceph.install b/debian/gceph.install
new file mode 100644
index 0000000..143f837
--- /dev/null
+++ b/debian/gceph.install
@@ -0,0 +1,2 @@
+usr/bin/gceph
+usr/share/ceph_tool/gui_resources/*
diff --git a/debian/librados2.install b/debian/librados2.install
index 8ba139a..8d989d4 100644
--- a/debian/librados2.install
+++ b/debian/librados2.install
@@ -1,2 +1 @@
usr/lib/librados.so.*
-
diff --git a/debian/rules b/debian/rules
index 941f309..4e6c373 100755
--- a/debian/rules
+++ b/debian/rules
@@ -115,8 +115,11 @@ binary-arch: build install
dh_link
dh_strip -pceph --dbg-package=ceph-dbg -k --exclude=libcls_
+ dh_strip -pgceph --dbg-package=gceph-dbg
dh_strip -pceph-fuse --dbg-package=ceph-fuse-dbg
+ dh_strip -pceph-mds --dbg-package=ceph-mds-dbg -k --exclude=libcls_
dh_strip -pceph-common --dbg-package=ceph-common-dbg
+ dh_strip -pceph-fs-common --dbg-package=ceph-fs-common-dbg
dh_strip -plibrados2 --dbg-package=librados2-dbg
dh_strip -plibrbd1 --dbg-package=librbd1-dbg
dh_strip -plibcephfs1 --dbg-package=libcephfs1-dbg
signature.asc
Description: This is a digitally signed message part
