Commit Graph

287 Commits

Author SHA1 Message Date
Matan Breizman
8f0678c3dd install-deps.sh: install newer version of pip
although pip comes with virtualenv, having a recent version of pip matters to use wheel packages.

Signed-off-by: Matan Breizman <Matan.Brz@gmail.com>
2021-09-17 13:35:28 +00:00
Laura Flores
edeee3f6a4 install-deps.sh: ensure that pip ugrades to most recent version within virtualenv
Upon re-executing `install-deps.sh` recently, I got this error message:

```
You are using pip version 9.0.3, however version 21.2.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
```

The issue was that pip was not up to date within the virtualenv that `install-deps.sh` sets up. Adding the line `python3 -m pip install --upgrade pip` right after the virtualenv is activated should help to ensure that pip is up to date in that context.

Signed-off-by: Laura Flores <lflores@redhat.com>
2021-09-13 21:47:37 +00:00
Kefu Chai
3185854c80 install-deps.sh: s/virtualenv/python -m venv/
so we don't need to use virtualenv python package for creating a
virtualenv, the "venv" module in Python3 would suffice.

see also https://docs.python.org/3/library/venv.html

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-31 21:16:56 +08:00
Kefu Chai
7048172cad
Merge pull request #38783 from ideepika/wip-osd-tracing
cmake/ninja: support ninja for jaegertracing

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-22 15:33:13 +08:00
Deepika
52fc62520f debian, install-deps.sh: use Build-Profiles to optionally build debian libjaeger
library

* use pkg.ceph.jaeger for debian optional pkgs
remove mangling needing install-deps, instead use, buildProfileSpec feature
introduced for debian.  https://wiki.debian.org/BuildProfileSpec * check and

* set extraopts in debian/rules using pkg.ceph.jaeger
see: https://github.com/ceph/ceph/pull/38783#discussion_r662995612

* cleanup libjaeger.install mangling from CMakeLists

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-19 21:01:42 +00:00
Danny Abukalam
38f3b0ac8c
build: Add SoftIron Linux as valid debian-based distro in install-deps
Signed-off-by: Danny Abukalam <danny@softiron.com>
2021-07-15 07:15:56 -04:00
Deepika
bd0ca9dcb8 install-deps.sh: add missing with_jaeger option for ceph.spec mangling
Signed-off-by: Deepika <dupadhya@redhat.com>
2021-07-05 14:14:22 +00:00
Kefu Chai
9b1d524839 debian: mark "crimson" specific deps with "pkg.ceph.crimson"
see also https://wiki.debian.org/BuildProfileSpec

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-07 12:36:19 +08:00
Kefu Chai
c0fad448e9 debian: mark "make check" deps with "pkg.ceph.check" build
instead of inventing our way for defining "make check" dependencies, use
build profile for adding "make check" specific dependencies. see
https://wiki.debian.org/BuildProfileSpec

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-06-07 12:35:00 +08:00
Willem Jan Withagen
1851621793 common: make y2c.py work on FreeBSD
1) make reference to python3 indepedant of explicit path
2) add required py-yaml module to install list

fixes: #40731
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2021-04-13 10:17:01 +02:00
Kefu Chai
17d2bc3707 install-deps.sh: install libpmem libraries if WITH_PMEM is set
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-08 17:15:15 +08:00
Kefu Chai
89121189ac cmake,install-deps,make-dist: use boost 1.75
so we can use the latest boost

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-04-05 15:09:29 +08:00
Brad Hubbard
2e1ee019d2 install-deps: Use dnf config-manager
Using subscription-manager will fail in a container so use dnf
config-manager which should work on bare metal as well as in a
container.

Fixes: https://tracker.ceph.com/issues/50118

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2021-04-03 16:57:50 +10:00
Kefu Chai
e33e3a931d ceph.spec,install-deps: use golang-github-prometheus for promtools
instead of installing docker for using promtools, install
golang-github-prometheus.

Signed-off-by: Aashish Sharma <aasharma@redhat.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-22 14:13:17 +08:00
Kefu Chai
939b147a55 install-deps.sh: remove existing ceph-libboost of different version
we install different versions of precompiled ceph-libboost packages
for different branches when building and testing them on ubuntu test
nodes. for instance,

- nautilus: v1.72
- octopus, pacific: v1.73

they share the same set of test nodes. and these ceph-libboost packages
conflict with each other, because they install files to the same places.

