Commit Graph

161 Commits

Author SHA1 Message Date
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
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
Willem Jan Withagen
9e01aff8bf build: LLVM ld does not like the versioning scheme
There is a few essentail differences between the way versioning
and a version-map is interpreted for binutils ld and LLVM ld.
The easy way out for the time being is to use the one that works.

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2019-03-06 23:23:33 +01:00
Kefu Chai
818e1031d0 install-deps,do_freebsd: disable amqp support
per Willem's request.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-22 10:30:25 +08:00
Kefu Chai
9962c35abd install-deps.sh: do not install librabbitmq-dev manually
it will be installed by `mk-build-deps --install`.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-21 12:08:19 +08:00
Kefu Chai
6ca980beff
Merge pull request #26402 from tchaikov/wip-install-deps
install-deps.sh: selectively install dependencies

Reviewed-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
2019-02-21 11:59:10 +08:00
Matt Benjamin
fcb8149951
Merge pull request #25866 from yuvalif/add_amqp_push_endpoint_new
rgw/pubsub: add amqp push endpoint
2019-02-20 07:37:34 -05:00
Kefu Chai
69fe3e5aba install-deps.sh: selectively enable deps on rpm distros
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-17 02:27:07 +08:00
Kefu Chai
694495f621 install-deps.sh: selectively enable deps on deb distros
on debian derivatives, only enable required dependencies on demand.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-17 02:27:07 +08:00
Kefu Chai
4fd179654e install-deps.sh: extract munge_debian_control()
this function will uncomment necessary dependencies on demand.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-02-17 02:25:05 +08:00
Yuval Lifshitz
e2c7842f4e install rabbitmq for debian/ubuntu and xBSD
Signed-off-by: Yuval Lifshitz <yuvalif@yahoo.com>
2019-02-13 11:19:17 +02:00
Zack Cerza
a1a3e7960c install-deps.sh: Fixes for RHEL 7
Signed-off-by: Zack Cerza <zack@redhat.com>
2019-02-12 17:27:13 -07:00
Kefu Chai
8b55b47cc7 install-deps.sh: use latest setuptools
this change reverts "install-deps.sh: workaround setuptools' dependency on six"

This reverts commit 30ce5e5546.

tl;dr: this change addresses the failures of "make check" runs on arm64
builders when they try to build `mgr-dashboard-test-venv` target.

long story: without this change, we will fail to pull in
setuptools >= 36, and as a result pip will fail to import
`setuptools.build_meta` in `pip/_vendor/pep517/_in_process.py`. and will
a `BackendUnavailable` exception thrown by `_call_hook()` in
`pip/_vendor/pep517/wrappers.py`. since the issue addressed by 30ce5e55
has been addressed since setuptools >= 36.0.1, we should be safe to
upgrade to the latest setuptools now.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-01-27 01:33:10 +08:00
Willem Jan Withagen
4d04ce251a build: Add Kerberos requirement for FreeBSD
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2018-12-24 10:52:58 +01:00
Kefu Chai
aa2b9e9a64 install-deps.sh: skip unavailable repos
as centos-sclo-rh-source leads us to 404 at this moment. and we are not
using the source repo for building ceph. so we can just skip any
unavailable repo.

Fixes: http://tracker.ceph.com/issues/37707
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2018-12-19 17:06:35 +08:00
Willem Jan Withagen
0d13a1b1df install-deps.sh: Update python requirements for FreeBSD
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2018-11-27 01:41:33 +01:00
Nathan Cutler
3fd4629662
Merge pull request #25181 from smithfarm/wip-37301
build/ops: rpm: stop install-deps.sh clobbering spec file Python build setting

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Lenz Grimmer <lgrimmer@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Tim Serong <tserong@suse.com>
2018-11-22 10:12:09 +01:00
Brad Hubbard
f39d9b7d1f install-deps.sh: Remove CR repo
Remove the continuous release repos for CentOS and Virtuozzo 7 as they
should no longer be needed since http://tracker.ceph.com/issues/13997 is
no longer relevant and the newer versions of selinux packages pulled in
by the build system are causing problems for systems without CR repos
enabled.

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

