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>
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>
systemd: start/stop/restart ceph services by daemon type
Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
The limit, -j8, may seem arbitrary but works nicely in the openSUSE Build
Service.
http://tracker.ceph.com/issues/13858Fixes: #13858
Signed-off-by: Nathan Cutler <ncutler@suse.com>
This patch creates rbdmap shell script that is called from init-rbdmap
init script. The patch also renames src/rbdmap configuration file to
src/etc-rbdmap so that rbdmap shell script can be installed via build
system directly. Finally, the patch accomodates these changes in spec
file and build system.
Fixes: #13374
Signed-off-by: Boris Ranto <branto@redhat.com>
Drop the redhat-lsb-core dependency as it is no longer necessary on
fedora/rhel.
The other two init scripts do not use redhat-lsb-core either. The
init-ceph.in conditionally requires /lib/lsb/init-functions and does not
use any of the functions defined in that file (at least not directly).
The init-radosgw file includes /etc/rc.d/init.d/functions on non-debian
platforms instead of /lib/lsb/init-functions file so it does not require
redhat-lsb-core either.
Signed-off-by: Boris Ranto <branto@redhat.com>
There is a kmod bug that affects RHEL7 derivatives which will
result in device permissions being reset back to defaults.
Fixes: #13305
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Since the main package and all the subpackages are built in the
same environment, concentrate all the BuildRequires in the main
package.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
It is possible that the ceph user/group will not have fixed UID/GID in SUSE.
Instead, it is possible that the ceph package will depend on a separate package
whose sole purpose will be to create the ceph user/group if they do not exist.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The openSUSE Build Service runs a number of "post-build checks" after the RPMs
have been generated. One of these tests the RPM scriptlets for idempotence.
Without this line in the specfile, the check fails on SLE_12 because it cannot
find the systemd-tmpfiles binary.
http://tracker.ceph.com/issues/13375Fixes: #13375
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Currently, the main ceph package and the ceph-radosgw behave
differently on upgrade. This commit unifies their behavior
to the following:
On package removal, disable and stop all related systemd units.
On package upgrade, do nothing unless there is a file /etc/sysconfig/ceph
containing a parameter CEPH_AUTO_RESTART_ON_UPGRADE. If parameter is set
to "yes", restart the systemd units iff they are running.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Add "--param ggc-min-expand=20 --param ggc-min-heapsize=32768"
to RPM_OPT_FLAGS, ensuring gcc does not add debug symbols and is
more aggressive about garbage collection.
Thanks to Berthold Gunreben for debugging this issue.
http://tracker.ceph.com/issues/13352Fixes: #13352
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The -o option to groupadd/useradd is not recognized in SLE12. For
SLE/openSUSE, follow the openSUSE packaging guidelines.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Since the ceph user and group are created in the ceph-common
%pre scriptlet, the systemd-tmpfiles --create command needs
to run in that package.
tracker.ceph.com/issues/13346 Fixes: #13346
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Over in the SUSE sector, we are trying to enable the SLE_12 and openSUSE_13.2
build targets. The lttng/babeltrace stuff is currently available only in
SLE_12.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
In Fedora, RHEL and CentOS there is a package called boost-random.
In SLE/openSUSE, there is no such package.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
There is no need to restart the daemons when removing ceph-selinux
package if SELinux is not enabled.
Fixes: #13061
Signed-off-by: Boris Ranto <branto@redhat.com>
This patch minimizes the amount of daemon stop/start procedures when
upgrading ceph-selinux package. With this patch, the daemons get
restarted only if SELinux is enabled and the SELinux policy version
changed in the meantime.
Fixes: #13061
Signed-off-by: Boris Ranto <branto@redhat.com>