in order to avoid the confliction, we should uninstall existing packages
before installing a different version of ceph-libboost packages.

ceph-libboost${version}-dev is a package providing the shared headers of
boost library, so, in this change we check if it is installed before
returning or removing the existing packages.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-20 13:06:08 +08:00
Kefu Chai
f381aa8bf0 test: run promtool test without docker on ubuntu/focal
before this change, we use docker for running promtools offered by
a docker image, but this is not efficient, and quite a few developers
do not want to use docker for running "make check". this change was
introduced by #39246, the reason was that, in Ceph's CI process, we
are using Ubuntu/Bionic for running "make check" jobs, but prometheus
packaged by Bionic does not offer the "test rules" command. so, to
address problem, we are using "dnanexus/promtool:2.9.2" docker image
for verifying monitoring/prometheus/alerts/test_alerts.yml.

after this change, we use prometheus packaged by debian derivatives
instead of pulling a docker image.

* debian/control: add prometheus as a "make check" dependency
* install-deps.sh: partially revert
  53a5816ded, as we don't need to
  pull docker or start docker service for using promtool anymore.
* cmake: check if promtool is capable of running "test rules"
  command, bail out if it is not.

see also: https://tracker.ceph.com/issues/49653

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-19 20:35:51 +08:00
Kefu Chai
1cc6174a3a install-deps.sh: install boost 1.75 on focal
we bump boost on regular basis. let's take the opportunity of moving to
focal to use boost v1.75.

v1.73 was used before this change. since both boost 1.75 and boost 1.73
install some files at the same places, we need to remove boost 1.73
before installing boost 1.75.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-19 20:35:51 +08:00
Kefu Chai
f75a36fe9a install-deps.sh: install libzbd on focal
WITH_ZBD is enabled for testing the build of zbd bluestore backend, and
we plan to migrate to Ubuntu/Focal for testing "make check", so need to
install libzbd when the distro version is focal.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-03-19 20:35:51 +08:00
Aashish Sharma
53a5816ded mgr/dashboard:test prometheus rules through promtool
This PR intends to add unit testing for prometheus rules using promtool. To run the tests run 'run-promtool-unittests.sh' file.

Fixes: https://tracker.ceph.com/issues/45415
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
2021-03-08 10:16:22 +05:30
Kefu Chai
3146c6160d rpm,install-dep.sh,cmake: build cephfs java binding
java packaging tools are now offered by "javapackages-tools" module in
el8. so let's re-enable it. this change partially reverts
dd133840b9

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-02-18 12:18:38 +08:00
Sebastian Wagner
f171237378 install-deps: Cope with nonexistent /etc/apt/sources.list.d/ceph-libboost1.72.list
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2021-02-15 11:42:03 +01:00
Kefu Chai
af43300146 install-deps.sh: set codename when installing libzbd
this was an oversight in e7e3b86762

also use updated build with sha1 of
1fadde94b08fab574b17637c2bebd2b1e7f9127b, the older version has an issue
where both libzbd and libzbd-dev packaged .pc file with the same path,
so they conflicted with each other. the new version addressed this
issue.

and install libzbd-dev instead of libzbd and libzbd-dev, as the package
name of the former could change if its so version is bumped, so use the
*-dev package is a safer choice from the perspective of testing the
dev build.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-01-26 18:45:09 +08:00
Kefu Chai
e7e3b86762 install-deps.sh: install libzbd-dev when WITH_ZBD is set
to avoid zbd backend bitrot, and for build test it in our "make check"
builds.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-01-25 14:13:15 +08:00
Kefu Chai
cb471023d7 install-deps.sh: do not use deb.rug.nl as a mirror anymore
seems it does not mirror bionic packages for ubuntu-toolchain-r PPA repo anymore.
see http://deb.rug.nl/ppa/mirror/ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/dists/

without this change, `sudo apt-get update` fails like:

Err:5 http://deb.rug.nl/ppa/mirror/ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic Release
  404  Not Found [IP: 129.125.36.99 80]
...

which fails the build which runs install-deps.sh, like:

