Bug #16787
Ceph 10.2.2 handles --prefix and --sbindir configure options poorly
0%
Description
Ceph v10.2.2 with configure options --prefix='' --sbindir=/bin still installs files into "/usr/bin", "/usr/lib", and "/usr/sbin".
$ find ../installed/pkgs/ceph-10.2.2/usr/ | sed 's@^\.\./installed/pkgs/ceph-10\.2\.2@@' /usr/ /usr/sbin /usr/sbin/ceph-disk /usr/bin /usr/bin/ceph-detect-init /usr/lib /usr/lib/python2.7 /usr/lib/python2.7/site-packages /usr/lib/python2.7/site-packages/cephfs.so /usr/lib/python2.7/site-packages/rbd.so /usr/lib/python2.7/site-packages/ceph_detect_init /usr/lib/python2.7/site-packages/ceph_detect_init/__init__.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/exc.py /usr/lib/python2.7/site-packages/ceph_detect_init/debian /usr/lib/python2.7/site-packages/ceph_detect_init/debian/__init__.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/debian/__init__.py /usr/lib/python2.7/site-packages/ceph_detect_init/centos /usr/lib/python2.7/site-packages/ceph_detect_init/centos/__init__.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/centos/__init__.py /usr/lib/python2.7/site-packages/ceph_detect_init/main.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/suse /usr/lib/python2.7/site-packages/ceph_detect_init/suse/__init__.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/suse/__init__.py /usr/lib/python2.7/site-packages/ceph_detect_init/__init__.py /usr/lib/python2.7/site-packages/ceph_detect_init/rhel /usr/lib/python2.7/site-packages/ceph_detect_init/rhel/__init__.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/rhel/__init__.py /usr/lib/python2.7/site-packages/ceph_detect_init/exc.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/main.py /usr/lib/python2.7/site-packages/ceph_detect_init/fedora /usr/lib/python2.7/site-packages/ceph_detect_init/fedora/__init__.pyc /usr/lib/python2.7/site-packages/ceph_detect_init/fedora/__init__.py /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info/top_level.txt /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info/dependency_links.txt /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info/PKG-INFO /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info/entry_points.txt /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info/SOURCES.txt /usr/lib/python2.7/site-packages/ceph_disk-1.0.0-py2.7.egg-info/requires.txt /usr/lib/python2.7/site-packages/ceph_disk /usr/lib/python2.7/site-packages/ceph_disk/__init__.pyc /usr/lib/python2.7/site-packages/ceph_disk/main.pyc /usr/lib/python2.7/site-packages/ceph_disk/__init__.py /usr/lib/python2.7/site-packages/ceph_disk/main.py /usr/lib/python2.7/site-packages/rados.so /usr/lib/python2.7/site-packages/cephfs-0-py2.7.egg-info /usr/lib/python2.7/site-packages/cephfs-0-py2.7.egg-info/top_level.txt /usr/lib/python2.7/site-packages/cephfs-0-py2.7.egg-info/dependency_links.txt /usr/lib/python2.7/site-packages/cephfs-0-py2.7.egg-info/PKG-INFO /usr/lib/python2.7/site-packages/cephfs-0-py2.7.egg-info/SOURCES.txt /usr/lib/python2.7/site-packages/rbd-0-py2.7.egg-info /usr/lib/python2.7/site-packages/rbd-0-py2.7.egg-info/top_level.txt /usr/lib/python2.7/site-packages/rbd-0-py2.7.egg-info/dependency_links.txt /usr/lib/python2.7/site-packages/rbd-0-py2.7.egg-info/PKG-INFO /usr/lib/python2.7/site-packages/rbd-0-py2.7.egg-info/SOURCES.txt /usr/lib/python2.7/site-packages/rados-0-py2.7.egg-info /usr/lib/python2.7/site-packages/rados-0-py2.7.egg-info/top_level.txt /usr/lib/python2.7/site-packages/rados-0-py2.7.egg-info/dependency_links.txt /usr/lib/python2.7/site-packages/rados-0-py2.7.egg-info/PKG-INFO /usr/lib/python2.7/site-packages/rados-0-py2.7.egg-info/SOURCES.txt /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info/top_level.txt /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info/dependency_links.txt /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info/PKG-INFO /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info/entry_points.txt /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info/SOURCES.txt /usr/lib/python2.7/site-packages/ceph_detect_init-1.0.1-py2.7.egg-info/requires.txt $
This mostly worked in Ceph v0.94.6 (mount.ceph and mount.fuse.ceph got installed into /sbin, but other things were all fine).
History
#1 Updated by Roy Keene over 7 years ago
This seems to be because of a check that if DESTDIR is present during install time "--prefix=/usr" is passed to the Python setup script, unless you are compiling on Debian (regardless of what distribution you are compiling for).
src/pybind/rados/Makefile.am:
13 rados-pybind-install-exec: ${srcdir}/ceph_ver.h 14 if test "$(DESTDIR)" ; then \ 15 if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \ 16 options=--install-layout=deb ; \ 17 else \ 18 options=--prefix=/usr ; \ 19 fi ; \ 20 root="--root=$(DESTDIR)" ; \ 21 else \ 22 options=--prefix=$(prefix) ; \ 23 fi ; \
This should be changed a lot to not be insane. I've opened a separate bug report for the check about what Linux distribution Ceph is being compiled on (if it is being compiled on Linux at all) being unrelated to the Linux distribution Ceph is being compiled for, but the check for DESTDIR overriding the prefix is likely causing most of this bug.
#2 Updated by Sage Weil almost 3 years ago
- Status changed from New to Closed