Commit Graph

1120 Commits

Author SHA1 Message Date
Sage Weil
5ef26e08ca Merge PR #26184 into master
* refs/pull/26184/head:
	mgr/dashboard: Replace IP address validation with Python standard library functions

Reviewed-by: Volker Theile <vtheile@suse.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Patrick Nawracay <pnawracay@suse.com>
Reviewed-by: Tatjana Dehler <tdehler@suse.com>
2019-04-24 20:38:19 -05:00
Sage Weil
d64d14a577 Merge PR #26730 into master
* refs/pull/26730/head:
	src/test: remove unused objects to calculate accurate dedup ratio.
	src/tools: fix counting total objects
	src/tools: fix printing wrong offset.
	src/tools: fix dedup tool's name
	qa/workunit: add rabin chunk test
	src/tool: add rabin fingerprint option to cephdeduptool
	src/common: add rabin fingerprint class
	Initail work for rabin fingerprint

Reviewed-by: Sage Weil <sage@redhat.com>
2019-04-24 20:38:02 -05:00
Ashish Singh
aeb1c11334 mgr/dashboard: Replace IP address validation with Python standard library functions
Instead of self-written validation methods to validate IPv4 and IPv6 addresses.
Use Python's standard library functions `ipaddress`.

Signed-off-by: Ashish Singh <assingh@redhat.com>
2019-04-23 17:20:23 +05:30
Kefu Chai
8ae1947728 rpm: add "Provides: python3-*" for python packages
so user can install python3-rados, instead of python36-rados, without
specifying the minor version of python. also, we should not break our
teuthology tests with this naming scheme change. for instance, our
cephfs qa suite installs `python3-cephfs` for testing the `cephfs-shell`

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-10 00:21:02 +08:00
Kefu Chai
11f0b8d5a8 rpm: always use 3 as the default python3_{pkgversion,version}
as we have the rpm macros installed in
https://github.com/ceph/ceph-build/pull/1283 .

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-09 23:15:18 +08:00
myoungwon oh
d72cc5a0ee src/tools: fix dedup tool's name
Signed-off-by: Myoungwon Oh <ommw@sk.com>
2019-04-08 19:19:09 +09:00
Kefu Chai
658ca2b0d7 rpm: use python 3.6 as the default python3
some of our centos7 jenkins builders are failing to build ceph master and
nautilus branches. because EPEL7 recently switched from python3.4 to
python3.6 as the native python3. see
https://lists.fedoraproject.org/archives/list/epel-announce@lists.fedoraproject.org/message/EGUMKAIMPK2UD5VSHXM53BH2MBDGDWMO/

and one of our BuildRequires, cmake3,
was offered by EPEL7. it also followed the python3.6 switch-over to
rebuild against python3.6. as a result, the cmake3-data-3.13.4-2.el7
started to depend on /usr/bin/python3.6, which is in turn offered by
python36 package. after installing python36 as a dependency of the
updated cmake3. but in cmake, we originally checks for the latest
python3 interpreter if WITH_PYTHON3 is enabled, that's why these
builders which happen to install these updated packages started to fail
when detecting the existence of python3.6 related build dependencies.

as a fix, in d1e83082,
python%{python3_pkgversion}-{devel,setuptools,Cython} are listed as
BuildRequires to reflect this change in EPEL7. before d1e83082, we
hardwired them to python34-*.

but as following analysis puts, there are cases where `yum-builddep`
is inconsistent with `rpmbuild`. as `yum-builddep` changes the how
`python3_pkgversion` and `python3_version` macros are expanded:

- none of the packages installed by `yum-builddep` installs the python3
  related rpm macros, so the system stays with whatever python3 it was
  using. in this case, `rpmbuild` won't complain, as the
  `python3_pkgversion` and `python_version` are consistent before and
  after `yum-builddep`.
- system has python3.4 installed before `yum-builddep`. but
  `yum-builddep` installed python3.6 and also the updated
  `python-rpm-macros` packages, which points `python3_version` and
  `python3_pkgversion` to 3.6 and 36 respectively. in this case,
  `rpmbuild` will complain, because when we run `yum-builddep`,
  `python3_version` was still "3.4".
- system does not have python3 installed before `yum-builddep`. so
  it was using python34 for preparing the "BuildRequires". but some
  of the packages installed by `yum-builddep` installs python36, and
  also the updated `python-rpm-macros` packages, which points
  `python3_version` and `python3_pkgversion` to 3.6 and 36 respectively.
  in this case, `rpmbuild` will complain, because the python36 related
  dependencies are missing. what the system has is python34
  dependencies.
