d81920c349
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>
119 lines
2.8 KiB
Bash
Executable File
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
|