#!/bin/bash # # Copyright (c) 2018 Wind River Systems, Inc. # # SPDX-License-Identifier: Apache-2.0 # # # Build first src.rpms, then rpms, from source, or from a downloaded tarball # or src.rpm plus our additional patches. # # This program is a wrapper around build-pkgs-parallel and build-pkgs-serial # BUILD_PKGS_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )" usage () { echo "" echo "Usage: " echo " Create source and binary rpms:" echo " build-pkgs [--serial] [args]" } SERIAL_FLAG=0 RC=0 for arg in "$@"; do case "$1" in --serial) SERIAL_FLAG=1 ;; esac done which mock_tmpfs_umount >> /dev/null if [ $? -ne 0 ]; then SERIAL_FLAG=1 fi # Make sure we have a dependency cache DEP_CACHE="$MY_REPO/cgcs-tis-repo/dependancy-cache" BUILD_TYPES=(" std rt installer containers") DEP_RPM_TYPE=(" RPMS SRPMS ") DEP_DELTAS="$DEP_CACHE/deltas-rpms-srpms" make_cache_current_rpms () { FILE=${1} if [ -z "${FILE}" ]; then echo "File not specified" return; fi if [ -f ${FILE} ]; then rm ${FILE} fi for build_type in $BUILD_TYPES; do for rpm_type in $DEP_RPM_TYPE; do if [ -d $MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/repodata ]; then current=$MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/ repoquery \ --repofrompath=$build_type-$rpm_type,$current \ --repoid=$build_type-$rpm_type --arch=noarch,src,x86_64 -a \ --qf "%-10{repoid} %-40{name} %-10{version} %-10{release}" \ >> ${FILE} fi done; done; } if [ ! -d $DEP_CACHE ]; then echo "Dependency cache is missing. Creating it now." $BUILD_PKGS_DIR/create_dependancy_cache.py > $MY_WORKSPACE/create_dependancy_cache.log make_cache_current_rpms $DEP_DELTAS echo "Dependency cache created." else DEP_TMP=$(mktemp) make_cache_current_rpms $DEP_TMP if diff $DEP_DELTAS $DEP_TMP > /dev/null; then echo "No changes for stx projects" rm $DEP_TMP else echo "Changes detected for stx projects" echo "Recreating dependecy cache now." mv $DEP_TMP $DEP_DELTAS $BUILD_PKGS_DIR/create_dependancy_cache.py > $MY_WORKSPACE/create_dependancy_cache.log echo "Dependency cache recreated." fi fi if [ $SERIAL_FLAG -eq 1 ]; then echo "build-pkgs-serial $@" build-pkgs-serial "$@" RC=$? else echo "build-pkgs-parallel $@" build-pkgs-parallel "$@" RC=$? fi exit $RC