tmpfiles.d are part of system.d and define how temporary directories are setup.
rgw needs a socket directory. To do this we template tmpfiles.d user and group
for rgw and fill in the values using autotools.
Note1: Added to spec file.
Note2: Name changed to rgw from radosgw as is preferred name by Sage.
Note3: Adds configure options
--with-rgw-user=UserName
--with-rgw-group=GroupName
Note4: Defaults set for debian
Note5: spec file overrides defaults for redhat and suse
Signed-off-by: Owen Synge <osynge@suse.com>
%py_requires expands to
BuildRequires: /usr/bin/python
PreReq: python = 2.7
The BuildRequires: is already provided, and the PreReq is wrong because
e.g. SLE11-SP3 (a platform we are trying to support) has Python 2.6.
http://tracker.ceph.com/issues/12351Fixes: #12351
Signed-off-by: Nathan Cutler <ncutler@suse.com>
If the mimecap RPM or mime-support DEB is not installed, then the
/etc/mime.types file is not present on the system. RGW attempts to read
this file during startup, and if the file is not present, RGW logs an
error:
ext_mime_map_init(): failed to open file=/etc/mime.types ret=-2
Make the radosgw package depend on the mailcap/mime-support packages so
that /etc/mime.types is always available on RGW systems.
http://tracker.ceph.com/issues/11864Fixes: #11864
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
In openSUSE there is a policy to use %fdupes in the spec file if RPMLINT
complains about duplicate files wasting space in the filesystem.
However, RPMLINT is not so complaining, so drop fdupes.
http://tracker.ceph.com/issues/12301Fixes: #12301
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The postrotate script in src/logrotate.conf uses the which and find utilities
to do its work. Although logrotate itself is only a Recommends, I think which
and find are so ubiquitous that it makes sense to have them as hard
dependencies.
Also, I checked and the package names which and findutils are the same on all
the RPM distros we are currently targeting in the spec file.
In Debian, find is also in a package called findutils while the package
containing 'which' is called debianutils.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The conditionals governing where 50-rbd.rules is installed were not doing the
right thing on SUSE distros.
Start using the %_udevrulesdir RPM macro, while taking care that it is defined
and set to the right value. Use it to eliminate some conditionals around other
udev rules files as well.
http://tracker.ceph.com/issues/12166Fixes: #12166
Signed-off-by: Nathan Cutler <ncutler@suse.com>
/var/run/ceph should only be installed on Fedora, RH/CentOS, and
all supported SUSE distros that do not have systemd (e.g. SLE11-SP3).
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The git command is currently only needed in the src/make_version script.
However, we can simply avoid it by assuming that if the git command is
not installed then the current dir is not a git repo.
Signed-off-by: Boris Ranto <branto@redhat.com>
Before this patch, the command 'logrotate -f /etc/logrotate.d/ceph'
was generating an error "Failed to reload ceph.target: Job type reload is not
applicable for unit ceph.target".
Before we issue systemctl reload, check that there is at least
one active ceph-* service. (The hyphen is significant.)
Since we use grep, make the grep package a dependency.
http://tracker.ceph.com/issues/12173Fixes: #12173
Signed-off-by: Tim Serong <tserong@suse.com>
Signed-off-by: Lars Marowsky-Bree <lmb@suse.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
argparse is a widely-used Python module for parsing command-line arguments.
Ceph makes heavy use of Python scripts, both in the build environment and on
cluster nodes and clients.
Until Python 2.6, argparse was distributed separately from Python proper.
As of 2.7 it is part of the Python standard library.
Although the python package in a given distro may or may not Provide:
python-argparse, this cannot be relied upon.
Therefore, this commit puts appropriate conditionals around Requires:
python-argparse and BuildRequires: python-argparse. It does so for Red
Hat/CentOS and SUSE only, because the last Fedora version with Python 2.6
was Fedora 13, which is EOL.
argparse is required by both the ceph and ceph-common packages, but since ceph
requires ceph-common, the argparse Requires and BuildRequires need only appear
once, under ceph-common.
http://tracker.ceph.com/issues/12034Fixes: #12034
Signed-off-by: Nathan Cutler <ncutler@suse.com>
First, the terms "common" and "specific" are vague. Second,
"common" can easily be confused with the ceph-common subpackage.
Fix this by rephrasing to "distro-unconditional dependencies" and
"distro-conditional dependencies", respectively.
Third, move the "distro-unconditional dependencies" header so it
is above the part where these dependencies are actually defined.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Given ceph's reputation for voluminous logs, it makes sense for
logrotate to be a hard dependency for all distros.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Fedora 19 is EOL, so there's no need to refer to Fedoras less than 20.
"%{fedora}" effectively implies "Fedora 20 and above".
Reported-by: Ira Cooper <ira@samba.org>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
This reverts the change in commit
85517d611b. Since we BuildRequire:
libbabeltrace-devel, autoconf will see that babeltrace is available
during the build, and make will build/install the rbd-replay-prep
utility.
This change also simplifies Fedora selection logic, because Fedora 19 is
EOL, so "%{fedora}" implies "Fedora 20 and above".
Reported-by: Ira Cooper <ira@samba.org>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
The uudecode binary is used to build Java-related components, and
uudecode is provided by the sharutils package on all supported
RPM platforms. When building with "--without=cephfs_java",
sharutils is not needed.
Thanks to Nathan Cutler <ncutler@suse.cz> for going into the
details with me.
On OBS without this patch we get the error message:
[ 170s] -----------------------------------------------------------------
[ 170s] ----- building ceph.spec (user abuild)
[ 170s] -----------------------------------------------------------------
[ 170s] -----------------------------------------------------------------
[ 170s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define 'disturl obs://build.opensuse.org/home:osynge:ceph:wip:wip_obs_fedora/Fedora_20/c0bbbc1e62228ca956ac3d367edc4fba-master' /home/abuild/rpmbuild/SOURCES/ceph.spec
[ 170s] error: Failed build dependencies:
[ 170s] sharutils is needed by ceph-1:2+git.1435043747.c1bd02c-1.1.x86_64
With this patch we can build fedora 22 and fedora 20 rpms fine.
Signed-off-by: Owen Synge <osynge@suse.com>
SUSE builds on OBS are failing with the missing dir entries:
/usr/share/ceph
/usr/lib/ceph
On suse these correspond to:
%dir %{_datarootdir}/ceph/
%dir %{_libexecdir}/ceph/
Signed-off-by: Owen Synge <osynge@suse.com>
Fedora, suse as well as centos >= 7 and rhel >= 7
use the same name for python-sphinx so add these
conditionals.
Note: Until OBS supports EPEL I cant test builds on
centos and rhel so this extention of build deps is
untested by Owen Synge.
Signed-off-by: Owen Synge <osynge@suse.com>
explicitly included man pages.
Original fix used %{_mandir}/*/* but this could potentially lead to ambiguity
as ceph rpm spec file contains many man pages for different packages.
Signed-off-by: Owen Synge <osynge@suse.com>