when packaging debian packages, dpkg-shlibdeps analyzes the linked
shared libraries of the binaries in given package by looking at their
names. but if the name does not include any useful versioning
information, it complains. we have no intention of versioning
libceph-common, as it is merely an internal shared library used by ceph
packages only. but there is no simple way to disable dpkg-shlibdeps'
warning of
dpkg-shlibdeps: warning: can't extract name and version from library
name 'libceph-common.so'
other than skipping the dpkg-shlibdeps for the whole package. so let's
just version it anyway.
Signed-off-by: Kefu Chai <kchai@redhat.com>
prior to this change, libcommon is a convenient library which gets
linked into librados, librbd and libcephfs and all ceph executables.
this incurs some problems:
- double dose of libcommon in memory space and HDD: waste of memory
and disk space.
- if an application links to two libraries including libcommon at the
same time. take librados and libcephfs as an example, they could
interfere with each other by changing the other guy's status.
after this change, libcommon is tuned into a shared library and
renamed to libceph-common. it will be installed into $prefix/lib/ceph,
and packaged in librados2.
ceph.spec.in,debian/librados2.install: package libceph-common in
librados2.
CMakeLists.txt:
- do not link against libboost-* if not necessary.
- s/common/ceph-common/g
- install libceph-common into $prefix/lib/ceph
- set rpath to $prefix/lib/ceph
- link against ceph-common if an executable needs access to non public
symbols in ceph.
Signed-off-by: Kefu Chai <kchai@redhat.com>
libcephd is a library that contains ceph daemon code
that can be statically linked in other applications.
Added MergeStaticLibraries.cmake that can merge static libraries
to form a bigger one. This approach avoids the need to mess with
STATIC libraries all over the code base.
Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
With modern releases we should be able to make do with the call to
os_release_parse only which uses /etc/os-release which should be available on
most (all?) releases we currently support. this then allows us to remove the
runtime dependency which pulls in several other packages and would be nice to
avoid.
Fixes: http://tracker.ceph.com/issues/17425
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
This adds ceph-mgr following the same pattern used for ceph-mon,
ceph-mds, ceph-osd. I've removed the boost-python BuildRequire
for SUSE distros, because we don't ship that (the relevant bits
are already included in boost-devel).
NOTE: This gives an installable ceph-mgr, but not necessarily a
runnable ceph-mgr. This is because ceph-mgr needs the following
python packages:
- CherryPy
- Django
- gevent
- python-dateutil
- djangorestframework
Not all of these are available as distro packages. For example,
on openSUSE Tumbleweed, we don't have djangorestframework available
in the base distro, and our Django version is 1.9, which seems to
be incompatible with ceph-mgr. I'm not sure of the situation on
other distros.
Signed-off-by: Tim Serong <tserong@suse.com>
Prior to this change, the RPM packaging would install /etc/ceph/rbdmap
with exectuable permissions. The execute bit is not necessary and does
not match what the Debian packaging does. Remove the execute bit in this
case.
Fixes: http://tracker.ceph.com/issues/17395
Reported-by: Martin Bukatovic <mbukatov@redhat.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
python3 is not a hard requirement to build ceph, so make it optional.
add an option named "WITH_PYTHON3" which accepts ON, OFF, or CHECK.
Fixes: http://tracker.ceph.com/issues/17103
Signed-off-by: Kefu Chai <kchai@redhat.com>
New interfaces for fetching extended (and selective) stat information.
Additionally, applications can specify AT_NO_ATTR_SYNC in the flags to
indicate that they want to do a "lazy" statx that just hands out the
inode info from the cache, or AT_SYMLINK_NOFOLLOW to avoid following
symlinks when walking the path.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
When building on openSUSE Tumbleweed, nothing seems to create
the various __pycache__ directories (so the build fails because
those files don't exist), and in any case they should be
created automatically at runtime, so shouldn't need to be
packaged. However, the Fedora packaging guidelines suggest
including __pycache__, so I've used a %suse_version guard here.
Fixes: http://tracker.ceph.com/issues/17106
Signed-off-by: Tim Serong <tserong@suse.com>
This allows the make-dist script to create a .spec file that
can actually use the tarball created to build srpms.
Tested on Fedora 24, using mock.
Signed-off-by: Ira Cooper <ira@redhat.com>
We have some %post scriptlets that fire up a shell just to execute a single
command like this:
%postun -n librados2
/sbin/ldconfig
Normally, it would be possible to optimize these as:
%postun -n librados2 -p /sbin/ldconfig
Except that, due to an RPM bug, there must not be *any* content (not even comments)
between the %postun and the next section.
See https://bugzilla.redhat.com/show_bug.cgi?id=1003962#c0 for details.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
DSA keys are being deprecated: http://www.openssh.com/legacy.html
drop.ceph.com will continue to allow the old DSA key but eventually,
users submitting logs using ceph-post-file will run into issues when
OpenSSH completely drops support for the algorithm.
Fixes: http://tracker.ceph.com/issues/14267
Signed-off-by: David Galloway <dgallowa@redhat.com>
Trailing whitespace after the backslash on the -d line of the
usermod command effectively splits it in two, breaking the
rpm %pre script for SUSE builds.
Signed-off-by: Tim Serong <tserong@suse.com>
The issue here is that ceph.spec.in does not package the directories
/usr/lib/udev and /usr/lib/udev/rules.d. The problem was not showing because
hdparm, which is brought in as a build dependency, packages these directories.
However, in SUSE a recent update to hdparm changes that and the problem
manifests.
This PR addresses the issue by adding udev as a build dependency, which should
cover /usr/lib/udev, and by adding explicit "%dir %{_udevrulesdir}" to the
packages that put files in this directory.
Fixes: http://tracker.ceph.com/issues/16949
Signed-off-by: Nathan Cutler <ncutler@suse.com>
for SLES supports only x86_64 and aarch64 targets
for openSUSE (Tumbleweed and Leap) add ppc64/ppc64le targets.
fixes: http://tracker.ceph.com/issues/16936
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>