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 <iwamatsu@xxxxxxxxxx> Date: Wed, 28 Sep 2011 12:27:19 +0900 Subject: [PATCH 2/9] Add support PPC Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@xxxxxxxxxx> --- 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 <ubuntu-devel-discuss@xxxxxxxxxxxxxxxx> XSBC-Original-Maintainer: Laszlo Boszormenyi (GCS) <gcs@xxxxxxxxx> Uploaders: Sage Weil <sage@xxxxxxxxxxxx>
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) <gcs@xxxxxxxxx> Uploaders: Sage Weil <sage@xxxxxxxxxxxx> -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
Attachment:
signature.asc
Description: This is a digitally signed message part