plugins do have unresolved symbols. so exclude them from
dpkg-shlibdeps's scan list. this silences warnings like:
```
dpkg-shlibdeps: warning:
debian/ceph-base/usr/lib/ceph/erasure-code/libec_shec_generic.so.1.0.0
contains an unresolvable reference to symbol
_ZN4ceph6buffer3ptrC1EPNS0_3rawE: it's probably a plugin
```
Signed-off-by: Kefu Chai <kchai@redhat.com>
Prior to this change, ceph-base required the "parted" package, which
meant that any installation of ceph-osd, ceph-mon, or ceph-mds would
pull in the parted package.
Move the parted dependency to ceph-osd, since ceph-disk is the only
thing that uses parted.
The advantage of this change is that Mon and MDS systems will not need
to install the parted package.
Fixes: http://tracker.ceph.com/issues/16095
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
The PowerDNS integration code itself is not packaged at this point, so
remove the python-flask dependency from the radosgw package.
Maybe the PowerDNS integration bits could live in a separate
sub-package, eventually.
Fixes: http://tracker.ceph.com/issues/16032
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
* enable it using dh_systemd_enable
* start the target using dh_systemd_start
* move the dh_installinit, dh_systemd_enable, dh_systemd_start calls
down, so they can identify the service files if they care about them.
Fixes: http://tracker.ceph.com/issues/15573
Signed-off-by: Kefu Chai <kchai@redhat.com>
These were added to get /dev/disk/by-partuuid/ symlinks to work on
wheezy. They are no longer needed for the supported distros (el7+,
jessie+, trusty+), and they apparently break dm by opening devices they
should not.
Fixes: http://tracker.ceph.com/issues/15516
Signed-off-by: Sage Weil <sage@redhat.com>
These were lost by a typo in 0cbe3dea69604730bc7dba7bc3844294f4c9ac5a
Fixes: http://tracker.ceph.com/issues/15395
Signed-off-by: Sage Weil <sage@redhat.com>
When the package name changed from ceph to ceph-base, dh_installinit
started installing the init script into /etc/init.d/ceph-base. Fix
this by using --name ceph with dh_installinit, which requires
1) naming the .init file ceph-base.ceph.init, and
2) calling dh_installinit separately for each package
Fixes: http://tracker.ceph.com/issues/15329
Signed-off-by: Dan Mick <dan.mick@redhat.com>
Debian Jessie (at least) now has the virtualenv command in
package 'virtualenv', which depends on python3-virtualenv, and
that's how you get the virtualenv command there. Earlier
Debian-based releases still use python-virtualenv. Jessie's
virtualenv command still creates a python2 venv by default.
This will require a followup fix for install-deps.sh
to handle the | correctly, because currently it sends
the string to apt-get, which treats it as a regular expression
alternation of the two package names, so will try to install both.
The problem occurs when packages are installed without Recommended
packages (because jessie's virtualenv package currently Recommends
python-virtualenv); this is the case under pbuilder, and also using
'mk-build-deps --install', and I suspect under other automated
package-building tools.
Note that Build-Requires processing is not specified to
perform the searches in left-to-right order, so even this is
a tenuous workaround. We probably need distro-specific
debian/ directories.
Signed-off-by: Dan Mick <dan.mick@redhat.com>
The python scripts are not yet compatible with python3, yet it is the
default on jessie. Force the creation of the virtualenv to use python2.7
instead. The wheelhouse is already explicitly populated for both python3
and python2.7 by install-deps.sh, regardless of the default interpreter.
Signed-off-by: Loic Dachary <loic@dachary.org>
First, make the Debian package description mention that RGW aims to
implement the Swift API.
Second, replace the RPM package description with the Debian one, both for
consistency and because the Debian one is better.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The CephFS repair tools are generally useful to run on any node, not
just the MDS nodes themselves.
Move the utilities from the ceph-mds package to the ceph-common package.
Fixes: #15145
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Attempts to install jewel ceph-common, ceph-mon, ceph-osd, and ceph-base
package over infernalis ceph package fail due to files existing in both.
See comment #4 in the tracker issue for a deeper analysis.
http://tracker.ceph.com/issues/15047Fixes: #15047
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Based on feedback from upstream RGW, introduce a new json-format
token structure representing credentials for pass-through authentication
(e.g., LDAP without Keystone's digest authentication).
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
When doing a 'make check', 'qa/workunits/ceph-helpers.sh' does expect the 'btrfs'
command to be available. If not, that make many tests failing.
Signed-off-by: Erwan Velu <erwan@redhat.com>
Prior to this change, users could possibly install some ceph
sub-packages with differing versions. Make each sub-package explicitly
depend on a particular version of its dependencies.
I've purposly excluded ceph-test's dependencies for now (see
http://tracker.ceph.com/issues/10989 for background.)
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
The lsb_release executable is being run in multiple places, not least in
src/common/util.cc, which calls it via shell in the collect_sys_info() code
path.
This patch addresses this issue on SUSE- and Debian-derivatives, as well
as reinstating the dependency for RHEL/Fedora after it was dropped in
1560057226.
http://tracker.ceph.com/issues/14906Fixes: #14906
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Drop duplicate rados-classes libraries from ceph-osd and align the RPM
packaging with Debian by using a wildcard to package everything that
autotools puts in the rados-classes directory.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Flask is used by MON (in the Ceph REST API) and by RGW (powerdns).
Therefore, it only needs to be in the ceph-mon and ceph-radosgw packages.
Also, this commit encloses the specification of the python-flask runtime
dependency in distro-conditional blocks to account for a minor difference
in the package name between RHEL and SUSE.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The ceph-base package contains files shared between the -mon, -osd, and
-mds. In other words, the MON, OSD, and MDS servers depend on ceph-base,
but ceph-base should not depend on the leaf packages.
Reported-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
SUSE does not allow the use of /usr/libexec, so commit
69291f872e changed the RPM
packaging to put the libexec files into /usr/lib instead. Do the same
thing on Debian.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Split up the "ceph" package into four new packages:
1. ceph-mon
2. ceph-osd
3. ceph-mds (already done on Debian)
4. ceph-base (files shared among multiple servers)
and then:
5. Make "ceph" into a metapackage that depends on both -mon and -osd
(and -mds, for RPMs).
To describe the outcome of this change another way:
For RPMs:
- "ceph-{mon,osd,mds}" Require: ceph-base.
- "ceph" will become a metapackage that Requires: ceph-{mon,osd,mds}.
For DEBs:
- "ceph-{mon,osd,mds}" will Depends: ceph-base.
- "ceph" will become a metapackage that Depends: ceph-{mon,osd}.
- "ceph" will continue to Recommends: ceph-mds
New users should "yum install ceph-mon" or "yum install ceph-osd" (or
"apt-get install ceph-mon", etc) in order to install the exact daemons
that they need.
http://tracker.ceph.com/issues/10587Fixes: #10587
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
First, it makes sense for both ceph_common.sh and ceph-osd-prestart.sh to
reside in the same directory: make it so.
Second, /usr/lib exists on both RHEL/Fedora and SLE/openSUSE, whereas
the later lacks /usr/libexec. To make this less painful, package
ceph_common.sh and ceph-osd-prestart.sh in /usr/lib/ceph.
Third, allow e.g. FreeBSD to do its own thing by using the $(libexecdir)
Autoconf variable (but set it to /usr/lib in the spec file).
http://tracker.ceph.com/issues/14687Fixes: #14687
Signed-off-by: Nathan Cutler <ncutler@suse.com>
This is required for building python modules with cython, but for some
reason is not a direct dependency (on debian only a recommends) for
the cython package itself.
Refs: #14059
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
The only thing that uses bzip2-devel is RocksDB, and it's optional, not
requirement. Drop the bzip2-devel/libbz2-dev dependency entirely, and
let RocksDB use it only if it is already present.
Fixes: #13981
Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
ctypes is fundamentally incapable of providing safe callback support
(exceptions during callbacks are not handled properly). To fix this, and also
gain more flexibility, rewrite/port the librbd bindings to Cython instead.
Other Python bindings are expected to migrate to Cython in the future.
Reference: http://tracker.ceph.com/issues/13115
To support this, this change also:
- Introduces a Makefile for pybind which calls setup.py
- Updates the installation files for packages
- Adds a hack to admin/build-doc to build a dummy librbd, avoiding the need to
build the entire client library just to generate documentation (Sphinx needs
to be able to import rbd.so, which depends on librbd.so symbols).
With contributions by Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Hector Martin <marcan@marcan.st>
As the Cython bindings build to a binary module, backwards compatibility with
older librbd ABIs at runtime is not possible, so depend on at least the same
version (or newer).
Signed-off-by: Hector Martin <marcan@marcan.st>
To prepare for the migration of rbd.py to Cython, add Cython as a package
dependency and have the configure script look for it.
Also adds Cython as a dependency for admin/build-doc, and changes the
virtualenv to allow usage of system packages (to avoid having to compile
Cython inside the virtualenv).
With contributions by Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Hector Martin <marcan@marcan.st>