diff --git a/ceph.spec.in b/ceph.spec.in index 3a9824b7dde92..05f8936dfbe23 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -49,9 +49,11 @@ %endif %endif %endif -%if 0%{?suse_version} >= 1500 +%if 0%{?fedora} >= 29 || 0%{?suse_version} >= 1500 +# distros that need a py3 Ceph build %bcond_with python2 %else +# distros that need a py2 Ceph build %bcond_without python2 %endif %if 0%{without python2} diff --git a/install-deps.sh b/install-deps.sh index 94d84cfaab165..97b30eb796bca 100755 --- a/install-deps.sh +++ b/install-deps.sh @@ -24,31 +24,26 @@ export LC_ALL=C # the following is vulnerable to i18n ARCH=`uname -m` function munge_ceph_spec_in { + # http://rpm.org/user_doc/conditional_builds.html local OUTFILE=$1 sed -e 's/@//g' -e 's/%bcond_with make_check/%bcond_without make_check/g' < ceph.spec.in > $OUTFILE - if type python2 > /dev/null 2>&1 ; then - sed -i -e 's/%bcond_with python2/%bcond_without python2/g' $OUTFILE - else - sed -i -e 's/%bcond_without python2/%bcond_with python2/g' $OUTFILE - fi } -function ensure_decent_gcc_on_deb { +function ensure_decent_gcc_on_ubuntu { # point gcc to the one offered by g++-7 if the used one is not # new enough local old=$(gcc -dumpversion) local new=$1 + local codename=$2 if dpkg --compare-versions $old ge 7.0; then return fi - local dist=$(lsb_release --short --codename) - if [ ! -f /usr/bin/g++-${new} ]; then $SUDO tee /etc/apt/sources.list.d/ubuntu-toolchain-r.list < $control - backports="-t $(lsb_release -sc)-backports" + backports="-t $codename-backports" ;; esac @@ -204,30 +202,27 @@ else builddepcmd="dnf -y builddep --allowerasing" fi echo "Using $yumdnf to install dependencies" - if [ $(lsb_release -si) = CentOS -a $(uname -m) = aarch64 ]; then + if [ "$ID" = "centos" -a $(uname -m) = aarch64 ]; then $SUDO yum-config-manager --disable centos-sclo-sclo || true $SUDO yum-config-manager --disable centos-sclo-rh || true $SUDO yum remove centos-release-scl || true fi - - $SUDO $yumdnf install -y redhat-lsb-core - case $(lsb_release -si) in - Fedora) + case $ID in + fedora) if test $yumdnf = yum; then $SUDO $yumdnf install -y yum-utils fi ;; - CentOS|RedHatEnterpriseServer|VirtuozzoLinux) + centos|rhel|ol|virtuozzo) $SUDO yum install -y yum-utils - MAJOR_VERSION=$(lsb_release -rs | cut -f1 -d.) - if test $(lsb_release -si) = RedHatEnterpriseServer ; then - $SUDO yum-config-manager --enable rhel-$MAJOR_VERSION-server-optional-rpms + if test $ID = rhel ; then + $SUDO yum-config-manager --enable rhel-$VERSION_ID-server-optional-rpms fi - $SUDO yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/$MAJOR_VERSION/x86_64/ + $SUDO yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/$VERSION_ID/x86_64/ $SUDO yum install --nogpgcheck -y epel-release - $SUDO rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$MAJOR_VERSION + $SUDO rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$VERSION_ID $SUDO rm -f /etc/yum.repos.d/dl.fedoraproject.org* - if test $(lsb_release -si) = CentOS -a $MAJOR_VERSION = 7 ; then + if test $ID = centos -a $VERSION_ID = 7 ; then $SUDO yum-config-manager --enable cr case $(uname -m) in x86_64) @@ -241,10 +236,10 @@ else dts_ver=7 ;; esac - elif test $(lsb_release -si) = RedHatEnterpriseServer -a $MAJOR_VERSION = 7 ; then + elif test $ID = rhel -a $MAJOR_VERSION = 7 ; then $SUDO yum-config-manager --enable rhel-server-rhscl-7-rpms dts_ver=7 - elif test $(lsb_release -si) = VirtuozzoLinux -a $MAJOR_VERSION = 7 ; then + elif test $ID = virtuozzo -a $MAJOR_VERSION = 7 ; then $SUDO yum-config-manager --enable cr fi ;; @@ -259,7 +254,7 @@ else opensuse*|suse|sles) echo "Using zypper to install dependencies" zypp_install="zypper --gpg-auto-import-keys --non-interactive install --no-recommends" - $SUDO $zypp_install lsb-release systemd-rpm-macros + $SUDO $zypp_install systemd-rpm-macros munge_ceph_spec_in $DIR/ceph.spec $SUDO $zypp_install $(rpmspec -q --buildrequires $DIR/ceph.spec) || exit 1 ;;