- system does not have python3 installed before `yum-builddep`. so
  it was using python34 for preparing the "BuildRequires". but some
  of the packages installed by `yum-builddep` installs python34, and
  also the updated `python-rpm-macros` packages, which points
  `python3_version` and `python3_pkgversion` to 3.4 and 34 respectively.
  in this case, `rpmbuild` won't complain, as the
  `python3_pkgversion` and `python_version` are also consistent before and
  after `yum-builddep`.

as we cannot tell if the system has python3 or what the python3 version
the system has before `yum-builddep`, so what we can do is to ensure
`rpmbuild` has what it needs to build Ceph. so let's just stick with
python3.6.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-08 10:12:32 +08:00
Kefu Chai
cea9d18ced rpm: use python3.4 on RHEL7 by default
python3.4 is the native python3 before 7.6

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-06 00:28:39 +08:00
Kefu Chai
d1e83082b4 rpm: install python%{python3_pkgversion}-devel on el7
as RHEL 7.7 support a native python3.6, we cannot hardwire to python3.4
on RHEL7/CentOS7 anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-05 10:16:25 +08:00
Kefu Chai
8bd69f29af
Merge pull request #27358 from tchaikov/wip-multi-python3
rpm,cmake: use specified python3 version if any 

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
2019-04-04 23:50:32 +08:00
Kefu Chai
7681a38ce5 rpm: pass %{python3_version} to cmake
to force cmake to use the python3 and python3 modules for building
python3 bindings

on the debian side, it's okay to continue using "-DWITH_PYTHON3=ON", as

- cmake does normalize "ON" to 3
- debian's cmake extension lives on /usr/lib/python3/dist-packages/
  not in a specific /usr/lib/python3.x/dist-packages directory

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-04 13:30:48 +08:00
Kefu Chai
00f19923b4 install-deps,rpm: enable devtoolset-8 on aarch64 also
in 5ae3b06e, we left aarch64 with devtoolset-7, but aarch64 builders are
also suffering from http://tracker.ceph.com/issues/38892. so i installed
devtoolset-8 on all aarch64 builders manually from the rpm packages
downloaded from koji builder:

- https://cbs.centos.org/koji/buildinfo?buildID=24923
- https://cbs.centos.org/koji/buildinfo?buildID=24931

libasan5, libubsan1 are not installed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-03 11:40:59 +08:00
Kefu Chai
9694a72dae rpm: s/devtoolset-7/devtoolset-8/
should activate devtoolset-8 not devtoolset-7 for enabling GCC-8.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-03-26 15:20:00 +08:00
Kefu Chai
128ce1199f
Merge pull request #27134 from tchaikov/wip-devtools-8
install-dep,rpm: use devtools-8 on amd64

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
2019-03-26 09:45:55 +08:00
Kefu Chai
1fdd8ed552
Merge pull request #27150 from tchaikov/wip-ceph.spec.in/immutable-object-cache
rpm: immutable-object-cache related changes

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2019-03-25 23:38:50 +08:00
Kefu Chai
253385d4cc rpm,deb: let immutable-object-cache depend on librados2
ceph-common depends on librados2, but ceph-immutable-object-cache only
uses librados2's C++ API, so librados2 would suffice.

rpmbuild is able to figure out the .so dependencies, and let
ceph-immutable-object-cache depend on the package which offers
librados2, but we'd better make sure immutable-object-cache is linked
against the librados2 of the same version, to ensure that librados2
offers the correct C++ symbols. as we only version the C++ API in the
librados2 after nautilus.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-03-25 13:56:52 +08:00
Kefu Chai
c80d5aa693 rpm: remove libradospp1 from immutable-object-cache's Requires
* remove "libradospp1" from immutable-object-cache's runtime
  dependencies. this package was removed in 65c8733b

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-03-25 12:47:34 +08:00
Kefu Chai
1cd1967013 rpm: do not use "-n" for immutable-object-cache
as immutable-object-cache has the prefix of "ceph", no need to use "-n"
option. so this change is but a cleanup.

* use "%package immutable-object-cache" not "%package
  ceph-immutable-object-cache" for naming subpackage of
  "ceph-immutable-object-cache". this would result in package name of
  "ceph-immutable-object-cache". see
  http://ftp.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html
* the same applies to other directives with "-n" options, see
  http://ftp.rpm.org/max-rpm/s1-rpm-inside-package-directive.html

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-03-25 12:47:34 +08:00
Kefu Chai
f904ba5574
Merge pull request #26819 from tchaikov/wip-rpm-more-recommends
rpm: use Recommends on fedora also

