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>
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>
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>
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>
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>
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>
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>
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>
* 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>
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>
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>
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>
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>
ceph-libboost1.67 repo is setup to satisfy the libboost dependencies
used when building ceph. now it offers arm64 and amd64 builds for xenial.
* install-deps.sh: add ceph-libboost1.67 repo hosted on chacra if the
building host does not have any of the listed ceph-libboost1.67
packages installed
* run-make-check.sh: add "-DWITH_SYSTEM_BOOST=ON
-DBOOST_ROOT=/opt/ceph" if include/boost/config.hpp is found
under /opt/ceph
See-also: http://tracker.ceph.com/issues/25186
Signed-off-by: Kefu Chai <kchai@redhat.com>
awk uses some tests that the native FreeBSD awk does not support:
like: BEGIN{print 0 < 90}
And TESTDIR is not set when calling ceph-helpers from smoke.sh
So fix with keeping the archive in /tmp
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
Unfortunately the mapping between release number and codename (which is only
relevant for Debian and Ubuntu btw) is not available from /etc/os-release.
In that one respect, lsb_release was "better".
However, when I weigh the advantages of obtaining that mapping from an external
tool, with the (substantial) risk that the external dependency might cause
trouble on one or more supported distros (to say nothing of the non- or
semi-/pseudo-supported ones), against the work involved in maintaining a
hard-coded mapping (negligible), the needle on my scale immediately swings
toward eliminating the dependency.
Also, I see this commit as part of the longer-term effort to completely expunge
lsb_release from our codebase. See git log --grep lsb_release.
For another example of an external distro-detection tool (albeit one that was
included in Python 2) gone awry, see http://tracker.ceph.com/issues/18163.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
The $() form is preferable to `` because folks (like me) might be using
` as a keyboard shortcut to GNU Screen, causing havoc to ensue whenever
copy-pasting the ` character.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
* ceph.spec.in: c-ares-devel and fmt-devel are installed as
dependencies fo seastar.
* install-deps.sh: libfmt-dev is missing in xenial, so we only
install libc-ares-dev for ubuntu in install-deps.sh .
* cmake: build libfmt if it's not found.
Signed-off-by: Kefu Chai <kchai@redhat.com>
25d5122b55 introduced code into
install-deps.sh which was intended to set a variable "with_seastar" to the
string "true" or "false" depending on whether or not an environment
variable WITH_SEASTAR is defined.
As originally implemented, the conditional is always true, so with_seastar
is set to "true" unconditionally. Fix this by putting $WITH_SEASTAR in
double quotes.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
we are running into following error recently
gpg: requesting key BA9EF27F from hkp server keyserver.ubuntu.com
gpgkeys: key 1E9377A2BA9EF27F can't be retrieved
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
gpg: keyserver communications error: keyserver helper general error
gpg: keyserver communications error: unknown pubkey algorithm
gpg: keyserver receive failed: unknown pubkey algorithm
so use the local copy of the pubkey instead
Signed-off-by: Kefu Chai <kchai@redhat.com>
in some case, the $builddepcmd will failed without any "error:" output.
so we should check the exit status to handle it.
Signed-off-by: Yunchuan Wen <yunchuan.wen@kylin-cloud.com>
otherwise, if we update *requirements.txt, and the wheelhouse fails to
offer the newly added dependency, the setup-virtualenv.sh will fail the
build.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Node and npm are now being installed in a virtualenv, removing the need of
having it installed in the system or as a node dependency.
Now, if you want to use npm, you just need to activate the virtualenv created
on 'build/src/pybind/mgr/dashboard/node-env', and then you can execute the
same commands as you did before.
Signed-off-by: Tiago Melo <tmelo@suse.com>
If there is no /usr/bin/python2 we need to set %bcond_with python2.
Fixes: http://tracker.ceph.com/issues/22999
Signed-off-by: Nathan Cutler <ncutler@suse.com>
$- is "hB" if launched via command line, and it is "himBH" only when
we are actually *in* an interactive shell. so checking "test -t 1" is
what we want.
Signed-off-by: Kefu Chai <kchai@redhat.com>
because the stdout redirect is performed by current shell not `$SUDO
cat`, so $SUDO does not help here. use `$SUDO tee` instead, which is
able to read the stdin and write to the given file just as expected.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* add ubuntu-toolchain-r mirrors in case the ppa.launchpad.net is not
accessible
* add ppa repo manually, it's faster than installing
`software-properties-common` and then launch `add-apt-repository`
* hardwire $old to the gcc version shipped by the distro, simpler this
way.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* should install software-properties-common beforehand, otherwise
the `add-apt-repository` command will not be available.
* the update-alternative commandline were copied from ceph-build,
should remove the escape characters.
Signed-off-by: Kefu Chai <kchai@redhat.com>
please note, run-make-check.sh sources install-deps.sh here to import
the $PATH and other environmental variables, which could be changed by
the the DTS "enable" script.
Signed-off-by: Kefu Chai <kchai@redhat.com>
/bin/bash is a Linuxism. Other operating systems install bash to
different paths. Use /usr/bin/env in shebangs to find bash.
Signed-off-by: Alan Somers <asomers@gmail.com>
Add a set of new tests for the case when public_addr and public_bind_addr
are different for a mon. In order to test this properly I had to employ
port forwarding with socat. This helps simulate what would happen in a
environment like Kubernetes. socat is now a build dependency.
Also, moved jq_success to ceph-helpers.sh and refactored run_mon to enable
creating the mons without creating the rbd pool immediately.
Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
Oracle Linux Server is API/ABI compatible with RHEL/CentOS Linux distro.
Oracle VM Server is Xen based VM server. Which modern versions Dom0 is based on el6
Signed-off-by: Nikita Gerasimov <nikita.gerasimov@oracle.com>
Avoids this error on SLES systems:
> ./install-deps.sh
sles is unknown, dependencies will have to be installed manually.
Signed-off-by: Nitin A Kamble <Nitin.Kamble@Teradata.com>
The use of yum triggers a warning and reference to yum2dnf on Fedora >= 22.
Use either yum or dnf based on the Fedora version.
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
85a370e35f introduced the DISTRO variable whose
value was obtained by parsing /etc/os-release like this:
DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//")
This unfortunately picks up the double-quotes, so on a CentOS system DISTRO
will be equal to '"centos"'.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
This avoids initial distribution detection (before lsb_release is available)
based on the presence of a specific package manager. This caused an
issue with openSUSE Tumbleweed before since both zypper and apt-get are
available.
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
mk-build-deps is designed to handle installing build dependencies;
use that instead, so '|' indications are handled properly.
Signed-off-by: Dan Mick <dan.mick@redhat.com>