scripts: add build_stx.sh to support StarlingX build 21/3421/1
authorJackie Huang <jackie.huang@windriver.com>
Fri, 6 Mar 2020 11:17:05 +0000 (19:17 +0800)
committerJackie Huang <jackie.huang@windriver.com>
Thu, 23 Apr 2020 05:43:21 +0000 (13:43 +0800)
* Add build_stx.sh to support StarlingX build.
  - This is based on the setup.sh from staging-stx
  - Add many improvements for CI and dev requirement

* Add meta-patches from staging-stx.

* Only BSP intel-corei7-64 is supported for now.

* There will be two builds:
  - stx build: for building all packages required by starlingX
  - anaconda build: for building an ISO image with anaconda
    installer and use kickstart method to install starlingX

Issue-ID: INF-19
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Change-Id: I3df6a06980c931a50a0eddc794e25b7fbd4a4f84

scripts/build_stx.sh [new file with mode: 0755]
scripts/configs/local-anaconda.conf [new file with mode: 0644]
scripts/configs/local-stx.conf [new file with mode: 0644]
scripts/meta-patches/src_stx/meta-cloud-services/0001-Workaround-and-fix-compile-and-dependency-problems.patch [new file with mode: 0644]
scripts/meta-patches/src_stx/meta-cloud-services/0002-Package-Upgrade-croniter-and-kombu.patch [new file with mode: 0644]
scripts/meta-patches/src_stx/meta-cloud-services/0003-fix-postgresql_openstack-PGDATA-install-error.patch [new file with mode: 0644]
scripts/meta-patches/src_stx/meta-cloud-services/0004-Ceilometer-compute-is-not-build-nor-installed.patch [new file with mode: 0644]
scripts/meta-patches/src_stx/meta-cloud-services/0005-Fix-postinstall-scriptlets-to-ontarget.patch [new file with mode: 0644]
scripts/meta-patches/src_stx/poky/0001-image-live.bbclass-work-around-for-large-image-size.patch [new file with mode: 0644]