Build step 'Execute shell' marked build as failure

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-12-28 08:18:32 +08:00
Kefu Chai
594fc8c89c install-deps.sh: do not install nlohmann-json{3}?-dev
"mk-build-deps --install" should be able to take care of this.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-12-17 19:05:04 +08:00
Kefu Chai
99f6644e4f install-deps.sh: do not install libboost-all-dev for old distros
ubuntu disco and ubuntu focal do not ship libboost 1.72 and up, and
we depend on libboost 1.72 or up, so it does not help to install
liboost 1.67 or libboost 1.71 anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-12-17 19:05:04 +08:00
Changcheng Liu
5e193e2bfe install-deps.sh: install debian package with proper right
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2020-12-17 11:13:35 +08:00
Deepika Upadhyay
29a932c292 install-deps.sh: add with_jaeger options for installing it's dependencies
* if WITH_JAEGER flag is specified, install-deps should mangle and update
  debian/control + ceph.spec the way we do for adding crimson dependencies
  with WITH_SEASTAR flag.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-12-16 18:17:01 +05:30
Josh Durgin
8a74a937dd
Merge pull request #31358 from ideepika/wip-jaegertracing-in-ceph
jaegertracing build/ops integration

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2020-12-15 16:29:26 -08:00
Deepika Upadhyay
4b69d3a184 jaeger, build/op: add jaeger and it's dependencies as submodules
* This commit introduces Jaegertracing library as package libjaeger,
  pickwhich would be consumed by other ceph pacakges such as ceph-common0

* adds the following dependencies, which would be build from source
  using ExternalProjectHelper.cmake +IncludeJaeger.cmake +
  Build<package>.cmake scripts:

  jaegertracing: v0.6.0 [added as a submodule]
  opentracing: v1.6.0 [added as a submodule]
  thrift: 0.13.0 [added as a submodule]
  yaml-cpp: 0.6.0
  json(optional)

* updates Boost to be installed instead of being build only, because
  jaegertracing them during their build process.

* ceph.spec.in: introduces a default enabled jaeger packaging option,
  which could be disabled using --without-jaeger flag during rpmbuild

* note: libjaeger package if enabled will be a dependency on ceph-common, ceph-mon, rgw_common and transitively will be a dependency for modules that have them as  a dependency.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-12-11 07:55:46 +00:00
Kefu Chai
28ba547c19 install-deps.sh: do not use gcc-toolset-9 from copr
since both CentOS and RHEL now include the updated
gcc-toolset-9-gcc-9.2.1-2.3.el8.

see also https://bugzilla.redhat.com/show_bug.cgi?id=1853900

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-12-10 18:50:45 +08:00
Brad Hubbard
7a68845579 install-deps.sh: Make powertools repo case insensitive
It looks like CentOS 8.3 will see all repos converted to lower case and
this has been pre-empted in the CentOS stream repos so we need to be
able to enable a repo called 'PowerTools' or 'powertools'

See https://git.centos.org/rpms/centos-repos/c/b759b17

Fixes: https://tracker.ceph.com/issues/48174

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2020-11-11 08:28:38 +10:00
Changcheng Liu
497b4d6f72 cmake: remove yasm since it's been replaced by nasm
Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2020-10-29 12:36:20 +08:00
Changcheng Liu
a944232ad4 install-deps.sh: install nasm for isa-l library
nasm support build isa-l:AVX512 algorithm implementation while yasm
doens't support it. Install nasm assembler to build isa-l
refer to: https://github.com/yasm/yasm/issues/101

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
2020-10-29 12:35:55 +08:00
Kefu Chai
6e673cad6d install-deps.sh: install libzbd-devel on RHEL/CentOS8 on demand
just like WITH_SEASTAR, WITH_ZBD is passed to install-deps.sh as an env
var, and it's disabled by default, as libzbd-devel is not yet packaged
in any distro supported by this script. we packaged and uploaded it
to http://apt-mirror.front.sepia.ceph.com/lab-extras/8/ for build test
the libzbd bluestore backend. so "with_zbd" is always false on non-el8
distros. and should only be enabled for upstream "make check" test.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-09-17 14:45:11 +08:00
Kefu Chai
c0802c98c4 alpine: remove stale Alpine build recipe
alpine build recipe is stale and does not work with the latest Ceph,
also the APKBUILD for Ceph can be found at alphine's aports repo, see
https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/ceph.

so instead keeping a stale version, let's drop it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-08-18 14:23:50 +08:00
Kefu Chai
10086983d9 install-deps.sh: add tchaikov's copr repo for crimson build on el8
we need it before the updated version of gcc-toolset9 addressing
https://bugzilla.redhat.com/show_bug.cgi?id=1853900 is available in
RHEL8/CentOS8.

