sync Ceph packaging efforts for Debian/Ubuntu

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux