* Add Raspbian to lists of "debian-like" distros.
+ Hopefully this will fix site-packages vs dist-packages
build failure in Raspbian.
[dgit import unpatched ceph 10.2.5-7.2+rpi1]
--- /dev/null
--- /dev/null
++## 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"
++
++-------- -------- --------
--- /dev/null
--- /dev/null
++var/lib/ceph/bootstrap-mds
++var/lib/ceph/bootstrap-osd
++var/lib/ceph/bootstrap-rgw
++var/lib/ceph/tmp
--- /dev/null
--- /dev/null
++## 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
--- /dev/null
--- /dev/null
++# False-positives:
++spelling-error-in-binary * tEH the
--- /dev/null
--- /dev/null
++#!/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 <most-recently-configured-version>
++# old-postinst abort-upgrade <new-version>
++# conflictor's-postinst abort-remove in-favour <package> <new-version>
++# postinst abort-remove
++# deconfigured's-postinst abort-deconfigure in-favour <failed-install-package> <version> [<removing conflicting-package> <version>]
++#
++# 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
--- /dev/null
--- /dev/null
++#!/bin/sh
++# postrm script for ceph
++#
++# see: dh_installdeb(1)
++
++set -e
++
++# summary of how this script can be called:
++# * <postrm> `remove'
++# * <postrm> `purge'
++# * <old-postrm> `upgrade' <new-version>
++# * <new-postrm> `failed-upgrade' <old-version>
++# * <new-postrm> `abort-install'
++# * <new-postrm> `abort-install' <old-version>
++# * <new-postrm> `abort-upgrade' <old-version>
++# * <disappearer's-postrm> `disappear' <overwriter>
++# <overwriter-version>
++# 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
++
++
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++etc/ceph
++var/lib/ceph
++var/log/ceph
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++# 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
--- /dev/null
--- /dev/null
++../src/logrotate.conf
--- /dev/null
--- /dev/null
++rm_conffile /etc/bash_completion.d/rados 10.2.5-1~
++rm_conffile /etc/bash_completion.d/rbd 10.2.5-1~
--- /dev/null
--- /dev/null
++debian/man/ceph-crush-location.1
--- /dev/null
--- /dev/null
++#!/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 <most-recently-configured-version>
++# old-postinst abort-upgrade <new-version>
++# conflictor's-postinst abort-remove in-favour <package> <new-version>
++# postinst abort-remove
++# deconfigured's-postinst abort-deconfigure in-favour <failed-install-package> <version> [<removing conflicting-package> <version>]
++#
++
++# 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
--- /dev/null
--- /dev/null
++#!/bin/sh
++# postrm script for ceph-common
++#
++# see: dh_installdeb(1)
++
++set -e
++
++# summary of how this script can be called:
++# * <postrm> `remove'
++# * <postrm> `purge'
++# * <old-postrm> `upgrade' <new-version>
++# * <new-postrm> `failed-upgrade' <old-version>
++# * <new-postrm> `abort-install'
++# * <new-postrm> `abort-install' <old-version>
++# * <new-postrm> `abort-upgrade' <old-version>
++# * <disappearer's-postrm> `disappear' <overwriter>
++# <overwriter-version>
++# 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
++
++
--- /dev/null
--- /dev/null
++../src/init-rbdmap
--- /dev/null
--- /dev/null
++usr/sbin/mount.ceph sbin
++usr/bin/cephfs
++usr/share/man/man8/cephfs.8
++usr/share/man/man8/mount.ceph.8
--- /dev/null
--- /dev/null
++usr/sbin/mount.fuse.ceph sbin
++usr/bin/ceph-fuse
++usr/share/man/man8/ceph-fuse.8
--- /dev/null
--- /dev/null
++# False-positives:
++spelling-error-in-binary * tEH the
--- /dev/null
--- /dev/null
++debian/man/mount.fuse.ceph.8
--- /dev/null
--- /dev/null
++/var/lib/ceph/mds
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++# False-positives:
++spelling-error-in-binary * tEH the
--- /dev/null
--- /dev/null
++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~
--- /dev/null
--- /dev/null
++#!/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 <most-recently-configured-version>
++# old-postinst abort-upgrade <new-version>
++# conflictor's-postinst abort-remove in-favour <package> <new-version>
++# postinst abort-remove
++# deconfigured's-postinst abort-deconfigure in-favour <failed-install-package> <version> [<removing conflicting-package> <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/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
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++var/lib/ceph/mon
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++# 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 <most-recently-configured-version>
++# old-postinst abort-upgrade <new-version>
++# conflictor's-postinst abort-remove in-favour <package> <new-version>
++# postinst abort-remove
++# deconfigured's-postinst abort-deconfigure in-favour <failed-install-package> <version> [<removing conflicting-package> <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|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
++
++
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++var/lib/ceph/osd
--- /dev/null
--- /dev/null
++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*
--- /dev/null
--- /dev/null
++# 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 <most-recently-configured-version>
++# old-postinst abort-upgrade <new-version>
++# conflictor's-postinst abort-remove in-favour <package> <new-version>
++# postinst abort-remove
++# deconfigured's-postinst abort-deconfigure in-favour <failed-install-package> <version> [<removing conflicting-package> <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|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
++
++
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++usr/lib/ocf/resource.d/ceph
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++debian/tmp/usr/share/java/libcephfs-test.jar
--- /dev/null
--- /dev/null
++# False-positives:
++spelling-error-in-binary * tEH the
++
++# Acknowledged:
++binary-without-manpage
--- /dev/null
--- /dev/null
++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 <gaudenz@debian.org> 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 <james.page@ubuntu.com> 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 <gaudenz@debian.org> Mon, 04 May 2015 22:49:48 +0200
--- /dev/null
--- /dev/null
++../src/init-ceph
--- /dev/null
--- /dev/null
++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~
--- /dev/null
--- /dev/null
++ceph (10.2.5-7.2+rpi1) buster-staging; urgency=medium
++
++ * Add Raspbian to lists of "debian-like" distros.
++ + Hopefully this will fix site-packages vs dist-packages
++ build failure in Raspbian.
++
++ -- Peter Michael Green <plugwash@raspbian.org> Sun, 30 Jul 2017 09:48:17 +0000
++
++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 <bunk@debian.org> 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 <anbe@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <james.page@ubuntu.com> 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 <gaudenz@debian.org> 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 <james.page@ubuntu.com> 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 <james.page@ubuntu.com> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <gaudenz@debian.org> 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 <gaudenz@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <jamespage@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <onlyjob@debian.org> 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 <james.page@ubuntu.com> 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 <onlyjob@debian.org> 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 <jamespage@debian.org> Sat, 08 Mar 2014 16:48:28 +0000
++
++ceph (0.72.2-1) unstable; urgency=medium
++
++ * New upstream release.
++
++ -- James Page <james.page@ubuntu.com> 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 <james.page@ubuntu.com> 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 <james.page@ubuntu.com> 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 <james.page@ubuntu.com> 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) <gcs@debian.org> 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) <gcs@debian.hu> 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) <gcs@debian.hu> Sun, 03 Jun 2012 13:37:52 +0200
++
++ceph (0.44.1-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> 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) <gcs@debian.hu> Sun, 26 Feb 2012 04:07:02 +0100
++
++ceph (0.41-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> 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) <gcs@debian.hu> 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) <gcs@debian.hu> Sun, 27 Nov 2011 21:40:52 +0100
++
++ceph (0.35-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> 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) <gcs@debian.hu> 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 <luk@debian.org> Sat, 28 May 2011 22:28:48 +0200
++
++ceph (0.27-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> 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) <gcs@debian.hu> 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) <gcs@debian.hu> Fri, 25 Feb 2011 15:17:26 +0100
++
++ceph (0.24.3-1) unstable; urgency=low
++
++ * New upstream bugfix release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> Sat, 19 Feb 2011 12:25:43 +0100
++
++ceph (0.24.2-1) unstable; urgency=low
++
++ * New upstream bugfix release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> Sat, 29 Jan 2011 15:25:14 +0100
++
++ceph (0.24.1-1) unstable; urgency=low
++
++ * New upstream bugfix release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> Tue, 11 Jan 2011 22:23:18 +0100
++
++ceph (0.24-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Laszlo Boszormenyi (GCS) <gcs@debian.hu> Wed, 01 Dec 2010 09:26:25 -0800
++
++ceph (0.23.1-1) experimental; urgency=low
++
++ * Initial release (Closes: #506040)
++
++ -- Sage Weil <sage@newdream.net> Sun, 21 Nov 2010 15:22:21 -0800
--- /dev/null
--- /dev/null
++src/rocksdb/util/build_version.cc
++src/pybind/*.pyc
++src/test/pybind/*.pyc
--- /dev/null
--- /dev/null
++9
--- /dev/null
--- /dev/null
++Source: ceph
++Section: admin
++Priority: optional
++Maintainer: Ceph Maintainers <ceph-maintainers@lists.ceph.com>
++Uploaders: James Page <jamespage@debian.org>,
++ Gaudenz Steinlin <gaudenz@debian.org>
++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.
--- /dev/null
--- /dev/null
++Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: ceph
++Upstream-Contact: Sage Weil <sage@newdream.net>
++Source: http://ceph.com/
++
++Files: *
++Copyright: 2004-2014 Sage Weil <sage@newdream.net>
++ 2004-2014 Inktank <info@inktank.com>
++ Inktank, Inc
++ Inktank Storage, Inc.
++ 2012-2014 Red Hat <contact@redhat.com>
++ 2013-2014 Cloudwatt <libre.licensing@cloudwatt.com>
++ 2013 CohortFS, LLC
++ 2004-2011 Dreamhost
++ 2013 eNovance SAS <licensing@enovance.com>
++ 2014 Adam Crume <adamcrume@gmail.com>
++ 2012 Florian Haas, hastexo
++ 2010 Greg Farnum <gregf@hq.newdream.net>
++ 2014 John Spray <john.spray@inktank.com
++ 2004-2012 New Dream Network
++ 2014 Sebastien Ponce <sebastien.ponce@cern.ch>
++ 2011 Stanislav Sedov <stas@FreeBSD.org>
++ 2013-2014 UnitedStack <haomai@unitedstack.com>
++ 2011 Wido den Hollander <wido@widodh.nl>
++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 <libre.licensing@cloudwatt.com>
++ 2014 Red Hat <contact@redhat.com>
++ 2013 eNovance SAS <licensing@enovance.com>
++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 <jrs@world.std.com>
++ 2013 Inktank <info@inktank.com>
++ 2013-2014 Cloudwatt <libre.licensing@cloudwatt.com>
++License: LGPL-2+
++
++Files: src/os/btrfs_ioctl.h
++ src/test/mon/PGMap.cc
++Copyright: 2007 Oracle. All rights reserved.
++ 2014 Inktank <info@inktank.com>
++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 <stevenj@alum.mit.edu>
++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 <http://www.gnu.org/licenses/>.
++ .
++ 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 <plank@cs.utk.edu>
++ 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 <bryan@ischo.com>
++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 <sage@newdream.net>
++ 2010 Canonical, Ltd.
++ 2011-2013 László Böszörményi (GCS) <gcs@debian.org>
++ 2013-2014 James Page <james.page@ubuntu.com>
++ 2014 Dmitry Smirnov <onlyjob@debian.org>
++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 <http://www.gnu.org/licenses/>.
++ .
++ 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.
--- /dev/null
--- /dev/null
++## /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"
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++##/etc/pm/sleep.d/25-ceph
++
++case $1 in
++suspend|hibernate)
++ service ceph stop
++;;
++resume|thaw)
++ service ceph start
++;;
++esac
--- /dev/null
--- /dev/null
++[DEFAULT]
++debian-branch = jewel
++pristine-tar = True
++
++[import-orig]
++filter = debian/*
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++#/lib/systemd/system-sleep/ceph
++
++case $1 in
++pre)
++ /bin/systemctl stop ceph
++;;
++post)
++ /bin/systemctl start ceph
++;;
++esac
--- /dev/null
--- /dev/null
++[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
--- /dev/null
--- /dev/null
++[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
--- /dev/null
--- /dev/null
++[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
--- /dev/null
--- /dev/null
++[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
--- /dev/null
--- /dev/null
++usr/include/cephfs/libcephfs.h
++usr/lib/*/libcephfs.a
++usr/lib/*/libcephfs.so
--- /dev/null
--- /dev/null
++debian/tmp/usr/share/java/libcephfs.jar
--- /dev/null
--- /dev/null
++usr/lib/*/libcephfs_jni.so* usr/lib/jni
--- /dev/null
--- /dev/null
++usr/lib/*/libcephfs.so.*
--- /dev/null
--- /dev/null
++# False-positives:
++spelling-error-in-binary * tEH the
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++usr/lib/*/librados.so.*
--- /dev/null
--- /dev/null
++# False-positives:
++spelling-error-in-binary * tEH the
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++#usr/lib/*/libradosstriper.la
++usr/include/radosstriper/libradosstriper.h
++usr/include/radosstriper/libradosstriper.hpp
++usr/lib/*/libradosstriper.a
++usr/lib/*/libradosstriper.so
--- /dev/null
--- /dev/null
++usr/lib/*/libradosstriper.so.*
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++usr/include/rbd/features.h
++usr/include/rbd/librbd.h
++usr/include/rbd/librbd.hpp
++usr/lib/*/librbd.a
++usr/lib/*/librbd.so
--- /dev/null
--- /dev/null
++usr/lib/*/librbd.so.*
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++usr/include/rados/librgw.h
++usr/include/rados/rgw_file.h
++usr/lib/*/librgw.a
++usr/lib/*/librgw.so
--- /dev/null
--- /dev/null
++usr/lib/*/librgw.so.*
--- /dev/null
--- /dev/null
++.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 <clustername>
++name of the cluster (see /etc/ceph/$cluster.conf)
++.TP 4
++\fB\-\-type\fR <osd|mds|client>
++daemon/entity type
++.TP 4
++\fB\-\-id\fR <id>
++id (osd number, mds name, client name)
++
++.SH SEE ALSO
++.TP
++\fBceph-conf\fP(8)
--- /dev/null
--- /dev/null
++.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)
--- /dev/null
--- /dev/null
++# 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
--- /dev/null
--- /dev/null
++Last-Update: 2014-10-19
++Forwarded: not-needed
++Author: Dmitry Smirnov <onlyjob@member.fsf.org>
++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([], [[
--- /dev/null
--- /dev/null
++Last-Update: 2014-12-25
++Bug-Ceph: http://tracker.ceph.com/issues/10036
++Author: Mykola Golub <mgolub@mirantis.com>
++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<int> touched;
++ set<int> roots;
--- /dev/null
--- /dev/null
++commit 67d4d9e64bc224e047cf333e673bb22cd6290789
++Author: LiuYang <yippeetry@gmail.com>
++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: <AllowedOrigin>*.verylongdomain.com</AllowedOrigin>).
++ 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 <yippeetry@gmail.com>
++
++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<string>& 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();
++ }
--- /dev/null
--- /dev/null
++Description: Add Raspbian to lists of "debian-like" distros.
++ Hopefully this will fix site-packages vs dist-packages
++ build failure in Raspbian.
++Author: Peter Michael Green <plugwash@raspbian.org>
++
++--- ceph-10.2.5.orig/install-deps.sh
+++++ ceph-10.2.5/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/qa/workunits/ceph-helpers-root.sh
+++++ ceph-10.2.5/qa/workunits/ceph-helpers-root.sh
++@@ -26,7 +26,7 @@ function install() {
++
++ function install_one() {
++ case $(lsb_release -si) in
++- Ubuntu|Debian|Devuan)
+++ Ubuntu|Debian|Devuan|Raspbian)
++ sudo apt-get install -y "$@"
++ ;;
++ CentOS|Fedora|RedHatEnterpriseServer)
++--- ceph-10.2.5.orig/src/Makefile.in
+++++ ceph-10.2.5/src/Makefile.in
++@@ -32721,7 +32721,7 @@ ceph-detect-init-clean:
++ ceph-detect-init-install-data:
++ cd $(srcdir)/ceph-detect-init ; \
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++@@ -32743,7 +32743,7 @@ ceph-disk-clean:
++ ceph-disk-install-data:
++ cd $(srcdir)/ceph-disk ; \
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++@@ -32835,7 +32835,7 @@ unittests:: $(check_PROGRAMS)
++
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@rados-pybind-install-exec: ${srcdir}/ceph_ver.h
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ if test "$(DESTDIR)" ; then \
++-@ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++@ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ options=--install-layout=deb ; \
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ else \
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ options=--prefix=/usr ; \
++@@ -32864,7 +32864,7 @@ unittests:: $(check_PROGRAMS)
++
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@rbd-pybind-install-exec: ${srcdir}/ceph_ver.h
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@ if test "$(DESTDIR)" ; then \
++-@ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++@ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@ options=--install-layout=deb ; \
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@ else \
++ @ENABLE_CLIENT_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@@WITH_RBD_TRUE@ options=--prefix=/usr ; \
++@@ -32893,7 +32893,7 @@ unittests:: $(check_PROGRAMS)
++
++ @ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@cephfs-pybind-install-exec: ${srcdir}/ceph_ver.h
++ @ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ if test "$(DESTDIR)" ; then \
++-@ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++@ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ @ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ options=--install-layout=deb ; \
++ @ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ else \
++ @ENABLE_CLIENT_TRUE@@WITH_CEPHFS_TRUE@@WITH_CYTHON_TRUE@@WITH_RADOS_TRUE@ options=--prefix=/usr ; \
++--- ceph-10.2.5.orig/src/ceph-detect-init/Makefile.am
+++++ ceph-10.2.5/src/ceph-detect-init/Makefile.am
++@@ -67,7 +67,7 @@ ceph-detect-init-clean:
++ ceph-detect-init-install-data:
++ cd $(srcdir)/ceph-detect-init ; \
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++--- ceph-10.2.5.orig/src/ceph-disk/Makefile.am
+++++ ceph-10.2.5/src/ceph-disk/Makefile.am
++@@ -43,7 +43,7 @@ ceph-disk-clean:
++ ceph-disk-install-data:
++ cd $(srcdir)/ceph-disk ; \
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++--- ceph-10.2.5.orig/src/pybind/cephfs/Makefile.am
+++++ ceph-10.2.5/src/pybind/cephfs/Makefile.am
++@@ -15,7 +15,7 @@ cephfs-pybind-clean: ${srcdir}/ceph_ver.
++
++ cephfs-pybind-install-exec: ${srcdir}/ceph_ver.h
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++--- ceph-10.2.5.orig/src/pybind/rados/Makefile.am
+++++ ceph-10.2.5/src/pybind/rados/Makefile.am
++@@ -15,7 +15,7 @@ rados-pybind-clean: ${srcdir}/ceph_ver.h
++
++ rados-pybind-install-exec: ${srcdir}/ceph_ver.h
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++--- ceph-10.2.5.orig/src/pybind/rbd/Makefile.am
+++++ ceph-10.2.5/src/pybind/rbd/Makefile.am
++@@ -15,7 +15,7 @@ rbd-pybind-clean: ${srcdir}/ceph_ver.h
++
++ rbd-pybind-install-exec: ${srcdir}/ceph_ver.h
++ if test "$(DESTDIR)" ; then \
++- if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+++ if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan\|Raspbian' ; then \
++ options=--install-layout=deb ; \
++ else \
++ options=--prefix=/usr ; \
++--- ceph-10.2.5.orig/src/test/centos-6/install-deps.sh
+++++ ceph-10.2.5/src/test/centos-6/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/src/test/centos-7/install-deps.sh
+++++ ceph-10.2.5/src/test/centos-7/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/src/test/debian-jessie/install-deps.sh
+++++ ceph-10.2.5/src/test/debian-jessie/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/src/test/fedora-21/install-deps.sh
+++++ ceph-10.2.5/src/test/fedora-21/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/src/test/opensuse-13.2/install-deps.sh
+++++ ceph-10.2.5/src/test/opensuse-13.2/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/src/test/ubuntu-12.04/install-deps.sh
+++++ ceph-10.2.5/src/test/ubuntu-12.04/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
++--- ceph-10.2.5.orig/src/test/ubuntu-14.04/install-deps.sh
+++++ ceph-10.2.5/src/test/ubuntu-14.04/install-deps.sh
++@@ -32,7 +32,7 @@ if type zypper > /dev/null 2>&1 ; then
++ fi
++
++ case $(lsb_release -si) in
++-Ubuntu|Debian|Devuan)
+++Ubuntu|Debian|Devuan|Raspbian)
++ $SUDO apt-get install -y dpkg-dev
++ if ! test -r debian/control ; then
++ echo debian/control is not a readable file
--- /dev/null
--- /dev/null
++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 <james.page@ubuntu.com>
++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
++
--- /dev/null
--- /dev/null
++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 <james.page@ubuntu.com>
++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.
--- /dev/null
--- /dev/null
++Last-Update: 2017-05-11
++Bug-Ceph: http://tracker.ceph.com/issues/19884
++Author: Kefu Chai <kchai@redhat.com> and Gaudenz Steinlin <gaudenz@debian.org>
++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(),
--- /dev/null
--- /dev/null
++--- 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"
++
--- /dev/null
--- /dev/null
++From 56064c5cb645254574dbad00e6c16b783115bb93 Mon Sep 17 00:00:00 2001
++From: Wanlong Gao <wanlong.gao@easystack.cn>
++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 <wanlong.gao@easystack.cn>
++---
++ 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()));
++
--- /dev/null
--- /dev/null
++Forwarded: yes
++Author: Dmitry Smirnov <onlyjob@member.fsf.org>
++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 <onlyjob@member.fsf.org>
++---
++ 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.
--- /dev/null
--- /dev/null
++From: weiqiaomiao <wei.qiaomiao@zte.com.cn>
++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 <wei.qiaomiao@zte.com.cn>
++---
++ 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 */
--- /dev/null
--- /dev/null
++Last-Update: 2014-10-19
++Forwarded: no
++Author: Dmitry Smirnov <onlyjob@member.fsf.org>
++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.
--- /dev/null
--- /dev/null
++## 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
++detect-raspbian.diff
--- /dev/null
--- /dev/null
++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 <james.page@ubuntu.com>
++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
--- /dev/null
--- /dev/null
++Last-Update: 2014-05-12
++Forwarded: not-needed
++Bug-Ceph: http://tracker.ceph.com/issues/8291
++Author: Yan, Zheng <ukernel@gmail.com>
++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:
--- /dev/null
--- /dev/null
++--- 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])
--- /dev/null
--- /dev/null
++Last-Update: 2014-10-31
++Forwarded: no
++Author: Dmitry Smirnov <onlyjob@member.fsf.org>
++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
--- /dev/null
--- /dev/null
++Last-Update: 2014-12-09
++Forwarded: not-needed
++Author: Dmitry Smirnov <onlyjob@member.fsf.org>
++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
--- /dev/null
--- /dev/null
++Last-Update: 2014-10-31
++Forwarded: no
++Author: Bastian Blank <waldi@debian.org>
++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")"
--- /dev/null
--- /dev/null
++usr/lib/python*/dist-packages/ceph_volume_client.py
++usr/lib/python*/dist-packages/cephfs.so
++usr/lib/python*/dist-packages/cephfs-*.egg-info
--- /dev/null
--- /dev/null
++usr/lib/python*/dist-packages/rados.so
++usr/lib/python*/dist-packages/rados-*.egg-info
--- /dev/null
--- /dev/null
++usr/lib/python*/dist-packages/rbd-*.egg-info
++usr/lib/python*/dist-packages/rbd.so
--- /dev/null
--- /dev/null
++var/lib/ceph/radosgw
--- /dev/null
--- /dev/null
++../src/init-radosgw
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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~
--- /dev/null
--- /dev/null
++#!/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 <most-recently-configured-version>
++# old-postinst abort-upgrade <new-version>
++# conflictor's-postinst abort-remove in-favour <package> <new-version>
++# postinst abort-remove
++# deconfigured's-postinst abort-deconfigure in-favour <failed-install-package> <version> [<removing conflicting-package> <version>]
++#
++# 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
++
++
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++usr/bin/rbd-fuse
++usr/share/man/man8/rbd-fuse.8
--- /dev/null
--- /dev/null
++usr/bin/rbd-mirror
++usr/share/man/man8/rbd-mirror.8
--- /dev/null
--- /dev/null
++usr/bin/rbd-nbd
++usr/share/man/man8/rbd-nbd.8
--- /dev/null
--- /dev/null
++usr/bin/rest-bench
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++#!/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 <<EOF > radostest.c
++#include <rados/librados.h>
++
++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"
--- /dev/null
--- /dev/null
++#!/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 <<EOF > rbdtest.c
++#include <rbd/librbd.h>
++
++int
++main(void)
++{
++ return(0);
++}
++EOF
++
++gcc -o rbdtest rbdtest.c -lrbd
++echo "build: OK"
++[ -x rbdtest ]
++./rbdtest
++echo "run: OK"
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++Tests: ceph-client build-rados build-rbd python-ceph
++Depends: ceph-common, librbd-dev, librados-dev, python-ceph, build-essential
++Restrictions: needs-root
--- /dev/null
--- /dev/null
++#!/usr/bin/python
++
++# Test that rbd and rados can be imported OK
++import rbd
++import rados
++
++print "python-ceph: OK"
--- /dev/null
--- /dev/null
++version=3
++opts="uversionmangle=s/-/~/" \
++ http://ceph.com/download/ceph-(\d.*)\.tar\.gz