see https://copr.fedorainfracloud.org/coprs/tchaikov/gcc-toolset-9

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-08-15 17:43:40 +08:00
Kefu Chai
1169dee259
Merge pull request #35787 from tchaikov/wip-46208
install-deps,cmake: use boost v1.73

Reviewed-By: Josh Durgin <jdurgin@redhat.com>
2020-06-28 21:19:44 +08:00
Kefu Chai
a0c91f940b install-deps.sh: use ceph-libboost1.73
Fixes: https://tracker.ceph.com/issues/46208
Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-26 17:20:05 +08:00
Kefu Chai
2d8da82b23 install-deps.sh: always use python3-sphinx to build the docs
python-sphinx creates a symlink pointing ../share/sphinx/scripts/python2/sphinx-build
to /usr/bin/sphinx-build even if python3-sphinx is already installed.
in that case, if python-sphinx is installed after python3-sphinx,
sphinx-build is in python2. and it breaks the build of master, as we are
using python3 syntax in conf.py since
e9e17b9cef.

and we are still using python2 as well as "python-sphinx" when building nautilus,
so if a build slave happen to compile nautilus before it is scheduled to
build master or a wip- branch, the doc build fails.

in this change, python-sphinx is uninstalled, if /usr/bin/sphinx-build
is found to be written in python2.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-25 19:59:41 +08:00
Kefu Chai
c70415b897 install-deps.sh: always use dnf on RHEL/CentOS
as we don't build master on el7 anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-25 19:59:41 +08:00
Kefu Chai
95f6f61534 install-deps.sh: drop bits enabling DTS repo
since GCC offered by RHEL8/CentOS8 is able to compile ceph, there is no
need to add repos providing devtoolset anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-25 19:59:41 +08:00
Deepika Upadhyay
66e81b8b08 install-deps.sh: drop devtoolset(DTS) check for centos
we needed DTS for ensuring centos 7 had decent GCC version, since we won't be
supporting el7 anymore this check becomes outdated.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2020-06-23 16:35:37 +05:30
Kefu Chai
e42f308782
Merge pull request #35569 from sungjunyoung/master
install_deps.sh: Add debian based elementary os

Reviewed-by: Kefu Chai <kchai@redhat.com>
2020-06-20 21:27:06 +08:00
Kefu Chai
55b8707097 install-deps.sh: do not enable unavailable repos
should be specific when enabling codeready-builder repos, there is
chance that some repos are just not available, while the required one
is. for instance, "codeready-builder-for-rhel-8-x86_64-eus-debug-rpms"
might not be available. and in that case, `install-deps.sh` just fails.

so in this change, only the required one is enabled. see also
https://fedoraproject.org/wiki/EPEL

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-17 16:03:04 +08:00
Junyoung, Sung
3e7495d863 install_deps.sh: Add debian based elementary os
Signed-off-by: Junyoung, Sung <junyoung.sung@navercorp.com>
2020-06-15 21:10:45 +09:00
Kefu Chai
030bce643f install-deps.sh: drop ktdreyer/ceph-el8 copr repo
as all python3-cherrypy and its deps are included by EPEL8 now

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-06-15 01:09:07 +08:00
Kefu Chai
e69ec07c71 install-deps.sh: remove the workaround to bootstrap a new venv
el7 now ships python36-virtualenv-15.1.0-4 which contains the fix of
https://github.com/pypa/virtualenv/issues/463

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-03-12 14:52:13 +08:00
Kefu Chai
1f8433f33c install-deps.sh: install additional repo for RHEL8
these home-brew repos are shared by CentOS8 and RHEL8

Signed-off-by: Dan Mick <dan.mick@redhat.com>
2020-03-12 14:52:13 +08:00
Kefu Chai
25b47150f7 install-deps.sh: install rhel-7-server-optional-rpms on el7 only
RHEL8 uses appstream and supplementary repos for those optional-rpms.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-03-12 14:36:01 +08:00
Brad Hubbard
8ee9f47b9b install-deps.sh: Actually set gpgcheck to false
The current command appears to do nothing.

Fixes: https://tracker.ceph.com/issues/44344

Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2020-02-28 12:20:18 +10:00
Kefu Chai
915fe2a7cb install-deps.sh: pass "-y" to "dnf copr enable"
otherwise the copr repo won't be enabled. and dnf will bail out with
following message:

