root/build-tools/build-pkgs
Scott Little d81920c349 Build script readiness for renaming cgcs-tis-repo to local-repo
I want the build to work with either local-repo or cgcs-tis-repo.
In many places we will be testing for the existance local-repo as
the prefered path, then fall back to cgcs-tis-repo as an
alternative.  If neither are present, either exit or continue but
assuming the new path is intended.

Story: 2006387
Task: 36910
Change-Id: I2e97dc8cd5d4a54158d4b1cefeecd2000ec11cf2
Signed-off-by: Scott Little <scott.little@windriver.com>
2020-09-24 12:03:00 -04:00

119 lines
2.8 KiB
Bash
Executable File

#!/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
export TMPDIR=$MY_WORKSPACE/tmp
mkdir -p $TMPDIR
# Old repo path or new?
LOCAL_REPO=${MY_REPO}/local-repo
if [ ! -d ${LOCAL_REPO} ]; then
LOCAL_REPO=${MY_REPO}/cgcs-tis-repo
if [ ! -d ${LOCAL_REPO} ]; then
# This one isn't fatal, LOCAL_REPO is not required
LOCAL_REPO=${MY_REPO}/local-repo
fi
fi
# Make sure we have a dependency cache
DEP_CACHE="${LOCAL_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