diff --git a/scripts/build_stx.sh b/scripts/build_stx.sh
new file mode 100755 (executable)
index 0000000..b0d3fd6
--- /dev/null
@@ -0,0 +1,507 @@
+#!/bin/bash
+#
+# Copyright (C) 2019 Wind River Systems, Inc.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+# Ensure we fail the job if any steps fail.
+set -e -o pipefail
+
+#########################################################################
+# Variables
+#########################################################################
+
+# Only one bsp is supported now, there will be more in the future
+SUPPORTED_BSP="intel-corei7-64 "
+
+SRC_ORAN_BRANCH="master"
+SRC_STX_BRANCH="master"
+SRC_YP_BRANCH="warrior"
+
+SRC_ORAN_URL="https://gerrit.o-ran-sc.org/r/pti/rtp"
+
+SRC_YP_URL="\
+    git://git.yoctoproject.org/poky \
+    git://git.openembedded.org/meta-openembedded \
+    git://git.yoctoproject.org/meta-virtualization \
+    git://git.yoctoproject.org/meta-cloud-services \
+    git://git.yoctoproject.org/meta-security \
+    git://git.yoctoproject.org/meta-intel \
+    git://git.yoctoproject.org/meta-security \
+    git://git.yoctoproject.org/meta-selinux \
+    https://github.com/intel-iot-devkit/meta-iot-cloud \
+    git://git.openembedded.org/meta-python2 \
+    https://git.yoctoproject.org/git/meta-dpdk \
+    git://git.yoctoproject.org/meta-anaconda \
+"
+
+SUB_LAYER_META_OE="\
+    meta-oe \
+    meta-perl \
+    meta-python \
+    meta-networking \
+    meta-filesystems \
+    meta-webserver \
+    meta-initramfs \
+    meta-initramfs \
+    meta-gnome \
+"
+
+SUB_LAYER_META_CLOUD_SERVICES="meta-openstack"
+SUB_LAYER_META_SECURITY="meta-security-compliance"
+
+# For anaconda build
+SUB_LAYER_META_OE_ANACONDA="\
+    meta-oe \
+    meta-python \
+    meta-filesystems \
+    meta-initramfs \
+    meta-networking \
+    meta-gnome \
+"
+
+SCRIPTS_DIR=$(dirname $(readlink -f $0))
+TIMESTAMP=`date +"%Y%m%d_%H%M%S"`
+
+#########################################################################
+# Common Functions
+#########################################################################
+
+help_info () {
+cat << ENDHELP
+Usage:
+$(basename $0) [-w WORKSPACE_DIR] [-b BSP] [-n] [-h] [-r Yes|No] [-s] [-e EXTRA_CONF]
+where:
+    -w WORKSPACE_DIR is the path for the project
+    -b BPS is one of supported BSP: "${SUPPORTED_BSP}"
+       (default is intel-corei7-64 if not specified.)
+    -n dry-run only for bitbake
+    -h this help info
+    -e EXTRA_CONF is the pat for extra config file
+    -r whether to inherit rm_work (default is Yes)
+    -s whether to skip update the repo if already exists
+examples:
+./build_stx.sh
+./build_stx.sh -w workspace_1234 -r no -e /path/to/extra_local.conf
+ENDHELP
+}
+
+echo_step_start() {
+    [ -n "$1" ] && msg_step=$1
+    echo "#########################################################################################"
+    echo "## STEP START: ${msg_step}"
+    echo "#########################################################################################"
+}
+
+echo_step_end() {
+    [ -n "$1" ] && msg_step=$1
+    echo "#########################################################################################"
+    echo "## STEP END: ${msg_step}"
+    echo "#########################################################################################"
+    echo
+}
+
+echo_info () {
+    echo "INFO: $1"
+}
+
+echo_error () {
+    echo "ERROR: $1"
+}
+
+echo_cmd () {
+    echo
+    echo_info "$1"
+    echo "CMD: ${RUN_CMD}"
+}
+
+check_yn_rm_work () {
+    yn="$1"
+    case ${yn} in
+        [Yy]|[Yy]es)
+            RM_WORK="Yes"
+            ;;
+        [Nn]|[Nn]o)
+            RM_WORK="No"
+            ;;
+        *)
+            echo "Invalid arg for -r option."
+            help_info
+            exit 1
+            ;;
+    esac
+}
+
+check_valid_bsp () {
+    bsp="$1"
+    for b in ${SUPPORTED_BSP}; do
+        if [ "${bsp}" == "${b}" ]; then
+            BSP_VALID="${bsp}"
+            break
+        fi
+    done
+    if [ -z "${BSP_VALID}" ]; then
+        echo_error "${bsp} is not a supported BSP, the supported BSPs are: ${SUPPORTED_BSP}"
+        exit 1
+    fi
+}
+
+
+clone_update_repo () {
+    REPO_BRANCH=$1
+    REPO_URL=$2
+    REPO_NAME=$3
+
+    if [ -d ${REPO_NAME}/.git ]; then
+        if [ "${SKIP_UPDATE}" == "Yes" ]; then
+            echo_info "The repo ${REPO_NAME} exists, skip updating for the branch ${REPO_BRANCH}"
+        else
+            echo_info "The repo ${REPO_NAME} exists, updating for the branch ${REPO_BRANCH}"
+            cd ${REPO_NAME}
+            git checkout ${REPO_BRANCH}
+            git pull
+            cd -
+        fi
+    else
+        RUN_CMD="git clone --branch ${REPO_BRANCH} ${REPO_URL} ${REPO_NAME}"
+        echo_cmd "Cloning the source of repo '${REPO_NAME}':"
+        ${RUN_CMD}
+    fi
+}
+
+source_env () {
+    build_dir=$1
+    cd ${SRC_LAYER_DIR}/poky
+    set ${build_dir}
+    source ./oe-init-build-env ${build_dir}
+}
+
+#########################################################################
+# Parse cmd options
+#########################################################################
+
+DRYRUN=""
+EXTRA_CONF=""
+SKIP_UPDATE="No"
+RM_WORK="Yes"
+BSP="intel-corei7-64"
+
+while getopts "w:b:e:r:nsh" OPTION; do
+    case ${OPTION} in
+        w)
+            WORKSPACE=`readlink -f ${OPTARG}`
+            ;;
+        b)
+            check_valid_bsp ${OPTARG}
+            ;;
+        e)
+            EXTRA_CONF=`readlink -f ${OPTARG}`
+            ;;
+        n)
+            DRYRUN="-n"
+            ;;
+        s)
+            SKIP_UPDATE="Yes"
+            ;;
+        r)
+            check_yn_rm_work ${OPTARG}
+            ;;
+        h)
+            help_info
+            exit
+            ;;
+    esac
+done
+
+if [ -z ${WORKSPACE} ]; then
+    echo_info "No workspace specified, a directory 'workspace' will be created in current directory as the workspace"
+    WORKSPACE=`readlink -f workspace`
+fi
+
+if [ -n "${BSP_VALID}" ]; then
+    BSP="${BSP_VALID}"
+fi
+
+#########################################################################
+# Functions for each step
+#########################################################################
+SRC_LAYER_DIR=${WORKSPACE}/src_layers
+SRC_ORAN_DIR=${SRC_LAYER_DIR}/oran
+PRJ_BUILD_DIR=${WORKSPACE}/prj_oran_stx
+PRJ_BUILD_DIR_ANACONDA=${WORKSPACE}/prj_oran_stx_anaconda
+PRJ_SHARED_DIR=${WORKSPACE}/prj_shared
+PRJ_SHARED_DL_DIR=${WORKSPACE}/prj_shared/downloads
+PRJ_SHARED_SS_DIR=${WORKSPACE}/prj_shared/sstate-cache
+SRC_META_PATCHES=${SRC_ORAN_DIR}/rtp/scripts/meta-patches/src_stx
+SRC_CONFIGS=${SRC_ORAN_DIR}/rtp/scripts/configs
+IMG_STX=stx-image-aio
+IMG_ANACONDA=stx-image-aio-installer
+ISO_STX=${PRJ_BUILD_DIR}/tmp/deploy/images/${BSP}/${IMG_STX}-${BSP}.iso
+ISO_ANACONDA=${PRJ_BUILD_DIR_ANACONDA}/tmp-glibc/deploy/images/${BSP}/${IMG_ANACONDA}-${BSP}.iso
+
+prepare_workspace () {
+    msg_step="Create workspace for the build"
+    echo_step_start
+
+    mkdir -p ${PRJ_BUILD_DIR} ${SRC_ORAN_DIR} ${PRJ_BUILD_DIR_ANACONDA} ${PRJ_SHARED_DL_DIR} ${PRJ_SHARED_SS_DIR}
+
+    echo_info "The following directories are created in your workspace(${WORKSPACE}):"
+    echo_info "For all layers source: ${SRC_LAYER_DIR}"
+    echo_info "For StarlingX build project: ${PRJ_BUILD_DIR}"
+    echo_info "For anaconda (installer) build project: ${PRJ_BUILD_DIR_ANACONDA}"
+
+    echo_step_end
+}
+
+prepare_src () {
+    msg_step="Get the source code repos"
+    echo_step_start
+
+    # Clone the oran layer if it's not already cloned
+    # Check if the script is inside the repo
+    if cd ${SCRIPTS_DIR} && git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
+        CLONED_ORAN_REPO=`dirname ${SCRIPTS_DIR}`
+        echo_info "Use the cloned oran repo: ${CLONED_ORAN_REPO}"
+        mkdir -p ${SRC_ORAN_DIR}/rtp
+        cd ${SRC_ORAN_DIR}/rtp
+        rm -rf meta-oran meta-stx scripts
+        ln -sf ${CLONED_ORAN_REPO}/meta-oran meta-oran
+        ln -sf ${CLONED_ORAN_REPO}/meta-stx meta-stx
+        ln -sf ${CLONED_ORAN_REPO}/scripts scripts
+    else
+        echo_info "Cloning oran layer:"
+        cd ${SRC_ORAN_DIR}
+        clone_update_repo ${SRC_ORAN_BRANCH} ${SRC_ORAN_URL} rtp
+    fi
+
+    echo_info "Cloning or update Yocto layers:"
+
+    cd ${SRC_LAYER_DIR}
+    for layer_url in ${SRC_YP_URL}; do
+        layer_name=$(basename ${layer_url})
+        clone_update_repo ${SRC_YP_BRANCH} ${layer_url} ${layer_name}
+    done
+
+    echo_step_end
+
+    # Apply meta patches
+    for l in $(ls -1 ${SRC_META_PATCHES}); do
+        msg_step="Apply meta patches for ${l}"
+        echo_step_start
+        cd ${SRC_LAYER_DIR}/${l}
+
+        # backup current branch
+        local_branch=$(git rev-parse --abbrev-ref HEAD)
+        git branch -m "${local_branch}_${TIMESTAMP}"
+        git checkout ${local_branch}
+
+        for p in $(ls -1 ${SRC_META_PATCHES}/${l}); do
+            echo_info "Apllying patch: ${SRC_META_PATCHES}/${l}/${p}"
+            git am ${SRC_META_PATCHES}/${l}/${p}
+        done
+        echo_step_end
+    done
+}
+
+add_layer_stx_build () {
+    msg_step="Add required layers to the StarlingX build project"
+    echo_step_start
+
+    source_env ${PRJ_BUILD_DIR}
+    SRC_LAYERS=""
+    for layer_url in ${SRC_YP_URL}; do
+        layer_name=$(basename ${layer_url})
+        case ${layer_name} in
+        poky)
+            continue
+            ;;
+        meta-openembedded)
+            for sub_layer in ${SUB_LAYER_META_OE}; do
+                SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/${layer_name}/${sub_layer}"
+            done
+            ;;
+        meta-cloud-services)
+            SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/${layer_name}"
+            for sub_layer in ${SUB_LAYER_META_CLOUD_SERVICES}; do
+                SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/${layer_name}/${sub_layer}"
+            done
+            ;;
+        meta-security)
+            SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/${layer_name}"
+            for sub_layer in ${SUB_LAYER_META_SECURITY}; do
+                SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/${layer_name}/${sub_layer}"
+            done
+            ;;
+        *)
+            SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/${layer_name}"
+            ;;
+
+        esac
+    done
+
+    SRC_LAYERS="${SRC_LAYERS} ${SRC_ORAN_DIR}/rtp/meta-stx"
+
+    for src_layer in ${SRC_LAYERS}; do
+        RUN_CMD="bitbake-layers add-layer ${src_layer}"
+        echo_cmd "Add the ${src_layer} layer into the build project"
+        ${RUN_CMD}
+    done
+
+    echo_step_end
+}
+
+add_configs_stx_build () {
+    msg_step="Add extra configs into local.conf for StarlingX build"
+    echo_step_start
+
+    cd ${PRJ_BUILD_DIR}
+    echo_info "Adding the following extra configs into local.conf"
+    cat ${SRC_CONFIGS}/local-stx.conf | \
+        sed -e "s/@BSP@/${BSP}/" | tee -a conf/local.conf
+
+    echo "DL_DIR = '${PRJ_SHARED_DL_DIR}'" | tee -a conf/local.conf
+    echo "SSTATE_DIR = '${PRJ_SHARED_SS_DIR}'" | tee -a conf/local.conf
+
+    if [ "${RM_WORK}" == "Yes" ]; then
+        echo "INHERIT += 'rm_work'" | tee -a conf/local.conf
+    fi
+
+
+    if [ "${EXTRA_CONF}" != "" ] && [ -f "${EXTRA_CONF}" ]; then
+        cat ${EXTRA_CONF} | tee -a conf/local.conf
+    fi
+    echo_step_end
+}
+
+setup_stx_build () {
+    echo_step_start "Setup StarlingX build project"
+
+    add_layer_stx_build
+
+    cd ${PRJ_BUILD_DIR}
+    if ! grep -q 'Configs for StarlingX' conf/local.conf; then
+        add_configs_stx_build
+    else
+        echo_info "Nothing is added into local.conf"
+    fi
+
+    echo_step_end "Setup StarlingX build project"
+}
+
+build_stx_image () {
+    msg_step="Build StarlingX images"
+    echo_step_start
+
+    source_env ${PRJ_BUILD_DIR}
+
+    mkdir -p logs
+
+    RUN_CMD="bitbake ${DRYRUN} ${IMG_STX}"
+    echo_cmd "Build the ${IMG_STX} image"
+    bitbake ${DRYRUN} ${IMG_STX} 2>&1|tee logs/bitbake_${IMG_STX}_${TIMESTAMP}.log
+
+    echo_step_end
+
+    echo_info "Build succeeded, you can get the image in ${ISO_STX}"
+}
+
+add_layer_anaconda_build () {
+    msg_step="Add required layers to the anaconda (installer) build project"
+    echo_step_start
+
+    source_env ${PRJ_BUILD_DIR_ANACONDA}
+    SRC_LAYERS=""
+    for sub_layer in ${SUB_LAYER_META_OE_ANACONDA}; do
+        SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/meta-openembedded/${sub_layer}"
+    done
+    SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/meta-intel"
+    SRC_LAYERS="${SRC_LAYERS} ${SRC_LAYER_DIR}/meta-anaconda"
+    SRC_LAYERS="${SRC_LAYERS} ${SRC_ORAN_DIR}/rtp/meta-stx"
+
+    for src_layer in ${SRC_LAYERS}; do
+        RUN_CMD="bitbake-layers add-layer ${src_layer}"
+        echo_cmd "Add the ${src_layer} layer into the build project"
+        ${RUN_CMD}
+    done
+
+    echo_step_end
+}
+
+add_configs_anaconda_build () {
+    msg_step="Add extra configs into local.conf for anaconda (installer) build"
+    echo_step_start
+
+    cd ${PRJ_BUILD_DIR_ANACONDA}
+    echo_info "Adding the following extra configs into local.conf"
+    cat ${SRC_CONFIGS}/local-anaconda.conf | \
+        sed -e "s/@BSP@/${BSP}/" \
+            -e "s|@TARGET_BUILD@|${PRJ_BUILD_DIR}|" \
+            | tee -a conf/local.conf
+
+    echo "DL_DIR = '${PRJ_SHARED_DL_DIR}'" | tee -a conf/local.conf
+    echo "SSTATE_DIR = '${PRJ_SHARED_SS_DIR}'" | tee -a conf/local.conf
+
+    if [ "${RM_WORK}" == "Yes" ]; then
+        echo "INHERIT += 'rm_work'" | tee -a conf/local.conf
+    fi
+
+    if [ "${EXTRA_CONF}" != "" ] && [ -f "${EXTRA_CONF}" ]; then
+        cat ${EXTRA_CONF} | tee -a conf/local.conf
+    fi
+
+    echo_step_end
+}
+
+setup_anaconda_build () {
+    echo_step_start "Setup anaconda (installer) build project"
+
+    add_layer_anaconda_build
+
+    cd ${PRJ_BUILD_DIR_ANACONDA}
+    if ! grep -q 'Configs for anaconda' conf/local.conf; then
+        add_configs_anaconda_build
+    else
+        echo_info "Nothing is added into local.conf"
+    fi
+
+    echo_step_end "Setup anaconda build project"
+}
+
+build_anaconda_image () {
+    echo_step_start "Build anaconda (installer) images"
+    source_env ${PRJ_BUILD_DIR_ANACONDA}
+
+    mkdir -p logs
+
+    if [ -f ${ISO_ANACONDA} ]; then
+        bitbake ${DRYRUN} -c clean ${IMG_ANACONDA}
+    fi
+    RUN_CMD="bitbake ${DRYRUN} ${IMG_ANACONDA}"
+    echo_cmd "Build the ${IMG_ANACONDA} image"
+    bitbake ${DRYRUN} ${IMG_ANACONDA} 2>&1|tee logs/bitbake_${IMG_ANACONDA}_${TIMESTAMP}.log
+
+    echo_step_end
+
+    echo_info "Build succeeded, you can get the image in ${ISO_ANACONDA}"
+}
+
+#########################################################################
+# Main process
+#########################################################################
+
+prepare_workspace
+prepare_src
+setup_stx_build
+setup_anaconda_build
+build_stx_image
+build_anaconda_image
diff --git a/scripts/configs/local-anaconda.conf b/scripts/configs/local-anaconda.conf
new file mode 100644 (file)
index 0000000..f76695a
--- /dev/null
@@ -0,0 +1,40 @@
+########################
+# Configs for anaconda #
+########################
+
+DISTRO = "anaconda"
+MACHINE = "@BSP@"
+PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
+
+INSTALLER_TARGET_BUILD = "@TARGET_BUILD@"
+INSTALLER_TARGET_IMAGE = "stx-image-aio"
+
+REPO_EXCLUDE_PKG = "\
+    corei7_64/ceph-dbg-*.corei7_64.rpm \
+    corei7_64/mariadb-dbg-*.corei7_64.rpm \
+    corei7_64/qemu-dbg-*.corei7_64.rpm \
+    intel_corei7_64/dpdk-dbg-*.intel_corei7_64.rpm \
+    intel_corei7_64/openvswitch-dbg-*.intel_corei7_64.rpm \
+"
+
+IMAGE_OVERHEAD_FACTOR = "1.05"
+
+BBMASK += " \
+    /meta-stx/recipes-bsp \
+    /meta-stx/recipes-connectivity \
+    /meta-stx/recipes-containers \
+    /meta-stx/recipes-core/images/stx-image-aio.bb \
+    /meta-stx/recipes-core/stx-* \
+    /meta-stx/recipes-core/init* \
+    /meta-stx/recipes-daemons \
+    /meta-stx/recipes-dbs \
+    /meta-stx/recipes-devtools \
+    /meta-stx/recipes-extended \
+    /meta-stx/recipes-graphics \
+    /meta-stx/recipes-httpd \
+    /meta-stx/recipes-kernel \
+    /meta-stx/recipes-networking \
+    /meta-stx/recipes-security \
+    /meta-stx/recipes-support \
+    /meta-stx/recipes-upstream \
+"
diff --git a/scripts/configs/local-stx.conf b/scripts/configs/local-stx.conf
new file mode 100644 (file)
index 0000000..605c098
--- /dev/null
@@ -0,0 +1,21 @@
+#########################
+# Configs for StarlingX #
+#########################
+
+DISTRO = "poky-stx"
+MACHINE = "@BSP@"
+PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
+
+EXTRA_IMAGE_FEATURES = " \
+    debug-tweaks \
+    tools-sdk \
+    tools-debug \
+    package-management \
+"
+
+# For anaconda installer
+DISTRO_FEATURES_append = " anaconda-support"
+
+# For images
+IMAGE_FSTYPES += " tar.bz2 live"
+LABELS_LIVE = "install"
diff --git a/scripts/meta-patches/src_stx/meta-cloud-services/0001-Workaround-and-fix-compile-and-dependency-problems.patch b/scripts/meta-patches/src_stx/meta-cloud-services/0001-Workaround-and-fix-compile-and-dependency-problems.patch
new file mode 100644 (file)
index 0000000..19d435a
--- /dev/null
@@ -0,0 +1,1229 @@
+From 743a95f637e68916bcb8fdc82b9672a3b2fd3f6a Mon Sep 17 00:00:00 2001
+From: "Sar Ashki, Babak" <Babak.SarAshki@windriver.com>
+Date: Thu, 23 Jan 2020 14:00:56 -0800
+Subject: [PATCH 1/5] Workaround and fix compile and dependency problems.
+
+---
+ meta-openstack/recipes-devtools/python/python-barbican_git.bb   | 2 +-
+ .../recipes-devtools/python/python-barbicanclient_git.bb        | 2 +-
+ meta-openstack/recipes-devtools/python/python-castellan_git.bb  | 2 +-
+ meta-openstack/recipes-devtools/python/python-ceilometer_git.bb | 2 +-
+ .../recipes-devtools/python/python-ceilometerclient_git.bb      | 2 +-
+ meta-openstack/recipes-devtools/python/python-cinder_git.bb     | 2 +-
+ .../recipes-devtools/python/python-cinderclient_git.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-cliff_2.14.1.bb   | 2 +-
+ meta-openstack/recipes-devtools/python/python-cursive_git.bb    | 2 +-
+ .../recipes-devtools/python/python-debtcollector_1.17.1.bb      | 2 +-
+ .../recipes-devtools/python/python-designateclient_git.bb       | 2 +-
+ .../recipes-devtools/python/python-django-openstack-auth_git.bb | 2 +-
+ meta-openstack/recipes-devtools/python/python-ecdsa_0.13.bb     | 2 +-
+ meta-openstack/recipes-devtools/python/python-fasteners_git.bb  | 2 +-
+ meta-openstack/recipes-devtools/python/python-fixtures_3.0.0.bb | 2 +-
+ .../recipes-devtools/python/python-functools32_git.bb           | 2 +-
+ .../recipes-devtools/python/python-glance-store_git.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-glance_git.bb     | 2 +-
+ .../recipes-devtools/python/python-glanceclient_git.bb          | 2 +-
+ .../recipes-devtools/python/python-glancestore_git.bb           | 2 +-
+ .../recipes-devtools/python/python-heat-cfntools_1.2.8.bb       | 2 +-
+ meta-openstack/recipes-devtools/python/python-heat_git.bb       | 2 +-
+ meta-openstack/recipes-devtools/python/python-heatclient_git.bb | 2 +-
+ meta-openstack/recipes-devtools/python/python-horizon_git.bb    | 2 +-
+ meta-openstack/recipes-devtools/python/python-ipaddr_2.1.11.bb  | 2 +-
+ .../recipes-devtools/python/python-jsonpath-rw-ext_git.bb       | 2 +-
+ meta-openstack/recipes-devtools/python/python-kafka_git.bb      | 2 +-
+ meta-openstack/recipes-devtools/python/python-keystone_git.bb   | 2 +-
+ .../recipes-devtools/python/python-keystoneauth1_3.2.0.bb       | 2 +-
+ .../recipes-devtools/python/python-keystoneclient_git.bb        | 2 +-
+ .../recipes-devtools/python/python-keystonemiddleware_git.bb    | 2 +-
+ .../recipes-devtools/python/python-lockfile_0.12.2.bb           | 2 +-
+ .../recipes-devtools/python/python-magnumclient_git.bb          | 2 +-
+ .../recipes-devtools/python/python-manilaclient_git.bb          | 2 +-
+ .../recipes-devtools/python/python-mistralclient_git.bb         | 2 +-
+ meta-openstack/recipes-devtools/python/python-monotonic_git.bb  | 2 +-
+ meta-openstack/recipes-devtools/python/python-mox3_0.26.0.bb    | 2 +-
+ .../recipes-devtools/python/python-neutron-lib_git.bb           | 2 +-
+ meta-openstack/recipes-devtools/python/python-neutron_git.bb    | 2 +-
+ .../recipes-devtools/python/python-neutronclient_git.bb         | 2 +-
+ meta-openstack/recipes-devtools/python/python-nova_git.bb       | 2 +-
+ meta-openstack/recipes-devtools/python/python-novaclient_git.bb | 2 +-
+ .../recipes-devtools/python/python-openstackclient_git.bb       | 2 +-
+ .../recipes-devtools/python/python-openstacksdk_git.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-os-brick_git.bb   | 2 +-
+ .../recipes-devtools/python/python-os-client-config_git.bb      | 2 +-
+ meta-openstack/recipes-devtools/python/python-os-traits_git.bb  | 2 +-
+ meta-openstack/recipes-devtools/python/python-os-vif_git.bb     | 2 +-
+ meta-openstack/recipes-devtools/python/python-os-win_git.bb     | 2 +-
+ meta-openstack/recipes-devtools/python/python-os-xenapi_git.bb  | 2 +-
+ meta-openstack/recipes-devtools/python/python-oslo.cache_git.bb | 2 +-
+ .../recipes-devtools/python/python-oslo.concurrency_git.bb      | 2 +-
+ .../recipes-devtools/python/python-oslo.config_git.bb           | 2 +-
+ .../recipes-devtools/python/python-oslo.context_git.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-oslo.db_git.bb    | 2 +-
+ .../recipes-devtools/python/python-oslo.i18n_3.20.0.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-oslo.i18n_git.bb  | 2 +-
+ meta-openstack/recipes-devtools/python/python-oslo.log_git.bb   | 2 +-
+ .../recipes-devtools/python/python-oslo.messaging_git.bb        | 2 +-
+ .../recipes-devtools/python/python-oslo.middleware_git.bb       | 2 +-
+ .../recipes-devtools/python/python-oslo.policy_git.bb           | 2 +-
+ .../recipes-devtools/python/python-oslo.privsep_git.bb          | 2 +-
+ .../recipes-devtools/python/python-oslo.reports_git.bb          | 2 +-
+ .../recipes-devtools/python/python-oslo.rootwrap_git.bb         | 2 +-
+ .../recipes-devtools/python/python-oslo.serialization_git.bb    | 2 +-
+ .../recipes-devtools/python/python-oslo.service_git.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-oslo.utils_git.bb | 2 +-
+ .../recipes-devtools/python/python-oslo.versionedobjects_git.bb | 2 +-
+ .../recipes-devtools/python/python-oslo.vmware_git.bb           | 2 +-
+ meta-openstack/recipes-devtools/python/python-oslotest_git.bb   | 2 +-
+ .../recipes-devtools/python/python-osprofiler_1.5.0.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-ovsdbapp_git.bb   | 2 +-
+ meta-openstack/recipes-devtools/python/python-pycadf_git.bb     | 2 +-
+ meta-openstack/recipes-devtools/python/python-rally_git.bb      | 2 +-
+ meta-openstack/recipes-devtools/python/python-ryu_git.bb        | 2 +-
+ .../recipes-devtools/python/python-saharaclient_git.bb          | 2 +-
+ meta-openstack/recipes-devtools/python/python-swift_git.bb      | 2 +-
+ .../recipes-devtools/python/python-swiftclient_git.bb           | 2 +-
+ meta-openstack/recipes-devtools/python/python-taskflow_git.bb   | 2 +-
+ .../recipes-devtools/python/python-testscenarios_0.5.0.bb       | 2 +-
+ .../recipes-devtools/python/python-testtools_2.3.0.bb           | 2 +-
+ meta-openstack/recipes-devtools/python/python-tooz_1.48.0.bb    | 2 +-
+ meta-openstack/recipes-devtools/python/python-trove_git.bb      | 2 +-
+ .../recipes-devtools/python/python-troveclient_git.bb           | 2 +-
+ meta-openstack/recipes-devtools/python/python-unicodecsv_git.bb | 2 +-
+ meta-openstack/recipes-devtools/python/python-wsme_0.9.2.bb     | 2 +-
+ .../recipes-devtools/python/python-zaqarclient_git.bb           | 2 +-
+ 87 files changed, 87 insertions(+), 87 deletions(-)
+
+diff --git a/meta-openstack/recipes-devtools/python/python-barbican_git.bb b/meta-openstack/recipes-devtools/python/python-barbican_git.bb
+index 579413c..ebb93b1 100644
+--- a/meta-openstack/recipes-devtools/python/python-barbican_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-barbican_git.bb
+@@ -93,7 +93,7 @@ pkg_postinst_${SRCNAME}-setup () {
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${SRCNAME} = "${PN} \
+diff --git a/meta-openstack/recipes-devtools/python/python-barbicanclient_git.bb b/meta-openstack/recipes-devtools/python/python-barbicanclient_git.bb
+index 2d57158..06a75c2 100644
+--- a/meta-openstack/recipes-devtools/python/python-barbicanclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-barbicanclient_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-castellan_git.bb b/meta-openstack/recipes-devtools/python/python-castellan_git.bb
+index 9401ad9..909ed91 100644
+--- a/meta-openstack/recipes-devtools/python/python-castellan_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-castellan_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb b/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb
+index 4b01022..911b9cd 100644
+--- a/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb
+@@ -175,7 +175,7 @@ FILES_${SRCNAME}-controller = "${bindir}/* \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-ceilometerclient_git.bb b/meta-openstack/recipes-devtools/python/python-ceilometerclient_git.bb
+index 1a13198..678867f 100644
+--- a/meta-openstack/recipes-devtools/python/python-ceilometerclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-ceilometerclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-cinder_git.bb b/meta-openstack/recipes-devtools/python/python-cinder_git.bb
+index 5274698..78d4533 100644
+--- a/meta-openstack/recipes-devtools/python/python-cinder_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-cinder_git.bb
+@@ -196,7 +196,7 @@ FILES_${SRCNAME} = "${bindir}/* \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-cinderclient_git.bb b/meta-openstack/recipes-devtools/python/python-cinderclient_git.bb
+index e425237..a932abb 100644
+--- a/meta-openstack/recipes-devtools/python/python-cinderclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-cinderclient_git.bb
+@@ -20,7 +20,7 @@ inherit setuptools monitor
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-cliff_2.14.1.bb b/meta-openstack/recipes-devtools/python/python-cliff_2.14.1.bb
+index 70ac4e6..1103eca 100644
+--- a/meta-openstack/recipes-devtools/python/python-cliff_2.14.1.bb
++++ b/meta-openstack/recipes-devtools/python/python-cliff_2.14.1.bb
+@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "b47387a344898ccb28ca7f386f017ade9eb66dc1713e5c642a0bc09ec6
+ inherit setuptools pypi
+ DEPENDS += "\
+-    python-pbr \
++    python-pbr-native\
+     "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-cursive_git.bb b/meta-openstack/recipes-devtools/python/python-cursive_git.bb
+index 1a677f1..124821b 100644
+--- a/meta-openstack/recipes-devtools/python/python-cursive_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-cursive_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-debtcollector_1.17.1.bb b/meta-openstack/recipes-devtools/python/python-debtcollector_1.17.1.bb
+index 52b1319..231a5a6 100644
+--- a/meta-openstack/recipes-devtools/python/python-debtcollector_1.17.1.bb
++++ b/meta-openstack/recipes-devtools/python/python-debtcollector_1.17.1.bb
+@@ -11,7 +11,7 @@ inherit setuptools pypi
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-designateclient_git.bb b/meta-openstack/recipes-devtools/python/python-designateclient_git.bb
+index a6f7cbf..b4aa968 100644
+--- a/meta-openstack/recipes-devtools/python/python-designateclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-designateclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-django-openstack-auth_git.bb b/meta-openstack/recipes-devtools/python/python-django-openstack-auth_git.bb
+index 0df4efb..406a92d 100644
+--- a/meta-openstack/recipes-devtools/python/python-django-openstack-auth_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-django-openstack-auth_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-ecdsa_0.13.bb b/meta-openstack/recipes-devtools/python/python-ecdsa_0.13.bb
+index 8fe492c..e3e2577 100644
+--- a/meta-openstack/recipes-devtools/python/python-ecdsa_0.13.bb
++++ b/meta-openstack/recipes-devtools/python/python-ecdsa_0.13.bb
+@@ -11,7 +11,7 @@ inherit setuptools pypi
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # RDEPENDS_default:
+diff --git a/meta-openstack/recipes-devtools/python/python-fasteners_git.bb b/meta-openstack/recipes-devtools/python/python-fasteners_git.bb
+index 5f496bc..44092ff 100644
+--- a/meta-openstack/recipes-devtools/python/python-fasteners_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-fasteners_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # RDEPENDS_default:
+diff --git a/meta-openstack/recipes-devtools/python/python-fixtures_3.0.0.bb b/meta-openstack/recipes-devtools/python/python-fixtures_3.0.0.bb
+index dc03a5b..2f0b540 100644
+--- a/meta-openstack/recipes-devtools/python/python-fixtures_3.0.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-fixtures_3.0.0.bb
+@@ -15,7 +15,7 @@ DISTUTILS_INSTALL_ARGS = "--root=${D} \
+     --install-data=${datadir}"
+ DEPENDS += " \
+-      python-pbr \
++      python-pbr-native\
+       "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-functools32_git.bb b/meta-openstack/recipes-devtools/python/python-functools32_git.bb
+index f167e7d..9fb7205 100644
+--- a/meta-openstack/recipes-devtools/python/python-functools32_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-functools32_git.bb
+@@ -21,7 +21,7 @@ DISTUTILS_INSTALL_ARGS = "--root=${D} \
+     --install-data=${datadir}"
+ DEPENDS += " \
+-      python-pbr \
++      python-pbr-native\
+       "
+ RDEPENDS_${PN} += "python-testtools \
+diff --git a/meta-openstack/recipes-devtools/python/python-glance-store_git.bb b/meta-openstack/recipes-devtools/python/python-glance-store_git.bb
+index f6cfaa7..405d49d 100644
+--- a/meta-openstack/recipes-devtools/python/python-glance-store_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-glance-store_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-glance_git.bb b/meta-openstack/recipes-devtools/python/python-glance_git.bb
+index 6a6cded..f6b2353 100644
+--- a/meta-openstack/recipes-devtools/python/python-glance_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-glance_git.bb
+@@ -166,7 +166,7 @@ FILES_${SRCNAME}-registry = "\
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-glanceclient_git.bb b/meta-openstack/recipes-devtools/python/python-glanceclient_git.bb
+index 00ea2ab..6b2fbb4 100644
+--- a/meta-openstack/recipes-devtools/python/python-glanceclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-glanceclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+ DEPENDS += " \
+         gmp \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ SRCREV = "13b25ff1fed908cfe7b4e719a97efd7121e3be96"
+diff --git a/meta-openstack/recipes-devtools/python/python-glancestore_git.bb b/meta-openstack/recipes-devtools/python/python-glancestore_git.bb
+index 0abf521..f45abed 100644
+--- a/meta-openstack/recipes-devtools/python/python-glancestore_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-glancestore_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         gmp \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} = " \
+diff --git a/meta-openstack/recipes-devtools/python/python-heat-cfntools_1.2.8.bb b/meta-openstack/recipes-devtools/python/python-heat-cfntools_1.2.8.bb
+index ca6a48d..aebfa1d 100644
+--- a/meta-openstack/recipes-devtools/python/python-heat-cfntools_1.2.8.bb
++++ b/meta-openstack/recipes-devtools/python/python-heat-cfntools_1.2.8.bb
+@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "de7d93338d3afb71cc4c53d713740316ead0af3a9c869b1231617347e9
+ inherit setuptools pypi
+ DEPENDS += "\
+-    python-pbr \
++    python-pbr-native\
+     "
+ RDPENDS_${PN} += "\
+diff --git a/meta-openstack/recipes-devtools/python/python-heat_git.bb b/meta-openstack/recipes-devtools/python/python-heat_git.bb
+index 2cf7ce4..8f538a5 100644
+--- a/meta-openstack/recipes-devtools/python/python-heat_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-heat_git.bb
+@@ -157,7 +157,7 @@ FILES_${SRCNAME}-engine = "${bindir}/heat-engine \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-heatclient_git.bb b/meta-openstack/recipes-devtools/python/python-heatclient_git.bb
+index 9440f95..7d97b44 100644
+--- a/meta-openstack/recipes-devtools/python/python-heatclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-heatclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-horizon_git.bb b/meta-openstack/recipes-devtools/python/python-horizon_git.bb
+index 5e12e87..fa831cb 100644
+--- a/meta-openstack/recipes-devtools/python/python-horizon_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-horizon_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-ipaddr_2.1.11.bb b/meta-openstack/recipes-devtools/python/python-ipaddr_2.1.11.bb
+index 501e895..02cfd76 100644
+--- a/meta-openstack/recipes-devtools/python/python-ipaddr_2.1.11.bb
++++ b/meta-openstack/recipes-devtools/python/python-ipaddr_2.1.11.bb
+@@ -11,7 +11,7 @@ inherit distutils pypi
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-jsonpath-rw-ext_git.bb b/meta-openstack/recipes-devtools/python/python-jsonpath-rw-ext_git.bb
+index 53cc1c4..c059942 100644
+--- a/meta-openstack/recipes-devtools/python/python-jsonpath-rw-ext_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-jsonpath-rw-ext_git.bb
+@@ -16,7 +16,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-      python-pbr \
++      python-pbr-native\
+       "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-kafka_git.bb b/meta-openstack/recipes-devtools/python/python-kafka_git.bb
+index 7fbb826..737c95c 100644
+--- a/meta-openstack/recipes-devtools/python/python-kafka_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-kafka_git.bb
+@@ -16,7 +16,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-      python-pbr \
++      python-pbr-native\
+       "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-keystone_git.bb b/meta-openstack/recipes-devtools/python/python-keystone_git.bb
+index b8b4fb0..423134c 100644
+--- a/meta-openstack/recipes-devtools/python/python-keystone_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-keystone_git.bb
+@@ -224,7 +224,7 @@ FILES_${SRCNAME} = "${bindir}/* \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-keystoneauth1_3.2.0.bb b/meta-openstack/recipes-devtools/python/python-keystoneauth1_3.2.0.bb
+index 6466056..469a31e 100644
+--- a/meta-openstack/recipes-devtools/python/python-keystoneauth1_3.2.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-keystoneauth1_3.2.0.bb
+@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "768036ee66372df2ad56716b8be4965cef9a59a01647992919516defb2
+ inherit setuptools pypi
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-keystoneclient_git.bb b/meta-openstack/recipes-devtools/python/python-keystoneclient_git.bb
+index e82c5f6..ecff38a 100644
+--- a/meta-openstack/recipes-devtools/python/python-keystoneclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-keystoneclient_git.bb
+@@ -21,7 +21,7 @@ FILES_${PN}-doc += "${datadir}/keystoneclient"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-keystonemiddleware_git.bb b/meta-openstack/recipes-devtools/python/python-keystonemiddleware_git.bb
+index 557a557..526b48f 100644
+--- a/meta-openstack/recipes-devtools/python/python-keystonemiddleware_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-keystonemiddleware_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-lockfile_0.12.2.bb b/meta-openstack/recipes-devtools/python/python-lockfile_0.12.2.bb
+index 6191577..f954b65 100644
+--- a/meta-openstack/recipes-devtools/python/python-lockfile_0.12.2.bb
++++ b/meta-openstack/recipes-devtools/python/python-lockfile_0.12.2.bb
+@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361
+ inherit distutils pypi
+ DEPENDS += "\
+-    python-pbr \
++    python-pbr-native\
+     "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-magnumclient_git.bb b/meta-openstack/recipes-devtools/python/python-magnumclient_git.bb
+index 1bed1ed..3d0e779 100644
+--- a/meta-openstack/recipes-devtools/python/python-magnumclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-magnumclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-manilaclient_git.bb b/meta-openstack/recipes-devtools/python/python-manilaclient_git.bb
+index d547717..ee75ab3 100644
+--- a/meta-openstack/recipes-devtools/python/python-manilaclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-manilaclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9edbbf5857ab51214ef0e8b79069bb07"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-mistralclient_git.bb b/meta-openstack/recipes-devtools/python/python-mistralclient_git.bb
+index 1c6a9bd..855ebd3 100644
+--- a/meta-openstack/recipes-devtools/python/python-mistralclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-mistralclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-monotonic_git.bb b/meta-openstack/recipes-devtools/python/python-monotonic_git.bb
+index 2552409..bffc6af 100644
+--- a/meta-openstack/recipes-devtools/python/python-monotonic_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-monotonic_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit distutils
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-mox3_0.26.0.bb b/meta-openstack/recipes-devtools/python/python-mox3_0.26.0.bb
+index c420bc2..9da45b7 100644
+--- a/meta-openstack/recipes-devtools/python/python-mox3_0.26.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-mox3_0.26.0.bb
+@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "b13c0b8459d6fb0688f9a4e70feeec43fa2cca05b727fc01156789596e
+ inherit setuptools pypi
+ DEPENDS += "\
+-    python-pbr \
++    python-pbr-native\
+     "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-neutron-lib_git.bb b/meta-openstack/recipes-devtools/python/python-neutron-lib_git.bb
+index 1ac7dca..1e7447e 100644
+--- a/meta-openstack/recipes-devtools/python/python-neutron-lib_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-neutron-lib_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-neutron_git.bb b/meta-openstack/recipes-devtools/python/python-neutron_git.bb
+index a054551..630bbce 100644
+--- a/meta-openstack/recipes-devtools/python/python-neutron_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-neutron_git.bb
+@@ -330,7 +330,7 @@ FILES_${SRCNAME}-setup = " \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-neutronclient_git.bb b/meta-openstack/recipes-devtools/python/python-neutronclient_git.bb
+index 204f19b..8cbee0c 100644
+--- a/meta-openstack/recipes-devtools/python/python-neutronclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-neutronclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-nova_git.bb b/meta-openstack/recipes-devtools/python/python-nova_git.bb
+index 3e646df..9946582 100644
+--- a/meta-openstack/recipes-devtools/python/python-nova_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-nova_git.bb
+@@ -262,7 +262,7 @@ FILES_${SRCNAME}-controller = "${bindir}/* \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-novaclient_git.bb b/meta-openstack/recipes-devtools/python/python-novaclient_git.bb
+index 44f73fa..363d0a3 100644
+--- a/meta-openstack/recipes-devtools/python/python-novaclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-novaclient_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools monitor rmargparse
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-openstackclient_git.bb b/meta-openstack/recipes-devtools/python/python-openstackclient_git.bb
+index ce33f0c..a7e2b8c 100644
+--- a/meta-openstack/recipes-devtools/python/python-openstackclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-openstackclient_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += "\
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-openstacksdk_git.bb b/meta-openstack/recipes-devtools/python/python-openstacksdk_git.bb
+index 12472ec..ee8942d 100644
+--- a/meta-openstack/recipes-devtools/python/python-openstacksdk_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-openstacksdk_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += "\
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-os-brick_git.bb b/meta-openstack/recipes-devtools/python/python-os-brick_git.bb
+index f266f70..65d3ddf 100644
+--- a/meta-openstack/recipes-devtools/python/python-os-brick_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-os-brick_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ FILES_${PN} += "${datadir}/etc/*"
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-os-client-config_git.bb b/meta-openstack/recipes-devtools/python/python-os-client-config_git.bb
+index a48f2c4..c49c710 100644
+--- a/meta-openstack/recipes-devtools/python/python-os-client-config_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-os-client-config_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+ DEPENDS += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-os-traits_git.bb b/meta-openstack/recipes-devtools/python/python-os-traits_git.bb
+index 8d4079b..d983252 100644
+--- a/meta-openstack/recipes-devtools/python/python-os-traits_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-os-traits_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-os-vif_git.bb b/meta-openstack/recipes-devtools/python/python-os-vif_git.bb
+index 52fa05e..656f5ab 100644
+--- a/meta-openstack/recipes-devtools/python/python-os-vif_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-os-vif_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-os-win_git.bb b/meta-openstack/recipes-devtools/python/python-os-win_git.bb
+index a742506..882c1b7 100644
+--- a/meta-openstack/recipes-devtools/python/python-os-win_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-os-win_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-os-xenapi_git.bb b/meta-openstack/recipes-devtools/python/python-os-xenapi_git.bb
+index f3d54f6..ea46a60 100644
+--- a/meta-openstack/recipes-devtools/python/python-os-xenapi_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-os-xenapi_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ # DEPENDS_default: python-pip
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.cache_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.cache_git.bb
+index e71a815..9d07f74 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.cache_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.cache_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.concurrency_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.concurrency_git.bb
+index fe095d0..f91ff98 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.concurrency_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.concurrency_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.config_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.config_git.bb
+index eed00c5..f0156b1 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.config_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.config_git.bb
+@@ -15,7 +15,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools rmargparse
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         python-pip \
+         "
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.context_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.context_git.bb
+index bf1ae7a..05674c9 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.context_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.context_git.bb
+@@ -15,7 +15,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.db_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.db_git.bb
+index d693570..2e1ec5e 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.db_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.db_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.i18n_3.20.0.bb b/meta-openstack/recipes-devtools/python/python-oslo.i18n_3.20.0.bb
+index 76a8b53..100c44f 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.i18n_3.20.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.i18n_3.20.0.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.i18n_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.i18n_git.bb
+index 9f7ddc5..599d30c 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.i18n_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.i18n_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.log_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.log_git.bb
+index d6ca0ee..7b0c946 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.log_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.log_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+         python-babel \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.messaging_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.messaging_git.bb
+index 7fe66f1..2f7ba98 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.messaging_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.messaging_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.middleware_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.middleware_git.bb
+index 3a1d4d9..2b255c9 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.middleware_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.middleware_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+ DEPENDS += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.policy_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.policy_git.bb
+index 0e7a6ad..e2afd98 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.policy_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.policy_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+ "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.privsep_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.privsep_git.bb
+index 83504b6..73e4d44 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.privsep_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.privsep_git.bb
+@@ -14,7 +14,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # RDEPENDS_default:
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.reports_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.reports_git.bb
+index 2db5aae..f1a5767 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.reports_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.reports_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.rootwrap_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.rootwrap_git.bb
+index 2dbbfe8..8ebdf8d 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.rootwrap_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.rootwrap_git.bb
+@@ -18,7 +18,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # RDEPENDS_default: 
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.serialization_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.serialization_git.bb
+index b11957d..42f282a 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.serialization_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.serialization_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.service_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.service_git.bb
+index 7b72ad2..4ad6593 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.service_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.service_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.utils_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.utils_git.bb
+index e73bf53..9ce6a7f 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.utils_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.utils_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.versionedobjects_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.versionedobjects_git.bb
+index 574ac88..7dae91d 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.versionedobjects_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.versionedobjects_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-oslo.vmware_git.bb b/meta-openstack/recipes-devtools/python/python-oslo.vmware_git.bb
+index f6e7b5e..89d9381 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslo.vmware_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslo.vmware_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-oslotest_git.bb b/meta-openstack/recipes-devtools/python/python-oslotest_git.bb
+index 20c0b53..3a6c171 100644
+--- a/meta-openstack/recipes-devtools/python/python-oslotest_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-oslotest_git.bb
+@@ -17,7 +17,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += "\
+-    python-pbr \
++    python-pbr-native\
+     "
+ RDEPENDS_${PN} = "python-fixtures \
+diff --git a/meta-openstack/recipes-devtools/python/python-osprofiler_1.5.0.bb b/meta-openstack/recipes-devtools/python/python-osprofiler_1.5.0.bb
+index efb38a0..ffef6be 100644
+--- a/meta-openstack/recipes-devtools/python/python-osprofiler_1.5.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-osprofiler_1.5.0.bb
+@@ -13,7 +13,7 @@ inherit setuptools pypi
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-ovsdbapp_git.bb b/meta-openstack/recipes-devtools/python/python-ovsdbapp_git.bb
+index cc1f424..f1b1b36 100644
+--- a/meta-openstack/recipes-devtools/python/python-ovsdbapp_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-ovsdbapp_git.bb
+@@ -17,7 +17,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-pycadf_git.bb b/meta-openstack/recipes-devtools/python/python-pycadf_git.bb
+index 58cb5bf..fedab3b 100644
+--- a/meta-openstack/recipes-devtools/python/python-pycadf_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-pycadf_git.bb
+@@ -18,7 +18,7 @@ FILES_${PN} += "${datadir}/etc/${SRCNAME}/*"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+ DEPENDS += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-rally_git.bb b/meta-openstack/recipes-devtools/python/python-rally_git.bb
+index 31d4242..194e549 100644
+--- a/meta-openstack/recipes-devtools/python/python-rally_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-rally_git.bb
+@@ -97,7 +97,7 @@ FILES_${SRCNAME}-api = "${bindir}/rally-api \
+ DEPENDS += " \
+     python-pip \
+-    python-pbr \
++    python-pbr-native\
+     "
+ RDEPENDS_${PN} += " python-babel \
+diff --git a/meta-openstack/recipes-devtools/python/python-ryu_git.bb b/meta-openstack/recipes-devtools/python/python-ryu_git.bb
+index b5ee113..9a3bad5 100644
+--- a/meta-openstack/recipes-devtools/python/python-ryu_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-ryu_git.bb
+@@ -18,7 +18,7 @@ FILES_${PN} += "${datadir}/etc/${SRCNAME}/*"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-saharaclient_git.bb b/meta-openstack/recipes-devtools/python/python-saharaclient_git.bb
+index 170d460..b9522ba 100644
+--- a/meta-openstack/recipes-devtools/python/python-saharaclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-saharaclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-swift_git.bb b/meta-openstack/recipes-devtools/python/python-swift_git.bb
+index fc7c258..f52b47e 100644
+--- a/meta-openstack/recipes-devtools/python/python-swift_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-swift_git.bb
+@@ -150,7 +150,7 @@ FILES_${SRCNAME} = "${bindir}/* \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-swiftclient_git.bb b/meta-openstack/recipes-devtools/python/python-swiftclient_git.bb
+index 0ee9680..f7f5343 100644
+--- a/meta-openstack/recipes-devtools/python/python-swiftclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-swiftclient_git.bb
+@@ -21,7 +21,7 @@ do_install_append() {
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-taskflow_git.bb b/meta-openstack/recipes-devtools/python/python-taskflow_git.bb
+index 1717617..ce860d0 100644
+--- a/meta-openstack/recipes-devtools/python/python-taskflow_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-taskflow_git.bb
+@@ -16,7 +16,7 @@ inherit setuptools
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-testscenarios_0.5.0.bb b/meta-openstack/recipes-devtools/python/python-testscenarios_0.5.0.bb
+index 18971d6..ef0acd7 100644
+--- a/meta-openstack/recipes-devtools/python/python-testscenarios_0.5.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-testscenarios_0.5.0.bb
+@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "c257cb6b90ea7e6f8fef3158121d430543412c9a87df30b5dde6ec8b9b
+ inherit setuptools pypi
+ DEPENDS += "\
+-    python-pbr \
++    python-pbr-native\
+     "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-testtools_2.3.0.bb b/meta-openstack/recipes-devtools/python/python-testtools_2.3.0.bb
+index bbf1d01..51d7613 100644
+--- a/meta-openstack/recipes-devtools/python/python-testtools_2.3.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-testtools_2.3.0.bb
+@@ -9,7 +9,7 @@ SRC_URI[sha256sum] = "5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a293469
+ inherit setuptools pypi
+ DEPENDS += " \
+-    python-pbr \
++    python-pbr-native\
+     "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-tooz_1.48.0.bb b/meta-openstack/recipes-devtools/python/python-tooz_1.48.0.bb
+index 6260663..5e2b3d7 100644
+--- a/meta-openstack/recipes-devtools/python/python-tooz_1.48.0.bb
++++ b/meta-openstack/recipes-devtools/python/python-tooz_1.48.0.bb
+@@ -13,7 +13,7 @@ inherit setuptools pypi
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # RDEPENDS_default:
+diff --git a/meta-openstack/recipes-devtools/python/python-trove_git.bb b/meta-openstack/recipes-devtools/python/python-trove_git.bb
+index e1f8ae0..531cfe5 100755
+--- a/meta-openstack/recipes-devtools/python/python-trove_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-trove_git.bb
+@@ -234,7 +234,7 @@ FILES_${SRCNAME}-setup = " \
+ DEPENDS += " \
+-    python-pbr \
++    python-pbr-native\
+     python-pip \
+     "
+diff --git a/meta-openstack/recipes-devtools/python/python-troveclient_git.bb b/meta-openstack/recipes-devtools/python/python-troveclient_git.bb
+index 95ec5ae..c715cb4 100644
+--- a/meta-openstack/recipes-devtools/python/python-troveclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-troveclient_git.bb
+@@ -51,7 +51,7 @@ FILES_${SRCNAME}-bin = " \
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-unicodecsv_git.bb b/meta-openstack/recipes-devtools/python/python-unicodecsv_git.bb
+index 76d638a..c5a1cbc 100644
+--- a/meta-openstack/recipes-devtools/python/python-unicodecsv_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-unicodecsv_git.bb
+@@ -16,7 +16,7 @@ S = "${WORKDIR}/git"
+ inherit setuptools
+ DEPENDS += " \
+-      python-pbr \
++      python-pbr-native\
+       "
+ RDEPENDS_${PN} += " \
+diff --git a/meta-openstack/recipes-devtools/python/python-wsme_0.9.2.bb b/meta-openstack/recipes-devtools/python/python-wsme_0.9.2.bb
+index 15f46d4..5a2628e 100644
+--- a/meta-openstack/recipes-devtools/python/python-wsme_0.9.2.bb
++++ b/meta-openstack/recipes-devtools/python/python-wsme_0.9.2.bb
+@@ -13,7 +13,7 @@ inherit setuptools pypi
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+diff --git a/meta-openstack/recipes-devtools/python/python-zaqarclient_git.bb b/meta-openstack/recipes-devtools/python/python-zaqarclient_git.bb
+index d3d24ea..d519c8c 100644
+--- a/meta-openstack/recipes-devtools/python/python-zaqarclient_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-zaqarclient_git.bb
+@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+ DEPENDS += " \
+         python-pip \
+-        python-pbr \
++        python-pbr-native\
+         "
+ # Satisfy setup.py 'setup_requires'
+-- 
+2.23.0
+
diff --git a/scripts/meta-patches/src_stx/meta-cloud-services/0002-Package-Upgrade-croniter-and-kombu.patch b/scripts/meta-patches/src_stx/meta-cloud-services/0002-Package-Upgrade-croniter-and-kombu.patch
new file mode 100644 (file)
index 0000000..b6a559d
--- /dev/null
@@ -0,0 +1,64 @@
+From 19abab88b100547c69eff4229724634acc6294a5 Mon Sep 17 00:00:00 2001
+From: "Sar Ashki, Babak" <Babak.SarAshki@windriver.com>
+Date: Wed, 22 Jan 2020 16:38:55 -0800
+Subject: [PATCH 2/5] Package Upgrade croniter and kombu
+
+---
+ .../python/python-croniter_0.3.31.bb          | 21 +++++++++++++++++++
+ .../python/python-kombu_4.6.7.bb              | 16 ++++++++++++++
+ 2 files changed, 37 insertions(+)
+ create mode 100644 meta-openstack/recipes-devtools/python/python-croniter_0.3.31.bb
+ create mode 100644 meta-openstack/recipes-devtools/python/python-kombu_4.6.7.bb
+
+diff --git a/meta-openstack/recipes-devtools/python/python-croniter_0.3.31.bb b/meta-openstack/recipes-devtools/python/python-croniter_0.3.31.bb
+new file mode 100644
+index 0000000..c6e6eb8
+--- /dev/null
++++ b/meta-openstack/recipes-devtools/python/python-croniter_0.3.31.bb
+@@ -0,0 +1,21 @@
++DESCRIPTION = "croniter provides iteration for datetime object with cron like format"
++HOMEPAGE = "https://pypi.python.org/pypi/croniter/0.3.4"
++SECTION = "devel/python"
++LICENSE = "MIT"
++LIC_FILES_CHKSUM = "file://PKG-INFO;md5=03c210f850d2e973a2599fa42308cdc0"
++
++# Archived version so we have to overwrite what the pypi class will derive
++PYPI_SRC_URI = "https://pypi.python.org/packages/source/c/croniter/croniter-${PV}.tar.gz"
++
++SRC_URI[md5sum] = "84020f61103e8d715256547207fefe79"
++SRC_URI[sha256sum] = "8984b4b27ddfc4b95b2bcec17ee31f827426cf1d717c2af79eff4b4435e23197"
++
++inherit setuptools pypi
++
++DEPENDS += " \
++        python-pip \
++        "
++
++RDEPENDS_${PN} += " \
++        python-dateutil \
++        "
+diff --git a/meta-openstack/recipes-devtools/python/python-kombu_4.6.7.bb b/meta-openstack/recipes-devtools/python/python-kombu_4.6.7.bb
+new file mode 100644
+index 0000000..8977820
+--- /dev/null
++++ b/meta-openstack/recipes-devtools/python/python-kombu_4.6.7.bb
+@@ -0,0 +1,16 @@
++DESCRIPTION = "A messaging framework for Python"
++HOMEPAGE = "http://kombu.readthedocs.org"
++SECTION = "devel/python"
++LICENSE = "BSD"
++LIC_FILES_CHKSUM = "file://LICENSE;md5=daea7c168428449fbee05e644df929f4"
++
++SRC_URI[md5sum] = "7fe3e4e60926625b9a47a07e4f3ade2d"
++SRC_URI[sha256sum] = "67b32ccb6fea030f8799f8fd50dd08e03a4b99464ebc4952d71d8747b1a52ad1"
++
++inherit setuptools pypi
++
++FILES_${PN}-doc += "${datadir}/${SRCNAME}"
++
++RDEPENDS_${PN} = " \
++        python-amqp \
++        "
+-- 
+2.23.0
+
diff --git a/scripts/meta-patches/src_stx/meta-cloud-services/0003-fix-postgresql_openstack-PGDATA-install-error.patch b/scripts/meta-patches/src_stx/meta-cloud-services/0003-fix-postgresql_openstack-PGDATA-install-error.patch
new file mode 100644 (file)
index 0000000..000518a
--- /dev/null
@@ -0,0 +1,25 @@
+From 1b21535d1d627a882c3b28f90ff76ad8cffe5b08 Mon Sep 17 00:00:00 2001
+From: "Sar Ashki, Babak" <Babak.SarAshki@windriver.com>
+Date: Thu, 23 Jan 2020 11:15:21 -0800
+Subject: [PATCH 3/5] fix postgresql_openstack PGDATA install error
+
+---
+ meta-openstack/recipes-dbs/postgresql/postgresql_openstack.inc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meta-openstack/recipes-dbs/postgresql/postgresql_openstack.inc b/meta-openstack/recipes-dbs/postgresql/postgresql_openstack.inc
+index b6a9c3c..3de5845 100644
+--- a/meta-openstack/recipes-dbs/postgresql/postgresql_openstack.inc
++++ b/meta-openstack/recipes-dbs/postgresql/postgresql_openstack.inc
+@@ -35,7 +35,7 @@ do_install_append() {
+     sed -e "s:%SYSCONFIGDIR%:${sysconfdir}:g" -i ${PG_INIT_SERVICE_FILE}
+     # Update PGDATA throughout
+-    files="${D}${localstatedir}/lib/${BPN}/.bash_profile"
++    files="${D}${localstatedir}/lib/${BPN}/.profile"
+     files="$files ${D}${systemd_unitdir}/system/postgresql.service"
+     files="$files ${D}${bindir}/${BPN}-setup"
+     files="$files ${D}${sysconfdir}/init.d/${BPN}-server"
+-- 
+2.23.0
+
diff --git a/scripts/meta-patches/src_stx/meta-cloud-services/0004-Ceilometer-compute-is-not-build-nor-installed.patch b/scripts/meta-patches/src_stx/meta-cloud-services/0004-Ceilometer-compute-is-not-build-nor-installed.patch
new file mode 100644 (file)
index 0000000..6315ee7
--- /dev/null
@@ -0,0 +1,34 @@
+From 0980b3e83cd10d0d952f659a6c5435c78d3621f2 Mon Sep 17 00:00:00 2001
+From: "Sar Ashki, Babak" <Babak.SarAshki@windriver.com>
+Date: Thu, 23 Jan 2020 13:37:26 -0800
+Subject: [PATCH 4/5] Ceilometer-compute is not build nor installed
+
+Workaround to continue the build
+---
+ .../recipes-extended/packagegroups/packagegroup-cloud-compute.bb       | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-compute.bb b/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-compute.bb
+index 2e9446d..fc01e2b 100644
+--- a/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-compute.bb
++++ b/meta-openstack/recipes-extended/packagegroups/packagegroup-cloud-compute.bb
+@@ -6,6 +6,8 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
+ inherit packagegroup
++# FIXME:
++#    ceilometer-compute
+ RDEPENDS_${PN} = " \
+     cloud-init \
+     postgresql-setup \
+@@ -15,7 +17,6 @@ RDEPENDS_${PN} = " \
+     libvirt-libvirtd \
+     libvirt-virsh \
+     nova-compute \
+-    ceilometer-compute \
+     python-novaclient \
+     neutron-plugin-openvswitch \
+     openvswitch-switch \
+-- 
+2.7.4
+
diff --git a/scripts/meta-patches/src_stx/meta-cloud-services/0005-Fix-postinstall-scriptlets-to-ontarget.patch b/scripts/meta-patches/src_stx/meta-cloud-services/0005-Fix-postinstall-scriptlets-to-ontarget.patch
new file mode 100644 (file)
index 0000000..64b8ac9
--- /dev/null
@@ -0,0 +1,33 @@
+From 888c8f594b3b56a374710b06bf5f32fc8aaf06c8 Mon Sep 17 00:00:00 2001
+From: "Sar Ashki, Babak" <Babak.SarAshki@windriver.com>
+Date: Thu, 23 Jan 2020 14:33:13 -0800
+Subject: [PATCH 5/5] Fix postinstall scriptlets to ontarget
+
+rootfs assembly fails without this patch
+---
+ meta-openstack/recipes-devtools/python/python-horizon_git.bb | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/meta-openstack/recipes-devtools/python/python-horizon_git.bb b/meta-openstack/recipes-devtools/python/python-horizon_git.bb
+index fa831cb..098604c 100644
+--- a/meta-openstack/recipes-devtools/python/python-horizon_git.bb
++++ b/meta-openstack/recipes-devtools/python/python-horizon_git.bb
+@@ -158,13 +158,8 @@ do_install_append() {
+     ln -fs openstack_dashboard/static ${DASHBOARD_SHARE_DIR}/static
+ }
+-pkg_postinst_${SRCNAME} () {
+-    if [ -n "$D" ]; then
+-        exit 1
+-    else
+-        # Regenerate the django static files
+-        sudo -u horizon /usr/bin/env python ${datadir}/openstack-dashboard/manage.py collectstatic --noinput --clear 
+-    fi
++pkg_postinst_ontarget_${SRCNAME} () {
++      sudo -u horizon /usr/bin/env python ${datadir}/openstack-dashboard/manage.py collectstatic --noinput --clear
+ }
+ PACKAGES += "${SRCNAME}-tests ${SRCNAME} ${SRCNAME}-apache ${SRCNAME}-standalone"
+-- 
+2.7.4
+
diff --git a/scripts/meta-patches/src_stx/poky/0001-image-live.bbclass-work-around-for-large-image-size.patch b/scripts/meta-patches/src_stx/poky/0001-image-live.bbclass-work-around-for-large-image-size.patch
new file mode 100644 (file)
index 0000000..0ebcb93
--- /dev/null
@@ -0,0 +1,30 @@
+From 5c7b171f77e4456b4b7ff0b1125e68594cf8a710 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Fri, 20 Sep 2019 14:25:45 +0800
+Subject: [PATCH] image-live.bbclass: work around for large image size
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ meta/classes/image-live.bbclass | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass
+index 54058b3..bd607aa 100644
+--- a/meta/classes/image-live.bbclass
++++ b/meta/classes/image-live.bbclass
+@@ -229,9 +229,10 @@ build_hddimg() {
+               # exceeds 4GB, it is the single file's max size of FAT fs.
+               if [ -f ${HDDDIR}/rootfs.img ]; then
+                       rootfs_img_size=`stat -c '%s' ${HDDDIR}/rootfs.img`
+-                      max_size=`expr 4 \* 1024 \* 1024 \* 1024`
++                      max_size=`expr 8 \* 1024 \* 1024 \* 1024`
+                       if [ $rootfs_img_size -ge $max_size ]; then
+-                              bberror "${HDDDIR}/rootfs.img rootfs size is greather than or equal to 4GB,"
++                              bberror "${HDDDIR}/rootfs.img rootfs size is $rootfs_img_size,"
++                              bberror "which is greather than or equal to 4GB($max_size),"
+                               bberror "and this doesn't work on a FAT filesystem. You can either:"
+                               bberror "1) Reduce the size of rootfs.img, or,"
+                               bbfatal "2) Use wic, vmdk or vdi instead of hddimg\n"
+-- 
+2.7.4
+