Do you really want to enable copr.fedorainfracloud.org/ktdreyer/ceph-el8? [y/N]: Error: Safe and good
answer. Exiting.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-26 15:07:53 +08:00
Kefu Chai
f91adafa4b install-deps.sh: use "apt" for checking install status
as "dpkg -s <package-name>" always returns 0 even if the <package> is
removed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-24 01:22:07 +08:00
Kefu Chai
d560af7d5c install-deps.sh: install boost-1.72 for bionic
and uninstall boost-1.67 before installing boost-1.72

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-23 15:21:47 +08:00
Kefu Chai
a6f4234b04 install-deps.sh: drop trusty and xenial support
since we only build on bionic on ubuntu distros, there is no need
to build on trusty and xenial anymore.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-23 00:02:17 +08:00
Kefu Chai
5c990ddd8e install-deps.sh: do not echo version of git
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-19 11:52:56 +08:00
Kefu Chai
e06b7bdd4f install-deps.sh: silence popd and pushd
otherwise they will echo the pushed/popped directory

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-19 11:52:56 +08:00
Kefu Chai
5d4c2c71bd install-deps.sh: revert a5a44cf4
we don't prepare wheels for python2 anymore, and we don't test for
python2. so no need to test for python2

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-19 11:52:56 +08:00
Kefu Chai
7fec5f7a67 install-deps.sh: stop preparing wheels for python2
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-19 11:52:56 +08:00
Kefu Chai
7f6e30d628 install-deps.sh: add ken's copr repo for el8 build
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-12-18 21:57:38 +08:00
Kefu Chai
6b009b49f2
Merge pull request #31144 from badone/wip-use-dnf-on-rhel-or-centos-8
install-deps.sh: Use dnf for rhel/centos 8

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-12-17 12:03:54 +08:00
Brad Hubbard
6065050022 install-deps.sh: Use dnf for rhel/centos 8
Also install the correct dnf-utils package rather than yum-utils.

Fixes: https://tracker.ceph.com/issues/42504

Co-Authored-By: Kefu Chai <tchaikov@gmail.com>
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2019-12-13 14:22:02 +10:00
Nathan Cutler
a5a44cf42e install-deps.sh: install python2-{virtualenv,devel} on SUSE if needed
Recent versions of openSUSE are fully Python 3 systems, but Python 2 can still
be installed on them. When Python 2 *and* Python 3 are installed, tox will try
to run unit tests ("make check" tests) on both. But the spec-file-based
mechanism used by install-deps.sh for determining "make check" dependencies only
installs python3-virtualenv and python3-devel.

Fixes: https://tracker.ceph.com/issues/23981
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-12-12 13:02:54 +01:00
Nathan Cutler
6378fa45ac rpm: add rpm-build to SUSE-specific make check deps
The binary /usr/bin/rpmspec was recently moved to rpm-build, breaking
install-deps.sh on openSUSE Tumbleweed. The package is not strictly
needed for SLE-15-SP* and openSUSE Leap 15.*, but it doesn't hurt to
have it, and will future-proof these distros from this regression.

Putting the dependency in the spec file does not address the issue,
because /usr/bin/rpmspec must be available before install-deps.sh runs it to
determine the dependencies, but it's nice to have it explicitly listed there,
since it *is* a dependency of "make check" on SUSE distros.

SUSE versions < 15 are of no interest in master/octopus+.

Fixes: https://tracker.ceph.com/issues/42612
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-12-10 18:31:16 +01:00
Kefu Chai
06a004b932 install-deps.sh: remove the cleanup for kitware repo
it was used for removing the kitware repo, and in
7265b55d09, we switched to a rebuilt
version hosted in chacra, and it was more than two months ago,
presumably, none builder has kitware repo anymore. so, let's remove
the cleanup code.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-11-14 00:12:16 +08:00
Kefu Chai
edc93babf7 install-deps.sh: install binutils 2.28 for xenial
ld 2.26 segment faults when linking librados.so in
https://github.com/ceph/ceph/pull/16715 .

while ld 2.28 always survives.
binutils 2.28 is rebuilt and uploaded to chacra
binutils/master/7fa393306ed8b93019d225548474c0540b8928f7/ubuntu/xenial,

so let's use it instead.

the source deb package comes from
http://ppa.launchpad.net/jonathonf/binutils/ubuntu