Reviewed-by: Nathan Cutler <ncutler@suse.com>
2019-03-23 01:47:00 +08:00
Kefu Chai
5ae3b06e63 install-dep,rpm: use devtools-8 on amd64
seems devtools-8 is not packaged on aarch64. and we are suffering from
ICE on centos7 when building with GCC-7.3. so let's try GCC-8.2!

Fixes: http://tracker.ceph.com/issues/38892
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-03-23 01:37:00 +08:00
Yuan Zhou
9466d70985 build/ops: adding build spec for immutable object cache daemon
Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
2019-03-22 00:16:26 +08:00
Nathan Cutler
b0700f2b3f
Merge pull request #27046 from smithfarm/wip-38812
rpm: refrain from building ceph-resource-agents on SLE

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Tim Serong <tserong@suse.com>
2019-03-20 17:12:58 +01:00
Nathan Cutler
282a6b0675 rpm: refrain from building ceph-resource-agents on SLE
Fixes: https://tracker.ceph.com/issues/38812
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-03-19 12:22:32 +01:00
Nathan Cutler
b0da2371c1 rpm: fix "rhel <= 7" conditional
We do not build for RHEL 6 and below, so "rhel == 7" is just as good, while
also avoiding the bug.

In addition, "rhel == 7" is the conditional we are using everywhere else in the
spec file for this purpose.

Fixes: https://tracker.ceph.com/issues/38810
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-03-19 12:11:56 +01:00
Boris Ranto
4b3db559e7
Merge pull request #26756 from badone/wip-f28-broken-Cython-dep
rpm: Install python2-Cython on f28

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Boris Ranto <branto@redhat.com>
2019-03-13 13:31:15 +01:00
Brad Hubbard
6de7111e73 rpm: Install python2-Cython in python2 environment
do_cmake.sh tests for Cython module version in python2

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2019-03-13 12:22:31 +10:00
Sébastien Han
7c4f29bf4a ceph.spec.in: add libstoragemgmt to mgr package
The libstoragemgmt package is needed so we can activate the drive
blink-led feature so we should pull that package.

Signed-off-by: Sébastien Han <seb@redhat.com>
2019-03-12 15:56:12 +01:00
Kefu Chai
147531515b rpm: use Recommends on fedora also
"Recommends" and other weak dependencies were introduced in rpm 4.12. it
is included by quite a few distros, including fedora 21 and up, and
recent SUSE distros. but RHEL7 still ships rpm 4.11. see
https://fedoraproject.org/wiki/Changes/RPM-4.12 and
https://software.opensuse.org/package/rpm . so we enable Recommends on
fedora and SUSE distros.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-03-07 22:42:36 +08:00
Sage Weil
6c723b927d Merge PR #26718 into master
* refs/pull/26718/head:
	rpm: put numpy and scipy deps in distro conditionals

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-03-07 06:30:46 -06:00
Nathan Cutler
5a0846631c rpm: put numpy and scipy deps in distro conditionals
Without this patch, attempts to install the ceph-mgr-diskprediction-local RPM
fail on SUSE platforms with the following error:

can't install ceph-mgr-diskprediction-local-14.1.0.402+ga396e8bf3b-3742.1.noarch:
  nothing provides numpy needed by ceph-mgr-diskprediction-local-14.1.0.402+ga396e8bf3b-3742.1.noarch
  nothing provides scipy needed by ceph-mgr-diskprediction-local-14.1.0.402+ga396e8bf3b-3742.1.noarch

Also take into account package naming differences between Fedora and
RHEL/CentOS.

Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-03-06 15:13:23 +01:00
Sage Weil
e030ba465d Merge PR #26740 into master
* refs/pull/26740/head:
	rpm: advance spec file copyright date

Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2019-03-05 14:05:54 -06:00
Sage Weil
11f986830e Merge PR #26719 into master
* refs/pull/26719/head:
	rpm: re-add pyOpenSSL as ceph-mgr runtime dependency

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-03-05 09:12:43 -06:00
Sage Weil
5c6d9d556f Merge PR #26694 into master
* refs/pull/26694/head:
	rpm: drop use of $FIRST_ARG

Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Tim Serong <tserong@suse.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2019-03-04 16:25:18 -06:00
Nathan Cutler
166ae7847c rpm: advance spec file copyright date
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-03-04 15:50:24 +01:00
Nathan Cutler
aa690517fb rpm: re-add pyOpenSSL as ceph-mgr runtime dependency
The "restful" MGR module is part of ceph-mgr, and is active by default when
deploying a Ceph cluster from scratch.

