--single-version-externally-managed is used for packaging python eggs
to deb. so the metadata can be stored in the egg, and can be accessed
by user if necessary, see [1]. but this does not apply to users who
just want to "make install" without packaging Ceph.
the problem is, if we pass --single-version-externally-managed to
setup.py, we need to pass --record or --root also. otherwise setuptools
complains:
error: You must specify --record or --root when building system packages
so in this change, we choose not to pass
"--single-version-externally-managed", unless $DESTDIR is set.
both "ceph.spec.in" and "debian/rules" set $DESTDIR when running "make
install". so we can always check $DESTDIR to tell if current "make
install" is launched by the packaging script or not. this might not be
accurate, but good enough. assuming enduser does not use DESTDIR when
running plain "make install".
--
[1] https://wiki.debian.org/Python/FAQ#How_should_we_package_Python_eggs.3F
Signed-off-by: Kefu Chai <kchai@redhat.com>
The %bcond_with and %bcond_without macros are confusing to folks who
don't do a lot of RPM packaging work. Let's try to help these folks out!
Signed-off-by: Nathan Cutler <ncutler@suse.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>
and extract state transition out of repeat_handle_connect()
in this change, the connect/handle-connect loop is restructured, to
avoid ad-hoc state changes in helper functions. this pave the road to
explicit state transtion using named states.
also, exception is thrown instead in handle_connect_reply(), we should
not proceed in case of failures. and we need do error handling in the
named state in future.
currentl, `state` is set to `state_t::open` in `start_connect()` and
`start_accept()`, the next step is to set it in a named state.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* refs/pull/24844/head:
osd: drop PGBackend::Listener::get_epoch().
osd: massively switch to get_osdmap_epoch().
osd: switch the return type of PG::get_osdmap().
Reviewed-by: Sage Weil <sage@redhat.com>
* refs/pull/24867/head:
mon: compensate for not having STDLIB_MAP_SPLICING
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: João Eduardo Luís <joao@suse.de>
It is possible during `seastar::connect()`, the connection is marked
closed (when SocketConnection::socket is unavailable), then
`seastar::connect()` successfully returns a connected socket.
Signed-off-by: Yingxin <yingxin.cheng@intel.com>
This section was removed accidentally by
331a826a9f. It offers a helpful configuration
variant to deal with mgr failovers.
Signed-off-by: Jan Fajerski <jfajerski@suse.com>
mgr/dashboard: Show/Hide Grafana tabs according to user role
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Tiago Melo <tmelo@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
install-deps.sh: fix gcc detection and install pre-built libboost on bionic
Tested-by: Changcheng Liu <changcheng.liu@intel.com>
Reviewed-by: Changcheng Liu <changcheng.liu@intel.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>
* refs/pull/24874/head:
os/filestore: collect partition/device metadata from journal
os/filestore: include journal in get_devices result
Reviewed-by: Rick Chen <rick.chen@prophetstor.com>
Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
* refs/pull/25140/head:
mon: by default, do NOT warn about misplaced objects
mon: add mon_warn_on_misplaced option
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Reviewed-by: João Eduardo Luís <joao@suse.de>
e2e tests were always returning positive result, even when they failed.
Fixed problem with jq, where it was failing when it was not receiving a string.
Signed-off-by: Tiago Melo <tmelo@suse.com>