i tried to use the binutils 2.30 source package from bionic,
but it has build dependency of dpkg-dev (>= 1.19.0.5) which cannot be
fulfilled on xenial. so without more changes, we cannot get
binutils 2.30 built on xenial using this source package.

Fixes: https://tracker.ceph.com/issues/42596
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-11-14 00:12:06 +08:00
Kefu Chai
32aaa44904 install-deps.sh: use sepia/lab-extra/8
some build dependencies are still missing in PowerTools and EPEL8, so we
built and pushed them to sepia so it can be used before they are ready
in these repos.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-10-30 12:55:52 +08:00
Kefu Chai
7a93cb2ba0 install-deps.sh: install python3-devel for python related rpm macros
python3-devel depends on python-rpm-macros, which in turn depends on
python-srpm-macros. the latter offers `python3_pkgversion` macro, which
is necessary for prepare the build dependencies of rpm packages.

this change avoids the unnecessary `$yumdnf` calls, and to simplify the
code.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-10-10 11:00:52 +08:00
Kefu Chai
73ee20ea26
Merge pull request #30656 from tchaikov/wip-install-deps-for-el8
install-deps.sh: enable PowerTool repo for EL8

Reviewed-by: Neha Ojha <nojha@redhat.com>
2019-10-07 16:06:30 +08:00
Kefu Chai
d301137bb1 install-deps.sh: enable CRB/PowerTool repo for RHEL/CentOS 8
see also https://fedoraproject.org/wiki/EPEL

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-10-01 18:28:16 +08:00
Kefu Chai
80ec43792b install-deps.sh: only install python-srpm-macros for required macros
the reason why we need to install these macros is to solve the
egg-chicken problem -- to set `_python_buildid` and `python3_pkgversion`
so that we can prepare the build dependencies and install them. in which,
`_python_buildid` is defined using `python3_pkgversion`. this macro is
offered by python-srpm-macros.

the other macros, like `python3_sitelib` and `__python3` are offered by
`python3-rpm-macros`.

this change also avoid the issue if we install `*rpm-macros` on CentOS8:

Error:
 Problem: package R-rpm-macros-1.1.0-2.el8.noarch requires /usr/bin/Rscript, but none of the providers can be installed
  - package R-rpm-macros-1.1.0-2.el8.noarch requires R-core, but none of the providers can be installed
  - conflicting requests
  - nothing provides libRblas.so()(64bit) needed by R-core-3.6.1-1.el8.x86_64
  - nothing provides openblas-Rblas needed by R-core-3.6.1-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 22:20:35 +08:00
Kefu Chai
45a4173bcf install-deps: do not install if rpm already installed
there is chance that the system already have epel-release-latest-7.noarch.rpm
installed, in that case, install-deps.sh should not fail.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-27 11:07:30 +08:00
Nathan Cutler
49d740118f install-deps.sh: add EPEL repo for non-x86_64 archs as well
Fixes: https://tracker.ceph.com/issues/42023
Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2019-09-25 10:58:33 +02:00
Kefu Chai
e7287257ef
Merge pull request #30405 from p-se/wip-pna-ubuntu-disco-deps
install-deps.sh: add support for Ubuntu Disco Dingo

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-09-19 10:01:07 +08:00
Patrick Seidensal
95283a60de install-deps.sh: add support for Ubuntu Disco Dingo
Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
2019-09-17 08:35:34 +02:00
Kefu Chai
0b2be2b671 install-deps.sh: install python*-devel for python*rpm-macros
in 087ea813, we installed '*rpm-macros' for the macros, so we can have
access to the latest python packaging related macros for preparing the
build dependencies.

but we could run into https://bugs.centos.org/view.php?id=16379, if
we already have an old version of python-devel installed. as the newer
version of python-rpm-macros conflicts with it.

it was a chicken-and-egg problem, as we don't know the exact name of
*rpm-macros packages. that's why we chose to install all of them. but
we have to upgrade the existing python-devel package to resolve the
conflict. but the since there is no python3-devel in RHEL7/CentOS7,
what they have is python36-devel. so we have to hardwire the
`%{python3_pkgversion}` to "36" even before we have access to this
macro, and upgrade the python36-devel package beforehand. but this
renders installing the rpm-macro package less useful -- we intend to
use the macro offered by the package to figure out "36".

as a workaround, we pretend that we know the "main" version of python3
in current RHEL/CentOS. and always install python36-devel for
python-rpm-macros. as the former requires the latter.