Without this patch, the cluster never reaches HEALTH_OK due to the following
health warning: "Module 'restful' has failed dependency: No module named
'OpenSSL'"

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-03-01 15:25:22 +01:00
Sage Weil
649ea55d8a Merge PR #26453 into master
* refs/pull/26453/head:
	rpm: build with lttng on ppc64le (SUSE)
	rpm: no lttng build on openSUSE s390x

Reviewed-by: Tim Serong <tserong@suse.com>
2019-02-28 18:07:59 -06:00
Franck Bui
926433f5d4 rpm: drop use of $FIRST_ARG
The use of $FIRST_ARG was probably required because the SUSE-specific
%service_* rpm macros were playing tricks on the shell positional parameters.
This is bad practice and error-prone, so let's assume that no macros should do
that anymore and hence it's safe to assume that positional parameters remain
unchanged after any rpm macro call.

Thanks to Franck Bui for providing this patch.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-02-28 14:03:30 +01:00
Nathan Cutler
4004f55905 rpm: use %_python_buildid to specify python-remoto dep
Without this patch, the Python 2 version of python-remoto is always installed,
even on Python 3 systems.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-02-26 10:25:56 +01:00
Sage Weil
d2a3168bf3 Merge PR #26617 into master
* refs/pull/26617/head:
	rpm: Fix pyOpenSSL dependency

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2019-02-25 16:41:40 -06:00
Sage Weil
4059cbd756 Merge PR #26543 into master
* refs/pull/26543/head:
	Revert "ceph.spec.in: python-kubernetes broken on rhel"

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
2019-02-25 16:40:46 -06:00
Tim Serong
be98097979 rpm,cmake: additional fixes to make amqp support optional
Signed-off-by: Tim Serong <tserong@suse.com>
2019-02-25 19:49:20 +11:00
Brad Hubbard
ff324f450c rpm: Fix pyOpenSSL dependency
Fedora29 does not have pyOpenSSL but it does have python-pyOpenSSL

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2019-02-25 13:37:23 +10:00
Nathan Cutler
aac0e6751f rpm: build with lttng on ppc64le (SUSE)
In very recent SUSEs (e.g. Leap 15.1), the build dependencies needed for the
lttng build are satisfied for this architecture.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-02-22 18:36:12 +01:00
Nathan Cutler
79d3d48a5b rpm: no lttng build on openSUSE s390x
Since the lttng-ust-devel and babeltrace-devel RPMs are not maintained for s390x
in openSUSE, we have to exclude the lttng build on this architecture.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-02-22 18:36:12 +01:00
Jeff Layton
196e8151b5 Revert "ceph.spec.in: python-kubernetes broken on rhel"
This reverts commit c32c4874e1.

An updated python2-kubernetes package that does not depend on
python-adal has made it into the epel7 repos. With that change,
we can now revert this patch.

When we readd it back though, add in %{_python_buildid} so that
this works correctly on python3-based distros as well.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
2019-02-22 08:56:12 -05:00
Kefu Chai
ae786b93c8
Merge pull request #26520 from ktdreyer/rpm-rhel8
rpm: RHEL 8 fixes

Reviewed-by: Boris Ranto <branto@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-02-22 15:44:52 +08:00
Kefu Chai
66fb02dcfe
Merge pull request #26555 from tchaikov/wip-install-build-deps
cmake,rgw: make amqp support optional

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Yuval Lifshitz <yuvalif@yahoo.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
2019-02-22 15:39:55 +08:00
Kefu Chai
dd5bc2ff21 rpm: disable amqp endpoint on SLE/OpenSUSE
as librabbitmq-devel is not packaged on them yet.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-22 10:30:25 +08:00
Ken Dreyer
f74c76c2da rpm: build __pycache__ directories on RHEL 8
In RHEL 8, rpmbuild does not automatically generate __pycache__
directories. Generate them explicitly with the %py_byte_compile macro.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2019-02-21 15:03:51 -07:00
Ken Dreyer
217c3f4ce5 rpm: fix pyOpenSSL requirement for RHEL 8
On RHEL 7, this package is named "pyOpenSSL", but on RHEL 8, Fedora, and
SUSE, it is named "python3-pyOpenSSL".

Prior to this change, the RHEL conditional was applying to both RHEL 7
and 8, so we would fail to resolve the "pyOpenSSL" package dependency on
RHEL 8.

Update the RPM conditionals to use "pyOpenSSL" on RHEL 7 and
"python3-pyOpenSSL" on all other distributions.

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2019-02-21 15:03:51 -07:00