From: Adrian Bunk Date: Wed, 7 Jun 2017 08:39:39 +0000 (+0100) Subject: Import ceph_10.2.5-7.2.debian.tar.xz X-Git-Tag: archive/raspbian/12.2.8+dfsg1-5+rpi1~3^2~14^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=68dd99be6d4dad40fdedadcdccd1d9f4a1a8e3f3;p=ceph.git Import ceph_10.2.5-7.2.debian.tar.xz [dgit import tarball ceph 10.2.5-7.2 ceph_10.2.5-7.2.debian.tar.xz] --- 68dd99be6d4dad40fdedadcdccd1d9f4a1a8e3f3 diff --git a/README.Debian b/README.Debian new file mode 100644 index 000000000..be21ad791 --- /dev/null +++ b/README.Debian @@ -0,0 +1,120 @@ +## See online installation and setup documentation at + + http://ceph.com/docs/master/install/manual-deployment/ + +-------- -------- -------- + +## "systemd" requires manual activation of services: + + ## MON + # systemctl start ceph-mon + # systemctl enable ceph-mon + + ## OSD.0 (set other OSDs like this) + # systemctl start ceph-osd@0 + # systemctl enable ceph-osd@0 + + ## MDS + # systemctl start ceph-mds + # systemctl enable ceph-mds + + ## "ceph" meta-service (starts/stops all the above like old init script) + # systemctl start ceph + # systemctl enable ceph + + The ceph cluster can be set in the "/etc/default/ceph" file + by setting the CLUSTER environment variable. + +-------- -------- -------- + +## Upgrade procedure (0.72.2 to 0.80): + + * Read "Upgrade Sequencing" in release notes: + + http://ceph.com/docs/firefly/release-notes/ + + * Upgrade packages. + + * Restart MONs. + + * Restart all OSDs. + + * Run `ceph osd crush tunables default`. + + * (Restart MDSes). + + * Consider setting the 'hashpspool' flag on your pools (new default): + + ceph osd pool set {pool} hashpspool true + + This changes the pool to use a new hashing algorithm for the distribution of + Placement Groups (PGs) to OSDs. This new algorithm ensures a better distribution + to all OSDs. Be aware that this change will temporarly put some of your PGs into + "misplaced" state and cause additional I/O until all PGs are moved to their new + location. See http://tracker.ceph.com/issues/4128 for the details about the new + algorithm. + + Read more about tunables in + + http://ceph.com/docs/master/rados/operations/crush-map/#tunables + + Upgrading all OSDs and setting correct tunables is necessary to avoid the errors like: + + ## rbdmap errors: + libceph: mon2 192.168.0.222:6789 socket error on read + + Wrong tunables may produce the following error: + + libceph: mon0 192.168.0.222:6789 socket error on read + libceph: mon2 192.168.0.250:6789 feature set mismatch, my 4a042a42 < server's 2004a042a42, missing 20000000000 + + ## MDS errors: + one or more OSDs do not support TMAP2OMAP; upgrade OSDs before starting MDS (or downgrade MDS) + + See also: + + http://ceph.com/docs/firefly/install/upgrading-ceph/ + +-------- -------- -------- + + Jerasure pool(s) will bump requirements to Linux_3.15 (not yet released) for + kernel CephFS and RBD clients. + +-------- -------- -------- + + RBD kernel driver do not support authentication so the following setting + in "/etc/ceph/ceph.conf" may be used to relax client auth. requirements: + + cephx cluster require signatures = true + cephx service require signatures = false + +-------- -------- -------- + +> How to mount CephFS using fuse client from "/etc/fstab"? + + Add (and modify) the following sample to "/etc/fstab": + + mount.fuse.ceph#conf=/etc/ceph/ceph.conf,id=admin /mnt/ceph fuse _netdev,noatime,allow_other 0 0 + + This is equivalent of running + + ceph-fuse /mnt/ceph --id=admin -o noatime,allow_other + + as root. + +-------- -------- -------- + + To avoid known issue with kernel FS client it is recommended to use + 'readdir_max_entries' mount option, for example: + + mount -t ceph 1.2.3.4:/ /mnt/ceph -o readdir_max_entries=64 + +-------- -------- -------- + + Beware of "mlocate" scanning of OSD file systems. To avoid problems add + "/var/lib/ceph" to PRUNEPATHS in the "/etc/updatedb.conf" like in the + following example: + + PRUNEPATHS="/tmp /var/spool /media /mnt /var/lib/ceph" + +-------- -------- -------- diff --git a/ceph-base.dirs b/ceph-base.dirs new file mode 100644 index 000000000..9881b8391 --- /dev/null +++ b/ceph-base.dirs @@ -0,0 +1,4 @@ +var/lib/ceph/bootstrap-mds +var/lib/ceph/bootstrap-osd +var/lib/ceph/bootstrap-rgw +var/lib/ceph/tmp diff --git a/ceph-base.install b/ceph-base.install new file mode 100644 index 000000000..93436f069 --- /dev/null +++ b/ceph-base.install @@ -0,0 +1,23 @@ +## install from source tree +debian/etc/pm/sleep.d/* /etc/pm/sleep.d/ +etc/bash_completion.d/ceph /usr/share/bash-completion/completions/ +usr/bin/ceph-debugpack +usr/bin/ceph-run +usr/bin/crushtool +usr/bin/monmaptool +usr/bin/osdmaptool +usr/lib/*/ceph/ceph_common.sh +usr/lib/*/ceph/erasure-code/libec_*.so +usr/lib/*/rados-classes/*.so +usr/lib/python*/dist-packages/ceph_detect_init* +usr/sbin/ceph-create-keys +usr/sbin/ceph-detect-init +usr/share/doc/ceph/sample.ceph.conf +usr/share/doc/ceph/sample.fetch_config +usr/share/man/man8/ceph-create-keys.8 +usr/share/man/man8/ceph-debugpack.8 +usr/share/man/man8/ceph-detect-init.8 +usr/share/man/man8/ceph-run.8 +usr/share/man/man8/crushtool.8 +usr/share/man/man8/monmaptool.8 +usr/share/man/man8/osdmaptool.8 diff --git a/ceph-base.lintian-overrides b/ceph-base.lintian-overrides new file mode 100644 index 000000000..d4041ca8e --- /dev/null +++ b/ceph-base.lintian-overrides @@ -0,0 +1,2 @@ +# False-positives: +spelling-error-in-binary * tEH the diff --git a/ceph-base.postinst b/ceph-base.postinst new file mode 100644 index 000000000..23712a8b4 --- /dev/null +++ b/ceph-base.postinst @@ -0,0 +1,61 @@ +#!/bin/sh +# vim: set noet ts=8: +# postinst script for ceph +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# +# The current action is to simply remove the mistakenly-added +# /etc/init/ceph.conf file; this could be done in any of these cases, +# although technically it will leave the system in a different state +# than the original install that included that file. So instead we +# only remove on "configure", since that's the only time we know we're +# successful in installing a newer package than the erroneous version. + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +[ -f "/etc/default/ceph" ] && . /etc/default/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph + +case "$1" in + configure) + rm -f /etc/init/ceph.conf + for DIR in `ls -1 /var/lib/ceph` ; do + if ! dpkg-statoverride --list /var/lib/ceph/$DIR >/dev/null; then + if [ -d /run/systemd/system ] && [ $DIR = 'mon' ]; then + # NOTE: upgrade file permissions for mon filesystem on + # systemd based installs only due to automatic + # restarting of ceph-mon daemon + chown -R $SERVER_USER:$SERVER_GROUP /var/lib/ceph/$DIR + else + chown $SERVER_USER:$SERVER_GROUP /var/lib/ceph/$DIR + fi + fi + done + ;; + abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/ceph-base.postrm b/ceph-base.postrm new file mode 100644 index 000000000..48e4853c0 --- /dev/null +++ b/ceph-base.postrm @@ -0,0 +1,47 @@ +#!/bin/sh +# postrm script for ceph +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove) + ;; + + purge) + rm -rf /var/log/ceph + rm -rf /etc/ceph + ;; + + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/ceph-base.prerm b/ceph-base.prerm new file mode 100644 index 000000000..e76715ee5 --- /dev/null +++ b/ceph-base.prerm @@ -0,0 +1,21 @@ +#!/bin/sh +# vim: set noet ts=8: + +set -e + +case "$1" in + remove) + invoke-rc.d ceph stop || { + RESULT=$? + if [ $RESULT != 100 ]; then + exit $RESULT + fi + } + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/ceph-common.dirs b/ceph-common.dirs new file mode 100644 index 000000000..ff05698c2 --- /dev/null +++ b/ceph-common.dirs @@ -0,0 +1,3 @@ +etc/ceph +var/lib/ceph +var/log/ceph diff --git a/ceph-common.install b/ceph-common.install new file mode 100644 index 000000000..86842f899 --- /dev/null +++ b/ceph-common.install @@ -0,0 +1,34 @@ +etc/bash_completion.d/rados /usr/share/bash-completion/completions/ +etc/bash_completion.d/rbd /usr/share/bash-completion/completions/ +etc/ceph/rbdmap +etc/default/ceph +udev/50-rbd.rules /lib/udev/rules.d +usr/bin/ceph +usr/bin/ceph-authtool +usr/bin/ceph-brag +usr/bin/ceph-conf +usr/bin/ceph-crush-location +usr/bin/ceph-dencoder +usr/bin/ceph-post-file +usr/bin/ceph-rbdnamer +usr/bin/ceph-syn +usr/bin/rados +usr/bin/rbd +usr/bin/rbd-replay* +usr/bin/rbdmap +usr/lib/python*/dist-packages/ceph_argparse.py +usr/lib/python*/dist-packages/ceph_daemon.py +usr/share/ceph/id_rsa_drop.ceph.com +usr/share/ceph/id_rsa_drop.ceph.com.pub +usr/share/ceph/known_hosts_drop.ceph.com +usr/share/man/man8/ceph-authtool.8 +usr/share/man/man8/ceph-conf.8 +usr/share/man/man8/ceph-dencoder.8 +usr/share/man/man8/ceph-post-file.8 +usr/share/man/man8/ceph-rbdnamer.8 +usr/share/man/man8/ceph-syn.8 +usr/share/man/man8/ceph.8 +usr/share/man/man8/rados.8 +usr/share/man/man8/rbd-replay*.8 +usr/share/man/man8/rbd.8 +usr/share/man/man8/rbdmap.8 diff --git a/ceph-common.lintian-overrides b/ceph-common.lintian-overrides new file mode 100644 index 000000000..c26dfbace --- /dev/null +++ b/ceph-common.lintian-overrides @@ -0,0 +1,5 @@ +# False-positives: +spelling-error-in-binary * tEH the +# this is fixed just a few lines below in the configure script +# it ensures that also existing user get the correct home directory +maintainer-script-should-not-use-adduser-system-without-home diff --git a/ceph-common.logrotate b/ceph-common.logrotate new file mode 120000 index 000000000..df20846f0 --- /dev/null +++ b/ceph-common.logrotate @@ -0,0 +1 @@ +../src/logrotate.conf \ No newline at end of file diff --git a/ceph-common.maintscript b/ceph-common.maintscript new file mode 100644 index 000000000..dc7cf6263 --- /dev/null +++ b/ceph-common.maintscript @@ -0,0 +1,2 @@ +rm_conffile /etc/bash_completion.d/rados 10.2.5-1~ +rm_conffile /etc/bash_completion.d/rbd 10.2.5-1~ diff --git a/ceph-common.manpages b/ceph-common.manpages new file mode 100644 index 000000000..643fa2a41 --- /dev/null +++ b/ceph-common.manpages @@ -0,0 +1 @@ +debian/man/ceph-crush-location.1 diff --git a/ceph-common.postinst b/ceph-common.postinst new file mode 100644 index 000000000..020b89b29 --- /dev/null +++ b/ceph-common.postinst @@ -0,0 +1,99 @@ +#!/bin/sh +# vim: set noet ts=8: +# postinst script for ceph-common +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +# Let the admin override these distro-specified defaults. This is NOT +# recommended! +[ -f "/etc/default/ceph" ] && . /etc/default/ceph + +[ -z "$SERVER_HOME" ] && SERVER_HOME=/var/lib/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_NAME" ] && SERVER_NAME="Ceph storage service" +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph +[ -z "$SERVER_UID" ] && SERVER_UID=64045 # alloc by Debian base-passwd maintainer +[ -z "$SERVER_GID" ] && SERVER_GID=$SERVER_UID + + +# Groups that the user will be added to, if undefined, then none. +[ -z "$SERVER_ADDGROUP" ] && SERVER_ADDGROUP= + +case "$1" in + configure) + # create user to avoid running server as root + # 1. create group if not existing + if ! getent group | grep -q "^$SERVER_GROUP:" ; then + addgroup --quiet --system --gid $SERVER_GID \ + $SERVER_GROUP 2>/dev/null ||true + fi + # 2. create user if not existing + if ! getent passwd | grep -q "^$SERVER_USER:"; then + adduser --quiet \ + --system \ + --no-create-home \ + --disabled-password \ + --uid $SERVER_UID \ + --gid $SERVER_GID \ + $SERVER_USER 2>/dev/null || true + fi + # 3. adjust passwd entry + usermod -c "$SERVER_NAME" \ + -d $SERVER_HOME \ + -g $SERVER_GROUP \ + $SERVER_USER 2>/dev/null + + # 5. adjust file and directory permissions + if ! dpkg-statoverride --list $SERVER_HOME >/dev/null + then + chown $SERVER_USER:$SERVER_GROUP $SERVER_HOME + chmod u=rwx,g=rx,o= $SERVER_HOME + fi + if ! dpkg-statoverride --list /var/log/ceph >/dev/null + then + chown -R $SERVER_USER:$SERVER_GROUP /var/log/ceph + # members of group ceph can log here, but cannot remove + # others' files. non-members cannot read any logs. + chmod u=rwx,g=rwxs,o=t /var/log/ceph + fi + + # 6. fix /var/run/ceph + if [ -d /var/run/ceph ]; then + chown $SERVER_USER:$SERVER_GROUP /var/run/ceph + fi + + # create /run/ceph. fail softly if systemd isn't present or + # something. + [ -x /bin/systemd-tmpfiles ] && systemd-tmpfiles --create || true + ;; + abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/ceph-common.postrm b/ceph-common.postrm new file mode 100644 index 000000000..6d4fa5e59 --- /dev/null +++ b/ceph-common.postrm @@ -0,0 +1,47 @@ +#!/bin/sh +# postrm script for ceph-common +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + remove) + ;; + + purge) + rm -rf /var/log/ceph + rm -rf /etc/ceph + ;; + + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/ceph-common.rbdmap.init b/ceph-common.rbdmap.init new file mode 120000 index 000000000..b2de0ce8b --- /dev/null +++ b/ceph-common.rbdmap.init @@ -0,0 +1 @@ +../src/init-rbdmap \ No newline at end of file diff --git a/ceph-fs-common.install b/ceph-fs-common.install new file mode 100644 index 000000000..70f6e949a --- /dev/null +++ b/ceph-fs-common.install @@ -0,0 +1,4 @@ +usr/sbin/mount.ceph sbin +usr/bin/cephfs +usr/share/man/man8/cephfs.8 +usr/share/man/man8/mount.ceph.8 diff --git a/ceph-fuse.install b/ceph-fuse.install new file mode 100644 index 000000000..364e86393 --- /dev/null +++ b/ceph-fuse.install @@ -0,0 +1,3 @@ +usr/sbin/mount.fuse.ceph sbin +usr/bin/ceph-fuse +usr/share/man/man8/ceph-fuse.8 diff --git a/ceph-fuse.lintian-overrides b/ceph-fuse.lintian-overrides new file mode 100644 index 000000000..d4041ca8e --- /dev/null +++ b/ceph-fuse.lintian-overrides @@ -0,0 +1,2 @@ +# False-positives: +spelling-error-in-binary * tEH the diff --git a/ceph-fuse.manpages b/ceph-fuse.manpages new file mode 100644 index 000000000..e4c9c231e --- /dev/null +++ b/ceph-fuse.manpages @@ -0,0 +1 @@ +debian/man/mount.fuse.ceph.8 diff --git a/ceph-mds.dirs b/ceph-mds.dirs new file mode 100644 index 000000000..eb38f4400 --- /dev/null +++ b/ceph-mds.dirs @@ -0,0 +1 @@ +/var/lib/ceph/mds diff --git a/ceph-mds.install b/ceph-mds.install new file mode 100644 index 000000000..ea3dae640 --- /dev/null +++ b/ceph-mds.install @@ -0,0 +1,5 @@ +usr/bin/ceph-mds +usr/bin/cephfs-data-scan +usr/bin/cephfs-journal-tool +usr/bin/cephfs-table-tool +usr/share/man/man8/ceph-mds.8 diff --git a/ceph-mds.lintian-overrides b/ceph-mds.lintian-overrides new file mode 100644 index 000000000..d4041ca8e --- /dev/null +++ b/ceph-mds.lintian-overrides @@ -0,0 +1,2 @@ +# False-positives: +spelling-error-in-binary * tEH the diff --git a/ceph-mds.maintscript b/ceph-mds.maintscript new file mode 100644 index 000000000..4e9d147c6 --- /dev/null +++ b/ceph-mds.maintscript @@ -0,0 +1,3 @@ +rm_conffile /etc/init/ceph-mds-all-starter.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-mds.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-mds-all.conf 10.2.5-1~ diff --git a/ceph-mds.postinst b/ceph-mds.postinst new file mode 100644 index 000000000..f6c9f4ef8 --- /dev/null +++ b/ceph-mds.postinst @@ -0,0 +1,45 @@ +#!/bin/sh +# vim: set noet ts=8: +# postinst script for ceph-mds +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +[ -f "/etc/default/ceph" ] && . /etc/default/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph + +case "$1" in + configure) + if ! dpkg-statoverride --list /var/lib/ceph/mds >/dev/null; then + chown $SERVER_USER:$SERVER_GROUP /var/lib/ceph/mds + fi + ;; + abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/ceph-mds.prerm b/ceph-mds.prerm new file mode 100644 index 000000000..7a491aa5b --- /dev/null +++ b/ceph-mds.prerm @@ -0,0 +1,21 @@ +#!/bin/sh +# vim: set noet ts=8: + +set -e + +case "$1" in + remove) + invoke-rc.d ceph stop mds || { + RESULT=$? + if [ $RESULT != 100 ]; then + exit $RESULT + fi + } + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/ceph-mon.dirs b/ceph-mon.dirs new file mode 100644 index 000000000..e2845f602 --- /dev/null +++ b/ceph-mon.dirs @@ -0,0 +1 @@ +var/lib/ceph/mon diff --git a/ceph-mon.install b/ceph-mon.install new file mode 100644 index 000000000..a284d409c --- /dev/null +++ b/ceph-mon.install @@ -0,0 +1,5 @@ +usr/bin/ceph-mon +usr/bin/ceph-rest-api +usr/share/man/man8/ceph-mon.8 +usr/share/man/man8/ceph-rest-api.8 +usr/lib/python*/dist-packages/ceph_rest_api.py diff --git a/ceph-mon.postinst b/ceph-mon.postinst new file mode 100644 index 000000000..d00461738 --- /dev/null +++ b/ceph-mon.postinst @@ -0,0 +1,42 @@ +# vim: set noet ts=8: +# postinst script for ceph-mon +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +[ -f "/etc/default/ceph" ] && . /etc/default/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph + +case "$1" in + configure|abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/ceph-mon.prerm b/ceph-mon.prerm new file mode 100644 index 000000000..a31fc3c21 --- /dev/null +++ b/ceph-mon.prerm @@ -0,0 +1,22 @@ +#!/bin/sh +# vim: set noet ts=8: + +set -e + +case "$1" in + remove) + invoke-rc.d ceph stop mon || { + RESULT=$? + if [ $RESULT != 100 ]; then + exit $RESULT + fi + } + ;; + + *) + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/ceph-osd.dirs b/ceph-osd.dirs new file mode 100644 index 000000000..b7fc47618 --- /dev/null +++ b/ceph-osd.dirs @@ -0,0 +1 @@ +var/lib/ceph/osd diff --git a/ceph-osd.install b/ceph-osd.install new file mode 100644 index 000000000..6a66d5baf --- /dev/null +++ b/ceph-osd.install @@ -0,0 +1,13 @@ +udev/95-ceph-osd.rules lib/udev/rules.d +usr/sbin/ceph-disk +usr/sbin/ceph-disk-udev +usr/bin/ceph-clsinfo +usr/bin/ceph-objectstore-tool +usr/bin/ceph-bluefs-tool +usr/bin/ceph_objectstore_bench +usr/bin/ceph-osd +usr/lib/*/ceph/ceph-osd-prestart.sh /usr/lib/ceph/ +usr/share/man/man8/ceph-clsinfo.8 +usr/share/man/man8/ceph-disk.8 +usr/share/man/man8/ceph-osd.8 +usr/lib/python*/dist-packages/ceph_disk* diff --git a/ceph-osd.postinst b/ceph-osd.postinst new file mode 100644 index 000000000..d61fe6141 --- /dev/null +++ b/ceph-osd.postinst @@ -0,0 +1,42 @@ +# vim: set noet ts=8: +# postinst script for ceph-osd +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +[ -f "/etc/default/ceph" ] && . /etc/default/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph + +case "$1" in + configure|abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/ceph-osd.prerm b/ceph-osd.prerm new file mode 100644 index 000000000..93c459614 --- /dev/null +++ b/ceph-osd.prerm @@ -0,0 +1,22 @@ +#!/bin/sh +# vim: set noet ts=8: + +set -e + +case "$1" in + remove) + invoke-rc.d ceph stop osd || { + RESULT=$? + if [ $RESULT != 100 ]; then + exit $RESULT + fi + } + ;; + + *) + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/ceph-resource-agents.install b/ceph-resource-agents.install new file mode 100644 index 000000000..47e751617 --- /dev/null +++ b/ceph-resource-agents.install @@ -0,0 +1 @@ +usr/lib/ocf/resource.d/ceph diff --git a/ceph-test.install b/ceph-test.install new file mode 100644 index 000000000..d4de5a601 --- /dev/null +++ b/ceph-test.install @@ -0,0 +1,27 @@ +usr/bin/ceph-client-debug /usr/lib/ceph/bin +usr/bin/ceph-coverage /usr/lib/ceph/bin +usr/bin/ceph-kvstore-tool /usr/lib/ceph/bin +usr/bin/ceph-monstore-tool /usr/lib/ceph/bin +usr/bin/ceph-osdomap-tool /usr/lib/ceph/bin +usr/bin/ceph_bench_log /usr/lib/ceph/bin +usr/bin/ceph_erasure_code /usr/lib/ceph/bin +usr/bin/ceph_erasure_code_benchmark /usr/lib/ceph/bin +usr/bin/ceph_kvstorebench /usr/lib/ceph/bin +usr/bin/ceph_multi_stress_watch /usr/lib/ceph/bin +usr/bin/ceph_omapbench /usr/lib/ceph/bin +usr/bin/ceph_perf_* /usr/lib/ceph/bin +usr/bin/ceph_psim /usr/lib/ceph/bin +usr/bin/ceph_radosacl /usr/lib/ceph/bin +usr/bin/ceph_rgw_jsonparser /usr/lib/ceph/bin +usr/bin/ceph_rgw_multiparser /usr/lib/ceph/bin +usr/bin/ceph_scratchtool /usr/lib/ceph/bin +usr/bin/ceph_scratchtoolpp /usr/lib/ceph/bin +usr/bin/ceph_smalliobench /usr/lib/ceph/bin +usr/bin/ceph_smalliobenchdumb /usr/lib/ceph/bin +usr/bin/ceph_smalliobenchfs /usr/lib/ceph/bin +usr/bin/ceph_smalliobenchrbd /usr/lib/ceph/bin +usr/bin/ceph_test_* /usr/lib/ceph/bin +usr/bin/ceph_tpbench /usr/lib/ceph/bin +usr/bin/ceph_xattr_bench /usr/lib/ceph/bin +usr/bin/librgw_file* /usr/lib/ceph/bin +usr/lib/*/ceph/ceph-monstore-update-crush.sh /usr/lib/ceph diff --git a/ceph-test.jlibs b/ceph-test.jlibs new file mode 100644 index 000000000..ca3da00a6 --- /dev/null +++ b/ceph-test.jlibs @@ -0,0 +1 @@ +debian/tmp/usr/share/java/libcephfs-test.jar \ No newline at end of file diff --git a/ceph-test.lintian-overrides b/ceph-test.lintian-overrides new file mode 100644 index 000000000..7a8b3cb60 --- /dev/null +++ b/ceph-test.lintian-overrides @@ -0,0 +1,5 @@ +# False-positives: +spelling-error-in-binary * tEH the + +# Acknowledged: +binary-without-manpage diff --git a/ceph.NEWS b/ceph.NEWS new file mode 100644 index 000000000..ee9db2f22 --- /dev/null +++ b/ceph.NEWS @@ -0,0 +1,180 @@ +ceph (10.2.5-1) unstable; urgency=medium + + ## Upgrades from Debian Jessie + + Online upgrades from Ceph versions prior to Hammer (0.94.x) are not + supported by upstream. As Debian Jessie has Ceph Firefly (0.80.x) an + online upgrade from Jessie to Stretch is not possible. You have to first + shutdown all Ceph daemons on all nodes, upgrade everything to the new + version and start all daemons again. + + Ceph daemons are not automatically restarted on upgrade to minimize + disruption. You have to manually restart them after the upgrade. + + -- Gaudenz Steinlin Sun, 08 Jan 2017 14:57:35 +0100 + +ceph (9.2.0-1) experimental; urgency=medium + + ## systemd Enablement + + For all distributions that support systemd (Debian Jessie 8.x, + Ubuntu >= 16.04), Ceph daemons are now managed using upstream provided + systemd files instead of the legacy sysvinit scripts or distro provided + systemd files. For example: + + systemctl start ceph.target # start all daemons + systemctl status ceph-osd@12 # check status of osd.12 + + To upgrade existing deployments that use the older systemd service + configurations (Ubuntu >= 15.04, Debian >= Jessie), you need to switch + to using the new ceph-mon@ service: + + systemctl stop ceph-mon + systemctl disable ceph-mon + + systemctl start ceph-mon@`hostname` + systemctl enable ceph-mon@`hostname` + + and also enable the ceph target post upgrade: + + systemctl enable ceph.target + + The main notable distro that is *not* using systemd is Ubuntu 14.04 + (The next Ubuntu LTS, 16.04, will use systemd instead of upstart). + + ## Ceph daemons no longer run as root + + Ceph daemons now run as user and group 'ceph' by default. The + ceph user has a static UID assigned by Debian to ensure consistency + across servers within a Ceph deployment. + + If your systems already have a ceph user, upgrading the package will cause + problems. We suggest you first remove or rename the existing 'ceph' user + and 'ceph' group before upgrading. + + When upgrading, administrators have two options: + + 1. Add the following line to 'ceph.conf' on all hosts: + + setuser match path = /var/lib/ceph/$type/$cluster-$id + + This will make the Ceph daemons run as root (i.e., not drop + privileges and switch to user ceph) if the daemon's data + directory is still owned by root. Newly deployed daemons will + be created with data owned by user ceph and will run with + reduced privileges, but upgraded daemons will continue to run as + root. + + 2. Fix the data ownership during the upgrade. This is the + preferred option, but it is more work and can be very time + consuming. The process for each host is to: + + 1. Upgrade the ceph package. This creates the ceph user and group. For + example: + + apt-get install ceph + + NOTE: the permissions on /var/lib/ceph/mon will be set to ceph:ceph + as part of the package upgrade process on existing *systemd* + based installations; the ceph-mon systemd service will be + automatically restarted as part of the upgrade. All other + filesystem permissions on systemd based installs will + remain unmodified by the upgrade. + + 2. Stop the daemon(s): + + systemctl stop ceph-osd@* # debian, ubuntu >= 15.04 + stop ceph-all # ubuntu 14.04 + + 3. Fix the ownership: + + chown -R ceph:ceph /var/lib/ceph + + 4. Restart the daemon(s): + + start ceph-all # ubuntu 14.04 + systemctl start ceph.target # debian, ubuntu >= 15.04 + + Alternatively, the same process can be done with a single daemon + type, for example by stopping only monitors and chowning only + '/var/lib/ceph/osd'. + + ## KeyValueStore OSD on-disk format changes + + The on-disk format for the experimental KeyValueStore OSD backend has + changed. You will need to remove any OSDs using that backend before you + upgrade any test clusters that use it. + + ## Deprecated commands + + 'ceph scrub', 'ceph compact' and 'ceph sync force' are now DEPRECATED. + Users should instead use 'ceph mon scrub', 'ceph mon compact' and + 'ceph mon sync force'. + + ## Full pool behaviour + + When a pool quota is reached, librados operations now block indefinitely, + the same way they do when the cluster fills up. (Previously they would + return -ENOSPC). By default, a full cluster or pool will now block. If + your librados application can handle ENOSPC or EDQUOT errors gracefully, + you can get error returns instead by using the new librados + OPERATION_FULL_TRY flag. + + -- James Page Mon, 30 Nov 2015 09:23:09 +0000 + +ceph (0.80.9-2) unstable; urgency=medium + + ## CRUSH fixes in 0.80.9 + + The 0.80.9 point release fixes several issues with CRUSH that trigger excessive + data migration when adjusting OSD weights. These are most obvious when a very + small weight change (e.g., a change from 0 to .01) triggers a large amount of + movement, but the same set of bugs can also lead to excessive (though less + noticeable) movement in other cases. + + However, because the bug may already have affected your cluster, fixing it + may trigger movement back to the more correct location. For this reason, you + must manually opt-in to the fixed behavior. + + In order to set the new tunable to correct the behavior: + + ceph osd crush set-tunable straw_calc_version 1 + + Note that this change will have no immediate effect. However, from this + point forward, any ‘straw’ bucket in your CRUSH map that is adjusted will get + non-buggy internal weights, and that transition may trigger some rebalancing. + + You can estimate how much rebalancing will eventually be necessary on your + cluster with: + + ceph osd getcrushmap -o /tmp/cm + crushtool -i /tmp/cm --num-rep 3 --test --show-mappings > /tmp/a 2>&1 + crushtool -i /tmp/cm --set-straw-calc-version 1 -o /tmp/cm2 + crushtool -i /tmp/cm2 --reweight -o /tmp/cm2 + crushtool -i /tmp/cm2 --num-rep 3 --test --show-mappings > /tmp/b 2>&1 + wc -l /tmp/a # num total mappings + diff -u /tmp/a /tmp/b | grep -c ^+ # num changed mappings + + Divide the total number of lines in /tmp/a with the number of lines + changed. We've found that most clusters are under 10%. + + You can force all of this rebalancing to happen at once with: + + ceph osd crush reweight-all + + Otherwise, it will happen at some unknown point in the future when + CRUSH weights are next adjusted. + + ## Mapping rbd devices with rbdmap on systemd systems + + If you have setup rbd mappings in /etc/ceph/rbdmap and corresponding mounts + in /etc/fstab things might break with systemd because systemd waits for the + rbd device to appear before the legacy rbdmap init file has a chance to run + and drops into emergency mode if it times out. + + This can be fixed by adding the nofail option in /etc/fstab to all rbd + backed mount points. With this systemd does not wait for the device and + proceeds with the boot process. After rbdmap mapped the device, systemd + detects the new device and mounts the file system. + + -- Gaudenz Steinlin Mon, 04 May 2015 22:49:48 +0200 diff --git a/ceph.init b/ceph.init new file mode 120000 index 000000000..b538109d2 --- /dev/null +++ b/ceph.init @@ -0,0 +1 @@ +../src/init-ceph \ No newline at end of file diff --git a/ceph.maintscript b/ceph.maintscript new file mode 100644 index 000000000..ec2c87d6c --- /dev/null +++ b/ceph.maintscript @@ -0,0 +1,11 @@ +rm_conffile /etc/logrotate.d/ceph 10.2.3-0ubuntu5~ +rm_conffile /etc/init/ceph-osd.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-osd-all-starter.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-create-keys.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-osd-all.conf 10.2.5-1~ +rm_conffile /etc/init/rbdmap.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-mon-all-starter.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-all.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-mon.conf 10.2.5-1~ +rm_conffile /etc/init/ceph-mon-all.conf 10.2.5-1~ +rm_conffile /etc/bash_completion.d/ceph 10.2.5-1~ diff --git a/changelog b/changelog new file mode 100644 index 000000000..241cd7654 --- /dev/null +++ b/changelog @@ -0,0 +1,780 @@ +ceph (10.2.5-7.2) unstable; urgency=medium + + * Non-maintainer upload. + * Build with -g1 instead of -g on 32bit architectures to fix + FTBFS due to the 2GB/3GB address space limits. + + -- Adrian Bunk Wed, 07 Jun 2017 11:39:39 +0300 + +ceph (10.2.5-7.1) unstable; urgency=medium + + * Non-maintainer upload. + * ceph-mon: Add Breaks+Replaces: ceph-common (<< 10) for taking over + /usr/bin/ceph-rest-api. (Closes: #864161) + + -- Andreas Beckmann Tue, 06 Jun 2017 09:08:30 +0200 + +ceph (10.2.5-7) unstable; urgency=medium + + * [a12798] Add fix-init-system-detection.patch. + This replaces the static init system detection by more appropriate + runtime detection which also works if a Debian system is running with + sysvinit. (Closes: #862075) + + -- Gaudenz Steinlin Fri, 12 May 2017 12:12:00 +0200 + +ceph (10.2.5-6) unstable; urgency=medium + + * [e44a30] Disable running dh_auto_install with parallel jobs + (Closes: #850906) + * [b7e926] Link with libatomic and --as-needed on all archs (Closes: #850831) + + -- Gaudenz Steinlin Wed, 11 Jan 2017 12:02:24 +0100 + +ceph (10.2.5-5) unstable; urgency=medium + + * [f4675d] Set _FILE_OFFSET_BITS=64 via DEB_CPPFLAGS_MAINT_APPEND + * [f60392] Install systemd targets for ceph services (Closes: #850509) + * [d3baba] Link with -latomic on mips/mipsel + + -- Gaudenz Steinlin Tue, 10 Jan 2017 09:04:48 +0100 + +ceph (10.2.5-4) unstable; urgency=medium + + * [88034c] Build with ggc-min-expand=5 on mips/el (Closes: #849657) + * [c31e79] Add patch to build rocksdb with -latomic on mips/el + * [182dd8] NEWS entry about upgrades from Debian Jessie + + -- Gaudenz Steinlin Sun, 08 Jan 2017 21:34:21 +0100 + +ceph (10.2.5-3) unstable; urgency=medium + + * [eeff8d] Use -mfloat-abi=softfp on armel for NEON plugin (Closes: #849660) + + -- Gaudenz Steinlin Thu, 05 Jan 2017 09:18:41 +0100 + +ceph (10.2.5-2) unstable; urgency=medium + + * [3859ca] Only list missing files instead of failing (Closes: #849031) + * [47aef7] Remove chrony from recommends (provides time-daemon) + (Closes: #827673) + * [3e96e6] Upstream fix for CVE-2016-9579 (short CORS request) + (Closes: #849048) + + -- Gaudenz Steinlin Sat, 24 Dec 2016 13:14:28 +0100 + +ceph (10.2.5-1) unstable; urgency=medium + + [ James Page ] + * [754935] Imported Upstream version 9.2.0 + - [df85c3] Resync relevant packaging changes with upstream. + - [be5f82] Refresh patches. + - [d1f3fe] Add python-setuptools to BD's for ceph-detect-init. + - [b2f926] Add lsb-release to BD's to ensure that python modules are + installed to correct locations. + - [e4d702] Add python-sphinx to BD's to ensure man pages get generated + and installed. + - [3ead6e] Correct install location for ceph-monstore-update tool. + - [269754] [177b7a] Update symbols for new release. + * [4c45629] Update NEWS file for infernalis changes. + * [940491e] Limit number of parallel builds to 2 to reduce memory footprint + on builders. + * [a2bed4] New upstream version 10.2.5 + * [cbfb6b] Sync upstream changes around rbdmap install and conf files. + * [5c52b2] Drop patches include upstream, refresh remaining patches + * [8f9820] Resync further packaging changes from upstream. + * [27d010] Re-add bz2-dev BD. + * [e94aa2] Add python-dev to BD's. + * [e201c1] d/p/pybind-flags.patch: Ensure that cython *FLAGS are correctly + set. + * [14cd12] d/p/fix-systemd-escaping.patch: Ensure that leading '/' is stripped + from block device paths when escaping for use in systemd unit + names. + * [33b3aa] Add pull request for systemd fixes + * [d781a2] d/ceph-mds.postinst: Fix syntax error. + * [ce55ec] Ensure that python flags are correct set for cython rbd build. + * [f9e35b] Switch rbd python binding to cython + * [8ccae0] Drop ceph_volume_client until its actually in the codebase. + * [0a11cc] Install to relative, not absolute /etc/ceph. + * [e2415a] Drop ceph-bluefs-tool from ceph package. + * [b16966] d/ceph-mds.dirs: Actually create /var/lib/ceph/mds prior to + changing permissions (LP: #1544647). + * [0c1201] d/ceph.init: Restore link to init-ceph, resolving un-install + failures due to missing init script (LP: #1546112). + + [ Gaudenz Steinlin ] + * [e3cb86] Remove no longer needed check for dh-autoreconf>=6 + * [9157b3] Install ceph-brag tool into ceph-common + * [74e9f3] Install ceph-client-debug into ceph-test + * [476449] Use jh_installlib to install Java libraries + * [643f6e] Don't remove configure script on dh_clean + * [4bb203] Remove *.la files to binary packages + * [b76c6a] Add build dependency on libboost-iostreams-dev + * [b0506f] Add build dependency on libldap2-dev + * [526ce1] Refresh patches for upstream version 10.2.2 + * [cf539b] Remove patches applied upstream in 10.2.2 + + [ James Page ] + * [646b48] Add librgw2 binary packages. + * [ae3cda] Drop virtualenv from BD's. + * [7ebd7c] Re-enable rocksdb build for bluestore support + * [e393e5] Add rbd-mirror package + * [00d06d] Add patch to set g++ flags correctly for rocksdb + * [3b029a] Enable gperftools on arm64 architecture. + * [e88620] Add ceph-bluefs-tool to install. + * [4f40a1] Add s390x to list of rocksdb flags + * [858334] d/p/skip-setup.py-makefiles.patch,rules: Avoid use of virtualenv to + install ceph-disk and ceph-detect-init python modules. + * [40c3b7] Update watch file to scan for gz files. + * [49b716] Install librgw_file* as part of ceph-test package. + + [ Gaudenz Steinlin ] + * [2e156d] d/rules: Install upstart and systemd configurations for rbd-mirror. + + [ James Page ] + * [ca0b07] d/copyright: Ensure that jerasure and gf-complete are not stripped + from the upstream release tarball. + * [eee861] d/p/disable-openssl-linking.patch: Disable build time linking with + OpenSSL due to licensing incompatibilities. + * [07d7a6] d/*.symbols: Add new symbols for RC. + * [2416f1] Fix multiarch paths for librgw + * [2da01d] d/rules: Ensure that dh_systemd_start does not insert maintainer + script snippets for ceph-mon and ceph-create-keys - service restart + should be handled outside of the packaging as it is under upstart + and for all other systemd unit files installed (LP: #1563330). + * [76ec3b] d/ceph-common.postinst: Silence output of usermod call + (LP: #1569249). + * [63d60f] d/rules,ceph-common.install: Ensure that /etc/default/ceph is a + file and not a directory (LP: #1587516). + * [a866ca] d/control: Bumped Standards-Version to 3.9.8, no changes. + * [e0811e] d/ceph.install: Drop install of 60-ceph-partuuid-workaround.rules + as no longer part of upstream codebase. + * [25954f] * d/*: Split ceph-osd and ceph-mon into separate binary packages + and add new ceph-base binary package inline with upstream packaging + changes (LP: #1596063). + * [f1287b] Add missing misc depends + * [afeb18] d/rules,control: Drop -dbg packages and let Ubuntu builds take care + of ddeb generation instead. + + [ Gaudenz Steinlin ] + * [e133b2] Install rbdmap manpage into ceph-common + * [b5ed64] Install radosgw-token command into radosgw package + * [0a27e1] Adapt installation of Python files to latest Jewel release + * [ef2544] Drop rocksdb-flags patch applied upstream + * [07aef4] Add patch osd-limit-omap-data-in-push-op + * [32f14d] Refresh patches + + [ James Page ] + * [f4e95c] Fix install location for mount.ceph + * [6a9efc] Update install location for mount.ceph.fuse + * [7624f0] d/control: Add Pre-Depends on ceph-common to ceph-osd to ensure + that ceph user and group are created prior to unpacking of udev + rules (LP: #1631328). + + [ Frode Nordahl ] + * [022ee3] Add rgw_rados-creation_time patch + + [ Gaudenz Steinlin ] + * [05225f] Remove old ceph logrotate configuration + + [ James Page ] + * [cfa82f] Refresh patches + + [ Gaudenz Steinlin ] + * [fdec5d] Remove upstart support + * [5966f0] Use new RSA key for ceph-post-file + * [3748b6] Only install ChangeLog as upstream changelog + * [aa1393] Install bash-completions to /usr + * [ab0a88] Dependency on lsb-base for initscripts + * [4d78b0] Disable radosgw SysV init script on systemd + * [ff4c87] Don't install python bytecode + * [3cbf5e] Add missing dependencies on python (ceph-osd, ceph-mon) + * [8c70df] Update symbols files (librados2 and librbd1) + * [e4f0c5] Add ${shlibs:Depends} on Python C extensions + * [936838] Allow setting the number of parallel jobs + * [e5aa0f] Remove Laszlo and add myself to uploaders + + -- Gaudenz Steinlin Sat, 17 Dec 2016 22:40:22 +0100 + +ceph (0.94.5-1) experimental; urgency=medium + + * [2d330d6] New upstream release: + - [1e93090] Drop patch for CVE-2015-5245, included upstream. + - [20adc7d] Refresh all other patches. + * [9255e5d] Ensure any erasure coding test libraries and dangling symlinks + are not included in the ceph package. + + -- James Page Mon, 09 Nov 2015 12:09:51 +0000 + +ceph (0.94.3-1) experimental; urgency=medium + + * [580fef] Imported Upstream version 0.94.3 (Closes: #777814, #795178) + * [536935] Add upstream patch to fix CVE-2015-5245 (Closes: #798567) + + -- Gaudenz Steinlin Fri, 18 Sep 2015 16:55:23 +0200 + +ceph (0.94.2-2) experimental; urgency=medium + + * Revert "Drop virtualenv BD, disable unit tests." + * Restore patches for test enablement. + * Display test-suite log output in the event of failures. + + -- James Page Mon, 20 Jul 2015 13:37:06 +0100 + +ceph (0.94.2-1) experimental; urgency=medium + + * Resync with Ubuntu, introducing Ceph Hammer stable release: + - d/*.symbols: Update inline with upstream additions, use regex + for ceph version symbol. + - d/lib-systemd/system/ceph-create-keys.service: Automatically create + admin and bootstrap keys after ceph mon startup. + - d/p/vivid-does-systemd.patch: Ensure that disks prepared on vivid + or later use systemd for init. + - d/lib-systemd/system/*.service: Align nofile limits and restart config + with equivalent upstart configurations. + - d/p/fix-cycles-arch.patch: Skip initialization of cycles_per_sec + if rtdsc (or equivalent) is not supported. + - d/ceph{-common}.install,control: Move ceph_argparse.py down into + ceph-common package to fixup ceph cli usage/autopkgtest failure. + - d/control,ceph-common.install,librbd1.install: Move rbdnamer and + associated udev rules into ceph-common package. + - d/control,python-*: Split out rbd, rados and cephfs bindings into + separate python packages, move some bits into ceph/ceph-common. + - d/control: Move python-flask dependency to ceph package, only required + for REST API. + - d/control: Use google-perftools on arm64. + - d/control: Re-order Recommends to prefer ntp over chrony for Ubuntu. + - d/p/ceph-osd-prestart-path.patch: Fixup path for ceph-osd upstart + configuration pre-start script. + - d/p/fix-argparse-defaults.patch: Workaround behavioural change in + argparse set_defaults in python 2.7.9 + * New upstream point release: + - d/p/*: Refresh. + * d/p/use_system_jerasure.patch,d/control: Drop use of libjerasure + as the patch is intrusive and expensive to maintain; will revisit if + adopted upstream. + + -- James Page Tue, 16 Jun 2015 11:31:05 +0100 + +ceph (0.87-2) experimental; urgency=low + + * Team upload. + + [ Gaudenz Steinlin ] + * README.Debian: added clarification about setting the hashpspool flag. + (Closes: #769596). + + [ James Page ] + * Added new "modules.patch" to mark new erasure coding libraries as + modules, wildcard install. + + [ Dmitry Smirnov ] + * Recommends: added "ntp" to list of time-daemon alternatives + (Closes: #767511). + * Introduced native systemd services (except "rbdmap"), (Closes: #769593). + * ceph-test: install forgotten files. + * Run post-build tests: + + updated "virtualenv-never-download.patch" to pass + "--system-site-packages" to virtualenv to prevent downloads. + + added new patches to disable network-dependent and failing tests. + * Patchworks: + - bug-9341.patch + + bug-10036.patch (to show OSD affinity in "ceph osd tree"). + Thanks, Mykola Golub. + + bug-10059.patch + + 0latest-giant.patch (Last-Update: 2014-11-15). + + sleep-recover.patch + + tests-disable.patch (to disable tests that need cluster). + + tests-disable-ceph-disk.patch + + use_system_gtest.patch (commented) + as first attempt to build with system "libgtest-dev". + + use_system_jerasure.patch + * Build-Depends: + + libjerasure-dev (>= 2.0.0-2~) + + virtualenv + + valgrind [amd64 armhf i386 powerpc] + * rules: pass "--without-lttng" to explicitly disable "lttng" to avoid + auto-enable if found. + * rules: disabled bundled RocksDB: + RocksDB suppose to improve performance of keyvaluestore OSDs but the + latter slow down to nearly unusable state when filled over 1 TiB even with + RocksDB. Moreover KV backend is experimental and super dangerous -- I lost + cluster due to OSD poisoning caused by KV OSD which was plugged only + during limited time. LevelDB is good enough, for now I see no reason to + use RocksDB especially considering that it is not packaged separately. + * Removed myself from Uploaders. + + -- Dmitry Smirnov Wed, 01 Apr 2015 11:47:38 +1100 + +ceph (0.87-1) experimental; urgency=medium + + * New major upstream release [October 2014]. + + new "libradosstriper*" binary packages. + * Patchworks (removed old patches, refreshed remaining ones). + + "bug-9814.patch" to prevent OSD crash. Thanks, Haomai Wang. + * Install systemd sleep handler. + * Exclude erasure-code plugins from `dh_makeshlibs` processing to avoid + useless calls to `ldconfig` in maintainer scripts. + * Build-Depends: + + libbabeltrace-dev + + libbabeltrace-ctf-dev + + libbz2-dev + + libudev-dev + + zlib1g-dev + * Build with "--with-babeltrace". + * Build and statically link bundled RocksDB. + + -- Dmitry Smirnov Thu, 30 Oct 2014 12:43:49 +1100 + +ceph (0.80.9-2) unstable; urgency=medium + + * [70fc1d] Add NEWS entry about CRUSH issues fixed in 0.80.9 + * [f41bb6] Add NEWS entry about rbd backed filesystems and systemd + + -- Gaudenz Steinlin Tue, 05 May 2015 21:29:15 +0200 + +ceph (0.80.9-1) unstable; urgency=medium + + * [4b4e] Imported Upstream version 0.80.9 + * [7102] Remove patches firefly-latest and p2139 applied upstream + * [5869] Add myself to uploaders + + -- Gaudenz Steinlin Mon, 04 May 2015 08:49:37 +0200 + +ceph (0.80.7-2) unstable; urgency=medium + + * Team upload. + * Build-Depends: +libjerasure-dev (>= 2.0.0-2~) + * New patch to use system "jerasure" library instead of its bundled copy. + * Removed myself from Uploaders. + + -- Dmitry Smirnov Thu, 11 Dec 2014 12:55:38 +1100 + +ceph (0.80.7-1) unstable; urgency=medium + + * New upstream release [October 2014]. + * Minor update to long description of "rbd-fuse" (Closes: #765462). + + -- Dmitry Smirnov Thu, 16 Oct 2014 04:36:23 +1100 + +ceph (0.80.6-1) unstable; urgency=medium + + * New upstream release [October 2014]. + * Standards-Version: 3.9.6. + + -- Dmitry Smirnov Thu, 02 Oct 2014 23:07:04 +1000 + +ceph (0.80.5-2) unstable; urgency=low + + * Patchworks: + + new patch for Ceph#9341 to dramatically (e.g seconds instead of + hours) reduce rejoin (i.e. MDS restart) time (fuse clients). + + new "p2139.patch". + + new patch with fixes from Firefly HEAD; + includes patch to fix FTBFS on alpha (Closes: #756892). + updated "librbd1.symbols"; + * Build-Depends: mark "yasm" as [amd64] (Closes: #760383). + * Recommends: + "time-daemon | chrony". + + -- Dmitry Smirnov Tue, 16 Sep 2014 03:54:15 +1000 + +ceph (0.80.5-1) unstable; urgency=medium + + * New upstream stable release: + - d/p/firefly-post-release.patch: Dropped, no longer required. + - d/lib{rados2,cephfs1}.symbols: Update with new symbols. + + -- James Page Wed, 30 Jul 2014 10:15:40 +0100 + +ceph (0.80.4-1) unstable; urgency=medium + + * New upstream release [July 2014]. + * New patches: + + rbdmap1-mount.patch + + rbdmap2-hooks.patch + + rbdmap3-lazyumount.patch + + bug-8821.patch + * radosgw: removed unused lintian overrides. + + -- Dmitry Smirnov Fri, 18 Jul 2014 02:33:39 +1000 + +ceph (0.80.1-2) unstable; urgency=low + + * Megapatch from "firefly" branch with post-0.80.1 fixes. + * Patches for upstream bugs 8342, 8624 and some cherry-picks. + * New "bash-completion.patch" with Bash completion improvements. + * New patch to fix FTBFS on 'hppa' (Closes: #748571). + * "sample.ceph.conf.patch": minor update. + + -- Dmitry Smirnov Sat, 05 Jul 2014 20:29:44 +1000 + +ceph (0.80.1-1) unstable; urgency=low + + * New upstream release [May 2014]. + * Dropped all backported patches. + * New "sleep-recover" and "client-sleep[1,2,3]" patches to fix + fuse-client hang after resume from suspend [#8291]; thanks, Zheng Yan. + * New "gcj_search_path.patch" to find "jni.h" with gcj-jdk v4.9.0. + + -- Dmitry Smirnov Wed, 14 May 2014 09:24:15 +1000 + +ceph (0.80-1) unstable; urgency=low + + * New upstream release [May 2014]. + + upload to unstable. + * Updated "README.Debian". + * Updated "debian/copyright"; Thanks, László Böszörményi. + * Added backported patches: + [8113, 8175, 8282, 8291, bp0001, sample.ceph.conf]. + * "gbp.conf": don't merge to experimental. + * lintian-overrides: spelling-error-in-binary * tEH the. + + -- Dmitry Smirnov Wed, 07 May 2014 16:43:07 +1000 + +ceph (0.80~rc1-1) experimental; urgency=low + + * New upstream pre-release. + * Minor re-factoring of udev rules installation. + * ceph-common: added ceph-crush-location.1 man page. + * ceph-test-dbg: fixed Depends. + + -- Dmitry Smirnov Thu, 24 Apr 2014 02:52:12 +1000 + +ceph (0.79-3) experimental; urgency=low + + * New "arch.patch" to detect build architecture using dpkg-architecture. + * Mark amd64-only symbols as such. + * Minor rules cleanup. + + -- Dmitry Smirnov Sat, 19 Apr 2014 15:56:37 +1000 + +ceph (0.79-2) experimental; urgency=low + + [ James Page ] + * d/p/modules.patch,d/ceph.install: Mark all jerasure plugins as modules + and ensure they are all installed. + + [ Dmitry Smirnov ] + * Patchworks: + - removed unused "defaults-leveldb-osd.patch". + + improved description of "modules.patch". Thanks, James Page. + + added new backported patches [#5469, #8008, _1606, spelling]. + * Added .symbols and "dh_makeshlibs -V" shlibs tightening (Closes: #744382). + * README.Debian: added note regarding kernel client mount option. + * copyright: added license for man files. + * control: "Suggests: logrotate". + + -- Dmitry Smirnov Fri, 18 Apr 2014 18:27:01 +1000 + +ceph (0.79-1) experimental; urgency=low + + * New upstream release [April 2014]. + * Tighten dependency on ceph-common. + * Install pm-suspend handler to stop/start ceph services on suspend/resume. + * New (inactive) patch to bump OSD's leveldb defaults. + * Patches dropped (applied-upstream): + - init.patch + - logrotate.patch + - fix-defaultweight.patch + * Refreshed "modules.patch". + + -- Dmitry Smirnov Tue, 08 Apr 2014 16:52:04 +1000 + +ceph (0.78-2) experimental; urgency=low + + * Standards to 3.9.5. + * debian/copyright: reviewed and updated. + * ceph-test: added lintian-override for "binary-without-manpage". + * Patchworks: + + refreshed/renamed/reordered "virtualenv-never-download.patch". + + new "init.patch" for init.d scripts lintianisation. + + new "logrotate.patch" to avoid rotating empty logs. + + new "fix-defaultweight.patch" to fix weight calculation on OSD start. + + new "gcj.patch" with partial fix to FTBFS with gcj-jdk. + * Use symlinks to simplify installation of init.d and logrotate scripts. + * Added retrospective changelog entry to mention new B-D "libblkid-dev". + * Added "debian/clean file". + * Added "README.Debian" file with some hopefully useful notes. + * Added "mount.fuse.ceph.8" man page. + * rules: + + "dh --with" optimised. + + set JAVAC to prevent FTBFS due to incorrect use of 'gcj', when detected. + + verbose mode for 'cp' and 'rm' commands. + + build with "--as-needed" to minimise needless linking. + * control: + + lintian/duplicate-short-description + consistent capitalisation. + + removed needless versioned dependencies from Build-Depends. + + added myself to Uploaders. + + -- Dmitry Smirnov Tue, 25 Mar 2014 07:17:40 +1100 + +ceph (0.78-1) experimental; urgency=medium + + * New upstream release: + - d/control: Add "xfslib-dev" and "libblkid-dev" to BD's. + - d/*: Sync relevant packaging changes from upstream. + - d/p/*: Drop upstreamed patches. + - d/p/modules.patch: Mark libcls_user.so and libec_jerasure.so as modules. + - d/ceph.install: Only install libec_jerasure.so. + * d/ceph-test.install: Install test binaries to /usr/lib/ceph/bin; they + really don't need to be installed on the default path. + * d/{ceph|radosgw|ceph-mds}.lintian-overrides: Add overrides for intentional + difference in naming and structure between upstart configurations and + init.d scripts. + + -- James Page Sat, 22 Mar 2014 18:27:40 +0000 + +ceph (0.72.2-3) unstable; urgency=medium + + * Team upload. + + [ James Page ] + * d/ceph-test.install: Install test binaries to /usr/lib/ceph/bin; they + really don't need to be installed on the default path. + + [ Dmitry Smirnov ] + * Tightened shlibs with "dh_makeshlibs -V" (Closes: #679686). + + -- Dmitry Smirnov Mon, 14 Apr 2014 17:28:20 +1000 + +ceph (0.72.2-2) unstable; urgency=medium + + * d/radosgw.{postinst,postrm,preinst}: Handle renaming of radosgw + upstart configuration on upgrade@0.72.1-3. + * d/{ceph|ceph-mds|radosgw}.{postinst|prerm}: Check to ensure that system + is running upstart before trying to start/stop upstart configurations + (Closes: #734241, #738845, #738845). + + -- James Page Sat, 08 Mar 2014 16:48:28 +0000 + +ceph (0.72.2-1) unstable; urgency=medium + + * New upstream release. + + -- James Page Wed, 01 Jan 2014 09:32:03 +0000 + +ceph (0.72.1-3) unstable; urgency=low + + * d/rules,ceph.install: Correct install paths for ceph-* helpers. + * d/p/modules: Mark libcls_kvs.so as module. + * d/rules: Rename radosgw upstart configuration to radosgw-instance to + avoid namespace conflict with init script which breaks backwards + compatibility (LP: #1255464). + + -- James Page Wed, 27 Nov 2013 10:52:48 +0000 + +ceph (0.72.1-2) unstable; urgency=low + + * Fix upgrade failures from ceph < 0.67.3-1 (Closes: #728164): + - d/control: ceph-mds Breaks/Replaces ceph (<< 0.67.3-1). + - d/control: ceph-fs-common Breaks/Replaces ceph-common (<< 0.67.3-1). + * d/rules,control: Use google-perftools on armhf and powerpc archs. + + -- James Page Mon, 25 Nov 2013 10:13:19 +0000 + +ceph (0.72.1-1) unstable; urgency=low + + * New upstream stable release: + - d/ceph-test.install: Add new ceph_filestore_tool, ceph-kvstore-tool + and ceph_test_cls_hello binaries, drop ceph_test_store_tool. + - d/ceph-common.install: Add new ceph-post-file binary and manpage. + - d/ceph.install: Tweaked install path /usr/sbin -> /sbin. + - d/control: Add new BD's on python-nose and yasm. + - d/copyright: Updates inline with changes in codebase. + - d/ceph.install,rules: Install rbdmap init file using dh_installinit. + - Refresh patches. + * d/control,rules: Disable unit testing; it requires a forked version of + cram and is still trying to download dependencies using virtualenv. + + -- James Page Fri, 22 Nov 2013 13:02:29 +0000 + +ceph (0.67.3-1) unstable; urgency=low + + [ Laszlo Boszormenyi ] + * New upstream release (Closes: #693866, #705262). + * Update debian/copyright. + * Sync with Ubuntu. + + [ James Page ] + * d/control,rules,libcephfs-{java,jni}: Enable Java CephFS library, + add new BD's on javahelper and default-jdk, add dbg package. + * d/control: Add new BD on libboost-thread-dev for RADOS Gateway + keystone integration. + * d/{control,obsync.install}: Drop obsync package inline with + upstream. + * d/librbd-dev.install: Pickup new features.h file. + * Remove manual calls to ldconfig: + - d/lib{rados2|rbd1|cephfs1}.post*: Dropped - all these do is call + ldconfig which will automatically be done. + - d/rules: Let dh_makeshlibs do its magic with postinst/postrm. + * d/tests/*: Added autopkgtests for librbd, librados, python-ceph + and the ceph CLI. + * d/control: Fix versions of librbd1, librados2 and libcephfs1 for + python-ceph as it requires an exact version match. + * d/ceph.docs: Drop - README from upstream is only useful for developers + (Closes: #722957). + * d/rules: Drop --upstart-only from dh_installinit calls for upstart + configurations; this is deprecated in Ubuntu and not support in Debian. + * d/rules: Exclude jni package from shlibs generation to avoid pointless + ldconfig calls in maintainer scripts. + + [ Bastian Blank ] + * Use debhelper 9. + * Use dh-autoreconf. + * Install files from source tree if possible. + * Run test-suite: + - Build-depend on python-virtualenv. + - Ask virtualenv to never download anything. + * Fix clean target. + * Properly mark library modules: + - Don't longer exclude them from stripping. + * Drop all libtool .la files. + * Generate python dependencies. + * Don't exclude stuff from shlibs generation. + + -- Laszlo Boszormenyi (GCS) Tue, 01 Oct 2013 02:29:08 +0200 + +ceph (0.48-1) unstable; urgency=low + + * New upstream release, the first with long-term support. + * As gceph dropped by upstream, remove it from packaging. + * Build with hardening enabled and build-conflict with libcryptopp not to + mix up with libnss. + * Use symbol versioning (closes: #679686). + * Update debian/watch to GitHub tags. + + -- Laszlo Boszormenyi (GCS) Sat, 07 Jul 2012 07:53:40 +0200 + +ceph (0.47.2-1) unstable; urgency=low + + * New upstream release. + * Use system leveldb (closes: #667907). + * Remove librgw1 , librgw-dev and librgw1-dbg and add rest-bench and + rest-bench-dbg packages. + * Backport leveldb build fixes from upstream git as + fix_leveldb_dep_for_system_library_case.patch and + fix_leveldb_includes_for_system_library_case.patch . + * Update packaging. + * Sync with Ubuntu: switch build-dependency from libcryptopp to libnss as + libcryptopp is not seeded. + + -- Laszlo Boszormenyi (GCS) Sun, 03 Jun 2012 13:37:52 +0200 + +ceph (0.44.1-1) unstable; urgency=low + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Fri, 06 Apr 2012 01:10:15 +0200 + +ceph (0.43-1) unstable; urgency=low + + * New upstream release, now creates /var/run/ceph on each start + (closes: #660238). + * Update debian/copyright . + + -- Laszlo Boszormenyi (GCS) Sun, 26 Feb 2012 04:07:02 +0100 + +ceph (0.41-1) unstable; urgency=low + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Sun, 05 Feb 2012 10:07:38 +0100 + +ceph (0.40-1) unstable; urgency=low + + * New upstream release (closes: #652037). + * Adjust copyright to match upstream source changes. + + -- Laszlo Boszormenyi (GCS) Sat, 14 Jan 2012 12:01:30 +0100 + +ceph (0.38-1) unstable; urgency=low + + * New upstream release (closes: #647764), missingok is now part of logrotate + directives (closes: #645651). + * Rename ceph-client-tools package to ceph-common , libceph-dev to + libcephfs-dev and libceph1{,-dbg} ones to libcephfs1{,-dbg} respectively. + * Update upstream VCS locations. + + -- Laszlo Boszormenyi (GCS) Sun, 27 Nov 2011 21:40:52 +0100 + +ceph (0.35-1) unstable; urgency=low + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Sat, 24 Sep 2011 16:51:57 +0200 + +ceph (0.34-1) unstable; urgency=low + + * New upstream release (closes: #638714). + * Make librbd-dev depends on librados-dev as it uses headers from the latter + (closes: #636845). + * Add new binary packages, gceph, gceph-dbg and obsync . The libcrush ones + removed. + * Change to quilt source format and tune packaging. + + -- Laszlo Boszormenyi (GCS) Sun, 28 Aug 2011 15:56:16 +0200 + +ceph (0.27-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Remove references to other libraries from dependency_libs field + (closes: #621208). + + -- Luk Claes Sat, 28 May 2011 22:28:48 +0200 + +ceph (0.27-1) unstable; urgency=low + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Mon, 25 Apr 2011 10:09:05 +0200 + +ceph (0.25.2-1) unstable; urgency=low + + * New upstream release. + * Make Ceph cross buildable (closes: #618939), thanks to Hector Oron. + * Disable libatomic-ops on ARMv4t (armel) archs to prevent FTBFS + (closes: #615235), thanks go to Hector Oron again. + * Rename librados1{,-dbg,-dev} packages to librados2{,-dbg,-dev} ones; + conflict with and replace the former ones. + * Add librbd1 and librbd-dev packages. + + -- Laszlo Boszormenyi (GCS) Sun, 27 Mar 2011 15:51:23 +0200 + +ceph (0.24.3-2) unstable; urgency=low + + * Make Ceph Linux only and build on all Linux archs (closes: #614890). + * Support parallel building via DEB_BUILD_OPTIONS . + * Add watch file, thanks to Clint Byrum (closes: #615021). + * Tune packaging. + + -- Laszlo Boszormenyi (GCS) Fri, 25 Feb 2011 15:17:26 +0100 + +ceph (0.24.3-1) unstable; urgency=low + + * New upstream bugfix release. + + -- Laszlo Boszormenyi (GCS) Sat, 19 Feb 2011 12:25:43 +0100 + +ceph (0.24.2-1) unstable; urgency=low + + * New upstream bugfix release. + + -- Laszlo Boszormenyi (GCS) Sat, 29 Jan 2011 15:25:14 +0100 + +ceph (0.24.1-1) unstable; urgency=low + + * New upstream bugfix release. + + -- Laszlo Boszormenyi (GCS) Tue, 11 Jan 2011 22:23:18 +0100 + +ceph (0.24-1) unstable; urgency=low + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Wed, 01 Dec 2010 09:26:25 -0800 + +ceph (0.23.1-1) experimental; urgency=low + + * Initial release (Closes: #506040) + + -- Sage Weil Sun, 21 Nov 2010 15:22:21 -0800 diff --git a/clean b/clean new file mode 100644 index 000000000..d8fa09718 --- /dev/null +++ b/clean @@ -0,0 +1,3 @@ +src/rocksdb/util/build_version.cc +src/pybind/*.pyc +src/test/pybind/*.pyc diff --git a/compat b/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/control b/control new file mode 100644 index 000000000..16301c46b --- /dev/null +++ b/control @@ -0,0 +1,503 @@ +Source: ceph +Section: admin +Priority: optional +Maintainer: Ceph Maintainers +Uploaders: James Page , + Gaudenz Steinlin +Homepage: http://ceph.com/ +Vcs-Git: git://anonscm.debian.org/pkg-ceph/ceph.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-ceph/ceph.git +Build-Depends: cython, + debhelper (>= 9~), + default-jdk, + dh-autoreconf, + dh-python, + dh-systemd (>= 1.5), + dpkg-dev (>= 1.16.1~), + javahelper, + junit4, + libaio-dev, + libatomic-ops-dev, + libbabeltrace-ctf-dev, + libbabeltrace-dev, + libblkid-dev, + libboost-dev (>= 1.42), + libboost-iostreams-dev, + libboost-program-options-dev (>= 1.42), + libboost-random-dev, + libboost-regex-dev, + libboost-system-dev (>= 1.42), + libboost-thread-dev (>= 1.42), + libbz2-dev, + libcurl4-gnutls-dev, + libedit-dev, + libexpat1-dev, + libfcgi-dev, + libfuse-dev, + libgoogle-perftools-dev [i386 amd64 powerpc armhf arm64 ppc64el], + libkeyutils-dev, + libldap2-dev, + libleveldb-dev, + libnss3-dev, + libsnappy-dev, + libtool, + libudev-dev, + libxml2-dev, + lsb-release, + pkg-config, + python-all (>= 2.6.6-3~), + python-dev, + python-nose, + python-setuptools, + python-sphinx, + uuid-dev, + uuid-runtime, + valgrind [amd64 armhf i386 powerpc], + xfslibs-dev, + xfsprogs, + yasm [amd64], + zlib1g-dev +Build-Conflicts: libcrypto++-dev +Standards-Version: 3.9.8 +X-Python-Version: >= 2.6 +XS-Testsuite: autopkgtest + +Package: ceph +Architecture: linux-any +Depends: ceph-mon (= ${binary:Version}), + ceph-osd (= ${binary:Version}), + lsb-base (>= 3.0-6), + ${misc:Depends} +Suggests: ceph-mds (= ${binary:Version}) +Description: distributed storage and file system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + +Package: ceph-base +Architecture: linux-any +Depends: binutils, + ceph-common (= ${binary:Version}), + cryptsetup-bin | cryptsetup, + gdisk, + hdparm | sdparm, + parted, + uuid-runtime, + xfsprogs, + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Breaks: ceph (<< 10.2.2-0ubuntu2~), + ceph-common (<< 9.2.0-0ubuntu1~), + ceph-test (<< 9.2.0-0ubuntu1~), + python-ceph (<< 0.94.1-1~) +Replaces: ceph (<< 10.2.2-0ubuntu2~), + ceph-common (<< 9.2.0-0ubuntu1~), + ceph-test (<< 9.2.0-0ubuntu1~), + python-ceph (<< 0.94.1-1~) +Recommends: libcephfs1, + librados2, + libradosstriper1, + librbd1, + ntp | time-daemon +Suggests: logrotate +Description: common ceph daemon libraries and management tools + Ceph is a distributed storage system designed to provide excellent + performance, reliability, and scalability. + . + This package contains the libraries and management tools that are common among + the three Ceph server daemons (ceph-mon, ceph-osd, ceph-mds). These tools are + necessary for creating, running, and administering a Ceph storage cluster. + +Package: rbd-mirror +Architecture: linux-any +Depends: ceph-common (= ${binary:Version}), + librados2 (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} +Description: Ceph daemon for mirroring RBD images + Ceph is a distributed storage system designed to provide excellent + performance, reliability, and scalability. + . + This package provides a daemon for mirroring RBD images between + Ceph clusters, streaming changes asynchronously. + +Package: rbd-nbd +Architecture: linux-any +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: NBD-based rbd client for the Ceph distributed file system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. This is a + NBD-based client that allows one to map Ceph rbd images as local + block device. + . + NBD base client that allows one to map Ceph rbd images as local + block device. + +Package: ceph-common +Architecture: linux-any +Depends: librbd1 (= ${binary:Version}), + lsb-base (>= 3.0-6), + python-cephfs (= ${binary:Version}), + python-rados (= ${binary:Version}), + python-rbd (= ${binary:Version}), + python-requests, + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Conflicts: ceph-client-tools +Breaks: ceph (<< 9.2.0-1~), + ceph-test (<< 9.2.0-1~), + librbd1 (<< 0.94.1-1~), + python-ceph (<< 0.94.1-1~) +Replaces: ceph (<< 9.2.0-1~), + ceph-client-tools, + ceph-test (<< 9.2.0-1~), + librbd1 (<< 0.94.1-1~), + python-ceph (<< 0.94.1-1~) +Suggests: ceph, ceph-mds +Description: common utilities to mount and interact with a ceph storage cluster + Ceph is a distributed storage and file system designed to provide + excellent performance, reliability, and scalability. This is a collection + of common tools that allow one to interact with and administer a Ceph cluster. + +Package: ceph-mds +Architecture: linux-any +Depends: ceph, ${misc:Depends}, ${shlibs:Depends} +Recommends: ceph-fs-common, ceph-fuse, libcephfs1 +Breaks: ceph (<< 0.67.3-1) +Replaces: ceph (<< 0.67.3-1) +Description: metadata server for the ceph distributed file system + Ceph is a distributed storage and network file system designed to + provide excellent performance, reliability, and scalability. + . + This package contains the metadata server daemon, which is used to + create a distributed file system on top of the ceph storage cluster. + +Package: ceph-mon +Architecture: linux-any +Depends: ceph-base (= ${binary:Version}), + python-flask, + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Replaces: ceph (<< 10.2.2-0ubuntu2~), + ceph-common (<< 10), +Breaks: ceph (<< 10.2.2-0ubuntu2~), + ceph-common (<< 10), +Description: monitor server for the ceph storage system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains the cluster monitor daemon for the Ceph storage + system. One or more instances of ceph-mon form a Paxos part-time parliament + cluster that provides extremely reliable and durable storage of cluster + membership, configuration, and state. + +Package: ceph-osd +Architecture: linux-any +Depends: ceph-base (= ${binary:Version}), ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} +Pre-Depends: ceph-common (= ${binary:Version}) +Replaces: ceph (<< 10.2.2-0ubuntu2~) +Breaks: ceph (<< 10.2.2-0ubuntu2~) +Description: OSD server for the ceph storage system + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains the Object Storage Daemon for the Ceph storage system. + It is responsible for storing objects on a local file system + and providing access to them over the network. + +Package: ceph-fuse +Architecture: amd64 +Depends: ${misc:Depends}, ${shlibs:Depends} +Recommends: fuse +Description: FUSE-based client for the Ceph distributed file system + Ceph is a distributed network file system designed to provide + excellent performance, reliability, and scalability. This is a + FUSE-based client that allows one to mount a Ceph file system without + root privileges. + . + Because the FUSE-based client has certain inherent performance + limitations, it is recommended that the native Linux kernel client + be used if possible. If it is not practical to load a kernel module + (insufficient privileges, older kernel, etc.), then the FUSE client will + do. + +Package: rbd-fuse +Architecture: linux-any +Depends: ${misc:Depends}, ${shlibs:Depends} +Recommends: fuse +Description: FUSE-based rbd client for the Ceph distributed file system + Ceph is a distributed network file system designed to provide + excellent performance, reliability, and scalability. This is a + FUSE-based client that allows one to map Ceph rbd images as files. + +Package: ceph-fs-common +Architecture: linux-any +Depends: ${misc:Depends}, ${shlibs:Depends} +Breaks: ceph-common (<< 0.67.3-1) +Conflicts: ceph-client-tools +Replaces: ceph-client-tools, ceph-common (<< 0.67.3-1) +Suggests: ceph-mds +Description: common utilities to mount and interact with a ceph file system + 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 file system with the kernel client. + +Package: ceph-resource-agents +Architecture: all +Priority: extra +Recommends: pacemaker +Depends: ceph (>= ${binary:Version}), resource-agents, ${misc:Depends} +Description: OCF-compliant resource agents for Ceph + Ceph is a distributed storage and network file system designed to provide + excellent performance, reliability, and scalability. + . + This package contains the resource agents (RAs) which integrate + Ceph with OCF-compliant cluster resource managers, + such as Pacemaker. + +Package: librados2 +Architecture: linux-any +Section: libs +Conflicts: librados, librados1 +Replaces: librados, librados1 +Depends: ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: RADOS distributed object store client library + RADOS is a reliable, autonomic distributed object storage cluster + developed as part of the Ceph distributed storage system. This is a + shared library allowing applications to access the distributed object + store using a simple file-like interface. + +Package: librados-dev +Architecture: linux-any +Section: libdevel +Depends: librados2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Conflicts: librados1-dev, librados2-dev +Replaces: librados1-dev, librados2-dev +Description: RADOS distributed object store client library (development files) + RADOS is a reliable, autonomic distributed object storage cluster + developed as part of the Ceph distributed storage system. This is a + shared library allowing applications to access the distributed object + store using a simple file-like interface. + . + This package contains development files needed for building applications that + link against librados2. + +Package: libradosstriper1 +Architecture: linux-any +Section: libs +Depends: librados2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Description: RADOS striping interface + Striping interface built on top of the rados library, allowing + to stripe bigger objects onto several standard rados objects using + an interface very similar to the rados one. + +Package: libradosstriper-dev +Architecture: linux-any +Section: libdevel +Depends: libradosstriper1 (= ${binary:Version}), ${misc:Depends} +Description: RADOS striping interface (development files) + libradosstriper is a striping interface built on top of the rados + library, allowing to stripe bigger objects onto several standard + rados objects using an interface very similar to the rados one. + . + This package contains development files needed for building applications that + link against libradosstriper. + +Package: librbd1 +Architecture: linux-any +Section: libs +Depends: librados2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: RADOS block device client library + 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. This is a + shared library allowing applications to manage these block devices. + +Package: librbd-dev +Architecture: linux-any +Section: libdevel +Depends: librados-dev, librbd1 (= ${binary:Version}), ${misc:Depends} +Conflicts: librbd1-dev +Replaces: librbd1-dev +Description: RADOS block device client library (development files) + 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. This is a + shared library allowing applications to manage these block devices. + . + This package contains development files needed for building applications that + link against librbd1. + +Package: libcephfs1 +Architecture: linux-any +Section: libs +Conflicts: libceph, libceph1, libcephfs +Replaces: libceph, libceph1, libcephfs +Depends: ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: Ceph distributed file system client library + Ceph is a distributed network file system designed to provide + excellent performance, reliability, and scalability. This is a + shared library allowing applications to access a Ceph distributed + file system via a POSIX-like interface. + +Package: libcephfs-dev +Architecture: linux-any +Section: libdevel +Depends: libcephfs1 (= ${binary:Version}), ${misc:Depends} +Conflicts: libceph-dev, libceph1-dev, libcephfs1-dev +Replaces: libceph-dev, libceph1-dev, libcephfs1-dev +Description: Ceph distributed file system client library (development files) + Ceph is a distributed network file system designed to provide + excellent performance, reliability, and scalability. This is a + shared library allowing applications to access a Ceph distributed + file system via a POSIX-like interface. + . + This package contains development files needed for building applications that + link against libcephfs1. + +Package: librgw2 +Architecture: linux-any +Section: libs +Depends: librados2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Description: RADOS Gateway client library + RADOS is a distributed object store used by the Ceph distributed + storage system. This package provides a REST gateway to the + object store that aims to implement a superset of Amazon's S3 + service. + . + This package contains the library interface and headers only. + +Package: librgw-dev +Architecture: linux-any +Section: libdevel +Depends: librados-dev (= ${binary:Version}), + librgw2 (= ${binary:Version}), + ${misc:Depends} +Description: RADOS client library (development files) + RADOS is a distributed object store used by the Ceph distributed + storage system. This package provides a REST gateway to the + object store that aims to implement a superset of Amazon's S3 + service. + . + This package contains development files needed for building applications + that link against librgw2. + +Package: radosgw +Architecture: linux-any +Depends: ceph-common (= ${binary:Version}), + librgw2 (= ${binary:Version}), + lsb-base (>= 3.0-6), + ${misc:Depends}, + ${shlibs:Depends} +Suggests: logrotate +Description: REST gateway for RADOS distributed object store + RADOS is a distributed object store used by the Ceph distributed + storage system. This package provides a REST gateway to the + object store that aims to implement a superset of Amazon's S3 + service as well as the OpenStack Object Storage ("Swift") API. + . + This package contains the proxy daemon and related tools only. + +Package: ceph-test +Architecture: linux-any +Depends: ceph-common, + curl, + xml2, + xmlstarlet, + ${misc:Depends}, + ${shlibs:Depends} +Description: Ceph test and benchmarking tools + Ceph is a distributed storage system designed to provide excellent + performance, reliability, and scalability. + . + This package contains tools for testing and benchmarking Ceph. + +Package: python-ceph +Architecture: all +Section: python +Depends: python-cephfs (>= ${binary:Version}), + python-rados (>= ${binary:Version}), + python-rbd (>= ${binary:Version}), + ${misc:Depends}, + ${python:Depends} +Description: Meta-package for python libraries for the Ceph libraries + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package is a metapackage for all python bindings. + +Package: python-rados +Architecture: linux-any +Section: python +Depends: librados2 (= ${binary:Version}), ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} +Replaces: python-ceph (<< 0.94.1-1~) +Breaks: python-ceph (<< 0.94.1-1~) +Description: Python libraries for the Ceph librados library + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains Python libraries for interacting with Ceph's + RADOS object storage. + +Package: python-rbd +Architecture: linux-any +Section: python +Depends: librbd1 (= ${binary:Version}), ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} +Replaces: python-ceph (<< 0.94.1-1~) +Breaks: python-ceph (<< 0.94.1-1~) +Description: Python libraries for the Ceph librbd library + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains Python libraries for interacting with Ceph's + RBD block device library. + +Package: python-cephfs +Architecture: linux-any +Section: python +Depends: libcephfs1 (= ${binary:Version}), ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} +Replaces: python-ceph (<< 0.94.1-1~) +Breaks: python-ceph (<< 0.94.1-1~) +Description: Python libraries for the Ceph libcephfs library + Ceph is a massively scalable, open-source, distributed + storage system that runs on commodity hardware and delivers object, + block and file system storage. + . + This package contains Python libraries for interacting with Ceph's + CephFS file system client library. + +Package: libcephfs-java +Architecture: all +Section: java +Depends: libcephfs-jni (>= ${binary:Version}), ${java:Depends}, ${misc:Depends} +Description: Java library for the Ceph File System + Ceph is a distributed storage system designed to provide excellent + performance, reliability, and scalability. + . + This package contains the Java library for interacting with the Ceph + File System. + +Package: libcephfs-jni +Architecture: linux-any +Section: libs +Depends: libcephfs1 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Description: Java Native Interface library for CephFS Java bindings + Ceph is a distributed storage system designed to provide excellent + performance, reliability, and scalability. + . + This package contains the Java Native Interface library for interacting + with the Ceph File System. diff --git a/copyright b/copyright new file mode 100644 index 000000000..4be351d63 --- /dev/null +++ b/copyright @@ -0,0 +1,819 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: ceph +Upstream-Contact: Sage Weil +Source: http://ceph.com/ + +Files: * +Copyright: 2004-2014 Sage Weil + 2004-2014 Inktank + Inktank, Inc + Inktank Storage, Inc. + 2012-2014 Red Hat + 2013-2014 Cloudwatt + 2013 CohortFS, LLC + 2004-2011 Dreamhost + 2013 eNovance SAS + 2014 Adam Crume + 2012 Florian Haas, hastexo + 2010 Greg Farnum + 2014 John Spray + 2011 Stanislav Sedov + 2013-2014 UnitedStack + 2011 Wido den Hollander +License: LGPL-2.1 + +Files: src/erasure-code/jerasure/ErasureCode* + src/erasure-code/ErasureCode* + src/erasure-code/isa/* + src/include/str_map.h + src/test/common/test_str_map.cc + src/test/erasure-code/* + src/test/rgw/test_rgw_manifest.cc +Copyright: 2014 CERN/Switzerland + 2013-2014 Cloudwatt + 2014 Red Hat + 2013 eNovance SAS +License: LGPL-2.1+ + +Files: src/erasure-code/isa/isa-l/erasure_code/* +Copyright: 2011-2014 Intel Corporation +License: BSD-3-clause + +Files: src/rocksdb/* +Copyright: 2004-2013 Facebook, Inc. + 2011 The LevelDB Authors + 2009 Google Inc. +License: BSD-3-clause +Comment: + Additional Grant of Patent Rights + . + “Software” means the rocksdb software distributed by Facebook, Inc. + . + Facebook hereby grants you a perpetual, worldwide, royalty-free, + non-exclusive, irrevocable (subject to the termination provision below) + license under any rights in any patent claims owned by Facebook, to make, + have made, use, sell, offer to sell, import, and otherwise transfer the + Software. For avoidance of doubt, no license is granted under Facebook’s + rights in any patent claims that are infringed by (i) modifications to the + Software made by you or a third party, or (ii) the Software in combination + with any software or other technology provided by you or a third party. + . + The license granted hereunder will terminate, automatically and without + notice, for anyone that makes any claim (including by filing any lawsuit, + assertion or other action) alleging (a) direct, indirect, or contributory + infringement or inducement to infringe any patent: (i) by Facebook or any + of its subsidiaries or affiliates, whether or not such claim is related + to the Software, (ii) by any party if such claim arises in whole or in + part from any software, product or service of Facebook or any of its + subsidiaries or affiliates, whether or not such claim is related to the + Software, or (iii) by any party relating to the Software; or (b) that + any right in any patent claim of Facebook is invalid or unenforceable. + +Files: src/rocksdb/util/xxhash.* +Copyright: 2012-2014, Yann Collet. +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: src/mount/canonicalize.c + src/test/common/test_config.cc + src/test/crush/TestCrushWrapper.cc + src/test/common/Throttle.cc + src/test/objectstore/chain_xattr.cc + src/test/mon/mon-test-helpers.sh + src/test/objectstore/chain_xattr.cc + src/test/osd/osd-test-helpers.sh + src/ceph-disk + src/stop.sh +Copyright: 1993 Rick Sladkey + 2013 Inktank + 2013-2014 Cloudwatt +License: LGPL-2+ + +Files: src/os/btrfs_ioctl.h + src/test/mon/PGMap.cc +Copyright: 2007 Oracle. All rights reserved. + 2014 Inktank +License: GPL-2 + +Files: src/common/ceph_hash.cc +Copyright: 1995-1997 Robert J. Jenkins Jr. +License: public-domain + This file uses Robert Jenkin's hash function as detailed at: + . + http://burtleburtle.net/bob/hash/evahash.html + . + This is in the public domain. + +Files: src/common/bloom_filter.hpp +Copyright: 2000 Arash Partow +License: Boost-Software-License-1.0 + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + . + The copyright notices in the Software and this entire statement, + including the above license grant, this restriction and the following + disclaimer, must be included in all copies of the Software, in whole or + in part, and all derivative works of the Software, unless such copies + or derivative works are solely in the form of machine-executable object + code generated by a source language processor. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +Files: m4/acx_pthread.m4 +Copyright: Steven G. Johnson +License: GPLWithACException + 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 . + . + As a special exception, the respective Autoconf Macro’s copyright owner gives + unlimited permission to copy, distribute and modify the configure scripts that + are the output of Autoconf when processing the Macro. You need not follow the + terms of the GNU General Public License when using or distributing such + scripts, even though portions of the text of the Macro appear in them. The + GNU General Public License (GPL) does govern all other use of the material + that constitutes the Autoconf Macro. + . + This special exception to the GPL applies to versions of the Autoconf Macro + released by the Autoconf Archive. When you make and distribute a modified + version of the Autoconf Macro, you may extend this special exception to the + GPL to apply to your modified version as well. + +Files: src/common/crc32c_intel* +Copyright: 2012-2013 Intel Corporation All Rights Reserved. +License: BSD-3-clause + +Files: src/common/sctp_crc32.c +Copyright: 2001-2007, by Cisco Systems, Inc. All rights reserved, + 2004-2006 Intel Corporation - All Rights Reserved +License: BSD-3-clause + +Files: src/erasure-code/jerasure/gf-complete/*/* +Copyright: 2013 James S. Plank + Ethan L. Miller + Kevin M. Greenan + Benjamin A. Arnold + John A. Burnum + Adam W. Disney + Allen C. McBride +License: BSD-3-clause +Comment: + https://bitbucket.org/jimplank/gf-complete + +Files: src/erasure-code/jerasure/jerasure/*/* +Copyright: 2011-2013 James S. Plank + 2013 Kevin Greenan +License: BSD-3-clause + +Files: src/gtest/* +Copyright: 2008, Google Inc. +License: BSD-3-clause + +Files: src/civetweb/* +Copyright: 2004-2013 Sergey Lyubka + 2013-2014 the Civetweb developers +License: Expat + +Files: src/json_spirit/* +Copyright: 2007-2011, John W. Wilkinson +License: Expat + +Files: src/java/native/ScopedLocalRef.h + src/java/native/JniConstants.* +Copyright: 2010 The Android Open Source Project +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + The complete text of the Apache License, Version 2.0 + can be found in "/usr/share/common-licenses/Apache-2.0". + +Files: src/libs3/* +Copyright: 2008 Bryan Ischo +License: GPL-3/OpenSSL + libs3 is free software: you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation, version 3 of the License. + . + In addition, as a special exception, the copyright holders give + permission to link the code of this library and its programs with the + OpenSSL library, and distribute linked combinations including the two. + . + libs3 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 3 + can be found in "/usr/share/common-licenses/GPL-3' file. + +Files: src/mount/mtab.c +Copyright: util-linux-ng AUTHORS +License: GPL-2+ +Comment: + "mount/fstab.c" from line 559: + https://git.kernel.org/cgit/utils/util-linux/util-linux.git/tree/mount-deprecated/fstab.c?h=v2.22#n559 + https://git.kernel.org/cgit/utils/util-linux/util-linux.git/tree/README.licensing + +Files: src/test/librbd/fsx.c +Copyright: 1991, NeXT Computer, Inc. +License: APSL-2.0 + The contents of this file constitute Original Code as defined in and + are subject to the Apple Public Source License Version 2.0 (the + "License"). You may not use this file except in compliance with the + License. Please obtain a copy of the License at + http://www.opensource.apple.com/apsl/ and read it before using this file. + . + This Original Code and all software distributed under the License are + distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + License for the specific language governing rights and limitations + under the License. +Comment: + http://codemonkey.org.uk/projects/fsx/ + http://codemonkey.org.uk/projects/fsx/fsx-macosforge/fsx.c + +Files: man/* + debian/man/* +Copyright: 2010-2014, Inktank Storage, Inc. and contributors. +License: CC-BY-SA-3.0 + +Files: debian/* +Copyright: 2010 Sage Weil + 2010 Canonical, Ltd. + 2011-2013 László Böszörményi (GCS) + 2013-2014 James Page + 2014 Dmitry Smirnov +License: LGPL-2.1 + +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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + . + On Debian systems, the complete text of the GNU General Public License + version 2 can be found in `/usr/share/common-licenses/GPL-2' file. + +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 package 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 . + . + On Debian systems, 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 + . + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +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 as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + 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 + . + On Debian systems, the complete text of the GNU Lesser General + Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +License: LGPL-2+ + 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 (or later) 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 + . + On Debian systems, the complete text of the GNU Lesser General + Public License 2 can be found in `/usr/share/common-licenses/LGPL-2'. + +License: Expat + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +Comment: + This license also known as "MIT" however FSF consider "MIT" labelling + ambiguous and copyright-format specification recommend to label such license + as "Expat". + +License: CC-BY-SA-3.0 + Creative Commons Attribution-ShareAlike 3.0 Unported + ․ + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION + ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE + INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + ITS USE. + ․ + License + ․ + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE + COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY + COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS + AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + ․ + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE + TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY + BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS + CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND + CONDITIONS. + ․ + 1. Definitions + ․ + a. "Adaptation" means a work based upon the Work, or upon the Work and + other pre-existing works, such as a translation, adaptation, derivative + work, arrangement of music or other alterations of a literary or + artistic work, or phonogram or performance and includes cinematographic + adaptations or any other form in which the Work may be recast, + transformed, or adapted including in any form recognizably derived from + the original, except that a work that constitutes a Collection will not + be considered an Adaptation for the purpose of this License. For the + avoidance of doubt, where the Work is a musical work, performance or + phonogram, the synchronization of the Work in timed-relation with a + moving image ("synching") will be considered an Adaptation for the + purpose of this License. + ․ + b. "Collection" means a collection of literary or artistic works, such + as encyclopedias and anthologies, or performances, phonograms or + broadcasts, or other works or subject matter other than works listed in + Section 1(f) below, which, by reason of the selection and arrangement of + their contents, constitute intellectual creations, in which the Work is + included in its entirety in unmodified form along with one or more other + contributions, each constituting separate and independent works in + themselves, which together are assembled into a collective whole. A work + that constitutes a Collection will not be considered an Adaptation (as + defined below) for the purposes of this License. + ․ + c. "Creative Commons Compatible License" means a license that is listed + at http://creativecommons.org/compatiblelicenses that has been approved + by Creative Commons as being essentially equivalent to this License, + including, at a minimum, because that license: (i) contains terms that + have the same purpose, meaning and effect as the License Elements of + this License; and, (ii) explicitly permits the relicensing of + adaptations of works made available under that license under this + License or a Creative Commons jurisdiction license with the same License + Elements as this License. + ․ + d. "Distribute" means to make available to the public the original and + copies of the Work or Adaptation, as appropriate, through sale or other + transfer of ownership. + ․ + e. "License Elements" means the following high-level license attributes + as selected by Licensor and indicated in the title of this License: + Attribution, ShareAlike. + ․ + f. "Licensor" means the individual, individuals, entity or entities that + offer(s) the Work under the terms of this License. + ․ + g. "Original Author" means, in the case of a literary or artistic work, + the individual, individuals, entity or entities who created the Work or + if no individual or entity can be identified, the publisher; and in + addition (i) in the case of a performance the actors, singers, + musicians, dancers, and other persons who act, sing, deliver, declaim, + play in, interpret or otherwise perform literary or artistic works or + expressions of folklore; (ii) in the case of a phonogram the producer + being the person or legal entity who first fixes the sounds of a + performance or other sounds; and, (iii) in the case of broadcasts, the + organization that transmits the broadcast. + ․ + h. "Work" means the literary and/or artistic work offered under the + terms of this License including without limitation any production in the + literary, scientific and artistic domain, whatever may be the mode or + form of its expression including digital form, such as a book, pamphlet + and other writing; a lecture, address, sermon or other work of the same + nature; a dramatic or dramatico-musical work; a choreographic work or + entertainment in dumb show; a musical composition with or without words; + a cinematographic work to which are assimilated works expressed by a + process analogous to cinematography; a work of drawing, painting, + architecture, sculpture, engraving or lithography; a photographic work + to which are assimilated works expressed by a process analogous to + photography; a work of applied art; an illustration, map, plan, sketch + or three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a phonogram; a + compilation of data to the extent it is protected as a copyrightable + work; or a work performed by a variety or circus performer to the extent + it is not otherwise considered a literary or artistic work. + ․ + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License with + respect to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. + ․ + j. "Publicly Perform" means to perform public recitations of the Work + and to communicate to the public those public recitations, by any means + or process, including by wire or wireless means or public digital + performances; to make available to the public Works in such a way that + members of the public may access these Works from a place and at a place + individually chosen by them; to perform the Work to the public by any + means or process and the communication to the public of the performances + of the Work, including by public digital performance; to broadcast and + rebroadcast the Work by any means including signs, sounds or images. + ․ + k. "Reproduce" means to make copies of the Work by any means including + without limitation by sound or visual recordings and the right of + fixation and reproducing fixations of the Work, including storage of a + protected performance or phonogram in digital form or other electronic + medium. + ․ + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, + limit, or restrict any uses free from copyright or rights arising from + limitations or exceptions that are provided for in connection with the + copyright protection under copyright law or other applicable laws. + ․ + 3. License Grant. Subject to the terms and conditions of this License, + Licensor hereby grants You a worldwide, royalty-free, non-exclusive, + perpetual (for the duration of the applicable copyright) license to + exercise the rights in the Work as stated below: + ․ + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + ․ + b. to create and Reproduce Adaptations provided that any such + Adaptation, including any translation in any medium, takes reasonable + steps to clearly label, demarcate or otherwise identify that changes + were made to the original Work. For example, a translation could be + marked "The original work was translated from English to Spanish," or a + modification could indicate "The original work has been modified."; + ․ + c. to Distribute and Publicly Perform the Work including as incorporated + in Collections; and, + ․ + d. to Distribute and Publicly Perform Adaptations. + ․ + e. For the avoidance of doubt: + ․ + i. Non-waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or compulsory + licensing scheme cannot be waived, the Licensor reserves the exclusive + right to collect such royalties for any exercise by You of the rights + granted under this License; + ․ + ii. Waivable Compulsory License Schemes. In those jurisdictions in which + the right to collect royalties through any statutory or compulsory + licensing scheme can be waived, the Licensor waives the exclusive right + to collect such royalties for any exercise by You of the rights granted + under this License; and, + ․ + iii. Voluntary License Schemes. The Licensor waives the right to collect + royalties, whether individually or, in the event that the Licensor is a + member of a collecting society that administers voluntary licensing + schemes, via that society, from any exercise by You of the rights + granted under this License. + ․ + The above rights may be exercised in all media and formats whether now + known or hereafter devised. The above rights include the right to make + such modifications as are technically necessary to exercise the rights + in other media and formats. Subject to Section 8(f), all rights not + expressly granted by Licensor are hereby reserved. + ․ + 4. Restrictions. The license granted in Section 3 above is expressly + made subject to and limited by the following restrictions: + ․ + a. You may Distribute or Publicly Perform the Work only under the terms + of this License. You must include a copy of, or the Uniform Resource + Identifier (URI) for, this License with every copy of the Work You + Distribute or Publicly Perform. You may not offer or impose any terms on + the Work that restrict the terms of this License or the ability of the + recipient of the Work to exercise the rights granted to that recipient + under the terms of the License. You may not sublicense the Work. You + must keep intact all notices that refer to this License and to the + disclaimer of warranties with every copy of the Work You Distribute or + Publicly Perform. When You Distribute or Publicly Perform the Work, You + may not impose any effective technological measures on the Work that + restrict the ability of a recipient of the Work from You to exercise the + rights granted to that recipient under the terms of the License. This + Section 4(a) applies to the Work as incorporated in a Collection, but + this does not require the Collection apart from the Work itself to be + made subject to the terms of this License. If You create a Collection, + upon notice from any Licensor You must, to the extent practicable, + remove from the Collection any credit as required by Section 4(c), as + requested. If You create an Adaptation, upon notice from any Licensor + You must, to the extent practicable, remove from the Adaptation any + credit as required by Section 4(c), as requested. + ․ + b. You may Distribute or Publicly Perform an Adaptation only under the + terms of: (i) this License; (ii) a later version of this License with + the same License Elements as this License; (iii) a Creative Commons + jurisdiction license (either this or a later license version) that + contains the same License Elements as this License (e.g., + Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible + License. If you license the Adaptation under one of the licenses + mentioned in (iv), you must comply with the terms of that license. If + you license the Adaptation under the terms of any of the licenses + mentioned in (i), (ii) or (iii) (the "Applicable License"), you must + comply with the terms of the Applicable License generally and the + following provisions: (I) You must include a copy of, or the URI for, + the Applicable License with every copy of each Adaptation You Distribute + or Publicly Perform; (II) You may not offer or impose any terms on the + Adaptation that restrict the terms of the Applicable License or the + ability of the recipient of the Adaptation to exercise the rights + granted to that recipient under the terms of the Applicable License; + (III) You must keep intact all notices that refer to the Applicable + License and to the disclaimer of warranties with every copy of the Work + as included in the Adaptation You Distribute or Publicly Perform; (IV) + when You Distribute or Publicly Perform the Adaptation, You may not + impose any effective technological measures on the Adaptation that + restrict the ability of a recipient of the Adaptation from You to + exercise the rights granted to that recipient under the terms of the + Applicable License. This Section 4(b) applies to the Adaptation as + incorporated in a Collection, but this does not require the Collection + apart from the Adaptation itself to be made subject to the terms of the + Applicable License. + ․ + c. If You Distribute, or Publicly Perform the Work or any Adaptations or + Collections, You must, unless a request has been made pursuant to + Section 4(a), keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) the + name of the Original Author (or pseudonym, if applicable) if supplied, + and/or if the Original Author and/or Licensor designate another party or + parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such party or + parties; (ii) the title of the Work if supplied; (iii) to the extent + reasonably practicable, the URI, if any, that Licensor specifies to be + associated with the Work, unless such URI does not refer to the + copyright notice or licensing information for the Work; and (iv) , + consistent with Ssection 3(b), in the case of an Adaptation, a credit + identifying the use of the Work in the Adaptation (e.g., "French + translation of the Work by Original Author," or "Screenplay based on + original Work by Original Author"). The credit required by this Section + 4(c) may be implemented in any reasonable manner; provided, however, + that in the case of a Adaptation or Collection, at a minimum such credit + will appear, if a credit for all contributing authors of the Adaptation + or Collection appears, then as part of these credits and in a manner at + least as prominent as the credits for the other contributing authors. + For the avoidance of doubt, You may only use the credit required by this + Section for the purpose of attribution in the manner set out above and, + by exercising Your rights under this License, You may not implicitly or + explicitly assert or imply any connection with, sponsorship or + endorsement by the Original Author, Licensor and/or Attribution Parties, + as appropriate, of You or Your use of the Work, without the separate, + express prior written permission of the Original Author, Licensor and/or + Attribution Parties. + ․ + d. Except as otherwise agreed in writing by the Licensor or as may be + otherwise permitted by applicable law, if You Reproduce, Distribute or + Publicly Perform the Work either by itself or as part of any Adaptations + or Collections, You must not distort, mutilate, modify or take other + derogatory action in relation to the Work which would be prejudicial to + the Original Author's honor or reputation. Licensor agrees that in those + jurisdictions (e.g. Japan), in which any exercise of the right granted + in Section 3(b) of this License (the right to make Adaptations) would be + deemed to be a distortion, mutilation, modification or other derogatory + action prejudicial to the Original Author's honor and reputation, the + Licensor will waive or not assert, as appropriate, this Section, to the + fullest extent permitted by the applicable national law, to enable You + to reasonably exercise Your right under Section 3(b) of this License + (right to make Adaptations) but not otherwise. + ․ + 5. Representations, Warranties and Disclaimer + ․ + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR + OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY + KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, + INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, + FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF + LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, + WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + ․ + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE + LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR + ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES + ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS + BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + ․ + 7. Termination + ․ + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or Collections + from You under this License, however, will not have their licenses + terminated provided such individuals or entities remain in full + compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will + survive any termination of this License. + ․ + b. Subject to the above terms and conditions, the license granted here + is perpetual (for the duration of the applicable copyright in the Work). + Notwithstanding the above, Licensor reserves the right to release the + Work under different license terms or to stop distributing the Work at + any time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated as + stated above. + ․ + 8. Miscellaneous + ․ + a. Each time You Distribute or Publicly Perform the Work or a + Collection, the Licensor offers to the recipient a license to the Work + on the same terms and conditions as the license granted to You under + this License. + ․ + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor + offers to the recipient a license to the original Work on the same terms + and conditions as the license granted to You under this License. + ․ + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this License, and without further action + by the parties to this agreement, such provision shall be reformed to + the minimum extent necessary to make such provision valid and + enforceable. + ․ + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in writing + and signed by the party to be charged with such waiver or consent. + ․ + e. This License constitutes the entire agreement between the parties + with respect to the Work licensed here. There are no understandings, + agreements or representations with respect to the Work not specified + here. Licensor shall not be bound by any additional provisions that may + appear in any communication from You. This License may not be modified + without the mutual written agreement of the Licensor and You. + ․ + f. The rights granted under, and the subject matter referenced, in this + License were drafted utilizing the terminology of the Berne Convention + for the Protection of Literary and Artistic Works (as amended on + September 28, 1979), the Rome Convention of 1961, the WIPO Copyright + Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and + the Universal Copyright Convention (as revised on July 24, 1971). These + rights and subject matter take effect in the relevant jurisdiction in + which the License terms are sought to be enforced according to the + corresponding provisions of the implementation of those treaty + provisions in the applicable national law. If the standard suite of + rights granted under applicable copyright law includes additional rights + not granted under this License, such additional rights are deemed to be + included in the License; this License is not intended to restrict the + license of any rights under applicable law. + ․ + ․ + Creative Commons Notice + ․ + Creative Commons is not a party to this License, and makes no warranty + whatsoever in connection with the Work. Creative Commons will not be + liable to You or any party on any legal theory for any damages + whatsoever, including without limitation any general, special, + incidental or consequential damages arising in connection to this + license. Notwithstanding the foregoing two (2) sentences, if Creative + Commons has expressly identified itself as the Licensor hereunder, it + shall have all rights and obligations of Licensor. + ․ + Except for the limited purpose of indicating to the public that the Work + is licensed under the CCPL, Creative Commons does not authorize the use + by either party of the trademark "Creative Commons" or any related + trademark or logo of Creative Commons without the prior written consent + of Creative Commons. Any permitted use will be in compliance with + Creative Commons' then-current trademark usage guidelines, as may be + published on its website or otherwise made available upon request from + time to time. For the avoidance of doubt, this trademark restriction + does not form part of the License. + ․ + Creative Commons may be contacted at http://creativecommons.org/. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + . + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + . + 3. Neither the name of the copyright holder nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/etc/default/ceph b/etc/default/ceph new file mode 100644 index 000000000..c32bdf409 --- /dev/null +++ b/etc/default/ceph @@ -0,0 +1,9 @@ +## /etc/default/ceph -- sourced by ceph-osd@.service (systemd) + +#CLUSTER=ceph +#CONFIG=/etc/ceph/ceph.conf + +## create journal (if not exist) on OSD start; flush journal after OSD stop. +## (useful for journals on tmpfs). +#osd_prestart_sh="[ -r \"/var/lib/ceph/osd/${CLUSTER}-$1/journal\" ] || /usr/bin/ceph-osd --id $1 --mkjournal" +#osd_poststop_sh="/usr/bin/ceph-osd --id $1 --flush-journal" diff --git a/etc/pm/sleep.d/25-ceph b/etc/pm/sleep.d/25-ceph new file mode 100755 index 000000000..09f684aa1 --- /dev/null +++ b/etc/pm/sleep.d/25-ceph @@ -0,0 +1,12 @@ +#!/bin/sh + +##/etc/pm/sleep.d/25-ceph + +case $1 in +suspend|hibernate) + service ceph stop +;; +resume|thaw) + service ceph start +;; +esac diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 000000000..6a469d2b4 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,6 @@ +[DEFAULT] +debian-branch = jewel +pristine-tar = True + +[import-orig] +filter = debian/* diff --git a/lib-systemd/system-sleep/ceph b/lib-systemd/system-sleep/ceph new file mode 100755 index 000000000..cf62f8321 --- /dev/null +++ b/lib-systemd/system-sleep/ceph @@ -0,0 +1,12 @@ +#!/bin/sh + +#/lib/systemd/system-sleep/ceph + +case $1 in +pre) + /bin/systemctl stop ceph +;; +post) + /bin/systemctl start ceph +;; +esac diff --git a/lib-systemd/system/ceph-create-keys.service b/lib-systemd/system/ceph-create-keys.service new file mode 100644 index 000000000..4e29bc1e9 --- /dev/null +++ b/lib-systemd/system/ceph-create-keys.service @@ -0,0 +1,9 @@ +[Unit] +Description=Create Ceph client.admin key when possible +PartOf=ceph-mon.service + +[Service] +Environment=CLUSTER=ceph +Environment=CONFIG=/etc/ceph/ceph.conf +EnvironmentFile=-/etc/default/ceph +ExecStart=/usr/sbin/ceph-create-keys --cluster ${CLUSTER} --id %H diff --git a/lib-systemd/system/ceph-mds.service b/lib-systemd/system/ceph-mds.service new file mode 100644 index 000000000..86ff057f1 --- /dev/null +++ b/lib-systemd/system/ceph-mds.service @@ -0,0 +1,16 @@ +[Unit] +Description=Ceph metadata server daemon (MDS) +Documentation=man:ceph-mds +After=network-online.target nss-lookup.target +Wants=network-online.target nss-lookup.target +PartOf=ceph.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-/etc/default/ceph +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-mds -f --cluster ${CLUSTER} --id %H --setuser ceph --setgroup ceph + +[Install] +WantedBy=multi-user.target diff --git a/lib-systemd/system/ceph-mon.service b/lib-systemd/system/ceph-mon.service new file mode 100644 index 000000000..02f5a35eb --- /dev/null +++ b/lib-systemd/system/ceph-mon.service @@ -0,0 +1,21 @@ +[Unit] +Description=Ceph cluster monitor daemon +Documentation=man:ceph-mon + +After=network-online.target local-fs.target ceph-create-keys.service +Wants=network-online.target local-fs.target ceph-create-keys.service + +PartOf=ceph.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-/etc/default/ceph +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-mon -f --cluster ${CLUSTER} --id %H --setuser ceph --setgroup ceph +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure +RestartSec=30 + +[Install] +WantedBy=multi-user.target diff --git a/lib-systemd/system/ceph-osd@.service b/lib-systemd/system/ceph-osd@.service new file mode 100644 index 000000000..adfa6a02f --- /dev/null +++ b/lib-systemd/system/ceph-osd@.service @@ -0,0 +1,22 @@ +[Unit] +Description=Ceph object storage daemon (OSD) +Documentation=man:ceph-osd +After=network-online.target +Wants=network-online.target +PartOf=ceph.service +RequiresMountsFor=/var/lib/ceph/osd/ceph-%i + +[Service] +Environment=CLUSTER=ceph +Environment=CONFIG=/etc/ceph/ceph.conf +EnvironmentFile=-/etc/default/ceph +ExecStartPre=-/bin/sh -c '${osd_prestart_sh}' -- %i +ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --id %i --cluster ${CLUSTER} +ExecStart=/usr/bin/ceph-osd --id %i --foreground --cluster ${CLUSTER} -c ${CONFIG} +ExecStopPost=-/bin/sh -c '${osd_poststop_sh}' -- %i +LimitNOFILE=327680 +Restart=on-failure +RestartSec=30 + +[Install] +WantedBy=multi-user.target diff --git a/libcephfs-dev.install b/libcephfs-dev.install new file mode 100644 index 000000000..716d0035c --- /dev/null +++ b/libcephfs-dev.install @@ -0,0 +1,3 @@ +usr/include/cephfs/libcephfs.h +usr/lib/*/libcephfs.a +usr/lib/*/libcephfs.so diff --git a/libcephfs-java.jlibs b/libcephfs-java.jlibs new file mode 100644 index 000000000..1029fb53d --- /dev/null +++ b/libcephfs-java.jlibs @@ -0,0 +1 @@ +debian/tmp/usr/share/java/libcephfs.jar diff --git a/libcephfs-jni.install b/libcephfs-jni.install new file mode 100644 index 000000000..15cb91d90 --- /dev/null +++ b/libcephfs-jni.install @@ -0,0 +1 @@ +usr/lib/*/libcephfs_jni.so* usr/lib/jni diff --git a/libcephfs1.install b/libcephfs1.install new file mode 100644 index 000000000..f09e93ca5 --- /dev/null +++ b/libcephfs1.install @@ -0,0 +1 @@ +usr/lib/*/libcephfs.so.* diff --git a/libcephfs1.lintian-overrides b/libcephfs1.lintian-overrides new file mode 100644 index 000000000..d4041ca8e --- /dev/null +++ b/libcephfs1.lintian-overrides @@ -0,0 +1,2 @@ +# False-positives: +spelling-error-in-binary * tEH the diff --git a/libcephfs1.symbols b/libcephfs1.symbols new file mode 100644 index 000000000..a1b223ff2 --- /dev/null +++ b/libcephfs1.symbols @@ -0,0 +1,152 @@ +libcephfs.so.1 libcephfs1 #MINVER# + (regex|c++)"^_.*" 0.87 + ceph_buffer_free@Base 0.93 + ceph_chdir@Base 0.72.2 + ceph_chmod@Base 0.72.2 + ceph_chown@Base 0.72.2 + ceph_close@Base 0.72.2 + ceph_closedir@Base 0.72.2 + ceph_conf_get@Base 0.72.2 + ceph_conf_parse_argv@Base 0.72.2 + ceph_conf_parse_env@Base 0.72.2 + ceph_conf_read_file@Base 0.72.2 + ceph_conf_set@Base 0.72.2 + ceph_create@Base 0.72.2 + ceph_create_with_context@Base 0.72.2 + ceph_create_from_rados@Base 10.1.0 + ceph_debug_get_fd_caps@Base 0.72.2 + ceph_debug_get_file_caps@Base 0.72.2 + ceph_fallocate@Base 0.72.2 + ceph_fchmod@Base 0.72.2 + ceph_fchown@Base 0.72.2 + ceph_fgetxattr@Base 9.2.0 + ceph_flistxattr@Base 9.2.0 + ceph_flock@Base 9.2.0 + ceph_fremovexattr@Base 9.2.0 + ceph_fsetxattr@Base 9.2.0 + ceph_fstat@Base 0.72.2 + ceph_fsync@Base 0.72.2 + ceph_ftruncate@Base 0.72.2 + ceph_get_file_extent_osds@Base 0.72.2 + ceph_get_file_layout@Base 0.72.2 + ceph_get_file_object_size@Base 0.72.2 + ceph_get_file_pool@Base 0.72.2 + ceph_get_file_pool_name@Base 0.72.2 + ceph_get_file_replication@Base 0.72.2 + ceph_get_file_stripe_address@Base 0.72.2 + ceph_get_file_stripe_count@Base 0.72.2 + ceph_get_file_stripe_unit@Base 0.72.2 + ceph_get_local_osd@Base 0.72.2 + ceph_get_mount_context@Base 0.72.2 + ceph_get_osd_addr@Base 0.72.2 + ceph_get_osd_crush_location@Base 0.72.2 + ceph_get_path_layout@Base 0.72.2 + ceph_get_path_object_size@Base 0.72.2 + ceph_get_path_pool@Base 0.72.2 + ceph_get_path_pool_name@Base 0.72.2 + ceph_get_path_replication@Base 0.72.2 + ceph_get_path_stripe_count@Base 0.72.2 + ceph_get_path_stripe_unit@Base 0.72.2 + ceph_get_pool_id@Base 0.72.2 + ceph_get_pool_name@Base 0.72.2 + ceph_get_pool_replication@Base 0.72.2 + ceph_get_stripe_unit_granularity@Base 0.72.2 + ceph_getcwd@Base 0.72.2 + ceph_getdents@Base 0.72.2 + ceph_getdnames@Base 0.72.2 + ceph_getxattr@Base 0.72.2 + ceph_init@Base 0.93 + ceph_is_mounted@Base 0.72.2 + ceph_lchown@Base 0.72.2 + ceph_lgetxattr@Base 0.72.2 + ceph_link@Base 0.72.2 + ceph_listxattr@Base 0.72.2 + ceph_ll_close@Base 0.79 + ceph_ll_commit_blocks@Base 0.79 + ceph_ll_create@Base 0.79 + ceph_ll_file_layout@Base 0.79 + ceph_ll_forget@Base 0.79 + ceph_ll_fsync@Base 0.79 + ceph_ll_get_inode@Base 0.79 + ceph_ll_get_internal_offset@Base 0.79 + ceph_ll_get_stripe_osd@Base 0.79 + ceph_ll_getattr@Base 0.79 + ceph_ll_getxattr@Base 0.79 + ceph_ll_link@Base 0.79 + ceph_ll_listxattr@Base 0.79 + ceph_ll_lookup@Base 0.79 + ceph_ll_lookup_inode@Base 0.79 + ceph_ll_lookup_root@Base 0.79 + ceph_ll_lseek@Base 0.79 + ceph_ll_mkdir@Base 0.79 + ceph_ll_num_osds@Base 0.79 + ceph_ll_open@Base 0.79 + ceph_ll_opendir@Base 0.79 + ceph_ll_osdaddr@Base 0.79 + ceph_ll_put@Base 0.79 + ceph_ll_read@Base 0.79 + ceph_ll_read_block@Base 0.79 + ceph_ll_readlink@Base 0.79 + ceph_ll_readv@Base 0.79 + ceph_ll_releasedir@Base 0.79 + ceph_ll_removexattr@Base 0.79 + ceph_ll_rename@Base 0.79 + ceph_ll_rmdir@Base 0.79 + ceph_ll_setattr@Base 0.79 + ceph_ll_setxattr@Base 0.79 + ceph_ll_snap_seq@Base 0.79 + ceph_ll_statfs@Base 0.79 + ceph_ll_stripe_unit@Base 0.79 + ceph_ll_symlink@Base 0.79 + ceph_ll_truncate@Base 0.79 + ceph_ll_unlink@Base 0.79 + ceph_ll_walk@Base 0.79 + ceph_ll_write@Base 0.79 + ceph_ll_write_block@Base 0.79 + ceph_ll_writev@Base 0.79 + ceph_llistxattr@Base 0.72.2 + ceph_localize_reads@Base 0.72.2 + ceph_lremovexattr@Base 0.72.2 + ceph_lseek@Base 0.72.2 + ceph_lsetxattr@Base 0.72.2 + ceph_lstat@Base 0.72.2 + ceph_mds_command@Base 0.93 + ceph_mkdir@Base 0.72.2 + ceph_mkdirs@Base 0.72.2 + ceph_mknod@Base 0.72.2 + ceph_mount@Base 0.72.2 + ceph_open@Base 0.72.2 + ceph_open_layout@Base 0.72.2 + ceph_opendir@Base 0.72.2 + ceph_preadv@Base 9.2.0 + ceph_pwritev@Base 9.2.0 + ceph_read@Base 0.72.2 + ceph_readdir@Base 0.72.2 + ceph_readdir_r@Base 0.72.2 + ceph_readdirplus_r@Base 0.72.2 + ceph_readlink@Base 0.72.2 + ceph_release@Base 0.72.2 + ceph_removexattr@Base 0.72.2 + ceph_rename@Base 0.72.2 + ceph_rewinddir@Base 0.72.2 + ceph_rmdir@Base 0.72.2 + ceph_seekdir@Base 0.72.2 + ceph_set_default_file_replication@Base 0.72.2 + ceph_set_default_file_stripe_count@Base 0.72.2 + ceph_set_default_file_stripe_unit@Base 0.72.2 + ceph_set_default_object_size@Base 0.72.2 + ceph_set_default_preferred_pg@Base 0.72.2 + ceph_setattr@Base 0.72.2 + ceph_setxattr@Base 0.72.2 + ceph_shutdown@Base 0.72.2 + ceph_stat@Base 0.72.2 + ceph_statfs@Base 0.72.2 + ceph_symlink@Base 0.72.2 + ceph_sync_fs@Base 0.72.2 + ceph_telldir@Base 0.72.2 + ceph_truncate@Base 0.72.2 + ceph_unlink@Base 0.72.2 + ceph_unmount@Base 0.72.2 + ceph_utime@Base 0.72.2 + ceph_version@Base 0.72.2 + ceph_write@Base 0.72.2 diff --git a/librados-dev.install b/librados-dev.install new file mode 100644 index 000000000..960a63553 --- /dev/null +++ b/librados-dev.install @@ -0,0 +1,13 @@ +usr/bin/librados-config +usr/include/rados/buffer.h +usr/include/rados/buffer_fwd.h +usr/include/rados/crc32c.h +usr/include/rados/librados.h +usr/include/rados/librados.hpp +usr/include/rados/memory.h +usr/include/rados/page.h +usr/include/rados/rados_types.h +usr/include/rados/rados_types.hpp +usr/lib/*/librados.a +usr/lib/*/librados.so +usr/share/man/man8/librados-config.8 diff --git a/librados2.install b/librados2.install new file mode 100644 index 000000000..a96bdb292 --- /dev/null +++ b/librados2.install @@ -0,0 +1 @@ +usr/lib/*/librados.so.* diff --git a/librados2.lintian-overrides b/librados2.lintian-overrides new file mode 100644 index 000000000..d4041ca8e --- /dev/null +++ b/librados2.lintian-overrides @@ -0,0 +1,2 @@ +# False-positives: +spelling-error-in-binary * tEH the diff --git a/librados2.symbols b/librados2.symbols new file mode 100644 index 000000000..7f62e1a20 --- /dev/null +++ b/librados2.symbols @@ -0,0 +1,188 @@ +librados.so.2 librados2 #MINVER# + (regex|c++)"^_.*" 0.87 + rados_aio_append@Base 0.72.2 + rados_aio_cancel@Base 0.87 + rados_aio_create_completion@Base 0.72.2 + rados_aio_flush@Base 0.72.2 + rados_aio_flush_async@Base 0.72.2 + rados_aio_get_return_value@Base 0.72.2 + rados_aio_get_version@Base 10.2.5 + rados_aio_is_complete@Base 0.72.2 + rados_aio_is_complete_and_cb@Base 0.72.2 + rados_aio_is_safe@Base 0.72.2 + rados_aio_is_safe_and_cb@Base 0.72.2 + rados_aio_notify@Base 10.1.0 + rados_aio_read@Base 0.72.2 + rados_aio_read_op_operate@Base 0.79 + rados_aio_release@Base 0.72.2 + rados_aio_remove@Base 0.72.2 + rados_aio_stat@Base 0.72.2 + rados_aio_unwatch@Base 10.1.0 + rados_aio_wait_for_complete@Base 0.72.2 + rados_aio_wait_for_complete_and_cb@Base 0.72.2 + rados_aio_wait_for_safe@Base 0.72.2 + rados_aio_wait_for_safe_and_cb@Base 0.72.2 + rados_aio_watch@Base 10.1.0 + rados_aio_watch_flush@Base 10.1.0 + rados_aio_write@Base 0.72.2 + rados_aio_write_full@Base 0.72.2 + rados_aio_write_op_operate@Base 0.79 + rados_append@Base 0.72.2 + rados_blacklist_add@Base 0.93 + rados_break_lock@Base 0.72.2 + rados_buffer_free@Base 0.72.2 + rados_cache_pin@Base 10.1.0 + rados_cache_unpin@Base 10.1.0 + rados_cct@Base 0.72.2 + rados_clone_range@Base 0.72.2 + rados_cluster_fsid@Base 0.72.2 + rados_cluster_stat@Base 0.72.2 + rados_conf_get@Base 0.72.2 + rados_conf_parse_argv@Base 0.72.2 + rados_conf_parse_argv_remainder@Base 0.72.2 + rados_conf_parse_env@Base 0.72.2 + rados_conf_read_file@Base 0.72.2 + rados_conf_set@Base 0.72.2 + rados_connect@Base 0.72.2 + rados_create2@Base 0.72.2 + rados_create@Base 0.72.2 + rados_create_read_op@Base 0.79 + rados_create_with_context@Base 0.72.2 + rados_create_write_op@Base 0.79 + rados_exec@Base 0.72.2 + rados_get_instance_id@Base 0.72.2 + rados_get_last_version@Base 0.72.2 + rados_getxattr@Base 0.72.2 + rados_getxattrs@Base 0.72.2 + rados_getxattrs_end@Base 0.72.2 + rados_getxattrs_next@Base 0.72.2 + rados_inconsistent_pg_list@Base 10.1.0 + rados_ioctx_cct@Base 0.72.2 + rados_ioctx_create2@Base 0.93 + rados_ioctx_create@Base 0.72.2 + rados_ioctx_destroy@Base 0.72.2 + rados_ioctx_get_cluster@Base 0.72.2 + rados_ioctx_get_id@Base 0.72.2 + rados_ioctx_get_pool_name@Base 0.72.2 + rados_ioctx_locator_set_key@Base 0.72.2 + rados_ioctx_pool_get_auid@Base 0.72.2 + rados_ioctx_pool_required_alignment2@Base 10.1.0 + rados_ioctx_pool_required_alignment@Base 0.79 + rados_ioctx_pool_requires_alignment2@Base 10.1.0 + rados_ioctx_pool_requires_alignment@Base 0.79 + rados_ioctx_pool_set_auid@Base 0.72.2 + rados_ioctx_pool_stat@Base 0.72.2 + rados_ioctx_selfmanaged_snap_create@Base 0.72.2 + rados_ioctx_selfmanaged_snap_remove@Base 0.72.2 + rados_ioctx_selfmanaged_snap_rollback@Base 0.72.2 + rados_ioctx_selfmanaged_snap_set_write_ctx@Base 0.72.2 + rados_ioctx_set_namespace@Base 0.72.2 + rados_ioctx_snap_create@Base 0.72.2 + rados_ioctx_snap_get_name@Base 0.72.2 + rados_ioctx_snap_get_stamp@Base 0.72.2 + rados_ioctx_snap_list@Base 0.72.2 + rados_ioctx_snap_lookup@Base 0.72.2 + rados_ioctx_snap_remove@Base 0.72.2 + rados_ioctx_snap_rollback@Base 0.80~rc1 + rados_ioctx_snap_set_read@Base 0.72.2 + rados_list_lockers@Base 0.72.2 + rados_lock_exclusive@Base 0.72.2 + rados_lock_shared@Base 0.72.2 + rados_mon_command@Base 0.72.2 + rados_mon_command_target@Base 0.72.2 + rados_monitor_log@Base 0.72.2 + rados_nobjects_list_close@Base 0.93 + rados_nobjects_list_get_pg_hash_position@Base 0.93 + rados_nobjects_list_next@Base 0.93 + rados_nobjects_list_open@Base 0.93 + rados_nobjects_list_seek@Base 0.93 + rados_notify2@Base 0.93 + rados_notify@Base 0.72.2 + rados_notify_ack@Base 0.93 + rados_object_list@Base 10.1.0 + rados_object_list_begin@Base 10.1.0 + rados_object_list_cursor_cmp@Base 10.1.0 + rados_object_list_cursor_free@Base 10.1.0 + rados_object_list_end@Base 10.1.0 + rados_object_list_free@Base 10.1.0 + rados_object_list_is_end@Base 10.1.0 + rados_object_list_slice@Base 10.1.0 + rados_objects_list_close@Base 0.72.2 + rados_objects_list_get_pg_hash_position@Base 0.79 + rados_objects_list_next@Base 0.72.2 + rados_objects_list_open@Base 0.72.2 + rados_objects_list_seek@Base 0.79 + rados_omap_get_end@Base 0.79 + rados_omap_get_next@Base 0.79 + rados_osd_command@Base 0.72.2 + rados_pg_command@Base 0.72.2 + rados_ping_monitor@Base 0.72.2 + rados_pool_create@Base 0.72.2 + rados_pool_create_with_all@Base 0.72.2 + rados_pool_create_with_auid@Base 0.72.2 + rados_pool_create_with_crush_rule@Base 0.72.2 + rados_pool_delete@Base 0.72.2 + rados_pool_get_base_tier@Base 0.93 + rados_pool_list@Base 0.72.2 + rados_pool_lookup@Base 0.72.2 + rados_pool_reverse_lookup@Base 0.72.2 + rados_read@Base 0.72.2 + rados_read_op_assert_exists@Base 0.79 + rados_read_op_assert_version@Base 0.93 + rados_read_op_cmpxattr@Base 0.79 + rados_read_op_exec@Base 0.79 + rados_read_op_exec_user_buf@Base 0.79 + rados_read_op_getxattrs@Base 0.79 + rados_read_op_omap_cmp@Base 0.79 + rados_read_op_omap_get_keys@Base 0.79 + rados_read_op_omap_get_vals@Base 0.79 + rados_read_op_omap_get_vals_by_keys@Base 0.79 + rados_read_op_operate@Base 0.79 + rados_read_op_read@Base 0.79 + rados_read_op_set_flags@Base 0.79 + rados_read_op_stat@Base 0.79 + rados_release_read_op@Base 0.79 + rados_release_write_op@Base 0.79 + rados_remove@Base 0.72.2 + rados_rmxattr@Base 0.72.2 + rados_rollback@Base 0.72.2 + rados_set_alloc_hint@Base 0.79 + rados_setxattr@Base 0.72.2 + rados_shutdown@Base 0.72.2 + rados_stat@Base 0.72.2 + rados_tmap_get@Base 0.72.2 + rados_tmap_put@Base 0.72.2 + rados_tmap_update@Base 0.72.2 + rados_trunc@Base 0.72.2 + rados_unlock@Base 0.72.2 + rados_unwatch2@Base 0.93 + rados_unwatch@Base 0.72.2 + rados_version@Base 0.72.2 + rados_wait_for_latest_osdmap@Base 0.79 + rados_watch2@Base 0.93 + rados_watch@Base 0.72.2 + rados_watch_check@Base 0.93 + rados_watch_flush@Base 0.93 + rados_write@Base 0.72.2 + rados_write_full@Base 0.72.2 + rados_write_op_append@Base 0.79 + rados_write_op_assert_exists@Base 0.79 + rados_write_op_assert_version@Base 0.93 + rados_write_op_cmpxattr@Base 0.79 + rados_write_op_create@Base 0.79 + rados_write_op_exec@Base 0.79 + rados_write_op_omap_clear@Base 0.79 + rados_write_op_omap_cmp@Base 0.79 + rados_write_op_omap_rm_keys@Base 0.79 + rados_write_op_omap_set@Base 0.79 + rados_write_op_operate2@Base 10.1.0 + rados_write_op_operate@Base 0.79 + rados_write_op_remove@Base 0.79 + rados_write_op_rmxattr@Base 0.79 + rados_write_op_set_alloc_hint@Base 0.79 + rados_write_op_set_flags@Base 0.79 + rados_write_op_setxattr@Base 0.79 + rados_write_op_truncate@Base 0.79 + rados_write_op_write@Base 0.79 + rados_write_op_write_full@Base 0.79 + rados_write_op_zero@Base 0.79 diff --git a/libradosstriper-dev.install b/libradosstriper-dev.install new file mode 100644 index 000000000..6f410549e --- /dev/null +++ b/libradosstriper-dev.install @@ -0,0 +1,5 @@ +#usr/lib/*/libradosstriper.la +usr/include/radosstriper/libradosstriper.h +usr/include/radosstriper/libradosstriper.hpp +usr/lib/*/libradosstriper.a +usr/lib/*/libradosstriper.so diff --git a/libradosstriper1.install b/libradosstriper1.install new file mode 100644 index 000000000..742549ba9 --- /dev/null +++ b/libradosstriper1.install @@ -0,0 +1 @@ +usr/lib/*/libradosstriper.so.* diff --git a/libradosstriper1.symbols b/libradosstriper1.symbols new file mode 100644 index 000000000..df6d8dfda --- /dev/null +++ b/libradosstriper1.symbols @@ -0,0 +1,192 @@ +libradosstriper.so.1 libradosstriper1 #MINVER# + CEPH_CONF_FILE_DEFAULT@Base 0.93 + MDS_GID_NONE@Base 0.93 + MDS_RANK_NONE@Base 0.93 + XXH32@Base 10.1.0 + XXH32_canonicalFromHash@Base 10.1.0 + XXH32_createState@Base 10.1.0 + XXH32_digest@Base 10.1.0 + XXH32_freeState@Base 10.1.0 + XXH32_hashFromCanonical@Base 10.1.0 + XXH32_reset@Base 10.1.0 + XXH32_update@Base 10.1.0 + XXH64@Base 10.1.0 + XXH64_canonicalFromHash@Base 10.1.0 + XXH64_createState@Base 10.1.0 + XXH64_digest@Base 10.1.0 + XXH64_freeState@Base 10.1.0 + XXH64_hashFromCanonical@Base 10.1.0 + XXH64_reset@Base 10.1.0 + XXH64_update@Base 10.1.0 + XXH_versionNumber@Base 10.1.0 + (regex|c++)"^_.*" 0.87 + (regex)"^ceph_ver__[0-9a-f]{40}@Base$" 0.87 + boost_asio_detail_posix_thread_function@Base 10.1.0 + ceph_arch_aarch64_crc32@Base 9.2.0 + ceph_arch_arm_probe@Base 0.93 + ceph_arch_intel_pclmul@Base 0.93 + ceph_arch_intel_probe@Base 0.93 + ceph_arch_intel_sse2@Base 0.93 + ceph_arch_intel_sse3@Base 0.93 + ceph_arch_intel_sse41@Base 0.93 + ceph_arch_intel_sse42@Base 0.93 + ceph_arch_intel_ssse3@Base 0.93 + ceph_arch_neon@Base 0.93 + ceph_arch_probe@Base 0.93 + ceph_arch_probed@Base 0.93 + ceph_armor@Base 0.93 + ceph_armor_line_break@Base 0.93 + ceph_crc32c_func@Base 0.93 + ceph_crc32c_intel_baseline@Base 0.93 + ceph_crc32c_intel_fast@Base 0.93 + ceph_crc32c_intel_fast_exists@Base 0.93 + ceph_crc32c_sctp@Base 0.93 + ceph_os_fgetxattr@Base 0.93 + ceph_os_flistxattr@Base 0.93 + ceph_os_fremovexattr@Base 0.93 + ceph_os_fsetxattr@Base 0.93 + ceph_os_getxattr@Base 0.93 + ceph_os_listxattr@Base 0.93 + ceph_os_removexattr@Base 0.93 + ceph_os_setxattr@Base 0.93 + ceph_unarmor@Base 0.93 + check_for_control_characters@Base 0.93 + check_for_control_characters_cstr@Base 0.93 + check_utf8@Base 0.93 + check_utf8_cstr@Base 0.93 + code_environment_to_str@Base 0.93 + config_optionsp@Base 0.93 + (arch=amd64)crc32_iscsi_00@Base 0.93 + (arch=amd64)crc32_iscsi_00_slver@Base 0.93 + (arch=amd64)crc32_iscsi_00_slver_00020014@Base 0.93 + (arch=amd64)crc32_iscsi_zero_00@Base 0.93 + (arch=amd64)crc32_iscsi_zero_00_slver@Base 0.93 + (arch=amd64)crc32_iscsi_zero_00_slver_00020014@Base 0.93 + crc32_table_iscsi_base@Base 0.93 + crush_add_bucket@Base 0.93 + crush_add_list_bucket_item@Base 0.93 + crush_add_rule@Base 0.93 + crush_add_straw2_bucket_item@Base 0.93 + crush_add_straw_bucket_item@Base 0.93 + crush_add_tree_bucket_item@Base 0.93 + crush_add_uniform_bucket_item@Base 0.93 + crush_addition_is_unsafe@Base 0.93 + crush_adjust_list_bucket_item_weight@Base 0.93 + crush_adjust_straw2_bucket_item_weight@Base 0.93 + crush_adjust_straw_bucket_item_weight@Base 0.93 + crush_adjust_tree_bucket_item_weight@Base 0.93 + crush_adjust_uniform_bucket_item_weight@Base 0.93 + crush_bucket_add_item@Base 0.93 + crush_bucket_adjust_item_weight@Base 0.93 + crush_bucket_alg_name@Base 0.93 + crush_bucket_remove_item@Base 0.93 + crush_calc_straw@Base 0.93 + crush_create@Base 0.93 + crush_destroy@Base 0.93 + crush_destroy_bucket@Base 0.93 + crush_destroy_bucket_list@Base 0.93 + crush_destroy_bucket_straw@Base 0.93 + crush_destroy_bucket_straw2@Base 0.94 + crush_destroy_bucket_tree@Base 0.93 + crush_destroy_bucket_uniform@Base 0.93 + crush_destroy_rule@Base 0.93 + crush_do_rule@Base 0.93 + crush_finalize@Base 0.93 + crush_find_rule@Base 0.93 + crush_get_bucket_item_weight@Base 0.93 + crush_get_next_bucket_id@Base 0.93 + crush_hash32@Base 0.93 + crush_hash32_2@Base 0.93 + crush_hash32_3@Base 0.93 + crush_hash32_4@Base 0.93 + crush_hash32_5@Base 0.93 + crush_hash_name@Base 0.93 + crush_make_bucket@Base 0.93 + crush_make_list_bucket@Base 0.93 + crush_make_rule@Base 0.93 + crush_make_straw2_bucket@Base 0.93 + crush_make_straw_bucket@Base 0.93 + crush_make_tree_bucket@Base 0.93 + crush_make_uniform_bucket@Base 0.93 + crush_multiplication_is_unsafe@Base 0.93 + crush_remove_bucket@Base 0.93 + crush_remove_list_bucket_item@Base 0.93 + crush_remove_straw2_bucket_item@Base 0.93 + crush_remove_straw_bucket_item@Base 0.93 + crush_remove_tree_bucket_item@Base 0.93 + crush_remove_uniform_bucket_item@Base 0.93 + crush_reweight_bucket@Base 0.93 + crush_rule_set_step@Base 0.93 + decode_utf8@Base 0.93 + default_file_layout@Base 10.1.0 + encode_utf8@Base 0.93 + escape_json_attr@Base 0.93 + escape_json_attr_len@Base 0.93 + escape_xml_attr@Base 0.93 + escape_xml_attr_len@Base 0.93 + g_code_env@Base 0.93 + g_lockdep@Base 0.93 + get_linux_version@Base 0.93 + get_process_name@Base 0.93 + is_control_character@Base 0.93 + mime_decode_from_qp@Base 0.93 + mime_encode_as_qp@Base 0.93 + module_has_param@Base 0.93 + module_load@Base 0.93 + pem_key@Base 0.93 + pipe_cloexec@Base 0.93 + rados_striper_aio_append@Base 0.87 + rados_striper_aio_flush@Base 0.87 + rados_striper_aio_read@Base 0.87 + rados_striper_aio_write@Base 0.87 + rados_striper_aio_write_full@Base 0.87 + rados_striper_append@Base 0.87 + rados_striper_create@Base 0.87 + rados_striper_destroy@Base 0.87 + rados_striper_getxattr@Base 0.87 + rados_striper_getxattrs@Base 0.87 + rados_striper_getxattrs_end@Base 0.87 + rados_striper_getxattrs_next@Base 0.87 + rados_striper_multi_aio_create_completion@Base 0.87 + rados_striper_multi_aio_get_return_value@Base 0.87 + rados_striper_multi_aio_is_complete@Base 0.87 + rados_striper_multi_aio_is_complete_and_cb@Base 0.87 + rados_striper_multi_aio_is_safe@Base 0.87 + rados_striper_multi_aio_is_safe_and_cb@Base 0.87 + rados_striper_multi_aio_release@Base 0.87 + rados_striper_multi_aio_wait_for_complete@Base 0.87 + rados_striper_multi_aio_wait_for_complete_and_cb@Base 0.87 + rados_striper_multi_aio_wait_for_safe@Base 0.87 + rados_striper_multi_aio_wait_for_safe_and_cb@Base 0.87 + rados_striper_read@Base 0.87 + rados_striper_remove@Base 0.87 + rados_striper_rmxattr@Base 0.87 + rados_striper_set_object_layout_object_size@Base 0.87 + rados_striper_set_object_layout_stripe_count@Base 0.87 + rados_striper_set_object_layout_stripe_unit@Base 0.87 + rados_striper_setxattr@Base 0.87 + rados_striper_stat@Base 0.87 + rados_striper_trunc@Base 0.87 + rados_striper_write@Base 0.87 + rados_striper_write_full@Base 0.87 + resolve_addrs@Base 0.93 + safe_cat@Base 0.93 + safe_pread@Base 0.93 + safe_pread_exact@Base 0.93 + safe_pwrite@Base 0.93 + safe_read@Base 0.93 + safe_read_exact@Base 0.93 + safe_read_file@Base 0.93 + safe_splice@Base 0.93 + safe_splice_exact@Base 0.93 + safe_write@Base 0.93 + safe_write_file@Base 0.93 + sctp_crc_c@Base 0.93 + sctp_crc_tableil8_o32@Base 0.93 + sctp_crc_tableil8_o40@Base 0.93 + sctp_crc_tableil8_o48@Base 0.93 + sctp_crc_tableil8_o56@Base 0.93 + sctp_crc_tableil8_o64@Base 0.93 + sctp_crc_tableil8_o72@Base 0.93 + sctp_crc_tableil8_o80@Base 0.93 + sctp_crc_tableil8_o88@Base 0.93 diff --git a/librbd-dev.install b/librbd-dev.install new file mode 100644 index 000000000..a7ee137d5 --- /dev/null +++ b/librbd-dev.install @@ -0,0 +1,5 @@ +usr/include/rbd/features.h +usr/include/rbd/librbd.h +usr/include/rbd/librbd.hpp +usr/lib/*/librbd.a +usr/lib/*/librbd.so diff --git a/librbd1.install b/librbd1.install new file mode 100644 index 000000000..decadbc19 --- /dev/null +++ b/librbd1.install @@ -0,0 +1 @@ +usr/lib/*/librbd.so.* diff --git a/librbd1.symbols b/librbd1.symbols new file mode 100644 index 000000000..587175c33 --- /dev/null +++ b/librbd1.symbols @@ -0,0 +1,117 @@ +librbd.so.1 librbd1 #MINVER# + (regex|c++)"^_.*" 0.87 + rbd_aio_close@Base 10.1.0 + rbd_aio_create_completion@Base 0.72.2 + rbd_aio_discard@Base 0.72.2 + rbd_aio_flush@Base 0.72.2 + rbd_aio_get_arg@Base 10.1.0 + rbd_aio_get_return_value@Base 0.72.2 + rbd_aio_is_complete@Base 0.72.2 + rbd_aio_open@Base 10.1.0 + rbd_aio_open_read_only@Base 10.1.0 + rbd_aio_read2@Base 0.93 + rbd_aio_read@Base 0.72.2 + rbd_aio_release@Base 0.72.2 + rbd_aio_wait_for_complete@Base 0.72.2 + rbd_aio_write2@Base 0.93 + rbd_aio_write@Base 0.72.2 + rbd_break_lock@Base 0.72.2 + rbd_clone2@Base 0.72.2 + rbd_clone3@Base 10.1.0 + rbd_clone@Base 0.72.2 + rbd_close@Base 0.72.2 + rbd_copy2@Base 0.72.2 + rbd_copy3@Base 10.1.0 + rbd_copy@Base 0.72.2 + rbd_copy_with_progress2@Base 0.72.2 + rbd_copy_with_progress3@Base 10.2.5 + rbd_copy_with_progress@Base 0.72.2 + rbd_create2@Base 0.72.2 + rbd_create3@Base 0.72.2 + rbd_create4@Base 10.1.0 + rbd_create@Base 0.72.2 + rbd_diff_iterate2@Base 9.2.0 + rbd_diff_iterate@Base 0.72.2 + rbd_discard@Base 0.72.2 + rbd_flatten@Base 0.72.2 + rbd_flush@Base 0.72.2 + rbd_get_features@Base 0.72.2 + rbd_get_flags@Base 0.93 + rbd_get_old_format@Base 0.72.2 + rbd_get_overlap@Base 0.72.2 + rbd_get_parent_info@Base 0.72.2 + rbd_get_size@Base 0.72.2 + rbd_get_stripe_count@Base 0.72.2 + rbd_get_stripe_unit@Base 0.72.2 + rbd_image_options_clear@Base 10.1.0 + rbd_image_options_create@Base 10.1.0 + rbd_image_options_destroy@Base 10.1.0 + rbd_image_options_get_string@Base 10.1.0 + rbd_image_options_get_uint64@Base 10.1.0 + rbd_image_options_is_empty@Base 10.1.0 + rbd_image_options_is_set@Base 10.2.5 + rbd_image_options_set_string@Base 10.1.0 + rbd_image_options_set_uint64@Base 10.1.0 + rbd_image_options_unset@Base 10.1.0 + rbd_invalidate_cache@Base 0.80.5-2~ + rbd_is_exclusive_lock_owner@Base 0.93 + rbd_list@Base 0.72.2 + rbd_list_children@Base 0.72.2 + rbd_list_lockers@Base 0.72.2 + rbd_lock_exclusive@Base 0.72.2 + rbd_lock_shared@Base 0.72.2 + rbd_metadata_get@Base 9.2.0 + rbd_metadata_list@Base 9.2.0 + rbd_metadata_remove@Base 9.2.0 + rbd_metadata_set@Base 9.2.0 + rbd_mirror_image_demote@Base 10.1.0 + rbd_mirror_image_disable@Base 10.1.0 + rbd_mirror_image_enable@Base 10.1.0 + rbd_mirror_image_get_info@Base 10.1.0 + rbd_mirror_image_get_status@Base 10.2.5 + rbd_mirror_image_promote@Base 10.1.0 + rbd_mirror_image_resync@Base 10.1.0 + rbd_mirror_image_status_list@Base 10.2.5 + rbd_mirror_image_status_list_cleanup@Base 10.2.5 + rbd_mirror_image_status_summary@Base 10.2.5 + rbd_mirror_mode_get@Base 10.1.0 + rbd_mirror_mode_set@Base 10.1.0 + rbd_mirror_peer_add@Base 10.1.0 + rbd_mirror_peer_list@Base 10.1.0 + rbd_mirror_peer_list_cleanup@Base 10.1.0 + rbd_mirror_peer_remove@Base 10.1.0 + rbd_mirror_peer_set_client@Base 10.1.0 + rbd_mirror_peer_set_cluster@Base 10.1.0 + rbd_open@Base 0.72.2 + rbd_open_read_only@Base 0.72.2 + rbd_poll_io_events@Base 10.1.0 + rbd_read2@Base 0.93 + rbd_read@Base 0.72.2 + rbd_read_iterate2@Base 0.72.2 + rbd_read_iterate@Base 0.72.2 + rbd_rebuild_object_map@Base 9.2.0 + rbd_remove@Base 0.72.2 + rbd_remove_with_progress@Base 0.72.2 + rbd_rename@Base 0.72.2 + rbd_resize@Base 0.72.2 + rbd_resize_with_progress@Base 0.72.2 + rbd_set_image_notification@Base 10.1.0 + rbd_snap_create@Base 0.72.2 + rbd_snap_is_protected@Base 0.72.2 + rbd_snap_list@Base 0.72.2 + rbd_snap_list_end@Base 0.72.2 + rbd_snap_protect@Base 0.72.2 + rbd_snap_remove@Base 0.72.2 + rbd_snap_rename@Base 10.1.0 + rbd_snap_rollback@Base 0.72.2 + rbd_snap_rollback_with_progress@Base 0.72.2 + rbd_snap_set@Base 0.72.2 + rbd_snap_unprotect@Base 0.72.2 + rbd_stat@Base 0.72.2 + rbd_unlock@Base 0.72.2 + rbd_update_features@Base 9.2.0 + rbd_update_unwatch@Base 10.2.5 + rbd_update_watch@Base 10.2.5 + rbd_version@Base 0.72.2 + rbd_write2@Base 0.93 + rbd_write@Base 0.72.2 diff --git a/librgw-dev.install b/librgw-dev.install new file mode 100644 index 000000000..c816e2112 --- /dev/null +++ b/librgw-dev.install @@ -0,0 +1,4 @@ +usr/include/rados/librgw.h +usr/include/rados/rgw_file.h +usr/lib/*/librgw.a +usr/lib/*/librgw.so diff --git a/librgw2.install b/librgw2.install new file mode 100644 index 000000000..267c56113 --- /dev/null +++ b/librgw2.install @@ -0,0 +1 @@ +usr/lib/*/librgw.so.* diff --git a/man/ceph-crush-location.1 b/man/ceph-crush-location.1 new file mode 100644 index 000000000..d05d85c7b --- /dev/null +++ b/man/ceph-crush-location.1 @@ -0,0 +1,24 @@ +.TH ceph-crush-location "1" "April 2014" "ceph-crush-location" "User Commands" +.SH NAME +ceph-crush-location \- get CRUSH location +.SH DESCRIPTION +Generate a CRUSH location for the given entity + +The CRUSH location consists of a list of key=value pairs, separated +by spaces, all on a single line. This describes where in CRUSH +hierarhcy this entity should be placed. + +.SH OPTIONS +.TP 4 +\fB\-\-cluster\fR +name of the cluster (see /etc/ceph/$cluster.conf) +.TP 4 +\fB\-\-type\fR +daemon/entity type +.TP 4 +\fB\-\-id\fR +id (osd number, mds name, client name) + +.SH SEE ALSO +.TP +\fBceph-conf\fP(8) diff --git a/man/mount.fuse.ceph.8 b/man/mount.fuse.ceph.8 new file mode 100644 index 000000000..718936578 --- /dev/null +++ b/man/mount.fuse.ceph.8 @@ -0,0 +1,30 @@ +.TH mount.fuse.ceph "8" "March 2014" "ceph-fuse" "User Commands" +.SH NAME +mount.fuse.ceph \- wrapper around ceph-fuse +.SH DESCRIPTION +Helper to mount ceph-fuse from /etc/fstab. To use, add an entry like: + +.nf +# DEVICE PATH TYPE OPTIONS + mount.fuse.ceph#conf=/etc/ceph/ceph.conf,id=admin /mnt/ceph fuse _netdev,noatime,allow_other 0 0 + mount.fuse.ceph#conf=/etc/ceph/foo.conf,id=myuser /mnt/ceph2 fuse _netdev,noatime,allow_other 0 0 +.fi + +where the device field is a comma-separated list of options to pass on +the command line. The examples above, for example, specify that +ceph-fuse will authenticated as client.admin and client.myuser +(respectively), and the second example also sets the "conf" option to +"/etc/ceph/foo.conf" via the ceph-fuse command line. Any valid +ceph-fuse option can be passed in this way. + +.SH OPTIONS +.TP 4 +\fB\-\-conf\fR +path to ceph cponfiguration file, usually "/etc/ceph/ceph.conf" +.TP 4 +\fB\-\-id\fR +user name + +.SH SEE ALSO +.TP +\fBceph-fuse\fP(8) diff --git a/not-installed b/not-installed new file mode 100644 index 000000000..7d8c43066 --- /dev/null +++ b/not-installed @@ -0,0 +1,38 @@ +# files installed by jh_installlib +debian/tmp/usr/share/java/libcephfs.jar +debian/tmp/usr/share/java/libcephfs-test.jar +# There is currently no -dev package for libcephfs-jni, +# so the static library is not needed +debian/tmp/usr/lib/x86_64-linux-gnu/libcephfs_jni.a +# this is not needed by the newer udev rules +# it's only relevant to udev/95-ceph-osd-alt.rules +# which is not installed on Debian +debian/tmp/usr/sbin/ceph-disk-udev +# These plugins are also not installed by the ceph.com +# Debian package and there is no documentation about +# what they are used for +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_zlib.a +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_zlib.so.2.0.0 +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_zlib.so +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_zlib.so.2 +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_example.so.0.0.0 +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_example.so.0 +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_snappy.so +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_snappy.so.2.0.0 +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_snappy.so.2 +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_example.a +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_example.so +debian/tmp/usr/lib/x86_64-linux-gnu/ceph/compressor/libceph_snappy.a +# ceph-deploy is another source package, not much point +# in installing this manpage +debian/tmp/usr/share/man/man8/ceph-deploy.8 +# Don't install python bytecode. This will be generated on installation +# by dh-python +debian/tmp/usr/lib/python2.7/dist-packages/ceph_argparse.pyo +debian/tmp/usr/lib/python2.7/dist-packages/ceph_rest_api.pyc +debian/tmp/usr/lib/python2.7/dist-packages/ceph_rest_api.pyo +debian/tmp/usr/lib/python2.7/dist-packages/ceph_daemon.pyc +debian/tmp/usr/lib/python2.7/dist-packages/ceph_volume_client.pyc +debian/tmp/usr/lib/python2.7/dist-packages/ceph_daemon.pyo +debian/tmp/usr/lib/python2.7/dist-packages/ceph_argparse.pyc +debian/tmp/usr/lib/python2.7/dist-packages/ceph_volume_client.pyo diff --git a/patches/arch.patch b/patches/arch.patch new file mode 100644 index 000000000..adf31d088 --- /dev/null +++ b/patches/arch.patch @@ -0,0 +1,17 @@ +Last-Update: 2014-10-19 +Forwarded: not-needed +Author: Dmitry Smirnov +Description: use `dpkg-architecture` instead of `arch` to get build architecture + Fixes build in `pbuilder` on amd64 for i386. + +--- a/configure.ac ++++ b/configure.ac +@@ -244,7 +244,7 @@ + if test x"$YASM_CHECK" = x"yes"; then + if yasm -f elf64 src/common/crc32c_intel_fast_asm.S -o /dev/null; then + echo 'we have a modern and working yasm' +- if test `arch` = "x86_64" ; then ++ if test `dpkg-architecture -qDEB_BUILD_GNU_CPU` = "x86_64" ; then + echo 'we are x86_64' + arch_x32=0 + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ diff --git a/patches/bug-10036.patch b/patches/bug-10036.patch new file mode 100644 index 000000000..360e476c2 --- /dev/null +++ b/patches/bug-10036.patch @@ -0,0 +1,32 @@ +Last-Update: 2014-12-25 +Bug-Ceph: http://tracker.ceph.com/issues/10036 +Author: Mykola Golub +Description: show primary-affinity in OSD tree + +--- a/src/osd/OSDMap.cc ++++ b/src/osd/OSDMap.cc +@@ -2349,19 +2349,23 @@ + *out << std::setprecision(4) + << (exists(cur) ? get_weightf(cur) : 0) + << std::setprecision(p) + << "\t"; ++ *out << std::setprecision(4) ++ << (exists(cur) ? get_primary_affinityf(cur) : 0) ++ << std::setprecision(p); + } + if (f) { + f->dump_float("reweight", get_weightf(cur)); ++ f->dump_float("primary_affinity", get_primary_affinityf(cur)); + } + } + } + + void OSDMap::print_tree(ostream *out, Formatter *f) const + { + if (out) +- *out << "# id\tweight\ttype name\tup/down\treweight\n"; ++ *out << "# id\tweight\ttype name\tup/down\treweight\tprimary-affinity\n"; + if (f) + f->open_array_section("nodes"); + set touched; + set roots; diff --git a/patches/cve-2016-9579_short_cors_request.patch b/patches/cve-2016-9579_short_cors_request.patch new file mode 100644 index 000000000..6a654bacd --- /dev/null +++ b/patches/cve-2016-9579_short_cors_request.patch @@ -0,0 +1,51 @@ +commit 67d4d9e64bc224e047cf333e673bb22cd6290789 +Author: LiuYang +Date: Thu Dec 8 14:21:43 2016 +0800 + + rgw: do not abort when accept a CORS request with short origin + + Fixed: #18187 + + when accept a CROS request, the request http origin shorter than the bucket's corsrule + (eg. origin: http://s.com corsrule: *.verylongdomain.com). + the rgw_cors.cc::is_string_in_set() will have a wrong index, the radosrgw server will + abort. + + $ curl http://test.localhost:8000/app.data -H "Origin:http://s.com" + + 0> 2016-12-05 03:22:29.548138 7f6add05d700 -1 *** Caught signal (Aborted) ** + in thread 7f6add05d700 thread_name:civetweb-worker + + ceph version 11.0.2-2168-gd2f8fb4 (d2f8fb4a6ba75af7e6da0f5a7f1b49ec998b1631) + 1: (()+0x50720a) [0x7f6b147c420a] + 2: (()+0xf370) [0x7f6b09a33370] + 3: (gsignal()+0x37) [0x7f6b081ca1d7] + 4: (abort()+0x148) [0x7f6b081cb8c8] + 5: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7f6b08ace9d5] + 6: (()+0x5e946) [0x7f6b08acc946] + 7: (()+0x5e973) [0x7f6b08acc973] + 8: (()+0x5eb93) [0x7f6b08accb93] + 9: (std::__throw_out_of_range(char const*)+0x77) 0x7f6b08b21a17] + 10: (()+0xbd97a) [0x7f6b08b2b97a] + 11: (()+0x449c1e) [0x7f6b14706c1e] + 12: (RGWCORSRule::is_origin_present(char const*)+0x48) [0x7f6b147073b8] + 13: (RGWCORSConfiguration::host_name_rule(char const*)+0x37) [0x7f6b147074e7] + 14: (RGWOp::generate_cors_headers(std::string&, std::string&, std::string&, std::string&, unsigned int*)+0xa3) [0x7f6b14593e63] + 15: (dump_access_control(req_state*, RGWOp*)+0x61) [0x7f6b14653f91] + + Signed-off-by: LiuYang + +diff --git a/src/rgw/rgw_cors.cc b/src/rgw/rgw_cors.cc +index 1ad5b43136..f2c7f3ac64 100644 +--- a/src/rgw/rgw_cors.cc ++++ b/src/rgw/rgw_cors.cc +@@ -104,7 +104,8 @@ static bool is_string_in_set(set& s, string h) { + string sl = ssplit.front(); + dout(10) << "Finding " << sl << ", in " << h + << ", at offset not less than " << flen << dendl; +- if (h.compare((h.size() - sl.size()), sl.size(), sl) != 0) ++ if (h.size() < sl.size() || ++ h.compare((h.size() - sl.size()), sl.size(), sl) != 0) + continue; + ssplit.pop_front(); + } diff --git a/patches/disable-openssl-linking.patch b/patches/disable-openssl-linking.patch new file mode 100644 index 000000000..9fe7e31a1 --- /dev/null +++ b/patches/disable-openssl-linking.patch @@ -0,0 +1,19 @@ +Description: Disable build time linking with openssl + OpenSSL is not DFSG compatible with the rest of the Ceph + codebase; disable build time linking and switch back to + runtime use if end-users decide they want to use OpenSSL. +Author: James Page +Forwarded: not-needed + +--- a/src/rgw/Makefile.am ++++ b/src/rgw/Makefile.am +@@ -133,8 +133,7 @@ libcivetweb_la_SOURCES = \ + + libcivetweb_la_CXXFLAGS = ${CIVETWEB_INCLUDE} -fPIC -Woverloaded-virtual \ + ${AM_CXXFLAGS} +-libcivetweb_la_CFLAGS = -I$(srcdir)/civetweb/include ${CIVETWEB_INCLUDE} -fPIC -DNO_SSL_DL +-LIBCIVETWEB_DEPS += -lssl -lcrypto ++libcivetweb_la_CFLAGS = -I$(srcdir)/civetweb/include ${CIVETWEB_INCLUDE} -fPIC + + noinst_LTLIBRARIES += libcivetweb.la + diff --git a/patches/fix-cycles-arch.patch b/patches/fix-cycles-arch.patch new file mode 100644 index 000000000..c2dfff597 --- /dev/null +++ b/patches/fix-cycles-arch.patch @@ -0,0 +1,19 @@ +Description: Enable high precision clock for PPC + fallback + This code is only used for benchmarking so warning and + fallback if architecture does not have support. +Author: James Page +Forwarded: no + +--- a/src/common/Cycles.cc ++++ b/src/common/Cycles.cc +@@ -57,6 +57,10 @@ + if (rdtsc() == 0) + return; + ++ // Skip initialization if rtdsc is not implemented ++ if (rdtsc() == 0) ++ return; ++ + // Compute the frequency of the fine-grained CPU timer: to do this, + // take parallel time readings using both rdtsc and gettimeofday. + // After 10ms have elapsed, take the ratio between these readings. diff --git a/patches/fix-init-system-detection.patch b/patches/fix-init-system-detection.patch new file mode 100644 index 000000000..2e250b3d5 --- /dev/null +++ b/patches/fix-init-system-detection.patch @@ -0,0 +1,144 @@ +Last-Update: 2017-05-11 +Bug-Ceph: http://tracker.ceph.com/issues/19884 +Author: Kefu Chai and Gaudenz Steinlin +Description: Replace static init system detection by runtime detection. Modified + version of the patch proposed by Kefu Chai upstream. + +--- a/src/ceph-detect-init/ceph_detect_init/debian/__init__.py ++++ b/src/ceph-detect-init/ceph_detect_init/debian/__init__.py +@@ -1,3 +1,6 @@ ++import os ++import subprocess ++ + distro = None + release = None + codename = None +@@ -8,14 +11,11 @@ + + Returns the name of a init system (upstart, sysvinit ...). + """ +- assert(distro and codename) +- if distro.lower() in ('ubuntu', 'linuxmint'): +- if codename >= 'vivid': +- return 'systemd' +- else: +- return 'upstart' +- if distro.lower() == 'debian': +- if codename in ('squeeze', 'wheezy'): +- return 'sysvinit' +- else: +- return 'systemd' ++ # yes, this is heuristics ++ if os.path.isdir('/run/systemd/system'): ++ return 'systemd' ++ if not subprocess.call('. /lib/lsb/init-functions ; init_is_upstart', ++ shell=True): ++ return 'upstart' ++ elif os.path.isfile('/sbin/init') and not os.path.islink('/sbin/init'): ++ return 'sysvinit' +--- a/src/ceph-detect-init/tests/test_all.py ++++ b/src/ceph-detect-init/tests/test_all.py +@@ -44,30 +44,35 @@ + self.assertEqual('sysvinit', centos.choose_init()) + + def test_debian(self): +- with mock.patch.multiple('ceph_detect_init.debian', +- distro='debian', +- codename='wheezy'): +- self.assertEqual('sysvinit', debian.choose_init()) +- with mock.patch.multiple('ceph_detect_init.debian', +- distro='debian', +- codename='squeeze'): +- self.assertEqual('sysvinit', debian.choose_init()) +- with mock.patch.multiple('ceph_detect_init.debian', +- distro='debian', +- codename='jessie'): ++ with mock.patch.multiple('os.path', ++ isdir=lambda x: x == '/run/systemd/system'): + self.assertEqual('systemd', debian.choose_init()) +- with mock.patch.multiple('ceph_detect_init.debian', +- distro='ubuntu', +- codename='trusty'): +- self.assertEqual('upstart', debian.choose_init()) +- with mock.patch.multiple('ceph_detect_init.debian', +- distro='ubuntu', +- codename='vivid'): +- self.assertEqual('systemd', debian.choose_init()) +- with mock.patch.multiple('ceph_detect_init.debian', +- distro='not-debian', +- codename='andy'): +- self.assertIs(None, debian.choose_init()) ++ ++ def mock_call_with_upstart(*args, **kwargs): ++ if args[0] == '. /lib/lsb/init-functions ; init_is_upstart' and \ ++ kwargs['shell']: ++ return 0 ++ else: ++ return 1 ++ with mock.patch.multiple('os.path', ++ isdir=lambda x: False, ++ isfile=lambda x: False): ++ with mock.patch.multiple('subprocess', ++ call=mock_call_with_upstart): ++ self.assertEqual('upstart', debian.choose_init()) ++ with mock.patch.multiple('os.path', ++ isdir=lambda x: False, ++ isfile=lambda x: x == '/sbin/init', ++ islink=lambda x: x != '/sbin/init'): ++ with mock.patch.multiple('subprocess', ++ call=lambda *args, **kwargs: 1): ++ self.assertEqual('sysvinit', debian.choose_init()) ++ with mock.patch.multiple('os.path', ++ isdir=lambda x: False, ++ isfile=lambda x: False): ++ with mock.patch.multiple('subprocess', ++ call=lambda *args, **kwargs: 1): ++ self.assertIs(None, debian.choose_init()) + + def test_fedora(self): + with mock.patch('ceph_detect_init.fedora.release', +@@ -115,7 +120,6 @@ + self.assertEqual(False, distro.is_el) + self.assertEqual('6.0', distro.release) + self.assertEqual('squeeze', distro.codename) +- self.assertEqual('sysvinit', distro.init) + + def test_get_distro(self): + g = ceph_detect_init._get_distro +--- a/src/ceph-detect-init/ceph_detect_init/__init__.py ++++ b/src/ceph-detect-init/ceph_detect_init/__init__.py +@@ -25,7 +25,7 @@ + + def get(use_rhceph=False): + distro_name, release, codename = platform_information() +- if not codename or not _get_distro(distro_name): ++ if not _get_distro(distro_name): + raise exc.UnsupportedPlatform( + distro=distro_name, + codename=codename, +@@ -83,25 +83,6 @@ + logging.debug('platform_information: linux_distribution = ' + + str(platform.linux_distribution())) + distro, release, codename = platform.linux_distribution() +- # this could be an empty string in Debian +- if not codename and 'debian' in distro.lower(): +- debian_codenames = { +- '8': 'jessie', +- '7': 'wheezy', +- '6': 'squeeze', +- } +- major_version = release.split('.')[0] +- codename = debian_codenames.get(major_version, '') +- +- # In order to support newer jessie/sid or wheezy/sid strings +- # we test this if sid is buried in the minor, we should use +- # sid anyway. +- if not codename and '/' in release: +- major, minor = release.split('/') +- if minor == 'sid': +- codename = minor +- else: +- codename = major + + return ( + str(distro).rstrip(), diff --git a/patches/mips_mipsel_libatomic.patch b/patches/mips_mipsel_libatomic.patch new file mode 100644 index 000000000..53e51f968 --- /dev/null +++ b/patches/mips_mipsel_libatomic.patch @@ -0,0 +1,13 @@ +--- a/src/rocksdb/build_tools/build_detect_platform ++++ b/src/rocksdb/build_tools/build_detect_platform +@@ -362,6 +362,10 @@ + COMMON_FLAGS="$COMMON_FLAGS -march=native " + fi + ++if [ "$TARGET_ARCHITECTURE" = "mips" ] ; then ++ PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -latomic" ++fi ++ + PLATFORM_CCFLAGS="$PLATFORM_CCFLAGS $COMMON_FLAGS" + PLATFORM_CXXFLAGS="$PLATFORM_CXXFLAGS $COMMON_FLAGS" + diff --git a/patches/osd-limit-omap-data-in-push-op.patch b/patches/osd-limit-omap-data-in-push-op.patch new file mode 100644 index 000000000..918f15825 --- /dev/null +++ b/patches/osd-limit-omap-data-in-push-op.patch @@ -0,0 +1,40 @@ +From 56064c5cb645254574dbad00e6c16b783115bb93 Mon Sep 17 00:00:00 2001 +From: Wanlong Gao +Date: Thu, 23 Jun 2016 20:04:25 +0800 +Subject: [PATCH] osd: limit omap data in push op + +We already have the config osd_recovery_max_chunk to limit the total +size of omap entries and omap data. But we need an individual config +to limit the number of omap entries independently. We call this config +osd_recovery_max_omap_entries_per_chunk here with the default number +of 64000. + +Signed-off-by: Wanlong Gao +--- + src/common/config_opts.h | 1 + + src/osd/ReplicatedBackend.cc | 4 +++- + 2 files changed, 4 insertions(+), 1 deletion(-) + +--- a/src/common/config_opts.h ++++ b/src/common/config_opts.h +@@ -748,6 +748,7 @@ OPTION(osd_recovery_delay_start, OPT_FLO + OPTION(osd_recovery_max_active, OPT_INT, 3) + OPTION(osd_recovery_max_single_start, OPT_INT, 1) + OPTION(osd_recovery_max_chunk, OPT_U64, 8<<20) // max size of push chunk ++OPTION(osd_recovery_max_omap_entries_per_chunk, OPT_U64, 64000) // max number of omap entries per chunk; 0 to disable limit + OPTION(osd_copyfrom_max_chunk, OPT_U64, 8<<20) // max size of a COPYFROM chunk + OPTION(osd_push_per_object_cost, OPT_U64, 1000) // push cost per object + OPTION(osd_max_push_cost, OPT_U64, 8<<20) // max size of push message +--- a/src/osd/ReplicatedBackend.cc ++++ b/src/osd/ReplicatedBackend.cc +@@ -1985,7 +1985,9 @@ int ReplicatedBackend::build_push_op(con + iter->valid(); + iter->next(false)) { + if (!out_op->omap_entries.empty() && +- available <= (iter->key().size() + iter->value().length())) ++ ((cct->_conf->osd_recovery_max_omap_entries_per_chunk > 0 && ++ out_op->omap_entries.size() >= cct->_conf->osd_recovery_max_omap_entries_per_chunk) || ++ available <= iter->key().size() + iter->value().length())) + break; + out_op->omap_entries.insert(make_pair(iter->key(), iter->value())); + diff --git a/patches/rbdmap3-lazyumount.patch b/patches/rbdmap3-lazyumount.patch new file mode 100644 index 000000000..f41598284 --- /dev/null +++ b/patches/rbdmap3-lazyumount.patch @@ -0,0 +1,51 @@ +Forwarded: yes +Author: Dmitry Smirnov +Description: rbdmap: lazy umount on shutdown and reboot (runlevel 0 and 6) + +Do lazy unmount in runlevel 0 and 6. This is necessary to avoid unclean +shutdown due to "umount" hangs on reboot. + +"rbdmap" fail to umount and unmap RBD device when some applications are +still using file system on RBD. If RBD device not released on +shutdown/reboot system deconfigures network interfaces, terminates +remaining processes then tries to umount remaining file systems where it +hangs forever in endless libceph attempt to reach MONs. This scenario was +observed when /home is located on RBD device (users start processes in +screen/tmux etc.). Even worse, `umount` stuck on RBD mount point so +remaining local file systems are never un-mounted making unclean shutdown +almost inevitable. + +Lazy umount is effective because it allows to release RBD device and +unmount file system when applications are terminated. + +Also before umount (if `fuser` utility is available) TERM signal will be +sent to all processes still using mount point so applications that haven't +been asked to terminate yet will have some time to finish before final cut. + +Signed-off-by: Dmitry Smirnov +--- + src/init-rbdmap | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +--- a/src/init-rbdmap ++++ b/src/init-rbdmap +@@ -104,7 +104,18 @@ do_unmap() { + MNT=$(findmnt --mtab --source ${DEV} --noheadings | awk '{print $1'}) + if [ -n "${MNT}" ]; then + log_action_cont_msg "un-mounting '${MNT}'" +- UMNT_RV=$(umount "${MNT}" 2>&1) ++ local ULAZY="" ++ local RUNLEVEL=$(runlevel | awk '{print $2}') ++ if [ $? -eq 0 ]; then ++ if [ "${RUNLEVEL}" -eq 0 ] \ ++ || [ "${RUNLEVEL}" -eq 6 ] ; then ++ ULAZY="-l" ++ if [ -x "$(which fuser)" ]; then ++ fuser -M -m "${MNT}" --kill -TERM ++ fi ++ fi ++ fi ++ UMNT_RV=$(umount ${ULAZY} "${MNT}" 2>&1) + fi + if mountpoint -q "${MNT}"; then + ## Un-mounting failed. diff --git a/patches/rgw_rados-creation_time.patch b/patches/rgw_rados-creation_time.patch new file mode 100644 index 000000000..c5e51fe41 --- /dev/null +++ b/patches/rgw_rados-creation_time.patch @@ -0,0 +1,32 @@ +From: weiqiaomiao +Subject: [PATCH] rgw: for the create_bucket api, if the input creation_time is + zero, we should set it to 'now" +Forwarded: yes +Origin: upstream, https://github.com/ceph/ceph/commit/16c1a7d03abc8042f92b9f62ae7e228d19f74b2e +Bug: http://tracker.ceph.com/issues/16597 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1587261 + +Fixes: http://tracker.ceph.com/issues/16597 + +Signed-off-by: weiqiaomiao +--- + src/rgw/rgw_rados.cc | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/src/rgw/rgw_rados.cc ++++ b/src/rgw/rgw_rados.cc +@@ -5153,10 +5153,11 @@ int RGWRados::create_bucket(RGWUserInfo& + info.num_shards = bucket_index_max_shards; + info.bucket_index_shard_hash_type = RGWBucketInfo::MOD; + info.requester_pays = false; +- if (real_clock::is_zero(creation_time)) +- creation_time = ceph::real_clock::now(cct); +- else ++ if (real_clock::is_zero(creation_time)) { ++ info.creation_time = ceph::real_clock::now(cct); ++ } else { + info.creation_time = creation_time; ++ } + ret = put_linked_bucket_info(info, exclusive, ceph::real_time(), pep_objv, &attrs, true); + if (ret == -EEXIST) { + /* we need to reread the info and return it, caller will have a use for it */ diff --git a/patches/sample.ceph.conf.patch b/patches/sample.ceph.conf.patch new file mode 100644 index 000000000..98ae78631 --- /dev/null +++ b/patches/sample.ceph.conf.patch @@ -0,0 +1,172 @@ +Last-Update: 2014-10-19 +Forwarded: no +Author: Dmitry Smirnov +Description: sample.ceph.conf updates: + + * corrected URLs. + * more options and descriptions. + +--- a/src/sample.ceph.conf ++++ b/src/sample.ceph.conf +@@ -31,7 +31,7 @@ + # ; Example: /var/run/ceph/$cluster-$name.asok + + [global] +-### http://ceph.com/docs/master/rados/configuration/general-config-ref/ ++### http://ceph.com/docs/giant/rados/configuration/general-config-ref/ + + ;fsid = {UUID} # use `uuidgen` to generate your own UUID + ;public network = 192.168.0.0/24 +@@ -51,8 +51,8 @@ + ;max open files = 131072 + + +-### http://ceph.com/docs/master/rados/operations/authentication +-### http://ceph.com/docs/master/rados/configuration/auth-config-ref/ ++### http://ceph.com/docs/giant/rados/operations/authentication ++### http://ceph.com/docs/giant/rados/configuration/auth-config-ref/ + + # If enabled, the Ceph Storage Cluster daemons (i.e., ceph-mon, ceph-osd, + # and ceph-mds) must authenticate with each other. +@@ -90,7 +90,7 @@ + ;keyring = /etc/ceph/$cluster.$name.keyring + + +-### http://ceph.com/docs/master/rados/configuration/pool-pg-config-ref/ ++### http://ceph.com/docs/giant/rados/configuration/pool-pg-config-ref/ + + + ## Replication level, number of data copies. +@@ -139,7 +139,7 @@ + ;osd crush chooseleaf type = 1 + + +-### http://ceph.com/docs/master/rados/troubleshooting/log-and-debug/ ++### http://ceph.com/docs/giant/rados/troubleshooting/log-and-debug/ + + # The location of the logging file for your cluster. + # Type: String +@@ -154,7 +154,7 @@ + ;log to syslog = true + + +-### http://ceph.com/docs/master/rados/configuration/ms-ref/ ++### http://ceph.com/docs/giant/rados/configuration/ms-ref/ + + # Enable if you want your daemons to bind to IPv6 address instead of + # IPv4 ones. (Not required if you specify a daemon or cluster IP.) +@@ -167,8 +167,8 @@ + ## You need at least one. You need at least three if you want to + ## tolerate any node failures. Always create an odd number. + [mon] +-### http://ceph.com/docs/master/rados/configuration/mon-config-ref/ +-### http://ceph.com/docs/master/rados/configuration/mon-osd-interaction/ ++### http://ceph.com/docs/giant/rados/configuration/mon-config-ref/ ++### http://ceph.com/docs/giant/rados/configuration/mon-osd-interaction/ + + # The IDs of initial monitors in a cluster during startup. + # If specified, Ceph requires an odd number of monitors to form an +@@ -216,7 +216,7 @@ + # (Default: 900) + ;mon osd report timeout = 300 + +-### http://ceph.com/docs/master/rados/troubleshooting/log-and-debug/ ++### http://ceph.com/docs/giant/rados/troubleshooting/log-and-debug/ + + # logging, for debugging monitor crashes, in order of + # their likelihood of being helpful :) +@@ -238,6 +238,10 @@ + ; host = gamma + ; mon addr = 192.168.0.12:6789 + ++ # The maximum number of simultaneous scrub operations for a Ceph OSD Daemon. ++ # Type: 32-bit Int ++ # (Default: 1) ++ ;osd max scrubs = 2 + + ################## + ## Metadata servers +@@ -245,7 +249,7 @@ + # experimental support for running multiple metadata servers. Do not run + # multiple metadata servers in production. + [mds] +-### http://ceph.com/docs/master/cephfs/mds-config-ref/ ++### http://ceph.com/docs/giant/cephfs/mds-config-ref/ + + # where the mds keeps it's secret encryption keys + ;keyring = /var/lib/ceph/mds/$name/keyring +@@ -277,7 +281,7 @@ + # You need at least one. Two or more if you want data to be replicated. + # Define as many as you like. + [osd] +-### http://ceph.com/docs/master/rados/configuration/osd-config-ref/ ++### http://ceph.com/docs/giant/rados/configuration/osd-config-ref/ + + # The path to the OSDs data. + # You must create the directory when deploying Ceph. +@@ -337,7 +341,7 @@ + # (Default: false) + ;osd check for log corruption = true + +-### http://ceph.com/docs/master/rados/configuration/journal-ref/ ++### http://ceph.com/docs/giant/rados/configuration/journal-ref/ + + # The size of the journal in megabytes. If this is 0, + # and the journal is a block device, the entire block device is used. +@@ -363,7 +367,7 @@ + ;debug filestore = 20 + ;debug journal = 20 + +-### http://ceph.com/docs/master/rados/configuration/filestore-config-ref/ ++### http://ceph.com/docs/giant/rados/configuration/filestore-config-ref/ + + # The maximum interval in seconds for synchronizing the filestore. + # Type: Double (optional) +@@ -376,12 +380,6 @@ + # (Default: true) + ;filestore btrfs snap = false + +- # Enables the filestore flusher. +- # Type: Boolean +- # Required: No +- # (Default: false) +- ;filestore flusher = true +- + # Defines the maximum number of in progress operations the file store + # accepts before blocking on queuing new operations. + # Type: Integer +@@ -391,7 +389,7 @@ + + ## Filestore and OSD settings can be tweak to achieve better performance + +-### http://ceph.com/docs/master/rados/configuration/filestore-config-ref/#misc ++### http://ceph.com/docs/giant/rados/configuration/filestore-config-ref/#misc + + # Min number of files in a subdir before merging into parent NOTE: A negative value means to disable subdir merging + # Type: Integer +@@ -424,6 +422,7 @@ + # (Default: true) + ;osd crush update on start = false + ++ + ;[osd.0] + ; host = delta + +@@ -441,7 +440,7 @@ + ## client settings + [client] + +-### http://ceph.com/docs/master/rbd/rbd-config-ref/ ++### http://ceph.com/docs/giant/rbd/rbd-config-ref/ + + # Enable caching for RADOS Block Device (RBD). + # Type: Boolean +@@ -497,7 +496,7 @@ + ## radosgw client settings + [client.radosgw.gateway] + +-### http://ceph.com/docs/master/radosgw/config-ref/ ++### http://ceph.com/docs/giant/radosgw/config-ref/ + + # Sets the location of the data files for Ceph Object Gateway. + # You must create the directory when deploying Ceph. diff --git a/patches/series b/patches/series new file mode 100644 index 000000000..c54047d9d --- /dev/null +++ b/patches/series @@ -0,0 +1,26 @@ +## Backported / Upstream +sleep-recover.patch + +## Security +cve-2016-9579_short_cors_request.patch + +## Debian +#rbdmap3-lazyumount.patch +arch.patch +sample.ceph.conf.patch +# Disabled until adopted upstream +# use_system_jerasure.patch +virtualenv-never-download.patch +# Testing patches +tests-disable.patch +# Use correct compiler flags on armel +softfp-armel.patch +mips_mipsel_libatomic.patch +fix-init-system-detection.patch + +## From Ubuntu +fix-cycles-arch.patch +skip-setup.py-makefiles.patch +disable-openssl-linking.patch +osd-limit-omap-data-in-push-op.patch +rgw_rados-creation_time.patch diff --git a/patches/skip-setup.py-makefiles.patch b/patches/skip-setup.py-makefiles.patch new file mode 100644 index 000000000..9e36e35ef --- /dev/null +++ b/patches/skip-setup.py-makefiles.patch @@ -0,0 +1,20 @@ +Description: Skip Makefile base install of python modules + ceph-disk and ceph-detect-init are python modules; the Makefile + based build uses tox and virtualenv, which we really don't want + to use in the package build process. + . + Skip this part of the build, and use d/rules to install. +Author: James Page +Forwarded: not-needed + +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -32,8 +32,6 @@ endif + include arch/Makefile.am + include auth/Makefile.am + include brag/Makefile.am +-include ceph-detect-init/Makefile.am +-include ceph-disk/Makefile.am + include crush/Makefile.am + include kv/Makefile.am + include mon/Makefile.am diff --git a/patches/sleep-recover.patch b/patches/sleep-recover.patch new file mode 100644 index 000000000..d7ee4100c --- /dev/null +++ b/patches/sleep-recover.patch @@ -0,0 +1,16 @@ +Last-Update: 2014-05-12 +Forwarded: not-needed +Bug-Ceph: http://tracker.ceph.com/issues/8291 +Author: Yan, Zheng +Description: fix fuse-client hang after wake-up from suspend. + +--- a/src/client/Client.cc ++++ b/src/client/Client.cc +@@ -12020,6 +12020,7 @@ void Client::ms_handle_remote_reset(Conn + case MetaSession::STATE_OPEN: + ldout(cct, 1) << "reset from mds we were open; mark session as stale" << dendl; + s->state = MetaSession::STATE_STALE; ++ _closed_mds_session(s); + break; + + case MetaSession::STATE_NEW: diff --git a/patches/softfp-armel.patch b/patches/softfp-armel.patch new file mode 100644 index 000000000..ff2fc4bb4 --- /dev/null +++ b/patches/softfp-armel.patch @@ -0,0 +1,12 @@ +--- a/m4/ax_arm.m4 ++++ b/m4/ax_arm.m4 +@@ -7,6 +7,9 @@ + AX_CHECK_COMPILE_FLAG(-mfpu=neon, ax_cv_support_neon_ext=yes, []) + if test x"$ax_cv_support_neon_ext" = x"yes"; then + ARM_NEON_FLAGS="-mfpu=neon -DARM_NEON" ++ if test x"$target_os" = x"linux-gnueabi"; then ++ ARM_NEON_FLAGS="$ARM_NEON_FLAGS -mfloat-abi=softfp" ++ fi + AC_SUBST(ARM_NEON_FLAGS) + ARM_FLAGS="$ARM_FLAGS $ARM_NEON_FLAGS" + AC_DEFINE(HAVE_NEON,,[Support NEON instructions]) diff --git a/patches/tests-disable.patch b/patches/tests-disable.patch new file mode 100644 index 000000000..0038b9654 --- /dev/null +++ b/patches/tests-disable.patch @@ -0,0 +1,54 @@ +Last-Update: 2014-10-31 +Forwarded: no +Author: Dmitry Smirnov +Description: disable tests that depend on network... + +--- a/src/test/Makefile.am ++++ b/src/test/Makefile.am +@@ -100,6 +100,7 @@ bin_DEBUGPROGRAMS += ceph_bench_log + + ## Unit tests + ++if WITH_CLUSTER_TESTS + check_SCRIPTS += \ + test/ceph_objectstore_tool.py \ + test/test-ceph-helpers.sh \ +@@ -133,6 +134,8 @@ check_SCRIPTS += \ + test/test_pidfile.sh \ + test/test_subman.sh + ++endif ++ + EXTRA_DIST += \ + $(srcdir)/test/python/brag-client/setup.py \ + $(srcdir)/test/python/brag-client/tox.ini \ +--- a/configure.ac ++++ b/configure.ac +@@ -1349,6 +1349,13 @@ + + AM_CONDITIONAL(WITH_BUILD_TESTS, test "$WITH_BUILD_TESTS" = "1") + ++AC_ARG_WITH([cluster-tests], ++ [AS_HELP_STRING([--with-cluster-tests], [enables cluster tests])], ++ [], ++ [with_cluster_tests=no] ++) ++AM_CONDITIONAL(WITH_CLUSTER_TESTS, [ test "$with_cluster_tests" = "yes" ]) ++ + AM_PATH_PYTHON([2.4], + [], [AC_MSG_FAILURE([Failed to find Python 2.4 or newer])]) + +--- a/src/test/erasure-code/Makefile.am ++++ b/src/test/erasure-code/Makefile.am +@@ -1,9 +1,11 @@ + if ENABLE_SERVER + if WITH_OSD + ++if WITH_CLUSTER_TESTS + check_SCRIPTS += \ + test/erasure-code/test-erasure-code.sh \ + test/erasure-code/test-erasure-eio.sh ++endif + + noinst_HEADERS += \ + test/erasure-code/ceph_erasure_code_benchmark.h diff --git a/patches/use_system_jerasure.patch b/patches/use_system_jerasure.patch new file mode 100644 index 000000000..7c9858c9c --- /dev/null +++ b/patches/use_system_jerasure.patch @@ -0,0 +1,182 @@ +Last-Update: 2014-12-09 +Forwarded: not-needed +Author: Dmitry Smirnov +Description: use system "libjerasure" instead of bundled one. + +--- a/src/erasure-code/jerasure/Makefile.am ++++ b/src/erasure-code/jerasure/Makefile.am +@@ -1,40 +1,8 @@ + # jerasure plugin + noinst_HEADERS += \ +- erasure-code/jerasure/gf-complete/include/gf_complete.h \ +- erasure-code/jerasure/gf-complete/include/gf_general.h \ +- erasure-code/jerasure/gf-complete/include/gf_int.h \ +- erasure-code/jerasure/gf-complete/include/gf_method.h \ +- erasure-code/jerasure/gf-complete/include/gf_rand.h \ +- erasure-code/jerasure/gf-complete/include/gf_w16.h \ +- erasure-code/jerasure/gf-complete/include/gf_w32.h \ +- erasure-code/jerasure/gf-complete/include/gf_w4.h \ +- erasure-code/jerasure/gf-complete/include/gf_w64.h \ +- erasure-code/jerasure/gf-complete/include/gf_w8.h \ +- erasure-code/jerasure/jerasure/include/cauchy.h \ +- erasure-code/jerasure/jerasure/include/galois.h \ +- erasure-code/jerasure/jerasure/include/jerasure.h \ +- erasure-code/jerasure/jerasure/include/liberation.h \ +- erasure-code/jerasure/jerasure/include/reed_sol.h \ + erasure-code/jerasure/ErasureCodeJerasure.h + + jerasure_sources = \ +- erasure-code/ErasureCode.cc \ +- erasure-code/jerasure/jerasure/src/cauchy.c \ +- erasure-code/jerasure/jerasure/src/galois.c \ +- erasure-code/jerasure/jerasure/src/jerasure.c \ +- erasure-code/jerasure/jerasure/src/liberation.c \ +- erasure-code/jerasure/jerasure/src/reed_sol.c \ +- erasure-code/jerasure/gf-complete/src/gf_wgen.c \ +- erasure-code/jerasure/gf-complete/src/gf_method.c \ +- erasure-code/jerasure/gf-complete/src/gf_w16.c \ +- erasure-code/jerasure/gf-complete/src/gf.c \ +- erasure-code/jerasure/gf-complete/src/gf_w32.c \ +- erasure-code/jerasure/gf-complete/src/gf_w64.c \ +- erasure-code/jerasure/gf-complete/src/gf_w128.c \ +- erasure-code/jerasure/gf-complete/src/gf_general.c \ +- erasure-code/jerasure/gf-complete/src/gf_w4.c \ +- erasure-code/jerasure/gf-complete/src/gf_rand.c \ +- erasure-code/jerasure/gf-complete/src/gf_w8.c \ + erasure-code/jerasure/ErasureCodePluginJerasure.cc \ + erasure-code/jerasure/ErasureCodeJerasure.cc + +@@ -42,13 +10,11 @@ erasure-code/jerasure/ErasureCodePluginJ + + libec_jerasure_generic_la_SOURCES = ${jerasure_sources} + libec_jerasure_generic_la_CFLAGS = ${AM_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ -I$(includedir)/jerasure + libec_jerasure_generic_la_CXXFLAGS= ${AM_CXXFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ -I$(includedir)/jerasure + libec_jerasure_generic_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +-libec_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared ++libec_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared -lJerasure + if LINUX + libec_jerasure_generic_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*' + endif +@@ -85,17 +51,15 @@ libec_jerasure_sse3_la_CFLAGS = ${AM_CFL + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ + ${INTEL_SSSE3_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ -I$(includedir)/jerasure + libec_jerasure_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${INTEL_SSE_FLAGS} \ + ${INTEL_SSE2_FLAGS} \ + ${INTEL_SSE3_FLAGS} \ + ${INTEL_SSSE3_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ -I$(includedir)/jerasure + libec_jerasure_sse3_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +-libec_jerasure_sse3_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared ++libec_jerasure_sse3_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared -lJerasure + if LINUX + libec_jerasure_sse3_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*' + endif +@@ -112,8 +76,7 @@ libec_jerasure_sse4_la_CFLAGS = ${AM_CFL + ${INTEL_SSSE3_FLAGS} \ + ${INTEL_SSE4_1_FLAGS} \ + ${INTEL_SSE4_2_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ -I$(includedir)/jerasure + libec_jerasure_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \ + ${INTEL_SSE_FLAGS} \ + ${INTEL_SSE2_FLAGS} \ +@@ -121,10 +84,9 @@ libec_jerasure_sse4_la_CXXFLAGS= ${AM_CX + ${INTEL_SSSE3_FLAGS} \ + ${INTEL_SSE4_1_FLAGS} \ + ${INTEL_SSE4_2_FLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include ++ -I$(includedir)/jerasure + libec_jerasure_sse4_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +-libec_jerasure_sse4_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared ++libec_jerasure_sse4_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared -lJerasure + if LINUX + libec_jerasure_sse4_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*' + endif +@@ -138,7 +100,7 @@ libec_jerasure_la_SOURCES = \ + libec_jerasure_la_CFLAGS = ${AM_CFLAGS} + libec_jerasure_la_CXXFLAGS= ${AM_CXXFLAGS} + libec_jerasure_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) +-libec_jerasure_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared ++libec_jerasure_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared -lJerasure + if LINUX + libec_jerasure_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*' + endif +--- a/src/erasure-code/shec/Makefile.am ++++ b/src/erasure-code/shec/Makefile.am +@@ -6,54 +6,24 @@ libec_shec_la_SOURCES = \ + erasure-code/shec/ErasureCodeShec.cc \ + erasure-code/shec/ErasureCodeShecTableCache.cc \ + erasure-code/shec/shec.cc \ +- erasure-code/shec/determinant.c \ +- erasure-code/jerasure/jerasure/src/cauchy.c \ +- erasure-code/jerasure/jerasure/src/galois.c \ +- erasure-code/jerasure/jerasure/src/jerasure.c \ +- erasure-code/jerasure/jerasure/src/liberation.c \ +- erasure-code/jerasure/jerasure/src/reed_sol.c \ +- erasure-code/jerasure/gf-complete/src/gf_wgen.c \ +- erasure-code/jerasure/gf-complete/src/gf_method.c \ +- erasure-code/jerasure/gf-complete/src/gf_w16.c \ +- erasure-code/jerasure/gf-complete/src/gf.c \ +- erasure-code/jerasure/gf-complete/src/gf_w32.c \ +- erasure-code/jerasure/gf-complete/src/gf_w64.c \ +- erasure-code/jerasure/gf-complete/src/gf_w128.c \ +- erasure-code/jerasure/gf-complete/src/gf_general.c \ +- erasure-code/jerasure/gf-complete/src/gf_w4.c \ +- erasure-code/jerasure/gf-complete/src/gf_rand.c \ +- erasure-code/jerasure/gf-complete/src/gf_w8.c ++ erasure-code/shec/determinant.c + noinst_HEADERS += \ + erasure-code/shec/ErasureCodeShec.h \ + erasure-code/shec/ErasureCodeShecTableCache.h \ +- erasure-code/shec/shec.h \ +- erasure-code/jerasure/jerasure/include/cauchy.h \ +- erasure-code/jerasure/jerasure/include/galois.h \ +- erasure-code/jerasure/jerasure/include/jerasure.h \ +- erasure-code/jerasure/jerasure/include/liberation.h \ +- erasure-code/jerasure/jerasure/include/reed_sol.h \ +- erasure-code/jerasure/gf-complete/include/gf_int.h \ +- erasure-code/jerasure/gf-complete/include/gf_complete.h \ +- erasure-code/jerasure/gf-complete/include/gf_rand.h \ +- erasure-code/jerasure/gf-complete/include/gf_method.h \ +- erasure-code/jerasure/gf-complete/include/gf_general.h ++ erasure-code/shec/shec.h + + erasure-code/shec/ErasureCodePluginShec.cc: ./ceph_ver.h + + libec_shec_la_CFLAGS = ${AM_CFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure \ +- -I$(srcdir)/erasure-code/shec ++ -I$(srcdir)/erasure-code/shec \ ++ -I$(includedir)/jerasure + libec_shec_la_CXXFLAGS= ${AM_CXXFLAGS} \ +- -I$(srcdir)/erasure-code/jerasure/jerasure/include \ +- -I$(srcdir)/erasure-code/jerasure/gf-complete/include \ +- -I$(srcdir)/erasure-code/jerasure \ +- -I$(srcdir)/erasure-code/shec ++ -I$(srcdir)/erasure-code/shec \ ++ -I$(includedir)/jerasure + libec_shec_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS) + #libec_shec_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS) + #libec_shec_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 -export-symbols-regex '.*__erasure_code_.*' +-libec_shec_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared ++libec_shec_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared -lJerasure + if LINUX + libec_shec_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*' + endif diff --git a/patches/virtualenv-never-download.patch b/patches/virtualenv-never-download.patch new file mode 100644 index 000000000..23f151f23 --- /dev/null +++ b/patches/virtualenv-never-download.patch @@ -0,0 +1,16 @@ +Last-Update: 2014-10-31 +Forwarded: no +Author: Bastian Blank +Description: Ask virtualenv to never download anything + +--- a/src/test/run-cli-tests ++++ b/src/test/run-cli-tests +@@ -30,7 +30,7 @@ if [ ! -e "$CRAM_BIN" ]; then + # patched cram to support that. See upstream ticket at + # https://bitbucket.org/brodie/cram/issue/9/allow-read-only-directories-for-t + # -- tv@inktank.com +- virtualenv "$VENV" && $VENV/bin/pip --log "$VENV"/log.txt install "$SRCDIR/downloads/cram-0.5.0ceph.2011-01-14.tar.gz" ++ virtualenv --system-site-packages "$VENV" && $VENV/bin/pip --log "$VENV"/log.txt install "$SRCDIR/downloads/cram-0.5.0ceph.2011-01-14.tar.gz" + fi + + SRCDIR_ABS="$(readlink -f "$SRCDIR")" diff --git a/python-cephfs.install b/python-cephfs.install new file mode 100644 index 000000000..7e81a4b4b --- /dev/null +++ b/python-cephfs.install @@ -0,0 +1,3 @@ +usr/lib/python*/dist-packages/ceph_volume_client.py +usr/lib/python*/dist-packages/cephfs.so +usr/lib/python*/dist-packages/cephfs-*.egg-info diff --git a/python-rados.install b/python-rados.install new file mode 100644 index 000000000..a5c5daed7 --- /dev/null +++ b/python-rados.install @@ -0,0 +1,2 @@ +usr/lib/python*/dist-packages/rados.so +usr/lib/python*/dist-packages/rados-*.egg-info diff --git a/python-rbd.install b/python-rbd.install new file mode 100644 index 000000000..25584fbc6 --- /dev/null +++ b/python-rbd.install @@ -0,0 +1,2 @@ +usr/lib/python*/dist-packages/rbd-*.egg-info +usr/lib/python*/dist-packages/rbd.so diff --git a/radosgw.dirs b/radosgw.dirs new file mode 100644 index 000000000..a2f184912 --- /dev/null +++ b/radosgw.dirs @@ -0,0 +1 @@ +var/lib/ceph/radosgw diff --git a/radosgw.init b/radosgw.init new file mode 120000 index 000000000..0bd5f06d8 --- /dev/null +++ b/radosgw.init @@ -0,0 +1 @@ +../src/init-radosgw \ No newline at end of file diff --git a/radosgw.install b/radosgw.install new file mode 100644 index 000000000..5179cef63 --- /dev/null +++ b/radosgw.install @@ -0,0 +1,7 @@ +etc/bash_completion.d/radosgw-admin /usr/share/bash-completion/completions/ +usr/bin/radosgw +usr/bin/radosgw-admin +usr/bin/radosgw-object-expirer +usr/bin/radosgw-token +usr/share/man/man8/radosgw-admin.8 +usr/share/man/man8/radosgw.8 diff --git a/radosgw.maintscript b/radosgw.maintscript new file mode 100644 index 000000000..fd1bbd275 --- /dev/null +++ b/radosgw.maintscript @@ -0,0 +1,4 @@ +rm_conffile /etc/init/radosgw-all-starter.conf 10.2.5-1~ +rm_conffile /etc/init/radosgw-instance.conf 10.2.5-1~ +rm_conffile /etc/init/radosgw-all.conf 10.2.5-1~ +rm_conffile /etc/bash_completion.d/radosgw-admin 10.2.5-1~ diff --git a/radosgw.postinst b/radosgw.postinst new file mode 100644 index 000000000..2e88a0750 --- /dev/null +++ b/radosgw.postinst @@ -0,0 +1,60 @@ +#!/bin/sh +# vim: set noet ts=8: +# postinst script for radosgw +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# +# postinst configure +# old-postinst abort-upgrade +# conflictor's-postinst abort-remove in-favour +# postinst abort-remove +# deconfigured's-postinst abort-deconfigure in-favour [ ] +# +# The current action is to simply remove the mistakenly-added +# /etc/init/ceph.conf file; this could be done in any of these cases, +# although technically it will leave the system in a different state +# than the original install that included that file. So instead we +# only remove on "configure", since that's the only time we know we're +# successful in installing a newer package than the erroneous version. + +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +[ -f "/etc/default/ceph" ] && . /etc/default/ceph +[ -z "$SERVER_USER" ] && SERVER_USER=ceph +[ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph + +case "$1" in + configure) + if ! dpkg-statoverride --list /var/lib/ceph/radosgw >/dev/null; then + chown $SERVER_USER:$SERVER_GROUP /var/lib/ceph/radosgw + fi + ;; + abort-upgrade|abort-remove|abort-deconfigure) + : + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then + dpkg-maintscript-helper mv_conffile \ + /etc/init/radosgw.conf /etc/init/radosgw-instance.conf \ + 0.72.1-3~ radosgw -- "$@" +fi + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/radosgw.postrm b/radosgw.postrm new file mode 100644 index 000000000..3083c1471 --- /dev/null +++ b/radosgw.postrm @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then + dpkg-maintscript-helper mv_conffile \ + /etc/init/radosgw.conf /etc/init/radosgw-instance.conf \ + 0.72.1-3~ radosgw -- "$@" +fi + +#DEBHELPER# + +exit 0 diff --git a/radosgw.preinst b/radosgw.preinst new file mode 100644 index 000000000..3083c1471 --- /dev/null +++ b/radosgw.preinst @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then + dpkg-maintscript-helper mv_conffile \ + /etc/init/radosgw.conf /etc/init/radosgw-instance.conf \ + 0.72.1-3~ radosgw -- "$@" +fi + +#DEBHELPER# + +exit 0 diff --git a/radosgw.prerm b/radosgw.prerm new file mode 100644 index 000000000..0288ab77b --- /dev/null +++ b/radosgw.prerm @@ -0,0 +1,22 @@ +#!/bin/sh +# vim: set noet ts=8: + +set -e + +case "$1" in + remove) + invoke-rc.d radosgw stop || { + RESULT=$? + if [ $RESULT != 100 ]; then + exit $RESULT + fi + } + ;; + + *) + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/rbd-fuse.install b/rbd-fuse.install new file mode 100644 index 000000000..7b6b96fe7 --- /dev/null +++ b/rbd-fuse.install @@ -0,0 +1,2 @@ +usr/bin/rbd-fuse +usr/share/man/man8/rbd-fuse.8 diff --git a/rbd-mirror.install b/rbd-mirror.install new file mode 100644 index 000000000..80f821036 --- /dev/null +++ b/rbd-mirror.install @@ -0,0 +1,2 @@ +usr/bin/rbd-mirror +usr/share/man/man8/rbd-mirror.8 diff --git a/rbd-nbd.install b/rbd-nbd.install new file mode 100644 index 000000000..385c4501f --- /dev/null +++ b/rbd-nbd.install @@ -0,0 +1,2 @@ +usr/bin/rbd-nbd +usr/share/man/man8/rbd-nbd.8 diff --git a/rest-bench.install b/rest-bench.install new file mode 100644 index 000000000..8535f20d5 --- /dev/null +++ b/rest-bench.install @@ -0,0 +1 @@ +usr/bin/rest-bench diff --git a/rules b/rules new file mode 100755 index 000000000..7e1687ce1 --- /dev/null +++ b/rules @@ -0,0 +1,180 @@ +#!/usr/bin/make -f +# -*- makefile -*- +#export DH_VERBOSE=1 + +# Reduce size of debug symbols to fix FTBFS due to the +# 2GB/3GB address space limits on 32bit +DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) +ifeq (32,$(DEB_HOST_ARCH_BITS)) + export DEB_CFLAGS_MAINT_APPEND = -g1 + export DEB_CXXFLAGS_MAINT_APPEND = -g1 +endif + +# Limit parallel builds to 2 for now + +# minimise needless linking and link to libatomic +# The last is needed because long long atomic operations are not directly +# supported by all processor architectures +export DEB_LDFLAGS_MAINT_APPEND= -Wl,--as-needed -latomic + +# Enable hardening +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) + +export JAVA_HOME=/usr/lib/jvm/default-java +## Set JAVAC to prevent FTBFS due to incorrect use of 'gcj' if found (see "m4/ac_prog_javac.m4"). +export JAVAC=javac + +extraopts += --disable-silent-rules +extraopts += --with-ocf --with-nss +extraopts += --with-debug +extraopts += --enable-cephfs-java +extraopts += --with-babeltrace +## do not build with lttng just yet, see #765842. +extraopts += --without-lttng + +# rocksdb is not packaged by anyone. build it if we can. +extraopts += --with-librocksdb-static=check + +ifeq ($(DEB_HOST_ARCH), armel) + # armel supports ARMv4t or above instructions sets. + # libatomic-ops is only usable with Ceph for ARMv6 or above. + extraopts += --without-libatomic-ops +endif + +# Only selected architectures support gperftools +gperftools_archs = i386 amd64 powerpc armhf ppc64el arm64 +ifneq (,$(filter $(DEB_HOST_ARCH), $(gperftools_archs))) + extraopts += --with-tcmalloc +else + extraopts += --without-tcmalloc +endif + +# Setup max parallel builds based on architecture +ifeq ($(DEB_HOST_ARCH), arm64) + maxparallel=1 +else ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + maxparallel=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +else + maxparallel=2 +endif + +# Use system provided libs3 +extraopts += --with-system-libs3 + +# Set _FILE_OFFSET_BITS=64 globally. While this is set by the build system +# through an automake variable, configure does not know about this and thus +# fails when testing xfs.h on 32bit systems. +export DEB_CPPFLAGS_MAINT_APPEND=-D_FILE_OFFSET_BITS=64 + +# Build fix for mips/mipsel +# The first two variables work around a compiler bug which leads to virtual +# memory exhaustion while compiling the testsuite. See Debian bug #849657 and +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79030 +ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel)) + export DEB_CFLAGS_MAINT_APPEND= --param ggc-min-expand=5 + export DEB_CXXFLAGS_MAINT_APPEND= --param ggc-min-expand=5 +endif + +%: + dh $@ --with javahelper,python2,autoreconf,systemd --parallel --max-parallel=$(maxparallel) + +override_dh_autoreconf: + dh_autoreconf --as-needed + +override_dh_auto_configure: + dh_auto_configure -- $(extraopts) + +override_dh_auto_install: + # At least on armel installation of the Python modules fails in weird ways + # when run in parallel. As this is probably not specific to armel but just only + # triggered there because the architecture is too slow, run without parallelism + # everywhere. + dh_auto_install --no-parallel + +override_dh_install: + # remove .la files, we don't want to install these in Debian, + # see Policy 10.2 + find debian/tmp -name '*.la' -delete + # NOTE: manually install python modules to avoid virtualenvs + # during the package build process. + set -e; for comp in ceph-detect-init ceph-disk; do \ + (set -e; cd src/$$comp; python setup.py install --root=$(CURDIR)/debian/tmp \ + --install-script=/usr/sbin --install-layout=deb); \ + done + # NOTE: ensure that any versioned erasure coding test code is dropped + # from the package install - package ships unversioned modules. + rm -f $(CURDIR)/debian/tmp/usr/lib/*/ceph/erasure-code/libec_*.so.* + find $(CURDIR)/debian/tmp/usr/lib/*/ceph/erasure-code -type l -delete || : + install -D -m 644 src/etc-rbdmap $(CURDIR)/debian/tmp/etc/ceph/rbdmap + dh_install --list-missing + +override_dh_installchangelogs: + dh_installchangelogs ChangeLog + +override_dh_installinit: + dh_installinit --no-start + dh_installinit -pceph-common --no-start --name=rbdmap + # install the systemd stuff manually since we have funny service names + # and need to update the paths in all of the files post install + # systemd:ceph-common + install -d -m0755 debian/ceph-common/lib/systemd/system + install -m0644 systemd/ceph.target debian/ceph-common/lib/systemd/system + install -d -m0755 debian/ceph-common/usr/lib/tmpfiles.d + install -m 0644 -D systemd/ceph.tmpfiles.d debian/ceph-common/usr/lib/tmpfiles.d/ceph.conf + # systemd:ceph-base + install -d -m0755 debian/ceph-base/lib/systemd/system + install -m0644 systemd/ceph-create-keys@.service debian/ceph-base/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-base/lib/systemd/system/ceph-create-keys@.service + # systemd:ceph-mon + install -d -m0755 debian/ceph-mon/lib/systemd/system + install -m0644 systemd/ceph-mon@.service debian/ceph-mon/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mon/lib/systemd/system/ceph-mon@.service + install -m0644 systemd/ceph-mon.target debian/ceph-mon/lib/systemd/system + # systemd:ceph-osd + install -d -m0755 debian/ceph-osd/lib/systemd/system + install -m0644 systemd/ceph-osd@.service debian/ceph-osd/lib/systemd/system + install -m0644 systemd/ceph-disk@.service debian/ceph-osd/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-osd@.service + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-disk@.service + install -m0644 systemd/ceph-osd.target debian/ceph-osd/lib/systemd/system + # systemd:ceph-mds + install -d -m0755 debian/ceph-mds/lib/systemd/system + install -m0644 systemd/ceph-mds@.service debian/ceph-mds/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mds/lib/systemd/system/ceph-mds@.service + install -m0644 systemd/ceph-mds.target debian/ceph-mds/lib/systemd/system + # systemd:radosgw + install -d -m0755 debian/radosgw/lib/systemd/system + install -m0644 systemd/ceph-radosgw@.service debian/radosgw/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/radosgw/lib/systemd/system/ceph-radosgw@.service + install -m0644 systemd/ceph-radosgw.target debian/radosgw/lib/systemd/system + # disable SysV init file for systemd + ln -s /dev/null debian/radosgw/lib/systemd/system/radosgw.service + # systemd:rbd-mirror + install -d -m0755 debian/rbd-mirror/lib/systemd/system + install -m0644 systemd/ceph-rbd-mirror@.service debian/rbd-mirror/lib/systemd/system + sed -i s./etc/sysconfig/./etc/default/.g debian/rbd-mirror/lib/systemd/system/ceph-rbd-mirror@.service + install -m0644 systemd/ceph-rbd-mirror.target debian/rbd-mirror/lib/systemd/system + +override_dh_systemd_enable: + ## Do not enable services to match `dh_installinit --no-start` + ## behaviour. + ## Users are expected to "systemctl enable" services once their + ## configuration is correct. + +override_dh_systemd_start: + ## Do not start services to match `dh_installinit --no-start` + ## behaviour. + ## Users are expected to "systemctl start" services once their + ## configuration is correct or after package updates. + +override_dh_makeshlibs: + # exclude jni libraries in libcephfs-jni to avoid pointless ldconfig + # calls in maintainer scripts; exclude private erasure-code plugins. + dh_makeshlibs -V -X/usr/lib/jni -X/usr/lib/$(DEB_HOST_MULTIARCH)/ceph/erasure-code + +override_dh_auto_test: + -dh_auto_test -v || cat src/test-suite.log + +.PHONY: override_dh_auto_configure override_dh_installinit override_dh_makeshlibs override_dh_auto_test diff --git a/source/format b/source/format new file mode 100644 index 000000000..163aaf8d8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/build-rados b/tests/build-rados new file mode 100755 index 000000000..c62999251 --- /dev/null +++ b/tests/build-rados @@ -0,0 +1,31 @@ +#!/bin/sh +# autopkgtest check: Build and run a program against librados2 to +# validate that headers are installed and libraries exists + +set -e + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < radostest.c +#include + +int +main(void) +{ + int err; + rados_t cluster; + + err = rados_create(&cluster, NULL); + if (err < 0) { + return (1); + } + return(0); +} +EOF + +gcc -o radostest radostest.c -lrados +echo "build: OK" +[ -x radostest ] +./radostest +echo "run: OK" diff --git a/tests/build-rbd b/tests/build-rbd new file mode 100755 index 000000000..5ad6f8823 --- /dev/null +++ b/tests/build-rbd @@ -0,0 +1,24 @@ +#!/bin/sh +# autopkgtest check: Build and run a program against librbd1 to +# validate that headers are installed and libraries exists + +set -e + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR +cat < rbdtest.c +#include + +int +main(void) +{ + return(0); +} +EOF + +gcc -o rbdtest rbdtest.c -lrbd +echo "build: OK" +[ -x rbdtest ] +./rbdtest +echo "run: OK" diff --git a/tests/ceph-client b/tests/ceph-client new file mode 100755 index 000000000..c693a5698 --- /dev/null +++ b/tests/ceph-client @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +CLIENTS=('ceph') + +for client in "${CLIENTS[@]}"; do + echo -n "Testing client $client: " + $client -v 2>&1 > /dev/null + echo "OK" +done diff --git a/tests/control b/tests/control new file mode 100644 index 000000000..9e6a190d5 --- /dev/null +++ b/tests/control @@ -0,0 +1,3 @@ +Tests: ceph-client build-rados build-rbd python-ceph +Depends: ceph-common, librbd-dev, librados-dev, python-ceph, build-essential +Restrictions: needs-root diff --git a/tests/python-ceph b/tests/python-ceph new file mode 100755 index 000000000..0af8f846c --- /dev/null +++ b/tests/python-ceph @@ -0,0 +1,7 @@ +#!/usr/bin/python + +# Test that rbd and rados can be imported OK +import rbd +import rados + +print "python-ceph: OK" diff --git a/watch b/watch new file mode 100644 index 000000000..3f9763e12 --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=3 +opts="uversionmangle=s/-/~/" \ + http://ceph.com/download/ceph-(\d.*)\.tar\.gz