once all python3*-devel on all builders are upgraded, we will be safe
to install '*rpm-macros' again without installing python36-devel first.
by then, we could revert this change, or continue installing
python36-devel until the distro bumps up the "main" python version to 3.7

Fixes: https://tracker.ceph.com/issues/41603
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-07 02:15:00 +08:00
Kefu Chai
dfa6c5fcba install-deps: revert 47d4351d
this change reverts 47d4351d3a

see also 33dfffc8

Fixes: https://tracker.ceph.com/issues/40646
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-04 09:17:13 +08:00
Kefu Chai
ff631a19b4 install-deps.sh: only prepare wheels for "make check"
* move `for_make_check` to the beginning of script, as FreeBSD will also
  use this variable
* extract `preload_wheels_for_tox()` function out to improve readability
* call `preload_wheels_for_tox()` only if `for_make_check` is true

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-08-27 17:53:28 +08:00
Kefu Chai
f3d3e37c7e
Merge pull request #29903 from tchaikov/wip-pip-download
install-deps.sh: download wheel using 'pip wheel'

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
2019-08-27 00:44:28 +08:00
Kefu Chai
3562504afd install-deps.sh: download wheel using 'pip wheel'
otherwise we will fail to install the build dependencies of
`lazy-object-proxy` from the wheelhouse. as `lazy-object-proxy` does not
add `setuptools_scm` in its `setup.py`, instead it lists
`setuptools_scm` in `setup.cfg` and `pyproject.toml` as a `build-system`
requires. but unfortunately, `pip download` only downloads the
install/run-time dependencies at this moment. and `lazy-object-proxy`
does not offer binary package for at least python2.7.

ideally, `pip download` should collects its dependencies like

Collecting setuptools_scm>=3.3.1 (from lazy-object-proxy->astroid<3,>=2.2.0->pylint->-r requirements-lint.txt (line 1))

so we need to use `pip wheel` do download build-time dependencies

see also https://github.com/pypa/pip/issues/6222

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-08-26 23:06:39 +08:00
Kefu Chai
5d6d770e2f install-deps.sh,deb,rpm: move python-saml deps into debian/control and ceph.spec.in
these dependencies are only used for building python-saml which is in
turn used for the SAML support. this feature is tested using
`test_sso.py` while performing dashboard tests. we do not package or
ship python-saml along with other Ceph packages. so let's move these
dependencies to the "make check" sections in ceph.spec.in and
debian/control for simplifying install-deps.sh.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-08-24 02:11:51 +08:00
Ernesto Puerta
1e07237d92
mgr/dashboard: clean-up tox and unit tests
Refactor CMake add_tox_test to automatically add py27 and/or py3 to
provided toxenvs.

Refactor tox.ini:
- Remove requirements-{py27,py3}.txt, as python release dependant
packages can be handled with PEP 508 syntax.
- Remove develepment dependencies from requirements.
- Move pycodestyle settings to separate section.
- Add flake8 check and other checkers (rst, naming, etc). Some of them
are commented out for future clean-ups (Ceph trackers have been opened)
- Pycodestyle removed, as flake8 is a wrapper for pycodestyle.
- Add instafail plugin to report failures immediately
- Add timeout plugin to limit max run time (sometimes test_tasks hangs)
- Remove unused dependencies (lru_cache, pluggy)

Test and code linting fixes:
- Unused imports
- Fixes to HACKING.rst

Doc:
- Update HACKING.rst

Add conftest.py to mock imported modules (rados, rbd, cephfs), and mock
also rados Error and OSError Exceptions.

Fixes: https://tracker.ceph.com/issues/40487
Fixes: https://tracker.ceph.com/issues/41152
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2019-08-16 19:17:27 +02:00
Kefu Chai
2db496017a
Merge pull request #29400 from wjwithagen/wjw-fix-do_freeBSD.sh
do_freebsd.sh: update build scripts to resemble Jenkins scripts

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-08-09 14:09:42 +08:00
Kefu Chai
7265b55d09
Merge pull request #29475 from tchaikov/wip-cmake3-for-xenial
install-deps.sh: use chacra for cmake repo

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
2019-08-06 08:15:19 +08:00
Kefu Chai
9f4b2be015
Merge pull request #29403 from rhcs-dashboard/wip-41013-master
install-deps.sh: remove failing error catching

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-08-05 18:07:39 +08:00
Kefu Chai
26a5d7e850 install-deps.sh: use chacra for cmake repo
two reasons:

