Add support CentOS-8/dnf/mock-2.6 based builds
This update will retain support for CentOS-7/yum/mock-1.4 based builds. The build environment will be queried to discover which environment it is building in, and modify the commands we issue accordingly. In CentOS 8, DNF replaces both YUM and REPOQUERY. While DNF tries to be a transparent replacement of the old tools, there are also subtle changes to the supported arguments. I will provide independent mock.cfg.prototypes for centos7 vs centos8. Changes in generate-centos-repo.sh under stx-tools will be required to select the correct prototype. Add support for mock 2.6. Mock 2.6 is python 3, and it processes the 'root' and 'rootdir' arguments slightly differently. Also change the order of arguments to tar within default_build_srpm. The latest tar only honors '--exclude' if it precedes other arguments. Story: 2006729 Depends-On: https://review.opendev.org/762700 Signed-off-by: Scott Little <scott.little@windriver.com> Change-Id: I826be2051e535e6a4c08ad17124f453b04210668
This commit is contained in:
parent
09c66cd0d7
commit
77576b7207
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018-2019 Wind River Systems, Inc.
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
@ -18,6 +18,10 @@ BUILD_ISO_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
||||||
source "${BUILD_ISO_DIR}/image-utils.sh"
|
source "${BUILD_ISO_DIR}/image-utils.sh"
|
||||||
source "${BUILD_ISO_DIR}/git-utils.sh"
|
source "${BUILD_ISO_DIR}/git-utils.sh"
|
||||||
|
|
||||||
|
# Set REPOQUERY, REPOQUERY_SUB_COMMAND, REPOQUERY_RESOLVE and
|
||||||
|
# REPOQUERY_WHATPROVIDES_DELIM for our build environment.
|
||||||
|
source "${BUILD_ISO_DIR}/pkg-manager-utils.sh"
|
||||||
|
|
||||||
usage () {
|
usage () {
|
||||||
echo ""
|
echo ""
|
||||||
echo "Usage: "
|
echo "Usage: "
|
||||||
|
@ -40,8 +44,8 @@ usage () {
|
||||||
MY_YUM_CONF=""
|
MY_YUM_CONF=""
|
||||||
STD_REPO_ID="local-std"
|
STD_REPO_ID="local-std"
|
||||||
RT_REPO_ID="local-rt"
|
RT_REPO_ID="local-rt"
|
||||||
LOWER_LAYER_STD_REPO_ID="StxCentos7Distro"
|
LOWER_LAYER_STD_REPO_ID=""
|
||||||
LOWER_LAYER_RT_REPO_ID="StxCentos7Distro-rt"
|
LOWER_LAYER_RT_REPO_ID=""
|
||||||
|
|
||||||
NPROCS=$(nproc)
|
NPROCS=$(nproc)
|
||||||
|
|
||||||
|
@ -77,13 +81,13 @@ function install_pkg_list {
|
||||||
|
|
||||||
\cd $OUTPUT_DIST_DIR/isolinux/Packages
|
\cd $OUTPUT_DIST_DIR/isolinux/Packages
|
||||||
$INTERNAL_REPO_ROOT/build-tools/build_iso/cgts_deps.sh --deps=$PKGLIST
|
$INTERNAL_REPO_ROOT/build-tools/build_iso/cgts_deps.sh --deps=$PKGLIST
|
||||||
|
|
||||||
if [ $? -ne 0 ]
|
if [ $? -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Could not install dependencies"
|
echo "Could not install dependencies"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
echo "Removing local-std yum repo $CGCS_REPO_DIR/repodata"
|
echo "Removing local-std yum repo $CGCS_REPO_DIR/repodata"
|
||||||
echo "Removing local-rt yum repo $CGCS_RT_REPO_DIR/repodata"
|
echo "Removing local-rt yum repo $CGCS_RT_REPO_DIR/repodata"
|
||||||
|
@ -111,7 +115,7 @@ function make_report {
|
||||||
for PKGLIST in $PKGLISTFILES; do
|
for PKGLIST in $PKGLISTFILES; do
|
||||||
while read PKG; do
|
while read PKG; do
|
||||||
PKG=`echo $PKG | sed "s/#.*//"`;
|
PKG=`echo $PKG | sed "s/#.*//"`;
|
||||||
if [ "${PKG}x" != "x" ]; then
|
if [ "${PKG}x" != "x" ]; then
|
||||||
echo $PKG >> $REPORT_FILE
|
echo $PKG >> $REPORT_FILE
|
||||||
fi
|
fi
|
||||||
done < $PKGLIST
|
done < $PKGLIST
|
||||||
|
@ -127,7 +131,7 @@ function make_report {
|
||||||
echo "-----------------" >> $REPORT_FILE
|
echo "-----------------" >> $REPORT_FILE
|
||||||
echo " WARNINGS " >> $REPORT_FILE
|
echo " WARNINGS " >> $REPORT_FILE
|
||||||
echo "-----------------" >> $REPORT_FILE
|
echo "-----------------" >> $REPORT_FILE
|
||||||
|
|
||||||
# Note that the warnings file may have multiple lines for the same
|
# Note that the warnings file may have multiple lines for the same
|
||||||
# missing dependency. A sort | uniq solves this so we don't duplicate
|
# missing dependency. A sort | uniq solves this so we don't duplicate
|
||||||
# warnings
|
# warnings
|
||||||
|
@ -158,13 +162,17 @@ function init_vars {
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# LOWER_LAYER_STD_REPO_ID should be something like StxCentos7Distro or StxCentos8Distro
|
||||||
|
LOWER_LAYER_STD_REPO_ID=$(grep '\[StxCentos.*Distro\]' ${MY_YUM_CONF} | sed -e 's/^\[//' -e 's/\].*//')
|
||||||
|
LOWER_LAYER_RT_REPO_ID=$(grep '\[StxCentos.*Distro-rt\]' ${MY_YUM_CONF} | sed -e 's/^\[//' -e 's/\].*//')
|
||||||
|
|
||||||
DISTRO_REPO_DIR=$(for d in $(grep baseurl $MY_YUM_CONF | grep file: | awk -F : '{print $2}' | sed 's:///:/:g'); do if [ -d $d/images ]; then echo $d ;fi; done)
|
DISTRO_REPO_DIR=$(for d in $(grep baseurl $MY_YUM_CONF | grep file: | awk -F : '{print $2}' | sed 's:///:/:g'); do if [ -d $d/images ]; then echo $d ;fi; done)
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Output definitons
|
# Output definitons
|
||||||
|
|
||||||
# where to put stuff (curent dir unless MY_WORKSPACE defined)
|
# where to put stuff (curent dir unless MY_WORKSPACE defined)
|
||||||
OUTPUT_DIR="$PWD/export"
|
OUTPUT_DIR="$PWD/export"
|
||||||
if [ ! -z "$MY_WORKSPACE" ] && [ -d "$MY_WORKSPACE" ] ; then
|
if [ ! -z "$MY_WORKSPACE" ] && [ -d "$MY_WORKSPACE" ] ; then
|
||||||
OUTPUT_DIR="$MY_WORKSPACE/export"
|
OUTPUT_DIR="$MY_WORKSPACE/export"
|
||||||
CGCS_REPO_DIR="$MY_WORKSPACE/std/rpmbuild/RPMS"
|
CGCS_REPO_DIR="$MY_WORKSPACE/std/rpmbuild/RPMS"
|
||||||
|
@ -316,7 +324,7 @@ function init_output_dir {
|
||||||
date +%s.%N > $OUTPUT_DIST_DIR/isolinux/.discinfo
|
date +%s.%N > $OUTPUT_DIST_DIR/isolinux/.discinfo
|
||||||
echo $PLATFORM_RELEASE >> $OUTPUT_DIST_DIR/isolinux/.discinfo
|
echo $PLATFORM_RELEASE >> $OUTPUT_DIST_DIR/isolinux/.discinfo
|
||||||
echo "x86_64" >> $OUTPUT_DIST_DIR/isolinux/.discinfo
|
echo "x86_64" >> $OUTPUT_DIST_DIR/isolinux/.discinfo
|
||||||
|
|
||||||
\cp -L -ru $DISTRO_REPO_DIR/isolinux/* $OUTPUT_DIST_DIR/isolinux/
|
\cp -L -ru $DISTRO_REPO_DIR/isolinux/* $OUTPUT_DIST_DIR/isolinux/
|
||||||
\cp -L -ru $DISTRO_REPO_DIR/images/pxeboot $OUTPUT_DIST_DIR/isolinux/images/
|
\cp -L -ru $DISTRO_REPO_DIR/images/pxeboot $OUTPUT_DIST_DIR/isolinux/images/
|
||||||
|
|
||||||
|
@ -342,7 +350,7 @@ function init_output_dir {
|
||||||
perl -p -i -e "s/device=sda/device=${DEVICE}/g" $OUTPUT_DIST_DIR/isolinux/isolinux.cfg
|
perl -p -i -e "s/device=sda/device=${DEVICE}/g" $OUTPUT_DIST_DIR/isolinux/isolinux.cfg
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy UEFI files
|
# Copy UEFI files
|
||||||
\cp -L -ru $DISTRO_REPO_DIR/EFI/* $OUTPUT_DIST_DIR/isolinux/EFI/
|
\cp -L -ru $DISTRO_REPO_DIR/EFI/* $OUTPUT_DIST_DIR/isolinux/EFI/
|
||||||
\cp -L "$BSP_FILES_PATH/grub.cfg" "$OUTPUT_DIST_DIR/isolinux/EFI/BOOT/grub.cfg"
|
\cp -L "$BSP_FILES_PATH/grub.cfg" "$OUTPUT_DIST_DIR/isolinux/EFI/BOOT/grub.cfg"
|
||||||
\cp -L "$BSP_FILES_PATH/pxeboot_grub.cfg" "$OUTPUT_DIST_DIR/isolinux/pxeboot/pxeboot_grub.cfg"
|
\cp -L "$BSP_FILES_PATH/pxeboot_grub.cfg" "$OUTPUT_DIST_DIR/isolinux/pxeboot/pxeboot_grub.cfg"
|
||||||
|
@ -472,7 +480,7 @@ function final_touches {
|
||||||
# create the repo
|
# create the repo
|
||||||
\cd $OUTPUT_DIST_DIR/isolinux
|
\cd $OUTPUT_DIST_DIR/isolinux
|
||||||
$CREATEREPO -q -g ../comps.xml .
|
$CREATEREPO -q -g ../comps.xml .
|
||||||
|
|
||||||
# build the ISO
|
# build the ISO
|
||||||
printf "Building image $OUTPUT_FILE\n"
|
printf "Building image $OUTPUT_FILE\n"
|
||||||
\cd $OUTPUT_DIST_DIR
|
\cd $OUTPUT_DIST_DIR
|
||||||
|
@ -485,7 +493,7 @@ function final_touches {
|
||||||
-eltorito-alt-boot \
|
-eltorito-alt-boot \
|
||||||
-e images/efiboot.img \
|
-e images/efiboot.img \
|
||||||
-no-emul-boot \
|
-no-emul-boot \
|
||||||
isolinux/
|
isolinux/
|
||||||
|
|
||||||
isohybrid --uefi $OUTPUT_FILE
|
isohybrid --uefi $OUTPUT_FILE
|
||||||
implantisomd5 $OUTPUT_FILE
|
implantisomd5 $OUTPUT_FILE
|
||||||
|
@ -495,7 +503,7 @@ function final_touches {
|
||||||
|
|
||||||
function extract_pkg_from_local_repo {
|
function extract_pkg_from_local_repo {
|
||||||
local pkgname=$1
|
local pkgname=$1
|
||||||
local yum_conf=$2
|
local pkg_mgr_conf=$2
|
||||||
shift 2
|
shift 2
|
||||||
|
|
||||||
local repoid=""
|
local repoid=""
|
||||||
|
@ -505,7 +513,14 @@ function extract_pkg_from_local_repo {
|
||||||
repoid_arg+=" --repoid=${repoid}"
|
repoid_arg+=" --repoid=${repoid}"
|
||||||
done
|
done
|
||||||
|
|
||||||
local pkgfile=$(TMPDIR=$TMP_DIR repoquery --config=${yum_conf} ${repoid_arg} --location -q ${pkgname})
|
echo "TMPDIR=$TMP_DIR"\
|
||||||
|
"${REPOQUERY} --config=${pkg_mgr_conf} ${repoid_arg}"\
|
||||||
|
"${REPOQUERY_SUB_COMMAND} --location"\
|
||||||
|
"--arch=noarch,x86_64 -q ${pkgname}"
|
||||||
|
local pkgfile=$(TMPDIR=$TMP_DIR \
|
||||||
|
${REPOQUERY} --config=${pkg_mgr_conf} ${repoid_arg} \
|
||||||
|
${REPOQUERY_SUB_COMMAND} --location \
|
||||||
|
--arch=noarch,x86_64 -q ${pkgname})
|
||||||
if [ -z "${pkgfile}" ]; then
|
if [ -z "${pkgfile}" ]; then
|
||||||
echo "Could not find package $pkgname in $@"
|
echo "Could not find package $pkgname in $@"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -605,7 +620,7 @@ EOM
|
||||||
echo "Error: Could not copy all files from installer"
|
echo "Error: Could not copy all files from installer"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
\cp --preserve=all www/pages/feed/rel-*/LiveOS/squashfs.img $OUTPUT_DIST_DIR/isolinux/LiveOS
|
\cp --preserve=all www/pages/feed/rel-*/LiveOS/squashfs.img $OUTPUT_DIST_DIR/isolinux/LiveOS
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: Could not copy squashfs from LiveOS"
|
echo "Error: Could not copy squashfs from LiveOS"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 Wind River Systems, Inc.
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
@ -15,6 +15,10 @@
|
||||||
|
|
||||||
BUILD_PKGS_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
BUILD_PKGS_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
||||||
|
|
||||||
|
# Set REPOQUERY and REPOQUERY_SUB_COMMAND for our build environment.
|
||||||
|
source "${BUILD_PKGS_DIR}/pkg-manager-utils.sh"
|
||||||
|
|
||||||
|
|
||||||
usage () {
|
usage () {
|
||||||
echo ""
|
echo ""
|
||||||
echo "Usage: "
|
echo "Usage: "
|
||||||
|
@ -75,11 +79,15 @@ make_cache_current_rpms () {
|
||||||
if [ -d $MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/repodata ]; then
|
if [ -d $MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/repodata ]; then
|
||||||
current=$MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/
|
current=$MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/
|
||||||
|
|
||||||
repoquery \
|
${REPOQUERY} \
|
||||||
--repofrompath=$build_type-$rpm_type,$current \
|
--repofrompath=$build_type-$rpm_type,$current \
|
||||||
--repoid=$build_type-$rpm_type --arch=noarch,src,x86_64 -a \
|
--repoid=$build_type-$rpm_type --arch=noarch,src,x86_64 \
|
||||||
|
${REPOQUERY_SUB_COMMAND} \
|
||||||
|
--all \
|
||||||
--qf "%-10{repoid} %-40{name} %-10{version} %-10{release}" \
|
--qf "%-10{repoid} %-40{name} %-10{version} %-10{release}" \
|
||||||
>> ${FILE}
|
>> ${FILE}
|
||||||
|
|
||||||
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
fi
|
fi
|
||||||
done;
|
done;
|
||||||
done;
|
done;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 Wind River Systems, Inc.
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
# The location of packages to be built is
|
# The location of packages to be built is
|
||||||
# $MY_WORKSPACE/<build-type>/rpmbuild/SRPMS.
|
# $MY_WORKSPACE/<build-type>/rpmbuild/SRPMS.
|
||||||
#
|
#
|
||||||
# The build order is a derived from the BuildRequires in the
|
# The build order is a derived from the BuildRequires in the
|
||||||
# spec files in the src.rpms. Note that the BuildRequires sometimes
|
# spec files in the src.rpms. Note that the BuildRequires sometimes
|
||||||
# create dependency loops, so no correct order can be computed. In these
|
# create dependency loops, so no correct order can be computed. In these
|
||||||
# cases we add a retry loop. As long as one new package builds, we
|
# cases we add a retry loop. As long as one new package builds, we
|
||||||
|
@ -24,9 +24,12 @@
|
||||||
# messages go by!
|
# messages go by!
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
export ME=$(basename "$0")
|
export ME=$(basename "$0")
|
||||||
CMDLINE="$ME $@"
|
CMDLINE="$ME $@"
|
||||||
|
BUILD_RPMS_PARALLEL_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
||||||
|
|
||||||
|
# Set PKG_MANAGER for our build environment.
|
||||||
|
source "${BUILD_RPMS_PARALLEL_DIR}/pkg-manager-utils.sh"
|
||||||
|
|
||||||
|
|
||||||
# Build for distribution. Currently 'centos' is only supported value.
|
# Build for distribution. Currently 'centos' is only supported value.
|
||||||
|
@ -43,22 +46,22 @@ MAX_MEM_PER_WORKER=11
|
||||||
# Note: tmpfs is typically 2.5 gb when compiling many small jobs
|
# Note: tmpfs is typically 2.5 gb when compiling many small jobs
|
||||||
MIN_MEM_PER_WORKER=3
|
MIN_MEM_PER_WORKER=3
|
||||||
|
|
||||||
# Maximum number of disk based parallel build environments
|
# Maximum number of disk based parallel build environments
|
||||||
MAX_DISK_BASED_WORKERS=2
|
MAX_DISK_BASED_WORKERS=2
|
||||||
|
|
||||||
# Minimum space in gb for each disk based parallel build environment
|
# Minimum space in gb for each disk based parallel build environment
|
||||||
MIN_DISK_PER_WORKER=20
|
MIN_DISK_PER_WORKER=20
|
||||||
|
|
||||||
# How many srpms to build before we add another parallel build environment
|
# How many srpms to build before we add another parallel build environment
|
||||||
MIN_TASKS_PER_CORE=3
|
MIN_TASKS_PER_CORE=3
|
||||||
|
|
||||||
# Max number of new concurrent builds to allow for
|
# Max number of new concurrent builds to allow for
|
||||||
MAX_SHARE_FACTOR=4
|
MAX_SHARE_FACTOR=4
|
||||||
|
|
||||||
# Always leave at least MEMORY_RESERVE gb of available mem for the system
|
# Always leave at least MEMORY_RESERVE gb of available mem for the system
|
||||||
MEMORY_RESERVE=1
|
MEMORY_RESERVE=1
|
||||||
|
|
||||||
# These two values will be reassigned in the 'compute_resources' subroutine
|
# These two values will be reassigned in the 'compute_resources' subroutine
|
||||||
MOCKCHAIN_RESOURCE_ALLOCATION=""
|
MOCKCHAIN_RESOURCE_ALLOCATION=""
|
||||||
MAX_WORKERS=$ABSOLUTE_MAX_WORKERS
|
MAX_WORKERS=$ABSOLUTE_MAX_WORKERS
|
||||||
|
|
||||||
|
@ -164,7 +167,7 @@ create-no-clean-list () {
|
||||||
local install_groups=""
|
local install_groups=""
|
||||||
local install_packages=""
|
local install_packages=""
|
||||||
local p
|
local p
|
||||||
|
|
||||||
for p in $(grep "config_opts\['chroot_setup_cmd'\]" $MY_BUILD_CFG | tail -n1 | cut -d '=' -f 2 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/^'//" -e "s/'$//" -e 's/^install //'); do
|
for p in $(grep "config_opts\['chroot_setup_cmd'\]" $MY_BUILD_CFG | tail -n1 | cut -d '=' -f 2 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/^'//" -e "s/'$//" -e 's/^install //'); do
|
||||||
if [[ $p == @* ]] ; then
|
if [[ $p == @* ]] ; then
|
||||||
install_groups=$(join_by ' ' $install_groups $(echo $p | cut -c 2-))
|
install_groups=$(join_by ' ' $install_groups $(echo $p | cut -c 2-))
|
||||||
|
@ -172,37 +175,44 @@ create-no-clean-list () {
|
||||||
install_packages=$(join_by ' ' $install_packages $p)
|
install_packages=$(join_by ' ' $install_packages $p)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
local noclean_last_list_len=0
|
local noclean_last_list_len=0
|
||||||
local noclean_list=""
|
local noclean_list=""
|
||||||
local tmp_list=""
|
local tmp_list=""
|
||||||
local g
|
local g
|
||||||
|
|
||||||
for g in $install_groups; do
|
for g in $install_groups; do
|
||||||
tmp_list=$(yum -c $MY_YUM_CONF groupinfo $g 2>> /dev/null | awk 'f;/Mandatory Packages:/{f=1}' | cut -c 5-)
|
# Find mandatory packages in the group.
|
||||||
|
# Discard anything before (and including) 'Mandatory Packages:'
|
||||||
|
# and anything after (and including) 'Optional Packages:'.
|
||||||
|
# Also discard leading spaces or '+' characters.
|
||||||
|
tmp_list=$(${PKG_MANAGER} -c $MY_YUM_CONF groupinfo $g 2>> /dev/null \
|
||||||
|
| awk 'f;/Mandatory Packages:/{f=1}' \
|
||||||
|
| sed -n '/Optional Packages:/q;p' \
|
||||||
|
| sed 's#[ +]*##')
|
||||||
noclean_list=$(join_by ' ' $noclean_list $tmp_list)
|
noclean_list=$(join_by ' ' $noclean_list $tmp_list)
|
||||||
done
|
done
|
||||||
|
|
||||||
noclean_list=$(join_by ' ' $noclean_list $install_packages)
|
noclean_list=$(join_by ' ' $noclean_list $install_packages)
|
||||||
noclean_list=$(echo $noclean_list | tr ' ' '\n' | sort --uniq)
|
noclean_list=$(echo $noclean_list | tr ' ' '\n' | sort --uniq)
|
||||||
noclean_list_len=$(echo $noclean_list | wc -w)
|
noclean_list_len=$(echo $noclean_list | wc -w)
|
||||||
|
|
||||||
while [ $noclean_list_len -gt $noclean_last_list_len ]; do
|
while [ $noclean_list_len -gt $noclean_last_list_len ]; do
|
||||||
noclean_last_list_len=$noclean_list_len
|
noclean_last_list_len=$noclean_list_len
|
||||||
noclean_list=$( (yum -c $MY_YUM_CONF deplist $noclean_list 2>> /dev/null | grep provider: | awk '{ print $2 }' | awk -F . '{ print $1 }'; for p in $noclean_list; do echo $p; done) | sort --uniq)
|
noclean_list=$( (${PKG_MANAGER} -c $MY_YUM_CONF deplist $noclean_list 2>> /dev/null | grep provider: | awk '{ print $2 }' | awk -F . '{ print $1 }'; for p in $noclean_list; do echo $p; done) | sort --uniq)
|
||||||
noclean_list_len=$(echo $noclean_list | wc -w)
|
noclean_list_len=$(echo $noclean_list | wc -w)
|
||||||
done
|
done
|
||||||
|
|
||||||
echo $noclean_list > $NO_CLEAN_LIST_FILE
|
echo $noclean_list > $NO_CLEAN_LIST_FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat $NO_CLEAN_LIST_FILE
|
cat $NO_CLEAN_LIST_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
str_lst_contains() {
|
str_lst_contains() {
|
||||||
TARGET="$1"
|
TARGET="$1"
|
||||||
LST="$2"
|
LST="$2"
|
||||||
if [[ $LST =~ (^|[[:space:]])$TARGET($|[[:space:]]) ]] ; then
|
if [[ $LST =~ (^|[[:space:]])$TARGET($|[[:space:]]) ]] ; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
|
@ -214,7 +224,7 @@ compute_resources () {
|
||||||
local b
|
local b
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
for f in $@; do
|
for f in $@; do
|
||||||
b=$(basename $f)
|
b=$(basename $f)
|
||||||
if [ -f $SOURCES_DIR/$b/BIG ] || [ ]; then
|
if [ -f $SOURCES_DIR/$b/BIG ] || [ ]; then
|
||||||
weight=$((weight+MIN_TASKS_PER_CORE))
|
weight=$((weight+MIN_TASKS_PER_CORE))
|
||||||
|
@ -232,7 +242,7 @@ compute_resources () {
|
||||||
local cpus=$(number_of_cpus)
|
local cpus=$(number_of_cpus)
|
||||||
local num_users=$(sqrt $users)
|
local num_users=$(sqrt $users)
|
||||||
local num_build=$(number_of_builds_in_progress)
|
local num_build=$(number_of_builds_in_progress)
|
||||||
num_build=$((num_build+1))
|
num_build=$((num_build+1))
|
||||||
echo "compute_resources: total: cpus=$cpus, mem=$mem, disk=$disk, weight=$weight, num_build=$num_build"
|
echo "compute_resources: total: cpus=$cpus, mem=$mem, disk=$disk, weight=$weight, num_build=$num_build"
|
||||||
|
|
||||||
# What fraction of the machine will we use
|
# What fraction of the machine will we use
|
||||||
|
@ -311,7 +321,9 @@ create_lst () {
|
||||||
recreate_repodata () {
|
recreate_repodata () {
|
||||||
local DIR=${1}
|
local DIR=${1}
|
||||||
|
|
||||||
(cd $DIR
|
(
|
||||||
|
mkdir -p $DIR
|
||||||
|
cd $DIR
|
||||||
if [ -f repodata/*comps*xml ]; then
|
if [ -f repodata/*comps*xml ]; then
|
||||||
\mv repodata/*comps*xml comps.xml
|
\mv repodata/*comps*xml comps.xml
|
||||||
fi
|
fi
|
||||||
|
@ -402,11 +414,11 @@ union () {
|
||||||
echo $b
|
echo $b
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# returns 0 if element is in the array
|
# returns 0 if element is in the array
|
||||||
#
|
#
|
||||||
# e.g. contains ARRAY $SEEKING && echo "$SEEKING is in 'ARRAY'"
|
# e.g. contains ARRAY $SEEKING && echo "$SEEKING is in 'ARRAY'"
|
||||||
#
|
#
|
||||||
contains () {
|
contains () {
|
||||||
|
@ -453,7 +465,7 @@ build_order_recursive () {
|
||||||
needs=( $(grep "^$target;" "$SRPM_DIRECT_REQUIRES_FILE" | sed "s/$target;//" | sed 's/,/ /g') )
|
needs=( $(grep "^$target;" "$SRPM_DIRECT_REQUIRES_FILE" | sed "s/$target;//" | sed 's/,/ /g') )
|
||||||
needs_list=( $(intersection needs remainder_list) )
|
needs_list=( $(intersection needs remainder_list) )
|
||||||
for((idx=0;idx<${#needs_list[@]};idx++)); do
|
for((idx=0;idx<${#needs_list[@]};idx++)); do
|
||||||
build_order_recursive ${needs_list[idx]}
|
build_order_recursive ${needs_list[idx]}
|
||||||
done
|
done
|
||||||
echo $target
|
echo $target
|
||||||
break
|
break
|
||||||
|
@ -503,7 +515,7 @@ build_order () {
|
||||||
UNORDERED_LIST=( ${original_list[@]} )
|
UNORDERED_LIST=( ${original_list[@]} )
|
||||||
while [ ${#UNORDERED_LIST[@]} -gt 0 ]; do
|
while [ ${#UNORDERED_LIST[@]} -gt 0 ]; do
|
||||||
element=${UNORDERED_LIST[0]}
|
element=${UNORDERED_LIST[0]}
|
||||||
build_order_recursive $element
|
build_order_recursive $element
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -621,7 +633,7 @@ umount_mock_root_as_tmpfs () {
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
mock_tmpfs_umount $mount_dir &> /dev/null
|
mock_tmpfs_umount $mount_dir &> /dev/null
|
||||||
|
|
||||||
rc=$?
|
rc=$?
|
||||||
if [ $rc -ne 0 ]; then
|
if [ $rc -ne 0 ]; then
|
||||||
echo "FAILED: mock_tmpfs_umount $mount_dir"
|
echo "FAILED: mock_tmpfs_umount $mount_dir"
|
||||||
|
@ -652,7 +664,7 @@ kill_descendents ()
|
||||||
recursive_promote_children=""
|
recursive_promote_children=""
|
||||||
recursive_children=$(pgrep -P $kill_pid)
|
recursive_children=$(pgrep -P $kill_pid)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $iteration -eq 0 ]; then
|
if [ $iteration -eq 0 ]; then
|
||||||
other_children=$(for relevant_child in $relevant_other_children; do pgrep -P $kill_pid $relevant_child; done)
|
other_children=$(for relevant_child in $relevant_other_children; do pgrep -P $kill_pid $relevant_child; done)
|
||||||
if [ "$other_children" != "" ]; then
|
if [ "$other_children" != "" ]; then
|
||||||
|
@ -667,7 +679,7 @@ kill_descendents ()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for pid in $recursive_children; do
|
for pid in $recursive_children; do
|
||||||
kill_descendents "$pid" $kill_all $need_stop $((iteration + 1))
|
kill_descendents "$pid" $kill_all $need_stop $((iteration + 1))
|
||||||
done
|
done
|
||||||
for pid in $recursive_promote_children; do
|
for pid in $recursive_promote_children; do
|
||||||
kill_descendents "$pid" 1 1 $((iteration + 1))
|
kill_descendents "$pid" 1 1 $((iteration + 1))
|
||||||
|
@ -946,11 +958,11 @@ mock_clean_cfg () {
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
mock_clean_cache_cfg $CFG
|
mock_clean_cache_cfg $CFG
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --clean"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --clean"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --clean
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --clean
|
||||||
### Note: this sometimes leaves behind a $MY_WORKSPACE/cache/mock/yum_cache/yumcache.lock
|
### Note: this sometimes leaves behind a $MY_WORKSPACE/cache/mock/yum_cache/yumcache.lock
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
mock_clean_cache_all_cfg $CFG
|
mock_clean_cache_all_cfg $CFG
|
||||||
|
@ -1034,10 +1046,10 @@ mock_partial_clean_cfg () {
|
||||||
local RPMS_CLEAN_LIST=""
|
local RPMS_CLEAN_LIST=""
|
||||||
local NEED_FULL_MOCK_CLEAN=0
|
local NEED_FULL_MOCK_CLEAN=0
|
||||||
for r in $RPMS_LIST; do
|
for r in $RPMS_LIST; do
|
||||||
if ! str_lst_contains $r "$NO_CLEAN_LIST" ; then
|
if ! str_lst_contains $r "$NO_CLEAN_LIST" ; then
|
||||||
RPMS_CLEAN_LIST=$(join_by ' ' $RPMS_CLEAN_LIST $r)
|
RPMS_CLEAN_LIST=$(join_by ' ' $RPMS_CLEAN_LIST $r)
|
||||||
else
|
else
|
||||||
echo "Can't remove '$r' from mock environment without a wipe";
|
echo "Can't remove '$r' from mock environment without a wipe";
|
||||||
NEED_FULL_MOCK_CLEAN=1
|
NEED_FULL_MOCK_CLEAN=1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -1050,19 +1062,19 @@ mock_partial_clean_cfg () {
|
||||||
# Intent of following is for $RPMS_LIST to be expand now while the remaining $ varaibles are for bash inside mock to expand
|
# Intent of following is for $RPMS_LIST to be expand now while the remaining $ varaibles are for bash inside mock to expand
|
||||||
echo "Try to uninstall from the mock environment these packages: $RPMS_CLEAN_LIST"
|
echo "Try to uninstall from the mock environment these packages: $RPMS_CLEAN_LIST"
|
||||||
CMD='LST="'$RPMS_CLEAN_LIST'";
|
CMD='LST="'$RPMS_CLEAN_LIST'";
|
||||||
DELETE_LIST="";
|
DELETE_LIST="";
|
||||||
for r in $LST; do
|
for r in $LST; do
|
||||||
FOUND=$(rpm -q $r) ;
|
FOUND=$(rpm -q $r) ;
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
DELETE_LIST="$DELETE_LIST $FOUND";
|
DELETE_LIST="$DELETE_LIST $FOUND";
|
||||||
fi;
|
fi;
|
||||||
done;
|
done;
|
||||||
echo "uninstalling these packages: $DELETE_LIST";
|
echo "uninstalling these packages: $DELETE_LIST";
|
||||||
if [ "$DELETE_LIST" != "" ]; then
|
if [ "$DELETE_LIST" != "" ]; then
|
||||||
rpm -e --nodeps $DELETE_LIST;
|
rpm -e --nodeps $DELETE_LIST;
|
||||||
fi'
|
fi'
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --chroot "bash -c '$CMD'" &>> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --chroot "bash -c '$CMD'" &>> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
cat $TMP
|
cat $TMP
|
||||||
|
@ -1112,8 +1124,8 @@ mock_clean_cache_cfg () {
|
||||||
|
|
||||||
clean_yum_cache_cfg $CFG
|
clean_yum_cache_cfg $CFG
|
||||||
|
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache" &> $TMP
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache" &> $TMP
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache &>> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache &>> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
cat $TMP
|
cat $TMP
|
||||||
|
@ -1141,8 +1153,8 @@ mock_clean_cache_all_cfg () {
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
clean_yum_cache_cfg $CFG
|
clean_yum_cache_cfg $CFG
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1169,9 +1181,16 @@ mock_clean_metadata_cfg () {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CMD=$((cat $CFG; grep config_opts\\[\'yum.conf\'\\\] $CFG | sed 's#\\n#\n#g') | grep '^[[]' | grep -v main | sed 's/[][]//g' | sed 's#^#yum --enablerepo=#' | sed 's#$# clean metadata#' | sort -u | tr '\n' ';')
|
CMD=$((cat $CFG; \
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
grep config_opts\\[\'yum.conf\'\\\] $CFG | \
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --chroot "bash -c '($CMD)'" &>>$TMP
|
sed 's#\\n#\n#g') | \
|
||||||
|
grep '^[[]' | \
|
||||||
|
grep -v main | \
|
||||||
|
sed -e 's/[][]//g' -e "s#^#${PKG_MANAGER} --enablerepo=#" -e 's#$# clean metadata#' | \
|
||||||
|
sort -u | \
|
||||||
|
tr '\n' ';')
|
||||||
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
||||||
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --chroot "bash -c '($CMD)'" &>>$TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
cat $TMP
|
cat $TMP
|
||||||
|
@ -1228,7 +1247,7 @@ update_cgcs_repo () {
|
||||||
if [ "x$NEW_UNTRACKED" != "x" ]; then
|
if [ "x$NEW_UNTRACKED" != "x" ]; then
|
||||||
NEED_REBUILD=1
|
NEED_REBUILD=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $NEED_REBUILD -eq 1 ]; then
|
if [ $NEED_REBUILD -eq 1 ]; then
|
||||||
NEED_MOCK_CLEAN=1
|
NEED_MOCK_CLEAN=1
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -1274,7 +1293,7 @@ mock_clean_mounts_dir () {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ $RC -eq 1 ]; then
|
if [ $RC -eq 1 ]; then
|
||||||
echo "ERROR: Directory '$MOUNT' is already mounted and will cause a build failure within mock."
|
echo "ERROR: Directory '$MOUNT' is already mounted and will cause a build failure within mock."
|
||||||
echo "Ask your system administrator to umount '$MOUNT'."
|
echo "Ask your system administrator to umount '$MOUNT'."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1319,7 +1338,7 @@ clean_yum_cache_cfg () {
|
||||||
local YUM_CACHE_MOUNT=$(readlink -f "$ROOT_DIR/root/var/cache/yum")
|
local YUM_CACHE_MOUNT=$(readlink -f "$ROOT_DIR/root/var/cache/yum")
|
||||||
local YUM_CACHE_LOCK="$CACHE_DIR/mock/yum_cache/yumcache.lock"
|
local YUM_CACHE_LOCK="$CACHE_DIR/mock/yum_cache/yumcache.lock"
|
||||||
# echo "clean_yum_cache YUM_CACHE_MOUNT='$YUM_CACHE_MOUNT' YUM_CACHE_LOCK='$YUM_CACHE_LOCK'"
|
# echo "clean_yum_cache YUM_CACHE_MOUNT='$YUM_CACHE_MOUNT' YUM_CACHE_LOCK='$YUM_CACHE_LOCK'"
|
||||||
|
|
||||||
if [ "$YUM_CACHE_MOUNT" != "" ]; then
|
if [ "$YUM_CACHE_MOUNT" != "" ]; then
|
||||||
mock_clean_mounts_dir "$YUM_CACHE_MOUNT"
|
mock_clean_mounts_dir "$YUM_CACHE_MOUNT"
|
||||||
fi
|
fi
|
||||||
|
@ -1358,8 +1377,8 @@ mock_update_cfg () {
|
||||||
echo "${FUNCNAME[0]}: $CFG"
|
echo "${FUNCNAME[0]}: $CFG"
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --update"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --update"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --update
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --update
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1368,8 +1387,8 @@ mock_init_cfg () {
|
||||||
echo "${FUNCNAME[0]}: $CFG"
|
echo "${FUNCNAME[0]}: $CFG"
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --init"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --init"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --init
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --init
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1388,14 +1407,14 @@ mock_update_or_init_cfg () {
|
||||||
if [ -d $ROOT_DIR/root ]; then
|
if [ -d $ROOT_DIR/root ]; then
|
||||||
echo "Updating the mock environment"
|
echo "Updating the mock environment"
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --update"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --update"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --update &> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --update &> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
else
|
else
|
||||||
echo "Init the mock environment"
|
echo "Init the mock environment"
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --init"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --init"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --init &> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --init &> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
fi
|
fi
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
|
@ -1411,7 +1430,7 @@ mock_update_or_init () {
|
||||||
local PREFIX=$(echo $SUB_CFG | rev | cut -d . -f 2 | rev)
|
local PREFIX=$(echo $SUB_CFG | rev | cut -d . -f 2 | rev)
|
||||||
( mock_update_or_init_cfg $SUB_CFG 2>&1 | sed "s#^#${PREFIX}: #" ; exit ${PIPESTATUS[0]} ) &
|
( mock_update_or_init_cfg $SUB_CFG 2>&1 | sed "s#^#${PREFIX}: #" ; exit ${PIPESTATUS[0]} ) &
|
||||||
done
|
done
|
||||||
wait
|
wait
|
||||||
echo "${FUNCNAME[0]}: out"
|
echo "${FUNCNAME[0]}: out"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1429,12 +1448,12 @@ NO_DESCENDANTS=0
|
||||||
NO_REQUIRED=0
|
NO_REQUIRED=0
|
||||||
NO_AUTOCLEAN=0
|
NO_AUTOCLEAN=0
|
||||||
NO_BUILD_INFO=0
|
NO_BUILD_INFO=0
|
||||||
HELP=0
|
HELP=0
|
||||||
CLEAN_FLAG=0
|
CLEAN_FLAG=0
|
||||||
FORMAL_FLAG=0
|
FORMAL_FLAG=0
|
||||||
CAREFUL=0
|
CAREFUL=0
|
||||||
DEP_TEST_FLAG=0
|
DEP_TEST_FLAG=0
|
||||||
|
|
||||||
# read the options
|
# read the options
|
||||||
TEMP=$(getopt -o h --long parallel,std,rt,installer,containers,no-required,no-descendants,no-autoclean,no-build-info,dep-test,clean,tmpfs-clean,formal,careful,help,layer: -n "$ME" -- "$@")
|
TEMP=$(getopt -o h --long parallel,std,rt,installer,containers,no-required,no-descendants,no-autoclean,no-build-info,dep-test,clean,tmpfs-clean,formal,careful,help,layer: -n "$ME" -- "$@")
|
||||||
|
|
||||||
|
@ -1470,7 +1489,7 @@ while true ; do
|
||||||
--) shift ; break ;;
|
--) shift ; break ;;
|
||||||
*) echo "Internal error!" ; exit 1 ;;
|
*) echo "Internal error!" ; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Reset variables
|
# Reset variables
|
||||||
if [ -n "$MY_WORKSPACE" ]; then
|
if [ -n "$MY_WORKSPACE" ]; then
|
||||||
|
@ -1729,7 +1748,7 @@ clean_list () {
|
||||||
echo "rm -rf $d"
|
echo "rm -rf $d"
|
||||||
\rm -rf "$d" 2>> /dev/null
|
\rm -rf "$d" 2>> /dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
rs=$(rpm_get_srpm $r)
|
rs=$(rpm_get_srpm $r)
|
||||||
if [[ "$rs" != "$sn"-[0-9]* ]]; then
|
if [[ "$rs" != "$sn"-[0-9]* ]]; then
|
||||||
|
@ -1742,7 +1761,7 @@ clean_list () {
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
TARGET=$(rpm -qp --qf '%{NAME}-%{VERSION}\n' "$s")
|
TARGET=$(rpm -qp --qf '%{NAME}-%{VERSION}\n' "$s")
|
||||||
|
|
||||||
if [ $CLEAN_FLAG -eq 1 ]; then
|
if [ $CLEAN_FLAG -eq 1 ]; then
|
||||||
|
@ -1782,7 +1801,7 @@ clean_list () {
|
||||||
|
|
||||||
\rm -f -v $RESULT_DIR/mockchain.log 2>> /dev/null
|
\rm -f -v $RESULT_DIR/mockchain.log 2>> /dev/null
|
||||||
mock_clean
|
mock_clean
|
||||||
else
|
else
|
||||||
# If dependency test
|
# If dependency test
|
||||||
if [ $DEP_TEST_FLAG -eq 1 ]; then
|
if [ $DEP_TEST_FLAG -eq 1 ]; then
|
||||||
mock_clean
|
mock_clean
|
||||||
|
@ -2045,7 +2064,7 @@ if [ $CLEAN_FLAG -eq 0 ] && [ $NO_DESCENDANTS -eq 0 ] && [ -f $SRPM_DIRECT_DESCE
|
||||||
done
|
done
|
||||||
|
|
||||||
# For non-std build, and if non specific build targets are named, then search all
|
# For non-std build, and if non specific build targets are named, then search all
|
||||||
# packages that we might build and check if they require a package that DID build
|
# packages that we might build and check if they require a package that DID build
|
||||||
# in the std build. If so build the package as a secondary target, even though the
|
# in the std build. If so build the package as a secondary target, even though the
|
||||||
# primary target was from a different build_type.
|
# primary target was from a different build_type.
|
||||||
if [ "$BUILD_TYPE" != "std" ] && [ $ALL -eq 1 ] && [ -f $SRPM_TO_RPM_MAP_FILE ] && [ -f $SRPM_RPM_DIRECT_REQUIRES_FILE ]; then
|
if [ "$BUILD_TYPE" != "std" ] && [ $ALL -eq 1 ] && [ -f $SRPM_TO_RPM_MAP_FILE ] && [ -f $SRPM_RPM_DIRECT_REQUIRES_FILE ]; then
|
||||||
|
@ -2105,7 +2124,7 @@ if [ $CLEAN_FLAG -eq 0 ] && [ $NO_DESCENDANTS -eq 0 ] && [ -f $SRPM_DIRECT_DESCE
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If the kernel or kernel-rt packages where absent from the primary build targets, but
|
# If the kernel or kernel-rt packages where absent from the primary build targets, but
|
||||||
# added as a secondary target, then make sure all out-of-tree kernel modules are also
|
# added as a secondary target, then make sure all out-of-tree kernel modules are also
|
||||||
# added.
|
# added.
|
||||||
for n in kernel kernel-rt; do
|
for n in kernel kernel-rt; do
|
||||||
|
@ -2234,9 +2253,9 @@ echo "SRPMS_LIST = $SRPMS_LIST"
|
||||||
echo "RPMS_LIST = $RPMS_LIST"
|
echo "RPMS_LIST = $RPMS_LIST"
|
||||||
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
if [ $CLEAN_FLAG -eq 0 ]; then
|
if [ $CLEAN_FLAG -eq 0 ]; then
|
||||||
# pre-create these directories as $USER,
|
# pre-create these directories as $USER,
|
||||||
# else mock will create them as root and fails to clean them.
|
# else mock will create them as root and fails to clean them.
|
||||||
# Note: keep these in sync with mockchain-parallel!
|
# Note: keep these in sync with mockchain-parallel!
|
||||||
for i in $(seq 0 $((MAX_WORKERS-1))); do
|
for i in $(seq 0 $((MAX_WORKERS-1))); do
|
||||||
|
@ -2299,15 +2318,28 @@ mock_clean_metadata
|
||||||
echo
|
echo
|
||||||
echo "Building"
|
echo "Building"
|
||||||
|
|
||||||
|
recreate_repodata $BUILD_BASE/results/$BUILD_ENVIRONMENT_DIR
|
||||||
|
|
||||||
CMD_PREFIX=""
|
CMD_PREFIX=""
|
||||||
if [ -x /bin/ionice ]; then
|
if [ -x /bin/ionice ]; then
|
||||||
CMD_PREFIX="nice -n 20 ionice -c Idle /bin/ionice "
|
CMD_PREFIX="nice -n 20 ionice -c Idle /bin/ionice "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CMD_OPTIONS="-m --no-clean -m --no-cleanup-after"
|
REAL_MOCKCHAIN=0
|
||||||
if [ $CAREFUL -eq 1 ]; then
|
MOCK_PASSTHROUGH="-m"
|
||||||
CMD_OPTIONS="-m --no-cleanup-after"
|
MOCKCHAIN="mockchain-parallel"
|
||||||
|
CHAIN_OPTION=""
|
||||||
|
if file $(which mockchain) | grep -q 'Python script'; then
|
||||||
|
REAL_MOCKCHAIN=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CMD_OPTIONS="$MOCK_PASSTHROUGH --no-clean $MOCK_PASSTHROUGH --no-cleanup-after"
|
||||||
|
if [ $CAREFUL -eq 1 ]; then
|
||||||
|
CMD_OPTIONS="$MOCK_PASSTHROUGH --no-cleanup-after"
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMD_OPTIONS+=" --log=$MOCKCHAIN_LOG"
|
||||||
|
|
||||||
echo "CAREFUL=$CAREFUL"
|
echo "CAREFUL=$CAREFUL"
|
||||||
|
|
||||||
# Sets WORKERS and MOCKCHAIN_RESOURCE_ALLOCATION
|
# Sets WORKERS and MOCKCHAIN_RESOURCE_ALLOCATION
|
||||||
|
@ -2315,13 +2347,13 @@ compute_resources $SRPMS_LIST
|
||||||
|
|
||||||
|
|
||||||
if [ -f $SRPM_RPM_DIRECT_REQUIRES_FILE ]; then
|
if [ -f $SRPM_RPM_DIRECT_REQUIRES_FILE ]; then
|
||||||
CMD_OPTIONS="$CMD_OPTIONS --srpm-dependency-file $SRPM_RPM_DIRECT_REQUIRES_FILE"
|
CMD_OPTIONS+=" --srpm-dependency-file $SRPM_RPM_DIRECT_REQUIRES_FILE"
|
||||||
fi
|
fi
|
||||||
if [ -f "$RPM_DIRECT_REQUIRES_FILE" ]; then
|
if [ -f "$RPM_DIRECT_REQUIRES_FILE" ]; then
|
||||||
CMD_OPTIONS="$CMD_OPTIONS --rpm-dependency-file $RPM_DIRECT_REQUIRES_FILE"
|
CMD_OPTIONS+=" --rpm-dependency-file $RPM_DIRECT_REQUIRES_FILE"
|
||||||
fi
|
fi
|
||||||
if [ -f "$RPM_TO_SRPM_MAP_FILE" ]; then
|
if [ -f "$RPM_TO_SRPM_MAP_FILE" ]; then
|
||||||
CMD_OPTIONS="$CMD_OPTIONS --rpm-to-srpm-map-file $RPM_TO_SRPM_MAP_FILE"
|
CMD_OPTIONS+=" --rpm-to-srpm-map-file $RPM_TO_SRPM_MAP_FILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -2342,12 +2374,12 @@ echo "MAX_WORKERS=$MAX_WORKERS"
|
||||||
echo "MOCKCHAIN_RESOURCE_ALLOCATION=$MOCKCHAIN_RESOURCE_ALLOCATION"
|
echo "MOCKCHAIN_RESOURCE_ALLOCATION=$MOCKCHAIN_RESOURCE_ALLOCATION"
|
||||||
|
|
||||||
|
|
||||||
CMD="$CMD_PREFIX mockchain-parallel -r $BUILD_CFG -l $BUILD_BASE --recurse --workers=$MAX_WORKERS --worker-resources=$MOCKCHAIN_RESOURCE_ALLOCATION --basedir=$MY_WORKSPACE --log=$MOCKCHAIN_LOG --tmp_prefix=$USER --addrepo=$LOCAL_URL --addrepo=$LOCAL_SRC_URL $CMD_OPTIONS -m --rebuild $SRPMS_LIST"
|
CMD="$CMD_PREFIX $MOCKCHAIN --root $BUILD_CFG --localrepo $BUILD_BASE --recurse --workers=$MAX_WORKERS --worker-resources=$MOCKCHAIN_RESOURCE_ALLOCATION --basedir=$MY_WORKSPACE --tmp_prefix=$USER --addrepo=$LOCAL_URL --addrepo=$LOCAL_SRC_URL $CMD_OPTIONS $MOCK_PASSTHROUGH --rebuild"
|
||||||
|
CMD_BUILD_LIST="$CHAIN_OPTION $SRPMS_LIST"
|
||||||
echo ""
|
echo ""
|
||||||
echo "$CMD -m --define='_tis_dist .tis' -m --define='platform_release $PLATFORM_RELEASE'"
|
echo "$CMD $MOCK_PASSTHROUGH --define='_tis_dist .tis' $MOCK_PASSTHROUGH --define='platform_release $PLATFORM_RELEASE' $CMD_BUILD_LIST"
|
||||||
echo ""
|
echo ""
|
||||||
|
trapwrap stdbuf -o0 $CMD $MOCK_PASSTHROUGH --define="_tis_dist .tis" $MOCK_PASSTHROUGH --define="platform_release $PLATFORM_RELEASE" $CMD_BUILD_LIST
|
||||||
trapwrap stdbuf -o0 $CMD -m --define="_tis_dist .tis" -m --define="platform_release $PLATFORM_RELEASE"
|
|
||||||
MOCKCHAIN_RC=$?
|
MOCKCHAIN_RC=$?
|
||||||
|
|
||||||
echo $PLATFORM_RELEASE > $LAST_PLATFORM_RELEASE_FILE
|
echo $PLATFORM_RELEASE > $LAST_PLATFORM_RELEASE_FILE
|
||||||
|
@ -2357,7 +2389,7 @@ if [ $CLEAN_FLAG -eq 0 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for d in $(find $RESULT_DIR -name '*.rpm' | grep -v '[.]src[.]rpm' | xargs --max-args=1 dirname | sort -u); do
|
for d in $(find $RESULT_DIR -name '*.rpm' | grep -v '[.]src[.]rpm' | xargs --max-args=1 dirname | sort -u); do
|
||||||
rsync -u $d/*.rpm $RPM_DIR
|
rsync -u $d/*.rpm $RPM_DIR
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $ALL -eq 1 ]; then
|
if [ $ALL -eq 1 ]; then
|
||||||
|
@ -2441,5 +2473,5 @@ if [ 0$FORMAL_BUILD -eq 1 ] && [ "$USER" == "jenkins" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
) 2>&1 | stdbuf -o0 awk '{ print strftime("%H:%M:%S"), $0; fflush(); }' | tee $(date "+$MY_WORKSPACE/build-rpms-parallel_%Y-%m-%d_%H-%M-%S.log") ; exit ${PIPESTATUS[0]}
|
) 2>&1 | stdbuf -o0 awk '{ print strftime("%H:%M:%S"), $0; fflush(); }' | tee $(date "+$MY_WORKSPACE/build-rpms-parallel_%Y-%m-%d_%H-%M-%S.log") ; exit ${PIPESTATUS[0]}
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 Wind River Systems, Inc.
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Builds rpm files from src.rpm files.
|
# Builds rpm files from src.rpm files.
|
||||||
#
|
#
|
||||||
# This version compiles one package at a time.
|
# This version compiles one package at a time.
|
||||||
#
|
#
|
||||||
# The location of packages to be built is
|
# The location of packages to be built is
|
||||||
# $MY_WORKSPACE/<build-type>/rpmbuild/SRPMS.
|
# $MY_WORKSPACE/<build-type>/rpmbuild/SRPMS.
|
||||||
#
|
#
|
||||||
# The build order is a derived from the BuildRequires in the
|
# The build order is a derived from the BuildRequires in the
|
||||||
# spec files in the src.rpms. Note that the BuildRequires sometimes
|
# spec files in the src.rpms. Note that the BuildRequires sometimes
|
||||||
# create dependency loops, so no correct order can be computed. In these
|
# create dependency loops, so no correct order can be computed. In these
|
||||||
# cases we add a retry loop. As long as one new package builds, we
|
# cases we add a retry loop. As long as one new package builds, we
|
||||||
|
@ -103,7 +103,7 @@ create-no-clean-list () {
|
||||||
local install_groups=""
|
local install_groups=""
|
||||||
local install_packages=""
|
local install_packages=""
|
||||||
local p
|
local p
|
||||||
|
|
||||||
for p in $(grep "config_opts\['chroot_setup_cmd'\]" $MY_BUILD_CFG | tail -n1 | cut -d '=' -f 2 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/^'//" -e "s/'$//" -e 's/^install //'); do
|
for p in $(grep "config_opts\['chroot_setup_cmd'\]" $MY_BUILD_CFG | tail -n1 | cut -d '=' -f 2 | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/^'//" -e "s/'$//" -e 's/^install //'); do
|
||||||
if [[ $p == @* ]] ; then
|
if [[ $p == @* ]] ; then
|
||||||
install_groups=$(join_by ' ' $install_groups $(echo $p | cut -c 2-))
|
install_groups=$(join_by ' ' $install_groups $(echo $p | cut -c 2-))
|
||||||
|
@ -111,37 +111,44 @@ create-no-clean-list () {
|
||||||
install_packages=$(join_by ' ' $install_packages $p)
|
install_packages=$(join_by ' ' $install_packages $p)
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
local noclean_last_list_len=0
|
local noclean_last_list_len=0
|
||||||
local noclean_list=""
|
local noclean_list=""
|
||||||
local tmp_list=""
|
local tmp_list=""
|
||||||
local g
|
local g
|
||||||
|
|
||||||
for g in $install_groups; do
|
for g in $install_groups; do
|
||||||
tmp_list=$(yum -c $MY_YUM_CONF groupinfo $g 2>> /dev/null | awk 'f;/Mandatory Packages:/{f=1}' | cut -c 5-)
|
# Find manditory packages in the group.
|
||||||
|
# Discard anything before (and including) 'Mandatory Packages:'
|
||||||
|
# and anything after (and including) 'Optional Packages:'.
|
||||||
|
# Also discard leading spaces or '+' characters.
|
||||||
|
tmp_list=$(${PKG_MANAGER} -c $MY_YUM_CONF groupinfo $g 2>> /dev/null \
|
||||||
|
| awk 'f;/Mandatory Packages:/{f=1}' \
|
||||||
|
| sed -n '/Optional Packages:/q;p' \
|
||||||
|
| sed 's#[ +]*##')
|
||||||
noclean_list=$(join_by ' ' $noclean_list $tmp_list)
|
noclean_list=$(join_by ' ' $noclean_list $tmp_list)
|
||||||
done
|
done
|
||||||
|
|
||||||
noclean_list=$(join_by ' ' $noclean_list $install_packages)
|
noclean_list=$(join_by ' ' $noclean_list $install_packages)
|
||||||
noclean_list=$(echo $noclean_list | tr ' ' '\n' | sort --uniq)
|
noclean_list=$(echo $noclean_list | tr ' ' '\n' | sort --uniq)
|
||||||
noclean_list_len=$(echo $noclean_list | wc -w)
|
noclean_list_len=$(echo $noclean_list | wc -w)
|
||||||
|
|
||||||
while [ $noclean_list_len -gt $noclean_last_list_len ]; do
|
while [ $noclean_list_len -gt $noclean_last_list_len ]; do
|
||||||
noclean_last_list_len=$noclean_list_len
|
noclean_last_list_len=$noclean_list_len
|
||||||
noclean_list=$( (yum -c $MY_YUM_CONF deplist $noclean_list 2>> /dev/null | grep provider: | awk '{ print $2 }' | awk -F . '{ print $1 }'; for p in $noclean_list; do echo $p; done) | sort --uniq)
|
noclean_list=$( (yum -c $MY_YUM_CONF deplist $noclean_list 2>> /dev/null | grep provider: | awk '{ print $2 }' | awk -F . '{ print $1 }'; for p in $noclean_list; do echo $p; done) | sort --uniq)
|
||||||
noclean_list_len=$(echo $noclean_list | wc -w)
|
noclean_list_len=$(echo $noclean_list | wc -w)
|
||||||
done
|
done
|
||||||
|
|
||||||
echo $noclean_list > $NO_CLEAN_LIST_FILE
|
echo $noclean_list > $NO_CLEAN_LIST_FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat $NO_CLEAN_LIST_FILE
|
cat $NO_CLEAN_LIST_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
str_lst_contains() {
|
str_lst_contains() {
|
||||||
TARGET="$1"
|
TARGET="$1"
|
||||||
LST="$2"
|
LST="$2"
|
||||||
if [[ $LST =~ (^|[[:space:]])$TARGET($|[[:space:]]) ]] ; then
|
if [[ $LST =~ (^|[[:space:]])$TARGET($|[[:space:]]) ]] ; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
|
@ -169,7 +176,9 @@ create_lst () {
|
||||||
recreate_repodata () {
|
recreate_repodata () {
|
||||||
local DIR=${1}
|
local DIR=${1}
|
||||||
|
|
||||||
(cd $DIR
|
(
|
||||||
|
mkdir -p $DIR
|
||||||
|
cd $DIR
|
||||||
if [ -f repodata/*comps*xml ]; then
|
if [ -f repodata/*comps*xml ]; then
|
||||||
\mv repodata/*comps*xml comps.xml
|
\mv repodata/*comps*xml comps.xml
|
||||||
fi
|
fi
|
||||||
|
@ -260,11 +269,11 @@ union () {
|
||||||
echo $b
|
echo $b
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# returns 0 if element is in the array
|
# returns 0 if element is in the array
|
||||||
#
|
#
|
||||||
# e.g. contains ARRAY $SEEKING && echo "$SEEKING is in 'ARRAY'"
|
# e.g. contains ARRAY $SEEKING && echo "$SEEKING is in 'ARRAY'"
|
||||||
#
|
#
|
||||||
contains () {
|
contains () {
|
||||||
|
@ -311,7 +320,7 @@ build_order_recursive () {
|
||||||
needs=( $(grep "^$target;" "$SRPM_DIRECT_REQUIRES_FILE" | sed "s/$target;//" | sed 's/,/ /g') )
|
needs=( $(grep "^$target;" "$SRPM_DIRECT_REQUIRES_FILE" | sed "s/$target;//" | sed 's/,/ /g') )
|
||||||
needs_list=( $(intersection needs remainder_list) )
|
needs_list=( $(intersection needs remainder_list) )
|
||||||
for((idx=0;idx<${#needs_list[@]};idx++)); do
|
for((idx=0;idx<${#needs_list[@]};idx++)); do
|
||||||
build_order_recursive ${needs_list[idx]}
|
build_order_recursive ${needs_list[idx]}
|
||||||
done
|
done
|
||||||
echo $target
|
echo $target
|
||||||
break
|
break
|
||||||
|
@ -361,7 +370,7 @@ build_order () {
|
||||||
UNORDERED_LIST=( ${original_list[@]} )
|
UNORDERED_LIST=( ${original_list[@]} )
|
||||||
while [ ${#UNORDERED_LIST[@]} -gt 0 ]; do
|
while [ ${#UNORDERED_LIST[@]} -gt 0 ]; do
|
||||||
element=${UNORDERED_LIST[0]}
|
element=${UNORDERED_LIST[0]}
|
||||||
build_order_recursive $element
|
build_order_recursive $element
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -476,7 +485,7 @@ kill_descendents ()
|
||||||
recursive_promote_children=""
|
recursive_promote_children=""
|
||||||
recursive_children=$(pgrep -P $kill_pid)
|
recursive_children=$(pgrep -P $kill_pid)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $iteration -eq 0 ]; then
|
if [ $iteration -eq 0 ]; then
|
||||||
other_children=$(for relevant_child in $relevant_other_children; do pgrep -P $kill_pid $relevant_child; done)
|
other_children=$(for relevant_child in $relevant_other_children; do pgrep -P $kill_pid $relevant_child; done)
|
||||||
if [ "$other_children" != "" ]; then
|
if [ "$other_children" != "" ]; then
|
||||||
|
@ -491,7 +500,7 @@ kill_descendents ()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for pid in $recursive_children; do
|
for pid in $recursive_children; do
|
||||||
kill_descendents "$pid" $kill_all $need_stop $((iteration + 1))
|
kill_descendents "$pid" $kill_all $need_stop $((iteration + 1))
|
||||||
done
|
done
|
||||||
for pid in $recursive_promote_children; do
|
for pid in $recursive_promote_children; do
|
||||||
kill_descendents "$pid" 1 1 $((iteration + 1))
|
kill_descendents "$pid" 1 1 $((iteration + 1))
|
||||||
|
@ -754,11 +763,11 @@ mock_clean_cfg () {
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
mock_clean_cache_cfg $CFG
|
mock_clean_cache_cfg $CFG
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --clean"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --clean"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --clean
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --clean
|
||||||
### Note: this sometimes leaves behind a $MY_WORKSPACE/cache/mock/yum_cache/yumcache.lock
|
### Note: this sometimes leaves behind a $MY_WORKSPACE/cache/mock/yum_cache/yumcache.lock
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
mock_clean_cache_all_cfg $CFG
|
mock_clean_cache_all_cfg $CFG
|
||||||
|
@ -833,10 +842,10 @@ mock_partial_clean_cfg () {
|
||||||
local RPMS_CLEAN_LIST=""
|
local RPMS_CLEAN_LIST=""
|
||||||
local NEED_FULL_MOCK_CLEAN=0
|
local NEED_FULL_MOCK_CLEAN=0
|
||||||
for r in $RPMS_LIST; do
|
for r in $RPMS_LIST; do
|
||||||
if ! str_lst_contains $r "$NO_CLEAN_LIST" ; then
|
if ! str_lst_contains $r "$NO_CLEAN_LIST" ; then
|
||||||
RPMS_CLEAN_LIST=$(join_by ' ' $RPMS_CLEAN_LIST $r)
|
RPMS_CLEAN_LIST=$(join_by ' ' $RPMS_CLEAN_LIST $r)
|
||||||
else
|
else
|
||||||
echo "Can't remove '$r' from mock environment without a wipe";
|
echo "Can't remove '$r' from mock environment without a wipe";
|
||||||
NEED_FULL_MOCK_CLEAN=1
|
NEED_FULL_MOCK_CLEAN=1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -849,19 +858,19 @@ mock_partial_clean_cfg () {
|
||||||
# Intent of following is for $RPMS_LIST to be expand now while the remaining $ varaibles are for bash inside mock to expand
|
# Intent of following is for $RPMS_LIST to be expand now while the remaining $ varaibles are for bash inside mock to expand
|
||||||
echo "Try to uninstall from the mock environment these packages: $RPMS_CLEAN_LIST"
|
echo "Try to uninstall from the mock environment these packages: $RPMS_CLEAN_LIST"
|
||||||
CMD='LST="'$RPMS_CLEAN_LIST'";
|
CMD='LST="'$RPMS_CLEAN_LIST'";
|
||||||
DELETE_LIST="";
|
DELETE_LIST="";
|
||||||
for r in $LST; do
|
for r in $LST; do
|
||||||
FOUND=$(rpm -q $r) ;
|
FOUND=$(rpm -q $r) ;
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
DELETE_LIST="$DELETE_LIST $FOUND";
|
DELETE_LIST="$DELETE_LIST $FOUND";
|
||||||
fi;
|
fi;
|
||||||
done;
|
done;
|
||||||
echo "uninstalling these packages: $DELETE_LIST";
|
echo "uninstalling these packages: $DELETE_LIST";
|
||||||
if [ "$DELETE_LIST" != "" ]; then
|
if [ "$DELETE_LIST" != "" ]; then
|
||||||
rpm -e --nodeps $DELETE_LIST;
|
rpm -e --nodeps $DELETE_LIST;
|
||||||
fi'
|
fi'
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --chroot "bash -c '$CMD'" &>> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --chroot "bash -c '$CMD'" &>> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
cat $TMP
|
cat $TMP
|
||||||
|
@ -907,8 +916,8 @@ mock_clean_cache_cfg () {
|
||||||
|
|
||||||
clean_yum_cache_cfg $CFG
|
clean_yum_cache_cfg $CFG
|
||||||
|
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache" &> $TMP
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache" &> $TMP
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache &>> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --scrub=root-cache --scrub=yum-cache --scrub=cache &>> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
cat $TMP
|
cat $TMP
|
||||||
|
@ -931,8 +940,8 @@ mock_clean_cache_all_cfg () {
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
clean_yum_cache_cfg $CFG
|
clean_yum_cache_cfg $CFG
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --scrub=all
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --scrub=all
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -956,8 +965,8 @@ mock_clean_metadata_cfg () {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CMD=$((cat $CFG; grep config_opts\\[\'yum.conf\'\\\] $CFG | sed 's#\\n#\n#g') | grep '^[[]' | grep -v main | sed 's/[][]//g' | sed 's#^#yum --enablerepo=#' | sed 's#$# clean metadata#' | sort -u | tr '\n' ';')
|
CMD=$((cat $CFG; grep config_opts\\[\'yum.conf\'\\\] $CFG | sed 's#\\n#\n#g') | grep '^[[]' | grep -v main | sed 's/[][]//g' | sed 's#^#yum --enablerepo=#' | sed 's#$# clean metadata#' | sort -u | tr '\n' ';')
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --chroot bash -c $CMD" &> $TMP
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --chroot "bash -c '($CMD)'" &>>$TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --chroot "bash -c '($CMD)'" &>>$TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
cat $TMP
|
cat $TMP
|
||||||
|
@ -1010,7 +1019,7 @@ update_cgcs_repo () {
|
||||||
if [ "x$NEW_UNTRACKED" != "x" ]; then
|
if [ "x$NEW_UNTRACKED" != "x" ]; then
|
||||||
NEED_REBUILD=1
|
NEED_REBUILD=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $NEED_REBUILD -eq 1 ]; then
|
if [ $NEED_REBUILD -eq 1 ]; then
|
||||||
NEED_MOCK_CLEAN=1
|
NEED_MOCK_CLEAN=1
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -1056,7 +1065,7 @@ mock_clean_mounts_dir () {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ $RC -eq 1 ]; then
|
if [ $RC -eq 1 ]; then
|
||||||
echo "ERROR: Directory '$MOUNT' is already mounted and will cause a build failure within mock."
|
echo "ERROR: Directory '$MOUNT' is already mounted and will cause a build failure within mock."
|
||||||
echo "Ask your system administrator to umount '$MOUNT'."
|
echo "Ask your system administrator to umount '$MOUNT'."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1097,7 +1106,7 @@ clean_yum_cache_cfg () {
|
||||||
local YUM_CACHE_MOUNT=$(readlink -f "$ROOT_DIR/root/var/cache/yum")
|
local YUM_CACHE_MOUNT=$(readlink -f "$ROOT_DIR/root/var/cache/yum")
|
||||||
local YUM_CACHE_LOCK="$CACHE_DIR/mock/yum_cache/yumcache.lock"
|
local YUM_CACHE_LOCK="$CACHE_DIR/mock/yum_cache/yumcache.lock"
|
||||||
# echo "clean_yum_cache YUM_CACHE_MOUNT='$YUM_CACHE_MOUNT' YUM_CACHE_LOCK='$YUM_CACHE_LOCK'"
|
# echo "clean_yum_cache YUM_CACHE_MOUNT='$YUM_CACHE_MOUNT' YUM_CACHE_LOCK='$YUM_CACHE_LOCK'"
|
||||||
|
|
||||||
if [ "$YUM_CACHE_MOUNT" != "" ]; then
|
if [ "$YUM_CACHE_MOUNT" != "" ]; then
|
||||||
mock_clean_mounts_dir "$YUM_CACHE_MOUNT"
|
mock_clean_mounts_dir "$YUM_CACHE_MOUNT"
|
||||||
fi
|
fi
|
||||||
|
@ -1131,8 +1140,8 @@ mock_update_cfg () {
|
||||||
echo "${FUNCNAME[0]}: $CFG"
|
echo "${FUNCNAME[0]}: $CFG"
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --update"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --update"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --update
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --update
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1141,8 +1150,8 @@ mock_init_cfg () {
|
||||||
echo "${FUNCNAME[0]}: $CFG"
|
echo "${FUNCNAME[0]}: $CFG"
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --init"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --init"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --init
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --init
|
||||||
echo "=================================="
|
echo "=================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1161,14 +1170,14 @@ mock_update_or_init_cfg () {
|
||||||
if [ -d $ROOT_DIR/root ]; then
|
if [ -d $ROOT_DIR/root ]; then
|
||||||
echo "Updating the mock environment"
|
echo "Updating the mock environment"
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --update"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --update"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --update &> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --update &> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
else
|
else
|
||||||
echo "Init the mock environment"
|
echo "Init the mock environment"
|
||||||
set_mock_symlinks $CFG
|
set_mock_symlinks $CFG
|
||||||
echo "$MOCK -r $CFG --configdir $(dirname $CFG) --init"
|
echo "$MOCK --root $CFG --configdir $(dirname $CFG) --init"
|
||||||
trapwrap_n $CFG $MOCK -r $CFG --configdir $(dirname $CFG) --init &> $TMP
|
trapwrap_n $CFG $MOCK --root $CFG --configdir $(dirname $CFG) --init &> $TMP
|
||||||
RC=$?
|
RC=$?
|
||||||
fi
|
fi
|
||||||
if [ $RC -ne 0 ]; then
|
if [ $RC -ne 0 ]; then
|
||||||
|
@ -1198,12 +1207,12 @@ NO_DESCENDANTS=0
|
||||||
NO_REQUIRED=0
|
NO_REQUIRED=0
|
||||||
NO_AUTOCLEAN=0
|
NO_AUTOCLEAN=0
|
||||||
NO_BUILD_INFO=0
|
NO_BUILD_INFO=0
|
||||||
HELP=0
|
HELP=0
|
||||||
CLEAN_FLAG=0
|
CLEAN_FLAG=0
|
||||||
FORMAL_FLAG=0
|
FORMAL_FLAG=0
|
||||||
CAREFUL=0
|
CAREFUL=0
|
||||||
DEP_TEST_FLAG=0
|
DEP_TEST_FLAG=0
|
||||||
|
|
||||||
# read the options
|
# read the options
|
||||||
TEMP=$(getopt -o h --long serial,std,rt,installer,containers,no-required,no-descendants,no-autoclean,no-build-info,dep-test,clean,formal,careful,help,layer: -n "$ME" -- "$@")
|
TEMP=$(getopt -o h --long serial,std,rt,installer,containers,no-required,no-descendants,no-autoclean,no-build-info,dep-test,clean,formal,careful,help,layer: -n "$ME" -- "$@")
|
||||||
|
|
||||||
|
@ -1238,7 +1247,7 @@ while true ; do
|
||||||
--) shift ; break ;;
|
--) shift ; break ;;
|
||||||
*) echo "Internal error!" ; exit 1 ;;
|
*) echo "Internal error!" ; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# Reset variables
|
# Reset variables
|
||||||
|
@ -1493,7 +1502,7 @@ clean_list () {
|
||||||
echo "rm -rf $d"
|
echo "rm -rf $d"
|
||||||
\rm -rf "$d" 2>> /dev/null
|
\rm -rf "$d" 2>> /dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
rs=$(rpm_get_srpm $r)
|
rs=$(rpm_get_srpm $r)
|
||||||
if [[ "$rs" != "$sn"-[0-9]* ]]; then
|
if [[ "$rs" != "$sn"-[0-9]* ]]; then
|
||||||
|
@ -1506,7 +1515,7 @@ clean_list () {
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
TARGET=$(rpm -qp --qf '%{NAME}-%{VERSION}\n' "$s")
|
TARGET=$(rpm -qp --qf '%{NAME}-%{VERSION}\n' "$s")
|
||||||
|
|
||||||
if [ $CLEAN_FLAG -eq 1 ]; then
|
if [ $CLEAN_FLAG -eq 1 ]; then
|
||||||
|
@ -1542,7 +1551,7 @@ clean_list () {
|
||||||
|
|
||||||
\rm -f -v $RESULT_DIR/mockchain.log 2>> /dev/null
|
\rm -f -v $RESULT_DIR/mockchain.log 2>> /dev/null
|
||||||
mock_clean
|
mock_clean
|
||||||
else
|
else
|
||||||
# If dependency test
|
# If dependency test
|
||||||
if [ $DEP_TEST_FLAG -eq 1 ]; then
|
if [ $DEP_TEST_FLAG -eq 1 ]; then
|
||||||
mock_clean
|
mock_clean
|
||||||
|
@ -1801,7 +1810,7 @@ if [ $CLEAN_FLAG -eq 0 ] && [ $NO_DESCENDANTS -eq 0 ] && [ -f $SRPM_DIRECT_DESCE
|
||||||
done
|
done
|
||||||
|
|
||||||
# For non-std build, and if non specific build targets are named, then search all
|
# For non-std build, and if non specific build targets are named, then search all
|
||||||
# packages that we might build and check if they require a package that DID build
|
# packages that we might build and check if they require a package that DID build
|
||||||
# in the std build. If so build the package as a secondary target, even though the
|
# in the std build. If so build the package as a secondary target, even though the
|
||||||
# primary target was from a different build_type.
|
# primary target was from a different build_type.
|
||||||
if [ "$BUILD_TYPE" != "std" ] && [ $ALL -eq 1 ] && [ -f $SRPM_TO_RPM_MAP_FILE ] && [ -f $SRPM_RPM_DIRECT_REQUIRES_FILE ]; then
|
if [ "$BUILD_TYPE" != "std" ] && [ $ALL -eq 1 ] && [ -f $SRPM_TO_RPM_MAP_FILE ] && [ -f $SRPM_RPM_DIRECT_REQUIRES_FILE ]; then
|
||||||
|
@ -1861,7 +1870,7 @@ if [ $CLEAN_FLAG -eq 0 ] && [ $NO_DESCENDANTS -eq 0 ] && [ -f $SRPM_DIRECT_DESCE
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If the kernel or kernel-rt packages where absent from the primary build targets, but
|
# If the kernel or kernel-rt packages where absent from the primary build targets, but
|
||||||
# added as a secondary target, then make sure all out-of-tree kernel modules are also
|
# added as a secondary target, then make sure all out-of-tree kernel modules are also
|
||||||
# added.
|
# added.
|
||||||
for n in kernel kernel-rt; do
|
for n in kernel kernel-rt; do
|
||||||
|
@ -1996,9 +2005,9 @@ echo "SRPMS_LIST = $SRPMS_LIST"
|
||||||
echo "RPMS_LIST = $RPMS_LIST"
|
echo "RPMS_LIST = $RPMS_LIST"
|
||||||
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
if [ $CLEAN_FLAG -eq 0 ]; then
|
if [ $CLEAN_FLAG -eq 0 ]; then
|
||||||
# pre-create these directories as $USER,
|
# pre-create these directories as $USER,
|
||||||
# else mock will create them as root and fails to clean them.
|
# else mock will create them as root and fails to clean them.
|
||||||
# Note: keep these in sync with mockchain-parallel!
|
# Note: keep these in sync with mockchain-parallel!
|
||||||
mkdir -p $MY_WORKSPACE/mock
|
mkdir -p $MY_WORKSPACE/mock
|
||||||
|
@ -2059,27 +2068,46 @@ mock_clean_metadata
|
||||||
echo
|
echo
|
||||||
echo "Building"
|
echo "Building"
|
||||||
|
|
||||||
|
recreate_repodata $BUILD_BASE/results/$BUILD_ENVIRONMENT_DIR
|
||||||
|
|
||||||
CMD_PREFIX=""
|
CMD_PREFIX=""
|
||||||
if [ -x /bin/ionice ]; then
|
if [ -x /bin/ionice ]; then
|
||||||
CMD_PREFIX="nice -n 20 ionice -c Idle /bin/ionice "
|
CMD_PREFIX="nice -n 20 ionice -c Idle /bin/ionice "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CMD_OPTIONS="-m --no-clean -m --no-cleanup-after"
|
REAL_MOCKCHAIN=0
|
||||||
|
MOCK_PASSTHROUGH=""
|
||||||
|
MOCKCHAIN="mock"
|
||||||
|
CHAIN_OPTION="--chain"
|
||||||
|
if file $(which mockchain) | grep -q 'Python script'; then
|
||||||
|
REAL_MOCKCHAIN=1
|
||||||
|
MOCK_PASSTHROUGH="-m"
|
||||||
|
MOCKCHAIN="mockchain"
|
||||||
|
CHAIN_OPTION=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMD_OPTIONS="$MOCK_PASSTHROUGH --no-clean $MOCK_PASSTHROUGH --no-cleanup-after"
|
||||||
if [ $CAREFUL -eq 1 ]; then
|
if [ $CAREFUL -eq 1 ]; then
|
||||||
CMD_OPTIONS="-m --no-cleanup-after"
|
CMD_OPTIONS="$MOCK_PASSTHROUGH --no-cleanup-after"
|
||||||
|
fi
|
||||||
|
if [ $REAL_MOCKCHAIN -eq 1 ]; then
|
||||||
|
CMD_OPTIONS+=" --log=$MOCKCHAIN_LOG"
|
||||||
fi
|
fi
|
||||||
echo "CAREFUL=$CAREFUL"
|
echo "CAREFUL=$CAREFUL"
|
||||||
echo "CMD_OPTIONS=$CMD_OPTIONS"
|
echo "CMD_OPTIONS=$CMD_OPTIONS"
|
||||||
|
|
||||||
CMD="$CMD_PREFIX mockchain -r $BUILD_CFG -l $BUILD_BASE --recurse --log=$MOCKCHAIN_LOG --tmp_prefix=$USER --addrepo=$LOCAL_URL --addrepo=$LOCAL_SRC_URL -m --rootdir=$BUILD_BASE/mock/root $CMD_OPTIONS -m --rebuild $SRPMS_LIST"
|
CMD="$CMD_PREFIX $MOCKCHAIN --root $BUILD_CFG --localrepo $BUILD_BASE --recurse --tmp_prefix=$USER --addrepo=$LOCAL_URL --addrepo=$LOCAL_SRC_URL $MOCK_PASSTHROUGH --rootdir=$BUILD_BASE/mock/root $CMD_OPTIONS $MOCK_PASSTHROUGH --rebuild"
|
||||||
echo "$CMD -m --define='_tis_dist .tis' -m --define='platform_release $PLATFORM_RELEASE'"
|
CMD_BUILD_LIST="$CHAIN_OPTION $SRPMS_LIST"
|
||||||
trapwrap stdbuf -o0 $CMD -m --define='_tis_dist .tis' -m --define="platform_release $PLATFORM_RELEASE"
|
echo ""
|
||||||
|
echo "$CMD $MOCK_PASSTHROUGH --define='_tis_dist .tis' $MOCK_PASSTHROUGH --define='platform_release $PLATFORM_RELEASE' $CMD_BUILD_LIST"
|
||||||
|
echo ""
|
||||||
|
trapwrap stdbuf -o0 $CMD $MOCK_PASSTHROUGH --define="_tis_dist .tis" $MOCK_PASSTHROUGH --define="platform_release $PLATFORM_RELEASE" $CMD_BUILD_LIST
|
||||||
MOCKCHAIN_RC=$?
|
MOCKCHAIN_RC=$?
|
||||||
|
|
||||||
echo $PLATFORM_RELEASE > $LAST_PLATFORM_RELEASE_FILE
|
echo $PLATFORM_RELEASE > $LAST_PLATFORM_RELEASE_FILE
|
||||||
|
|
||||||
for d in $(find $RESULT_DIR -name '*.rpm' | grep -v '[.]src[.]rpm' | xargs --max-args=1 dirname | sort -u); do
|
for d in $(find $RESULT_DIR -name '*.rpm' | grep -v '[.]src[.]rpm' | xargs --max-args=1 dirname | sort -u); do
|
||||||
rsync -u $d/*.rpm $RPM_DIR
|
rsync -u $d/*.rpm $RPM_DIR
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $ALL -eq 1 ]; then
|
if [ $ALL -eq 1 ]; then
|
||||||
|
@ -2163,5 +2191,5 @@ if [ 0$FORMAL_BUILD -eq 1 ] && [ "$USER" == "jenkins" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
) 2>&1 | stdbuf -o0 awk '{ print strftime("%H:%M:%S"), $0; fflush(); }' | tee $(date "+$MY_WORKSPACE/build-rpms-serial_%Y-%m-%d_%H-%M-%S.log") ; exit ${PIPESTATUS[0]}
|
) 2>&1 | stdbuf -o0 awk '{ print strftime("%H:%M:%S"), $0; fflush(); }' | tee $(date "+$MY_WORKSPACE/build-rpms-serial_%Y-%m-%d_%H-%M-%S.log") ; exit ${PIPESTATUS[0]}
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
#!/bin/env bash
|
#!/bin/env bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
# Here's the score, kids. There are a few different places from which we can
|
# Here's the score, kids. There are a few different places from which we can
|
||||||
# get packages. In priority order, they are:
|
# get packages. In priority order, they are:
|
||||||
#
|
#
|
||||||
|
@ -26,21 +32,33 @@
|
||||||
# export/dist/report_deps.txt
|
# export/dist/report_deps.txt
|
||||||
#
|
#
|
||||||
|
|
||||||
|
CGTS_DEPS_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
||||||
|
|
||||||
|
# Set REPOQUERY, REPOQUERY_SUB_COMMAND, REPOQUERY_RESOLVE and
|
||||||
|
# REPOQUERY_WHATPROVIDES_DELIM for our build environment.
|
||||||
|
source ${CGTS_DEPS_DIR}/../pkg-manager-utils.sh
|
||||||
|
|
||||||
# This function generates a simple file of dependencies we're trying to resolve
|
# This function generates a simple file of dependencies we're trying to resolve
|
||||||
function generate_dep_list {
|
function generate_dep_list {
|
||||||
TMP_RPM_DB=$(mktemp -d $(pwd)/tmp_rpm_db_XXXXXX)
|
TMP_RPM_DB=$(mktemp -d $(pwd)/tmp_rpm_db_XXXXXX)
|
||||||
mkdir -p $TMP_RPM_DB
|
mkdir -p $TMP_RPM_DB
|
||||||
rpm --initdb --dbpath $TMP_RPM_DB
|
rpm --initdb --dbpath $TMP_RPM_DB
|
||||||
rpm --dbpath $TMP_RPM_DB --test -Uvh --replacefiles '*.rpm' >> $DEPDETAILLISTFILE 2>&1
|
rpm --dbpath $TMP_RPM_DB --test -Uvh --replacefiles '*.rpm' > $DEPLISTFILE_NEW 2>&1
|
||||||
rpm --dbpath $TMP_RPM_DB --test -Uvh --replacefiles '*.rpm' 2>&1 \
|
cat $DEPLISTFILE_NEW >> $DEPDETAILLISTFILE
|
||||||
| grep -v "error:" \
|
cat $DEPLISTFILE_NEW \
|
||||||
| grep -v "warning:" \
|
| grep -v -e "error:" -e "warning:" -e "Preparing..." \
|
||||||
| grep -v "Preparing..." \
|
-e "Verifying..." -e "installing package" \
|
||||||
| grep -v "installing package" \
|
| sed -e "s/ is needed by.*$//" -e "s/ [<=>].*$//" \
|
||||||
| sed "s/ is needed by.*$//" | sed "s/ >=.*$//" | sort -u > $DEPLISTFILE
|
| sort -u > $DEPLISTFILE
|
||||||
\rm -rf $TMP_RPM_DB
|
\rm -rf $TMP_RPM_DB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
join_array() {
|
||||||
|
local IFS="$1"
|
||||||
|
shift
|
||||||
|
echo "$*"
|
||||||
|
}
|
||||||
|
|
||||||
# Takes a list of requirements (either explcit package name, or capabilities
|
# Takes a list of requirements (either explcit package name, or capabilities
|
||||||
# to provide) and install packages to meet those dependancies
|
# to provide) and install packages to meet those dependancies
|
||||||
#
|
#
|
||||||
|
@ -55,6 +73,7 @@ function generate_dep_list {
|
||||||
# capabilities.
|
# capabilities.
|
||||||
function install_deps {
|
function install_deps {
|
||||||
local DEP_LIST=""
|
local DEP_LIST=""
|
||||||
|
local DEP_LIST_ARRAY=()
|
||||||
local DEP_LIST_FILE="$1"
|
local DEP_LIST_FILE="$1"
|
||||||
|
|
||||||
# Temporary files are used in a few different ways
|
# Temporary files are used in a few different ways
|
||||||
|
@ -68,7 +87,7 @@ function install_deps {
|
||||||
|
|
||||||
while read DEP
|
while read DEP
|
||||||
do
|
do
|
||||||
DEP_LIST="${DEP_LIST} ${DEP}"
|
DEP_LIST+=" '${DEP}'"
|
||||||
done < $DEP_LIST_FILE
|
done < $DEP_LIST_FILE
|
||||||
|
|
||||||
echo "Debug: List of deps to resolve: ${DEP_LIST}"
|
echo "Debug: List of deps to resolve: ${DEP_LIST}"
|
||||||
|
@ -79,8 +98,17 @@ function install_deps {
|
||||||
|
|
||||||
# go through each repo and convert deps to packages based on package name
|
# go through each repo and convert deps to packages based on package name
|
||||||
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
||||||
echo "TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch ${DEP_LIST} --qf='%{name}'"
|
echo "TMPDIR=${TMP_DIR}"\
|
||||||
TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --qf='%{name}' ${DEP_LIST} | sed "s/kernel-debug/kernel/g" >> $UNSORTED_PACKAGES
|
"${REPOQUERY} --config=${YUM} --repoid=$REPOID"\
|
||||||
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"${DEP_LIST} --qf='%{name}'"
|
||||||
|
|
||||||
|
TMPDIR=${TMP_DIR} \
|
||||||
|
${REPOQUERY} --config=${YUM} --repoid=$REPOID \
|
||||||
|
${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch \
|
||||||
|
--qf='%{name}' ${DEP_LIST} \
|
||||||
|
| sed "s/kernel-debug/kernel/g" >> $UNSORTED_PACKAGES
|
||||||
|
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
done
|
done
|
||||||
sort $UNSORTED_PACKAGES -u > $SORTED_PACKAGES
|
sort $UNSORTED_PACKAGES -u > $SORTED_PACKAGES
|
||||||
|
@ -96,19 +124,31 @@ function install_deps {
|
||||||
# If there are any requirements not resolved, look up the packages with
|
# If there are any requirements not resolved, look up the packages with
|
||||||
# --whatprovides
|
# --whatprovides
|
||||||
if [ -s $UNRESOLVED_PACKAGES ]; then
|
if [ -s $UNRESOLVED_PACKAGES ]; then
|
||||||
DEP_LIST=""
|
DEP_LIST_ARRAY=()
|
||||||
\cp $SORTED_PACKAGES $UNSORTED_PACKAGES
|
\cp $SORTED_PACKAGES $UNSORTED_PACKAGES
|
||||||
while read DEP
|
while read DEP
|
||||||
do
|
do
|
||||||
DEP_LIST="${DEP_LIST} ${DEP}"
|
DEP_LIST_ARRAY+=( "${DEP}" )
|
||||||
done < $UNRESOLVED_PACKAGES
|
done < $UNRESOLVED_PACKAGES
|
||||||
|
|
||||||
DEP_LIST=$(echo "$DEP_LIST" | sed 's/^ //g')
|
if [ "${REPOQUERY_WHATPROVIDES_DELIM}" != " " ]; then
|
||||||
if [ "$DEP_LIST" != "" ]; then
|
DEP_LIST_ARRAY=( "$(join_array "${REPOQUERY_WHATPROVIDES_DELIM}" "${DEP_LIST_ARRAY[@]}" )" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#DEP_LIST_ARRAY[@]} -gt 0 ]; then
|
||||||
|
|
||||||
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
||||||
echo "TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --whatprovides ${DEP_LIST} --qf='%{name}'"
|
echo "TMPDIR=${TMP_DIR}"\
|
||||||
TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --qf='%{name}' --whatprovides ${DEP_LIST} | sed "s/kernel-debug/kernel/g" >> $UNSORTED_PACKAGES
|
"${REPOQUERY} --config=${YUM} --repoid=${REPOID}"\
|
||||||
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"--qf='%{name}' --whatprovides ${DEP_LIST_ARRAY[@]}"
|
||||||
|
|
||||||
|
TMPDIR=${TMP_DIR} \
|
||||||
|
${REPOQUERY} --config=${YUM} --repoid=${REPOID} \
|
||||||
|
${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch \
|
||||||
|
--qf='%{name}' --whatprovides ${DEP_LIST_ARRAY[@]} \
|
||||||
|
| sed "s/kernel-debug/kernel/g" >> $UNSORTED_PACKAGES
|
||||||
|
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
@ -124,12 +164,12 @@ function install_deps {
|
||||||
DEP_LIST=" "
|
DEP_LIST=" "
|
||||||
while read DEP
|
while read DEP
|
||||||
do
|
do
|
||||||
DEP_LIST="${DEP_LIST}${DEP} "
|
DEP_LIST+="${DEP} "
|
||||||
done < $SORTED_PACKAGES
|
done < $SORTED_PACKAGES
|
||||||
rm $SORTED_PACKAGES
|
rm $SORTED_PACKAGES
|
||||||
|
|
||||||
# go through each repo and install packages
|
# go through each repo and install packages
|
||||||
local TARGETS=${DEP_LIST}
|
local TARGETS="${DEP_LIST}"
|
||||||
echo "Debug: Resolved list of deps to install: ${TARGETS}"
|
echo "Debug: Resolved list of deps to install: ${TARGETS}"
|
||||||
local UNRESOLVED
|
local UNRESOLVED
|
||||||
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
||||||
|
@ -137,8 +177,20 @@ function install_deps {
|
||||||
|
|
||||||
if [[ ! -z "${TARGETS// }" ]]; then
|
if [[ ! -z "${TARGETS// }" ]]; then
|
||||||
REPO_PATH=$(cat $YUM | sed -n "/^\[$REPOID\]\$/,\$p" | grep '^baseurl=' | head -n 1 | awk -F 'file://' '{print $2}' | sed 's:/$::')
|
REPO_PATH=$(cat $YUM | sed -n "/^\[$REPOID\]\$/,\$p" | grep '^baseurl=' | head -n 1 | awk -F 'file://' '{print $2}' | sed 's:/$::')
|
||||||
>&2 echo "TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $TARGETS --qf='%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}'"
|
|
||||||
TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $TARGETS --qf="%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}" | sort -r -V > $TMPFILE
|
>&2 echo "TMPDIR=${TMP_DIR}"\
|
||||||
|
"${REPOQUERY} --config=${YUM} --repoid=${REPOID}"\
|
||||||
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"--qf='%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}'"\
|
||||||
|
"${REPOQUERY_RESOLVE} ${TARGETS}"
|
||||||
|
|
||||||
|
TMPDIR=${TMP_DIR} \
|
||||||
|
${REPOQUERY} --config=${YUM} --repoid=${REPOID} \
|
||||||
|
${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch \
|
||||||
|
--qf="%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}" \
|
||||||
|
${REPOQUERY_RESOLVE} ${TARGETS} \
|
||||||
|
| sort -r -V > $TMPFILE
|
||||||
|
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
|
|
||||||
while read STR
|
while read STR
|
||||||
|
@ -157,7 +209,11 @@ function install_deps {
|
||||||
cp $PKG_PATH .
|
cp $PKG_PATH .
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
>&2 echo " Here's what I have to work with..."
|
>&2 echo " Here's what I have to work with..."
|
||||||
>&2 echo " TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $PKG --qf=\"%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}\""
|
>&2 echo " TMPDIR=${TMP_DIR}"\
|
||||||
|
"${REPOQUERY} --config=${YUM} --repoid=${REPOID}"\
|
||||||
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"--qf=\"%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}\""\
|
||||||
|
"${REPOQUERY_RESOLVE} ${PKG}"
|
||||||
>&2 echo " PKG=$PKG PKG_FILE=$PKG_FILE REPO_PATH=$REPO_PATH PKG_REL_PATH=$PKG_REL_PATH PKG_PATH=$PKG_PATH"
|
>&2 echo " PKG=$PKG PKG_FILE=$PKG_FILE REPO_PATH=$REPO_PATH PKG_REL_PATH=$PKG_REL_PATH PKG_PATH=$PKG_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -172,8 +228,8 @@ function install_deps {
|
||||||
echo " path $PKG_PATH" >> $BUILT_REPORT
|
echo " path $PKG_PATH" >> $BUILT_REPORT
|
||||||
FOUND_UNKNOWN=1
|
FOUND_UNKNOWN=1
|
||||||
fi
|
fi
|
||||||
done < $TMPFILE #<<< "$(TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $TARGETS --qf=\"%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}\" | sort -r -V)"
|
done < $TMPFILE
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
TARGETS="$UNRESOLVED"
|
TARGETS="$UNRESOLVED"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -220,6 +276,7 @@ OUTPUT_DIR=$MY_WORKSPACE/export
|
||||||
TMP_DIR=$MY_WORKSPACE/tmp
|
TMP_DIR=$MY_WORKSPACE/tmp
|
||||||
YUM=$OUTPUT_DIR/yum.conf
|
YUM=$OUTPUT_DIR/yum.conf
|
||||||
DEPLISTFILE=$OUTPUT_DIR/deps.txt
|
DEPLISTFILE=$OUTPUT_DIR/deps.txt
|
||||||
|
DEPLISTFILE_NEW=$OUTPUT_DIR/deps_new.txt
|
||||||
DEPDETAILLISTFILE=$OUTPUT_DIR/deps_detail.txt
|
DEPDETAILLISTFILE=$OUTPUT_DIR/deps_detail.txt
|
||||||
|
|
||||||
BUILT_REPORT=$OUTPUT_DIR/local.txt
|
BUILT_REPORT=$OUTPUT_DIR/local.txt
|
||||||
|
|
|
@ -1,40 +1,71 @@
|
||||||
#!/bin/env bash
|
#!/bin/env bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
CGTS_DEPS_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
||||||
|
|
||||||
|
# Set REPOQUERY, REPOQUERY_SUB_COMMAND, REPOQUERY_RESOLVE and
|
||||||
|
# REPOQUERY_WHATPROVIDES_DELIM for our build environment.
|
||||||
|
source ${CGTS_DEPS_DIR}/../pkg-manager-utils.sh
|
||||||
|
|
||||||
function generate_dep_list {
|
function generate_dep_list {
|
||||||
TMP_RPM_DB=$(mktemp -d $(pwd)/tmp_rpm_db_XXXXXX)
|
TMP_RPM_DB=$(mktemp -d $(pwd)/tmp_rpm_db_XXXXXX)
|
||||||
mkdir -p $TMP_RPM_DB
|
mkdir -p $TMP_RPM_DB
|
||||||
rpm --initdb --dbpath $TMP_RPM_DB
|
rpm --initdb --dbpath $TMP_RPM_DB
|
||||||
rpm --dbpath $TMP_RPM_DB --test -Uvh --replacefiles '*.rpm' >> $DEPDETAILLISTFILE 2>&1
|
rpm --dbpath $TMP_RPM_DB --test -Uvh --replacefiles '*.rpm' > $DEPLISTFILE_NEW 2>&1
|
||||||
rpm --dbpath $TMP_RPM_DB --test -Uvh --replacefiles '*.rpm' 2>&1 \
|
cat $DEPLISTFILE_NEW >> $DEPDETAILLISTFILE
|
||||||
| grep -v "error:" \
|
cat $DEPLISTFILE_NEW \
|
||||||
| grep -v "warning:" \
|
| grep -v -e "error:" -e "warning:" -e "Preparing..." \
|
||||||
| grep -v "Preparing..." \
|
-e "Verifying..." -e "installing package" \
|
||||||
| sed "s/ is needed by.*$//" | sed "s/ >=.*$//" | sort -u > $DEPLISTFILE
|
| sed -e "s/ is needed by.*$//" -e "s/ [<=>].*$//" \
|
||||||
rm -rf $TMP_RPM_DB
|
| sort -u > $DEPLISTFILE
|
||||||
|
\rm -rf $TMP_RPM_DB
|
||||||
|
}
|
||||||
|
|
||||||
|
join_array() {
|
||||||
|
local IFS="$1"
|
||||||
|
shift
|
||||||
|
echo "$*"
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_deps {
|
function install_deps {
|
||||||
local DEP_LIST=""
|
local DEP_LIST=""
|
||||||
|
local DEP_LIST_ARRAY=()
|
||||||
local DEP_LIST_FILE="$1"
|
local DEP_LIST_FILE="$1"
|
||||||
|
|
||||||
rm -f $TMPFILE
|
rm -f $TMPFILE
|
||||||
|
|
||||||
while read DEP
|
while read DEP
|
||||||
do
|
do
|
||||||
DEP_LIST="${DEP_LIST} ${DEP}"
|
DEP_LIST_ARRAY+=( "${DEP}" )
|
||||||
done < $DEP_LIST_FILE
|
done < $DEP_LIST_FILE
|
||||||
|
|
||||||
echo "Debug: List of deps to resolve: ${DEP_LIST}"
|
if [ "${REPOQUERY_WHATPROVIDES_DELIM}" != " " ]; then
|
||||||
|
DEP_LIST_ARRAY=( "$(join_array "${REPOQUERY_WHATPROVIDES_DELIM}" "${DEP_LIST_ARRAY[@]}" )" )
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${DEP_LIST}" ]; then
|
echo "Debug: List of deps to resolve: ${DEP_LIST_ARRAY[@]}"
|
||||||
|
|
||||||
|
if [ ${#DEP_LIST_ARRAY[@]} -gt 0 ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# go through each repo and convert deps to packages
|
# go through each repo and convert deps to packages
|
||||||
|
|
||||||
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
||||||
echo "TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --whatprovides ${DEP_LIST} --qf='%{name}'"
|
echo "TMPDIR=${TMP_DIR}"\
|
||||||
TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --qf='%{name}' --whatprovides ${DEP_LIST} | sed "s/kernel-debug/kernel/g" >> $TMPFILE
|
"${REPOQUERY} --config=${YUM} --repoid=${REPOID}"\
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"--qf='%{name}' --whatprovides ${DEP_LIST_ARRAY[@]}"
|
||||||
|
TMPDIR=${TMP_DIR} \
|
||||||
|
${REPOQUERY} --config=${YUM} --repoid=${REPOID} \
|
||||||
|
${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch \
|
||||||
|
--qf='%{name}' --whatprovides ${DEP_LIST_ARRAY[@]} \
|
||||||
|
| sed "s/kernel-debug/kernel/g" >> $TMPFILE
|
||||||
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
done
|
done
|
||||||
sort $TMPFILE -u > $TMPFILE1
|
sort $TMPFILE -u > $TMPFILE1
|
||||||
rm $TMPFILE
|
rm $TMPFILE
|
||||||
|
@ -42,12 +73,12 @@ function install_deps {
|
||||||
DEP_LIST=""
|
DEP_LIST=""
|
||||||
while read DEP
|
while read DEP
|
||||||
do
|
do
|
||||||
DEP_LIST="${DEP_LIST} ${DEP}"
|
DEP_LIST+="${DEP} "
|
||||||
done < $TMPFILE1
|
done < $TMPFILE1
|
||||||
rm $TMPFILE1
|
rm $TMPFILE1
|
||||||
|
|
||||||
# next go through each repo and install packages
|
# next go through each repo and install packages
|
||||||
local TARGETS=${DEP_LIST}
|
local TARGETS="${DEP_LIST}"
|
||||||
echo "Debug: Resolved list of deps to install: ${TARGETS}"
|
echo "Debug: Resolved list of deps to install: ${TARGETS}"
|
||||||
local UNRESOLVED
|
local UNRESOLVED
|
||||||
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
for REPOID in `grep '^[[].*[]]$' $YUM | grep -v '[[]main[]]' | awk -F '[][]' '{print $2 }'`; do
|
||||||
|
@ -55,9 +86,19 @@ function install_deps {
|
||||||
|
|
||||||
if [[ ! -z "${TARGETS// }" ]]; then
|
if [[ ! -z "${TARGETS// }" ]]; then
|
||||||
REPO_PATH=$(cat $YUM | sed -n "/^\[$REPOID\]\$/,\$p" | grep '^baseurl=' | head -n 1 | awk -F 'file://' '{print $2}' | sed 's:/$::')
|
REPO_PATH=$(cat $YUM | sed -n "/^\[$REPOID\]\$/,\$p" | grep '^baseurl=' | head -n 1 | awk -F 'file://' '{print $2}' | sed 's:/$::')
|
||||||
>&2 echo "TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $TARGETS --qf='%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}'"
|
>&2 echo "TMPDIR=${TMP_DIR}"\
|
||||||
TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $TARGETS --qf="%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}" | sort -r -V >> $TMPFILE
|
"${REPOQUERY} --config=${YUM} --repoid=${REPOID}"\
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"--qf='%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}'"\
|
||||||
|
"${REPOQUERY_RESOLVE} ${TARGETS}"
|
||||||
|
TMPDIR=${TMP_DIR} \
|
||||||
|
${REPOQUERY} --config=${YUM} --repoid=${REPOID} \
|
||||||
|
${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch \
|
||||||
|
--qf="%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}" \
|
||||||
|
${REPOQUERY_RESOLVE} ${TARGETS} \
|
||||||
|
| sort -r -V >> $TMPFILE
|
||||||
|
|
||||||
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
|
|
||||||
while read STR
|
while read STR
|
||||||
do
|
do
|
||||||
|
@ -75,7 +116,11 @@ function install_deps {
|
||||||
cp $PKG_PATH .
|
cp $PKG_PATH .
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
>&2 echo " Here's what I have to work with..."
|
>&2 echo " Here's what I have to work with..."
|
||||||
>&2 echo " TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $PKG --qf=\"%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}\""
|
>&2 echo " TMPDIR=${TMP_DIR}"\
|
||||||
|
"${REPOQUERY} -c ${YUM} --repoid=${REPOID}"\
|
||||||
|
"${REPOQUERY_SUB_COMMAND} --arch=x86_64,noarch"\
|
||||||
|
"--qf=\"%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}\""\
|
||||||
|
"${REPOQUERY_RESOLVE} ${PKG}"
|
||||||
>&2 echo " PKG=$PKG PKG_FILE=$PKG_FILE REPO_PATH=$REPO_PATH PKG_REL_PATH=$PKG_REL_PATH PKG_PATH=$PKG_PATH"
|
>&2 echo " PKG=$PKG PKG_FILE=$PKG_FILE REPO_PATH=$REPO_PATH PKG_REL_PATH=$PKG_REL_PATH PKG_PATH=$PKG_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -91,8 +136,9 @@ function install_deps {
|
||||||
echo " path $PKG_PATH" >> $BUILT_REPORT
|
echo " path $PKG_PATH" >> $BUILT_REPORT
|
||||||
FOUND_UNKNOWN=1
|
FOUND_UNKNOWN=1
|
||||||
fi
|
fi
|
||||||
done < $TMPFILE #<<< "$(TMPDIR=$TMP_DIR repoquery -c $YUM --repoid=$REPOID --arch=x86_64,noarch --resolve $TARGETS --qf=\"%{name} %{name}-%{version}-%{release}.%{arch}.rpm %{relativepath}\" | sort -r -V)"
|
done < $TMPFILE
|
||||||
\rm -rf $TMP_DIR/yum-$USER-*
|
|
||||||
|
\rm -rf $TMP_DIR/yum-$USER-*
|
||||||
TARGETS="$UNRESOLVED"
|
TARGETS="$UNRESOLVED"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -143,6 +189,7 @@ OUTPUT_DIR=${ROOT}/newDisk
|
||||||
YUM=${ROOT}/yum.conf
|
YUM=${ROOT}/yum.conf
|
||||||
TMP_DIR=${ROOT}/tmp
|
TMP_DIR=${ROOT}/tmp
|
||||||
DEPLISTFILE=${ROOT}/deps.txt
|
DEPLISTFILE=${ROOT}/deps.txt
|
||||||
|
DEPLISTFILE_NEW=${ROOT}/deps_new.txt
|
||||||
DEPDETAILLISTFILE=${ROOT}/deps_detail.txt
|
DEPDETAILLISTFILE=${ROOT}/deps_detail.txt
|
||||||
INSTALLDIR=${ROOT}/newDisk/isolinux/Packages
|
INSTALLDIR=${ROOT}/newDisk/isolinux/Packages
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# set -x
|
# set -x
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
source "$SRC_BASE/build-tools/spec-utils"
|
source "$SRC_BASE/build-tools/spec-utils"
|
||||||
source "$SRC_BASE/build-tools/srpm-utils"
|
source "$SRC_BASE/build-tools/srpm-utils"
|
||||||
|
|
||||||
|
@ -195,14 +201,14 @@ fi
|
||||||
|
|
||||||
if [ $TAR_NEEDED -gt 0 ]; then
|
if [ $TAR_NEEDED -gt 0 ]; then
|
||||||
echo "Creating tar file: $TAR_PATH ..."
|
echo "Creating tar file: $TAR_PATH ..."
|
||||||
echo "tar czf $TAR_PATH $SRC_DIR --exclude '.git*' --exclude 'build' --exclude='.pc' --exclude='patches' --exclude='$SRC_DIR/$DISTRO' --exclude='pbr-*.egg' --transform 's,^$TRANSFORM,$TAR_NAME-$VERSION,'"
|
echo "tar --exclude '.git*' --exclude 'build' --exclude='.pc' --exclude='patches' --exclude='$SRC_DIR/$DISTRO' --exclude='pbr-*.egg' --transform 's,^$TRANSFORM,$TAR_NAME-$VERSION,' -czf $TAR_PATH $SRC_DIR"
|
||||||
tar czf $TAR_PATH $SRC_DIR --exclude '.git*' --exclude 'build' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform "s,^$TRANSFORM,$TAR_NAME-$VERSION,"
|
tar --exclude '.git*' --exclude 'build' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform "s,^$TRANSFORM,$TAR_NAME-$VERSION," -czf "$TAR_PATH" "$SRC_DIR"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
if [ "x$STAGING" != "x" ]; then
|
if [ "x$STAGING" != "x" ]; then
|
||||||
popd
|
popd
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "ERROR: default_build_srpm (${LINENO}): failed to create tar file, cmd: tar czf $TAR_PATH $SRC_DIR --exclude '.git*' --exclude 'build' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform \"s,^$TRANSFORM,$TAR_NAME-$VERSION,\""
|
echo "ERROR: default_build_srpm (${LINENO}): failed to create tar file, cmd: tar --exclude '.git*' --exclude 'build' --exclude='.pc' --exclude='patches' --exclude="$SRC_DIR/$DISTRO" --exclude='pbr-*.egg' --transform \"s,^$TRANSFORM,$TAR_NAME-$VERSION,\" -czf '$TAR_PATH' '$SRC_DIR'"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "Created tar file: $TAR_PATH"
|
echo "Created tar file: $TAR_PATH"
|
||||||
|
|
|
@ -24,10 +24,16 @@ interpreter_path () {
|
||||||
|
|
||||||
get__version__ () {
|
get__version__ () {
|
||||||
local path=${1}
|
local path=${1}
|
||||||
|
local var=""
|
||||||
if [ ! -f ${path} ]; then
|
if [ ! -f ${path} ]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
grep __VERSION__= ${path} | cut -d '=' -f 2 | sed 's/"//g'
|
if file ${path} | grep -q 'Python script'; then
|
||||||
|
ver=$(grep __VERSION__= ${path} | cut -d '=' -f 2 | sed 's/"//g')
|
||||||
|
else
|
||||||
|
ver=$(${path} --version 2> /dev/null)
|
||||||
|
fi
|
||||||
|
echo $ver
|
||||||
}
|
}
|
||||||
|
|
||||||
VC_LESS_THAN=0
|
VC_LESS_THAN=0
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,11 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018-2020 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
# This script modifies a mock configuration file (typically $MY_BUILD_CFG)
|
# This script modifies a mock configuration file (typically $MY_BUILD_CFG)
|
||||||
# to add build time environment variables to the mock environment (things
|
# to add build time environment variables to the mock environment (things
|
||||||
# like what branch we're building on, etc).
|
# like what branch we're building on, etc).
|
||||||
|
@ -11,6 +17,11 @@
|
||||||
# usage: modify-build-cfg [file.cfg] [<layer>]
|
# usage: modify-build-cfg [file.cfg] [<layer>]
|
||||||
#
|
#
|
||||||
|
|
||||||
|
MODIFY_BUILD_CFG_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
||||||
|
|
||||||
|
# Set PKG_MANAGER for our build environment.
|
||||||
|
source "${MODIFY_BUILD_CFG_DIR}/pkg-manager-utils.sh"
|
||||||
|
|
||||||
LAYER=${2:-$LAYER}
|
LAYER=${2:-$LAYER}
|
||||||
|
|
||||||
# For backward compatibility. Old repo location or new?
|
# For backward compatibility. Old repo location or new?
|
||||||
|
@ -23,6 +34,13 @@ if [ ! -d ${CENTOS_REPO} ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Preferred python
|
||||||
|
if rpm -q --whatprovides --quiet python3; then
|
||||||
|
PYTHON_PKG=python3
|
||||||
|
else
|
||||||
|
PYTHON_PKG=python2
|
||||||
|
fi
|
||||||
|
|
||||||
# Try to find a layer specific mock.cfg.proto
|
# Try to find a layer specific mock.cfg.proto
|
||||||
MOCK_CFG_PROTO="${CENTOS_REPO}/mock.cfg.${LAYER}.proto"
|
MOCK_CFG_PROTO="${CENTOS_REPO}/mock.cfg.${LAYER}.proto"
|
||||||
echo "==== Try MOCK_CFG_PROTO=$MOCK_CFG_PROTO ===="
|
echo "==== Try MOCK_CFG_PROTO=$MOCK_CFG_PROTO ===="
|
||||||
|
@ -98,7 +116,7 @@ grep -q "config_opts\['environment'\]\['WRS_GIT_BRANCH'\]" $FILE || \
|
||||||
grep -q "config_opts\['environment'\]\['CGCS_GIT_BRANCH'\]" $FILE || \
|
grep -q "config_opts\['environment'\]\['CGCS_GIT_BRANCH'\]" $FILE || \
|
||||||
echo "config_opts['environment']['CGCS_GIT_BRANCH']" >> $FILE
|
echo "config_opts['environment']['CGCS_GIT_BRANCH']" >> $FILE
|
||||||
|
|
||||||
if [ -z $FORMAL_BUILD ]; then
|
if [ -z $FORMAL_BUILD ]; then
|
||||||
grep -q "config_opts\['macros'\]\['%_no_cgcs_license_check'\] = '1'" $FILE || \
|
grep -q "config_opts\['macros'\]\['%_no_cgcs_license_check'\] = '1'" $FILE || \
|
||||||
echo "config_opts['macros']['%_no_cgcs_license_check'] = '1'" >> $FILE
|
echo "config_opts['macros']['%_no_cgcs_license_check'] = '1'" >> $FILE
|
||||||
else
|
else
|
||||||
|
@ -118,8 +136,21 @@ if [ "containers" == "$BUILD_TYPE" ]; then
|
||||||
NETWORK_PKGS="bind-utils"
|
NETWORK_PKGS="bind-utils"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
grep -q "config_opts\['chroot_setup_cmd'\] = 'install @buildsys-build pigz lbzip2 yum $NETWORK_PKGS'" $FILE || \
|
BUILD_PKGS=''
|
||||||
echo "config_opts['chroot_setup_cmd'] = 'install @buildsys-build pigz lbzip2 yum $NETWORK_PKGS'" >> $FILE
|
if [ "${PKG_MANAGER}" == "yum" ]; then
|
||||||
|
BUILD_PKGS='@buildsys-build'
|
||||||
|
elif [ "${PKG_MANAGER}" == "dnf" ]; then
|
||||||
|
# buildsys-build group was dropped when Centos-8 switched to dnf.
|
||||||
|
# We must list all the members plus a few new ones (fedpkg-minimal, epel-rpm-macros).
|
||||||
|
BUILD_PKGS='bash bzip2 coreutils cpio diffutils epel-release epel-rpm-macros fedpkg-minimal findutils gawk gcc gcc-c++ grep gzip info make patch redhat-rpm-config redhat-release rpm-build sed shadow-utils tar unzip util-linux which xz'
|
||||||
|
fi
|
||||||
|
|
||||||
|
STX_PKGS='pigz lbzip2 bash'
|
||||||
|
|
||||||
|
PKGS="${BUILD_PKGS} ${STX_PKGS} ${PKG_MANAGER} ${PYTHON_PKG} ${NETWORK_PKGS}"
|
||||||
|
|
||||||
|
grep -q "config_opts\['chroot_setup_cmd'\] = 'install ${PKGS}'" $FILE || \
|
||||||
|
echo "config_opts['chroot_setup_cmd'] = 'install ${PKGS}'" >> $FILE
|
||||||
|
|
||||||
# Special case for containers.
|
# Special case for containers.
|
||||||
# rpmbuild_networking is required for invoking helm commands within mock
|
# rpmbuild_networking is required for invoking helm commands within mock
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# BASH utilities to select package manager
|
||||||
|
#
|
||||||
|
# Currently just sets some environment variables
|
||||||
|
#
|
||||||
|
|
||||||
|
# Yum vs DNF compatibility
|
||||||
|
YUM=$(which yum 2>> /dev/null)
|
||||||
|
DNF=$(which dnf 2>> /dev/null)
|
||||||
|
PKG_MANAGER=""
|
||||||
|
REPOQUERY=$(which repoquery 2>> /dev/null)
|
||||||
|
REPOQUERY_SUB_COMMAND=""
|
||||||
|
REPOQUERY_RESOLVE="--resolve"
|
||||||
|
REPOQUERY_WHATPROVIDES_DELIM=" "
|
||||||
|
if [ ! -z ${DNF} ]; then
|
||||||
|
PKG_MANAGER="dnf"
|
||||||
|
REPOQUERY=${DNF}
|
||||||
|
REPOQUERY_SUB_COMMAND="repoquery --disable-modular-filtering"
|
||||||
|
REPOQUERY_RESOLVE=""
|
||||||
|
REPOQUERY_WHATPROVIDES_DELIM=","
|
||||||
|
elif [ ! -z ${YUM} ]; then
|
||||||
|
PKG_MANAGER="yum"
|
||||||
|
else
|
||||||
|
>&2 echo "ERROR: Couldn't find a supported package manager"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
config_opts['root'] = 'BUILD_ENV/mock'
|
|
||||||
config_opts['target_arch'] = 'x86_64'
|
|
||||||
config_opts['legal_host_arches'] = ('x86_64',)
|
|
||||||
config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
|
|
||||||
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
|
||||||
config_opts['releasever'] = '7'
|
|
||||||
config_opts['rpmbuild_networking'] = False
|
|
||||||
|
|
||||||
|
|
||||||
config_opts['yum.conf'] = """
|
|
||||||
[main]
|
|
||||||
keepcache=1
|
|
||||||
debuglevel=2
|
|
||||||
reposdir=/dev/null
|
|
||||||
logfile=/var/log/yum.log
|
|
||||||
retries=20
|
|
||||||
obsoletes=1
|
|
||||||
gpgcheck=0
|
|
||||||
assumeyes=1
|
|
||||||
syslog_ident=mock
|
|
||||||
syslog_device=
|
|
||||||
|
|
||||||
# repos
|
|
||||||
[local-std]
|
|
||||||
name=local-std
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[local-rt]
|
|
||||||
name=local-rt
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[local-installer]
|
|
||||||
name=local-installer
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[StxCentos7Distro]
|
|
||||||
name=Stx-Centos-7-Distro
|
|
||||||
enabled=1
|
|
||||||
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
|
||||||
failovermethod=priority
|
|
||||||
exclude=kernel-devel libvirt-devel
|
|
||||||
|
|
||||||
[StxCentos7Distro-rt]
|
|
||||||
name=Stx-Centos-7-Distro-rt
|
|
||||||
enabled=1
|
|
||||||
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
|
||||||
failovermethod=priority
|
|
||||||
|
|
||||||
"""
|
|
|
@ -0,0 +1 @@
|
||||||
|
mock.cfg.centos7.all.proto
|
|
@ -0,0 +1,58 @@
|
||||||
|
config_opts['root'] = 'BUILD_ENV/mock'
|
||||||
|
config_opts['target_arch'] = 'x86_64'
|
||||||
|
config_opts['legal_host_arches'] = ('x86_64',)
|
||||||
|
config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
|
||||||
|
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
||||||
|
config_opts['releasever'] = '7'
|
||||||
|
config_opts['rpmbuild_networking'] = False
|
||||||
|
|
||||||
|
|
||||||
|
config_opts['yum.conf'] = """
|
||||||
|
[main]
|
||||||
|
keepcache=1
|
||||||
|
debuglevel=2
|
||||||
|
reposdir=/dev/null
|
||||||
|
logfile=/var/log/yum.log
|
||||||
|
retries=20
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
assumeyes=1
|
||||||
|
syslog_ident=mock
|
||||||
|
syslog_device=
|
||||||
|
|
||||||
|
# repos
|
||||||
|
[local-std]
|
||||||
|
name=local-std
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-rt]
|
||||||
|
name=local-rt
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-installer]
|
||||||
|
name=local-installer
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[StxCentos7Distro]
|
||||||
|
name=Stx-Centos-7-Distro
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
exclude=kernel-devel libvirt-devel
|
||||||
|
|
||||||
|
[StxCentos7Distro-rt]
|
||||||
|
name=Stx-Centos-7-Distro-rt
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
|
||||||
|
"""
|
|
@ -0,0 +1,58 @@
|
||||||
|
config_opts['root'] = 'BUILD_ENV/mock'
|
||||||
|
config_opts['target_arch'] = 'x86_64'
|
||||||
|
config_opts['legal_host_arches'] = ('x86_64',)
|
||||||
|
config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
|
||||||
|
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
||||||
|
config_opts['releasever'] = '7'
|
||||||
|
config_opts['rpmbuild_networking'] = False
|
||||||
|
|
||||||
|
|
||||||
|
config_opts['yum.conf'] = """
|
||||||
|
[main]
|
||||||
|
keepcache=1
|
||||||
|
debuglevel=2
|
||||||
|
reposdir=/dev/null
|
||||||
|
logfile=/var/log/yum.log
|
||||||
|
retries=20
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
assumeyes=1
|
||||||
|
syslog_ident=mock
|
||||||
|
syslog_device=
|
||||||
|
|
||||||
|
# repos
|
||||||
|
[local-std]
|
||||||
|
name=local-std
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-rt]
|
||||||
|
name=local-rt
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-installer]
|
||||||
|
name=local-installer
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[StxCentos7Distro]
|
||||||
|
name=Stx-Centos-7-Distro
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
exclude=kernel-devel libvirt-devel
|
||||||
|
|
||||||
|
[StxCentos7Distro-rt]
|
||||||
|
name=Stx-Centos-7-Distro-rt
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
|
||||||
|
"""
|
|
@ -0,0 +1,57 @@
|
||||||
|
config_opts['root'] = 'BUILD_ENV/mock'
|
||||||
|
config_opts['target_arch'] = 'x86_64'
|
||||||
|
config_opts['legal_host_arches'] = ('x86_64',)
|
||||||
|
config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
|
||||||
|
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
||||||
|
config_opts['releasever'] = '7'
|
||||||
|
config_opts['rpmbuild_networking'] = False
|
||||||
|
|
||||||
|
|
||||||
|
config_opts['yum.conf'] = """
|
||||||
|
[main]
|
||||||
|
keepcache=1
|
||||||
|
debuglevel=2
|
||||||
|
reposdir=/dev/null
|
||||||
|
logfile=/var/log/yum.log
|
||||||
|
retries=20
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
assumeyes=1
|
||||||
|
syslog_ident=mock
|
||||||
|
syslog_device=
|
||||||
|
|
||||||
|
# repos
|
||||||
|
[local-std]
|
||||||
|
name=local-std
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-rt]
|
||||||
|
name=local-rt
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-installer]
|
||||||
|
name=local-installer
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[StxCentos7Distro]
|
||||||
|
name=Stx-Centos-7-Distro
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
|
||||||
|
[StxCentos7Distro-rt]
|
||||||
|
name=Stx-Centos-7-Distro-rt
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
|
||||||
|
"""
|
|
@ -0,0 +1,63 @@
|
||||||
|
config_opts['root'] = 'BUILD_ENV/mock'
|
||||||
|
config_opts['target_arch'] = 'x86_64'
|
||||||
|
config_opts['legal_host_arches'] = ('x86_64',)
|
||||||
|
config_opts['chroot_setup_cmd'] = 'install bash bzip2 coreutils cpio diffutils epel-release epel-rpm-macros fedpkg-minimal findutils gawk gcc gcc-c++ grep gzip info make patch redhat-rpm-config redhat-release rpm-build sed shadow-utils tar unzip util-linux which xz'
|
||||||
|
config_opts['dist'] = 'el8' # only useful for --resultdir variable subst
|
||||||
|
config_opts['releasever'] = '8'
|
||||||
|
config_opts['package_manager'] = 'dnf'
|
||||||
|
config_opts['use_bootstrap'] = False
|
||||||
|
config_opts['use_bootstrap_image'] = False
|
||||||
|
config_opts['rpmbuild_networking'] = False
|
||||||
|
|
||||||
|
|
||||||
|
config_opts['yum.conf'] = """
|
||||||
|
[main]
|
||||||
|
keepcache=1
|
||||||
|
debuglevel=2
|
||||||
|
reposdir=/dev/null
|
||||||
|
logfile=/var/log/yum.log
|
||||||
|
retries=20
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
assumeyes=1
|
||||||
|
syslog_ident=mock
|
||||||
|
syslog_device=
|
||||||
|
|
||||||
|
# repos
|
||||||
|
[local-std]
|
||||||
|
name=local-std
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-rt]
|
||||||
|
name=local-rt
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-installer]
|
||||||
|
name=local-installer
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[StxCentos8Distro]
|
||||||
|
name=Stx-Centos-8-Distro
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
exclude=kernel-devel libvirt-devel
|
||||||
|
module_hotfixes=1
|
||||||
|
|
||||||
|
[StxCentos8Distro-rt]
|
||||||
|
name=Stx-Centos-8-Distro-rt
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
module_hotfixes=1
|
||||||
|
|
||||||
|
"""
|
|
@ -0,0 +1,63 @@
|
||||||
|
config_opts['root'] = 'BUILD_ENV/mock'
|
||||||
|
config_opts['target_arch'] = 'x86_64'
|
||||||
|
config_opts['legal_host_arches'] = ('x86_64',)
|
||||||
|
config_opts['chroot_setup_cmd'] = 'install bash bzip2 coreutils cpio diffutils epel-release epel-rpm-macros fedpkg-minimal findutils gawk gcc gcc-c++ grep gzip info make patch redhat-rpm-config redhat-release rpm-build sed shadow-utils tar unzip util-linux which xz'
|
||||||
|
config_opts['dist'] = 'el8' # only useful for --resultdir variable subst
|
||||||
|
config_opts['releasever'] = '8'
|
||||||
|
config_opts['package_manager'] = 'dnf'
|
||||||
|
config_opts['use_bootstrap'] = False
|
||||||
|
config_opts['use_bootstrap_image'] = False
|
||||||
|
config_opts['rpmbuild_networking'] = False
|
||||||
|
|
||||||
|
|
||||||
|
config_opts['yum.conf'] = """
|
||||||
|
[main]
|
||||||
|
keepcache=1
|
||||||
|
debuglevel=2
|
||||||
|
reposdir=/dev/null
|
||||||
|
logfile=/var/log/yum.log
|
||||||
|
retries=20
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
assumeyes=1
|
||||||
|
syslog_ident=mock
|
||||||
|
syslog_device=
|
||||||
|
|
||||||
|
# repos
|
||||||
|
[local-std]
|
||||||
|
name=local-std
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-rt]
|
||||||
|
name=local-rt
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-installer]
|
||||||
|
name=local-installer
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[StxCentos8Distro]
|
||||||
|
name=Stx-Centos-8-Distro
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
exclude=kernel-devel libvirt-devel
|
||||||
|
module_hotfixes=1
|
||||||
|
|
||||||
|
[StxCentos8Distro-rt]
|
||||||
|
name=Stx-Centos-8-Distro-rt
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
module_hotfixes=1
|
||||||
|
|
||||||
|
"""
|
|
@ -0,0 +1,62 @@
|
||||||
|
config_opts['root'] = 'BUILD_ENV/mock'
|
||||||
|
config_opts['target_arch'] = 'x86_64'
|
||||||
|
config_opts['legal_host_arches'] = ('x86_64',)
|
||||||
|
config_opts['chroot_setup_cmd'] = 'install bash bzip2 coreutils cpio diffutils epel-release epel-rpm-macros fedpkg-minimal findutils gawk gcc gcc-c++ grep gzip info make patch redhat-rpm-config redhat-release rpm-build sed shadow-utils tar unzip util-linux which xz'
|
||||||
|
config_opts['dist'] = 'el8' # only useful for --resultdir variable subst
|
||||||
|
config_opts['releasever'] = '8'
|
||||||
|
config_opts['package_manager'] = 'dnf'
|
||||||
|
config_opts['use_bootstrap'] = False
|
||||||
|
config_opts['use_bootstrap_image'] = False
|
||||||
|
config_opts['rpmbuild_networking'] = False
|
||||||
|
|
||||||
|
|
||||||
|
config_opts['yum.conf'] = """
|
||||||
|
[main]
|
||||||
|
keepcache=1
|
||||||
|
debuglevel=2
|
||||||
|
reposdir=/dev/null
|
||||||
|
logfile=/var/log/yum.log
|
||||||
|
retries=20
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
assumeyes=1
|
||||||
|
syslog_ident=mock
|
||||||
|
syslog_device=
|
||||||
|
|
||||||
|
# repos
|
||||||
|
[local-std]
|
||||||
|
name=local-std
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-rt]
|
||||||
|
name=local-rt
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[local-installer]
|
||||||
|
name=local-installer
|
||||||
|
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
||||||
|
enabled=1
|
||||||
|
skip_if_unavailable=1
|
||||||
|
metadata_expire=0
|
||||||
|
|
||||||
|
[StxCentos8Distro]
|
||||||
|
name=Stx-Centos-8-Distro
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
module_hotfixes=1
|
||||||
|
|
||||||
|
[StxCentos8Distro-rt]
|
||||||
|
name=Stx-Centos-8-Distro-rt
|
||||||
|
enabled=1
|
||||||
|
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
||||||
|
failovermethod=priority
|
||||||
|
module_hotfixes=1
|
||||||
|
|
||||||
|
"""
|
|
@ -1,58 +0,0 @@
|
||||||
config_opts['root'] = 'BUILD_ENV/mock'
|
|
||||||
config_opts['target_arch'] = 'x86_64'
|
|
||||||
config_opts['legal_host_arches'] = ('x86_64',)
|
|
||||||
config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
|
|
||||||
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
|
||||||
config_opts['releasever'] = '7'
|
|
||||||
config_opts['rpmbuild_networking'] = False
|
|
||||||
|
|
||||||
|
|
||||||
config_opts['yum.conf'] = """
|
|
||||||
[main]
|
|
||||||
keepcache=1
|
|
||||||
debuglevel=2
|
|
||||||
reposdir=/dev/null
|
|
||||||
logfile=/var/log/yum.log
|
|
||||||
retries=20
|
|
||||||
obsoletes=1
|
|
||||||
gpgcheck=0
|
|
||||||
assumeyes=1
|
|
||||||
syslog_ident=mock
|
|
||||||
syslog_device=
|
|
||||||
|
|
||||||
# repos
|
|
||||||
[local-std]
|
|
||||||
name=local-std
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[local-rt]
|
|
||||||
name=local-rt
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[local-installer]
|
|
||||||
name=local-installer
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[StxCentos7Distro]
|
|
||||||
name=Stx-Centos-7-Distro
|
|
||||||
enabled=1
|
|
||||||
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
|
||||||
failovermethod=priority
|
|
||||||
exclude=kernel-devel libvirt-devel
|
|
||||||
|
|
||||||
[StxCentos7Distro-rt]
|
|
||||||
name=Stx-Centos-7-Distro-rt
|
|
||||||
enabled=1
|
|
||||||
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
|
||||||
failovermethod=priority
|
|
||||||
|
|
||||||
"""
|
|
|
@ -0,0 +1 @@
|
||||||
|
mock.cfg.centos7.distro.proto
|
|
@ -1,57 +0,0 @@
|
||||||
config_opts['root'] = 'BUILD_ENV/mock'
|
|
||||||
config_opts['target_arch'] = 'x86_64'
|
|
||||||
config_opts['legal_host_arches'] = ('x86_64',)
|
|
||||||
config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
|
|
||||||
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
|
||||||
config_opts['releasever'] = '7'
|
|
||||||
config_opts['rpmbuild_networking'] = False
|
|
||||||
|
|
||||||
|
|
||||||
config_opts['yum.conf'] = """
|
|
||||||
[main]
|
|
||||||
keepcache=1
|
|
||||||
debuglevel=2
|
|
||||||
reposdir=/dev/null
|
|
||||||
logfile=/var/log/yum.log
|
|
||||||
retries=20
|
|
||||||
obsoletes=1
|
|
||||||
gpgcheck=0
|
|
||||||
assumeyes=1
|
|
||||||
syslog_ident=mock
|
|
||||||
syslog_device=
|
|
||||||
|
|
||||||
# repos
|
|
||||||
[local-std]
|
|
||||||
name=local-std
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/std/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[local-rt]
|
|
||||||
name=local-rt
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/rt/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[local-installer]
|
|
||||||
name=local-installer
|
|
||||||
baseurl=LOCAL_BASE/MY_BUILD_DIR/installer/rpmbuild/RPMS
|
|
||||||
enabled=1
|
|
||||||
skip_if_unavailable=1
|
|
||||||
metadata_expire=0
|
|
||||||
|
|
||||||
[StxCentos7Distro]
|
|
||||||
name=Stx-Centos-7-Distro
|
|
||||||
enabled=1
|
|
||||||
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/Binary
|
|
||||||
failovermethod=priority
|
|
||||||
|
|
||||||
[StxCentos7Distro-rt]
|
|
||||||
name=Stx-Centos-7-Distro-rt
|
|
||||||
enabled=1
|
|
||||||
baseurl=LOCAL_BASE/MY_REPO_DIR/centos-repo/rt/Binary
|
|
||||||
failovermethod=priority
|
|
||||||
|
|
||||||
"""
|
|
|
@ -0,0 +1 @@
|
||||||
|
mock.cfg.centos7.proto
|
Loading…
Reference in New Issue