%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>
ceph.spec.in: move specific BuildRequires to where they belong
Reviewed-by: Loic Dachary <ldachary@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Move distro-specific BuildRequires out of "common" section and
into the appropriate %if statement in the "specific" section.
Also remove a duplicated "Requires: gdisk".
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Loic Dachary <ldachary@redhat.com>
The %endif removed by f94f23297c is restored.
The %else removed by 75e87a20da is restored.
The stray %endif added by d8abde3338 is removed.
May 29th, in d8abde3338 Owen added a stray
%endif after
BuildRequires: gperftools-devel
around line 133. June 3rd, in f94f23297c
Ken correctly attributed the error
"error: /srv/autobuild-ceph/gitbuilder.git/build/ceph.spec:140: Got a
%endif with no %if"
to a stray %endif but did not remove the one causing problem and in
doing so created another problem. June 4th, in
75e87a20da Owen incorrectly fixed
this new problem by removing the %else that is near
BuildRequires: gperftools-devel
around line 116, instead of reverting
f94f23297c. As a consequence the
ceph.spec.in became syntactically correct but implemented an if/else
logic different from what was intended originally and a number of
BuildRequires became exclusive to SUSE and were not installed for CentOS
7 etc.
http://tracker.ceph.com/issues/11901Fixes: #11901
Signed-off-by: Loic Dachary <ldachary@redhat.com>
This reverts commit 6f495974a8.
This needs more discussion, since "make install" does not currently
create /usr/lib/ceph (and maybe /usr/share/ceph?)
This fixes the rpmbuild failure,
error: File not found:
/srv/autobuild-ceph/gitbuilder.git/build/rpmbuild/BUILDROOT/ceph-9.0.0-1225.ga16afdd.el6.x86_64/usr/lib/ceph
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Commit d8abde3338b0c7df373b762e35099ad5123866bf introduced a stray
%endif. Remove it.
This fixes the build error:
"error: /srv/autobuild-ceph/gitbuilder.git/build/ceph.spec:140: Got a
%endif with no %if"
Reported-by: Greg Farnum <gfarnum@redhat.com>
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Extracted conditionals from SUSE rpm spec file to forward port.
Original work done by Thorsten Behrens <tbehrens@suse.com>
Signed-off-by: Owen Synge <osynge@suse.com>
Extracted conditionals from SUSE rpm spec file to forward port.
Original work done by Thorsten Behrens <tbehrens@suse.com>
Signed-off-by: Owen Synge <osynge@suse.com>
Extracted conditionals from SUSE rpm spec file to forward port.
Original work done by Thorsten Behrens <tbehrens@suse.com>
Signed-off-by: Owen Synge <osynge@suse.com>
Extracted conditionals from SUSE rpm spec file to forward port.
Original work done by Thorsten Behrens <tbehrens@suse.com>
Signed-off-by: Owen Synge <osynge@suse.com>
RPM spec files summary should not end with a dot.
This was inconsistent across the ceph rpm packages
and creates errors with rpm lint.
Signed-off-by: Owen Synge <osynge@suse.com>
The semantic and interface of get_pg are the same, that avoids
duplication and the ceph-helpers.sh version is tested and documented.
Make the ceph-test package dependent on xmlstarlet because it is
needed by ceph-helpers.sh.
Signed-off-by: Loic Dachary <ldachary@redhat.com>
rpm lint says the following directories
/usr/share/ceph
/usr/lib/ceph
are un owned by any package and this causes
OBS to emit errors.
Signed-off-by: Owen Synge <osynge@suse.com>
SUSE spec file got very out of sync with upstream master. This patch
helps resolve the build dependencies from suse ceph.
Signed-off-by: Owen Synge <osynge@suse.com>
The libexec path is different for different distributions.
systemd. This path is defined by a new variable on the
configure path.
This variable can be set with enviroment SYSTEMD_LIBEXEC_DIR.
The parameter --with-systemd-libexec-dir overrides the enviroment
variable.
Appropriate conditionals are set for SUSE and RHEL derivatives.
This is then used to template out systemd/ceph-osd@.service
Signed-off-by: Owen Synge <osynge@suse.com>
ceph-common needs python-argparse in SUSE/openSUSE and
needs redhat-lsb-core only in RHEL/CentOS/Fedora.
http://tracker.ceph.com/issues/11638Fixes: #11638
Signed-off-by: Nathan Cutler <ncutler@suse.cz>
0%{?rhel} || 0%{?centos} can be simplified to just 0%{?rhel}, since
CentOS defines that macro for compatibility with RHEL.
Signed-off-by: Nathan Cutler <ncutler@suse.cz>
The master specfile newly defines a _with_systemd variable that should be true
for the set of distros that are using systemd. Since this set of distros
includes SUSE/openSUSE (at least for the more recent versions where ceph is
supported), this commit sets _with_systemdto true on SUSE/openSUSE.
http://tracker.ceph.com/issues/11610Fixes: #11610
Signed-off-by: Nathan Cutler <ncutler@suse.cz>
Automatically create /var/lib/ceph/radosgw with the
ceph-radosgw package, and /var/lib/ceph/bootstrap-rgw
via the ceph package.
Signed-off-by: Travis Rhoden <trhoden@redhat.com>
This change ensures that the ceph-objectstore-tool utility is present on
all OSDs. This makes it easier for users to run this tool to do manual
debugging/recovery in some scenarios.
http://tracker.ceph.com/issues/11376 Refs: #11376
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Better to have static config like this that needs to be installed in
/etc in a separate subdirectory of the project.
Signed-off-by: Tim Serong <tserong@suse.com>
This adds SuSEfirewall2 service files for Ceph MON, OSD and MDS, for use
on SLES and openSUSE. The MON template opens port 6789 and the OSD/MDS
template opens the range 6800-7300 as per
http://ceph.com/docs/master/rados/configuration/network-config-ref/
Signed-off-by: Tim Serong <tserong@suse.com>
Commit 71a5090bca added a "_with_systemd"
conditional to the RPMs, but I erred with the version comparison
operator, so this only applied to RHEL 8+, not RHEL 7+.
Adjust the conditional so that it will really apply to RHEL 7+. While
we're here, add Fedora as well.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Reported-by: Boris Ranto <branto@redhat.com>
Instead of listing the operating system versions that do not require the
python-sphinx10 package, switch to listing the operating system versions that
require the python-sphinx10 package. It's easier to maintain because
there only are a few.
Signed-off-by: Loic Dachary <ldachary@rehdat.com>
* move rst files from doc/man/8 into man/8
* extract man_pages setting for sphinx from doc/conf.py to man/conf.py
* generate all man pages in `make install`
* add python-sphinx to Build-Depends
* check for sphinx-build in `configure`
* run changed rst files through sphinx-build in `make check`
Signed-off-by: Kefu Chai <kchai@redhat.com>
Prior to this commit, we didn't install /var/run/ceph as a normal
directory. We used the %ghost directive and created the directory with
a "mkdir" command in %post.
This was lacking in several ways:
1) Simplicy: there is no need to use %ghost; other packages (eg.
mariadb) simply use a normal %dir for their socket directory.
2) RPM does not have control over the permissions of the /var/run/ceph
directory. This does not interact well with "rpm -V". Moreover,
once Ceph itself gets unprivileged user support, RPM itself won't
be able to set the permissions of the directory for a (future)
unprivileged UID.
3) On distributions that use systemd as an init system, /var/run is a
symlink to /run, which is tmpfs. This means that /var/run/ceph does
not persist across reboots on those systems.
Remove the %ghost directive; it makes more sense for RPM to simply
install this directory like the rest of the %files.
Add a "_with_systemd" conditional so we know which distros use systemd
as their init system. Add the /etc/tmpfiles.d/ceph.conf file on those
distros. See
http://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Fedora 12 has been EOL for a long time. Remove the reference in the
RPM .spec file.
Since RHEL 5 support for Ceph is a work in progress, we won't remove
this entire python_sitelib / python_sitearch conditional for now, since
those are still needed on RHEL 5.
Add the rhel_version macro to make the conditional compatible with
SUSE's OBS.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>