- do not rely on kitware repo so we have better control of the
  cmake3: the `debian` directory is tracked by
  https://github.com/tchaikov/ceph-cmake
- chacra repo also offers aarch64 build of cmake3

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-08-04 13:08:48 +08:00
Ernesto Puerta
7f767ab48e
install-deps.sh: remove failing error catching
Fixes: https://tracker.ceph.com/issues/41013
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2019-08-02 21:26:40 +02:00
Kefu Chai
ddacfcc0e0 install-deps.sh: install cmake 3.10.2 and up on xenial
to enable us to build on xenial, install newer cmake.
cmake 3.10.2 is the version offered by bionic.

with this change, we can safely require cmake 3.10.2 in our cmake
script. as EPEL7 offers cmake 3.13

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-08-02 20:23:33 +08:00
Willem Jan Withagen
713e596073 build/FreeBSD: update build scripts to resemble Jenkins scripts
Copied from the jenkins:master build

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2019-07-30 16:56:01 +02:00
Kefu Chai
47d4351d3a ceph.spec.in,install-dep.sh: pin to gcc-c++-8.2.1
as an intermediate solution before
https://bugzilla.redhat.com/show_bug.cgi?id=1726630 gets fixed.

Fixes: https://tracker.ceph.com/issues/40646
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-07-05 23:59:21 +08:00
Kefu Chai
6e62f5f855 install-deps.sh: update ubuntu-toolchain-r mirrors
the removed two do not have GCC-9, but the newly added mirros do.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-08 00:14:54 +08:00
Kefu Chai
0e5ab6f95a install-deps.sh: use GCC-9 on bionic
two reasons

* GCC-9 features more checks. so let's use it!
* crimson targets the hardware + toolchain + kernel after 1+ years,
  so it would be great if we can compile and test crimson using
  the toolchain which is ubiquitous on most mainstream distos.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-08 00:14:54 +08:00
Kefu Chai
7f19bf39d6 install-deps.sh: populate WITH_SEASTAR in the same way as for_make_check
because `install-deps.sh` is executed using `source`, we have to pass
these options using env variables. but before this change, `WITH_SEASTAR` is used directly,
while `FOR_MAKE_CHECK` is checked and translated to a local variable
`for_make_check`. which, in my opinion, has better readability.

so, in this change, `WITH_SEASTAR` is translated to `with_seastar`
variable in `install-deps.sh`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-07 22:17:19 +08:00
Kefu Chai
4d363edc59 d/control,install-deps: use d/control for installing seastar deps
prepare for building ceph-crimson-osd deb package

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-06-06 18:06:43 +08:00
Thomas Johnson
329e6fcc0c install-deps.sh: Typo for krb5 on FreeBSD
The FreeBSD dependency install specifies devel/kbr5 instead of devel/krb5

Fixes: https://tracker.ceph.com/issues/40050
Signed-off-by: Thomas Johnson <NTmatter@gmail.com>
2019-05-28 21:44:17 +02:00
Kefu Chai
f52d69ea92 install-deps.sh: use gcc-8 on xenial and trusty
to be consistent with #27183 and https://github.com/ceph/ceph-build/pull/1286

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-05-14 22:39:48 +08:00
Kefu Chai
9b796a181a install-deps.sh: install libboost-test for seastar
see
5858fe30c1/cmake/SeastarDependencies.cmake (L58-L68)

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-05-08 08:22:27 +08:00
Jun He
95aff1e384 install-deps.sh: add option to skip prebuilt boost-* pkgs installation
Prebuilt boost-1.67 packages are only available for limited arch on Ubuntu
(x86_64 for bionic, x86_64 and arm64 for xenial). This will cause install
failure on missing platforms.
Add a new env variable to allow user to build and install from source
while the default option is to install pkgs from ceph repo.

Change-Id: I4259733dd40a638d1bd5d1578a64ecaaa6490121
Signed-off-by: Jun He <jun.he@arm.com>
2019-04-25 16:57:31 +08:00
Kefu Chai
087ea813a0 install-deps.sh: install '*rpm-macros'
so `yum-builddep` can have access to the latest macros for preparing the
build dependencies

Fixes: http://tracker.ceph.com/issues/39164
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-04-12 00:14:20 +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