despite that we are using clang in `run-make-check.sh`, `do_cmake.sh`
is still used by some workflows like jenkins' ceph-pr-api job.
now that we've migrated to C++20, we need to use GCC-11 or up for
building the tree. GCC-11 is installed from PPA repo in
`install-deps.sh`, but to avoid interfere with the build of older
branches which do not use GCC-11, as their builds might break if
we use GCC-11 for building them. we don't use the alternative machinary
to point gcc to gcc-11, see 8f342a32ce.
so, in this change, we try to use the newest GCC in system when
running `do_cmake.sh`.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
do_cmake.sh is called by src/script/run-make.sh in configure() function,
in src/script/run-make.sh, BOOST_J is also set if it is not set. so we
can drop the code setting BOOST_J in do_cmake.sh.
this helps to silence the cmake warning like:
CMake Warning:
Manually-specified variables were not used by the project:
BOOST_J
Signed-off-by: Kefu Chai <kchai@redhat.com>
Fedora-33 (rawhide) now has python-3.9.
Build breaks on Fedoa-33 with Traceback:
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find Python3: Found unsuitable version "3.9.0", but required is
exact version "3.8" (found /usr/bin/python3, found components: Interpreter
Development)
Fixes: https://tracker.ceph.com/issues/47971
Signed-off-by: Sunny Kumar <sunkumar@redhat.com>
do_cmake.sh forgets to check the arguments passed to it and ends up warning
about debug build even if a user specifies a release build.
Signed-off-by: Abutalib Aghayev <agayev@gmail.com>
Fedora-32 now has python-3.8.
Fedora-29 is EOL. All non-EOL versions of Fedora have python-3.7, except
Fedora-32
(Unclear to me why PYBUILD="3" isn't used, like Ubuntu and FreeBSD. That
would eliminate breakage when pyhon versions change in Rawhide.)
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
* drop WITH_PYTHON2 option
* print warning message if WITH_PYTHON3 is disabled
* drop MGR_PYTHON_VERSION option, as we don't support use different
python version for python binding and ceph-mgr embedded python
interpreter anymore. as before switching to python3-only build,
we can build python3 and python2 python bindings, and ceph-mgr
can use either of them. but after switching to python3-only
build, ceph-mgr has to use whatever python version used to
build python binding.
* move WITH_PYTHON3 option to $top_srcdir/CMakeLists.txt, as ceph-mgr
and python binding will share this option.
* hardware ${PYTHON_VERSION} to 3
* hardware ${Python${PYTHON_VERSION}_VERSION_MAJOR} to 3
* only build boost library with python3
* s/Python_EXECUTABLE/Python3_EXECUTABLE/
* update the build scripts and packagings accordingly
* rename all cython${PYTHON_VERSION}_* targets to cython_*
* update distutils_install_module() so it does not take python_version
parameter anymore.
Signed-off-by: Kefu Chai <kchai@redhat.com>
This patch adds a new env variables that users can set to define the
location of the checked out ceph git repo.
The documentation mentions having to go edit the script directly to
point to the ceph git directory if the build dir isn't in the
top directory of the checked out git repo. This patch changes the '..'
into an env variable, CEPH_GIT_DIR, that defaults to '..'. To make it
easy to script and change.
This allows someone to do things like:
export CEPH_GIT_DIR=~/git/ceph
./do_cmake.sh
or
CEPH_GIT_DIR=~/git/ceph ./do_cmake.sh
Which is much better then editing the script directly.
The README.md has been modified to mention this variable and also
includes a drive by to mention `make -j` for new contributors to
build ceph quicker.
Signed-off-by: Matthew Oliver <moliver@suse.com>
RHEL/CentOS 8 does not offer librabbitmq-devel, libibverbs-devel and
librdmacm-devel at this moment. so disable these features now.
Signed-off-by: Kefu Chai <kchai@redhat.com>
there is chance that a distro offer a newer python3 version than the
supported one, so we need to avoid using the latest python3 version by
specifying the supported python3
Signed-off-by: Kefu Chai <kchai@redhat.com>
Without this patch, "make check" fails on SUSE systems because
WITH_RADOS_AMQP_ENDPOINT defaults to "ON".
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Before this patch, run-make-check.sh was setting the cmake options for
py3 build based only on the absence of a python2 binary in the system.
This was not sufficiently deterministic, and it didn't help folks who
run do_cmake.sh directly.
With this patch, we explicitly force the py3 build in do_cmake.sh, for
those OS types/versions we know need it.
Fixes: https://tracker.ceph.com/issues/37330
Signed-off-by: Nathan Cutler <ncutler@suse.com>
"which" is not available on minimal systems, whereas "type" is a shell builtin,
so the chances of the command "just working" are greater with type than with
which.
In other parts of Ceph build/ops we have replaced "which" with "type" to good
effect.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
And that requires that the options need to be passed on completely
to the cmake program as well. Thus adding """'s around the option
argument with do_cmake.sh as well
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>