Project

General

Profile

Bug #16787

Ceph 10.2.2 handles --prefix and --sbindir configure options poorly

Added by Roy Keene about 5 years ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
build
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Regression:
Yes
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

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 about 5 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 5 months ago

  • Status changed from New to Closed

Also available in: Atom PDF