Signed-off-by: Alfredo Deza <adeza@redhat.com>
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
2018-11-22 10:07:22 +10:00
Nathan Cutler
7d4916618c build/ops: rpm: stop install-deps.sh clobbering spec file Python build setting
Fedora 29 still ships a Python 2 binary, but some of Ceph's build
dependencies are only available in py3 versions there. In other
words, from F29 on, it is no longer possible to do a py2 Ceph build
on Fedora, even if a python2 binary exists on the system.

If that were not enough, the Python 2 that ships with Fedora 29 is
linked against a non-compatible version of OpenSSL.

Before this commit, install-deps.sh was overriding the spec file's
Python build setting based on the presence or absence of a python2
binary. As the bug cited below indicates, this was not a good idea.

It's better for the spec file to be explicit about which OS versions
are py2 and which are py3, and just stick to that.

Fixes: http://tracker.ceph.com/issues/37301
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2018-11-20 15:00:48 +01:00
Kefu Chai
98d7741579 install-deps.sh: install prebuilt libboost dependencies for bionic also
* extract boost install function into a helper, so we don't need to
  repeat it when adding support for new distros.
* install ceph-libboost-* for bionic build also. we check for the
  existence in run-make-check.sh, so there is no need to update
  the build script elsewhere.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-11-20 13:09:53 +08:00
Changcheng Liu
ab7344e617 install-deps.sh: correct gcc version info as major.minor.patch
On ubuntu 18.04, "gcc -dumpversion" output "7", it result in
that below check will return false:
    dpkg --compare-versions 7 ge 7.0
Then, this script will install other gcc.

Actully, the full gcc version "gcc -dumpfullversion" output is
"7.3.0", than below check will turn true:
    dpkg --compare-version 7.3.0 ge 7.0
So, there's no need to install other gcc.

In case of hitting error on ubuntu16.04, use below parameter:
   gcc -dumpfullversion -dumpversion

Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>
2018-11-20 12:31:42 +08:00
Kefu Chai
c8a89df744 install-deps.sh: install libtool-ltdl-devel for building python-saml
python-saml depends on dm.xmlsec.binding. which links against ltdl. so
without libtool-ltdl-devel, we will have

/opt/rh/devtoolset-7/root/usr/libexec/gcc/aarch64-redhat-linux/7/ld:
cannot find -lltdl

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-11-13 15:28:45 +08:00
Kefu Chai
95386752ab install-deps: install setuptools before upgrading virtualenv
this should address the failures when running install-deps.sh, like

Downloading/unpacking virtualenv
  Running setup.py egg_info for package virtualenv
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown
distribution option: 'python_requires'
      warnings.warn(msg)
    error in virtualenv setup command: 'extras_require' must be a
dictionary whose values are strings or lists of strings containing valid
project/version requirement specifiers.
    Complete output from command python setup.py egg_info:
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown
distribution option: 'python_requires'

  warnings.warn(msg)

error in virtualenv setup command: 'extras_require' must be a dictionary
whose values are strings or lists of strings containing valid
project/version requirement specifiers.

this only happens on very old virtualenv shipped with RHEL7.4

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-11-10 13:47:13 -08:00
Ricardo Marques
04f4d5053e mgr/dashboard: SAML 2.0 support
Fixes: https://tracker.ceph.com/issues/24268

Signed-off-by: Ricardo Dias <rdias@suse.com>
Signed-off-by: Ricardo Marques <rimarques@suse.com>
2018-11-08 15:27:37 +00:00
Sebastian Wagner
d8de543b7e install-deps.sh: dashboard frontend needs git
Running `npm install` for the dashboard pulls dependenies with git.
Under some setups, git was not installed when building the frontend.

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2018-10-11 14:20:52 +02:00
Kefu Chai
3911a7c7d0 install-deps: do not specify unknown options
per apt.conf(5), and
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550564,
"Acquire::Translation" is not documented and will be deprecated. it
would be better to use "Acquire::Languages" solely. and it's consistent
with https://github.com/ceph/ceph-build/pull/1137 .

Signed-off-by: Kefu Chai <kchai@redhat.com>
2018-09-28 11:52:39 +08:00
Kefu Chai
f46523e464
Merge pull request #23955 from wjwithagen/wjw-fix-ceph-helpers.sh
test: Start using GNU awk and fix archiving directory

Reviewed-by: Kefu Chai <kchai@redhat.com>
2018-09-17 15:44:06 +08:00