c3cb180ae0
A previous de-branding update inadvertently included a line intended for the de-branding of cgcs-root to root. That portion of the debranding effort has been put on indefinite hold as the 'repo' tool lacks critical features to ease the transition. This update reverts the one line change to it's prior state. Closes-big: 1904908 Change-Id: Ie027d0eb4025611aaf086cfe38fa60535de2865d Signed-off-by: Scott Little <scott.little@windriver.com>
155 lines
4.2 KiB
Bash
Executable File
155 lines
4.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Copyright (C) 2019 Intel Corporation
|
|
#
|
|
|
|
set -e
|
|
export SRC_BUILD_ENVIRONMENT="stx"
|
|
export ARCH="x86_64"
|
|
export PATH="${MY_REPO}/build-tools:${PATH}"
|
|
|
|
EXPORTS="$MY_WORKSPACE/export/mirrors/"
|
|
DISTRO="CentOS"
|
|
HEAD_FILE="${MY_REPO_ROOT_DIR}/.repo/projects/cgcs-root.git/HEAD"
|
|
STAT="$(stat -c %Y ${HEAD_FILE})"
|
|
TIMESTAMP=$(date -d @$(stat -c %Y ${HEAD_FILE}) +%Y-%m-%dT%H:%M:%S)
|
|
STD_PKG_DIR="${MY_WORKSPACE}/std/rpmbuild/RPMS"
|
|
RT_PKG_DIR="${MY_WORKSPACE}/rt/rpmbuild/RPMS"
|
|
RELEASE="$SRC_BUILD_ENVIRONMENT"
|
|
CACHE_DIR="$EXPORTS/$DISTRO/$RELEASE"
|
|
DEST_RPM_ROOT="${CACHE_DIR}/${ARCH}"
|
|
DEST_SRPM_ROOT="${CACHE_DIR}/Source"
|
|
DEST_RPM_ROOT_NEW="${DEST_RPM_ROOT}.new"
|
|
DEST_SRPM_ROOT_NEW="${DEST_SRPM_ROOT}.new"
|
|
DEST_RPM_ROOT_OLD="${DEST_RPM_ROOT}.old"
|
|
DEST_SRPM_ROOT_OLD="${DEST_SRPM_ROOT}.old"
|
|
DEST_RPM="${DEST_RPM_ROOT_NEW}/Packages"
|
|
DEST_SRPM="${DEST_SRPM_ROOT_NEW}/SPackages"
|
|
DEST_RPM_REPODATA="${DEST_RPM_ROOT_NEW}/repodata"
|
|
DEST_SRPM_REPODATA="${DEST_SRPM_ROOT_NEW}/repodata"
|
|
LOCAL_REPO_DIR="${MY_REPO}/local-repo"
|
|
LOCAL_CACHE_DIR="${LOCAL_REPO_DIR}/dependancy-cache"
|
|
LOCAL_CACHE_ORIGIN="${LOCAL_REPO_DIR}/origin"
|
|
ORIGIN="/import/mirrors/CentOS/${SRC_BUILD_ENVIRONMENT}/CentOS"
|
|
|
|
CREATEREPO=$(which createrepo_c)
|
|
if [ $? -ne 0 ]; then
|
|
CREATEREPO="createrepo"
|
|
fi
|
|
|
|
# Create directories
|
|
for d in "$DEST_RPM" "$DEST_SRPM" "$LOCAL_CACHE_DIR"; do
|
|
if [ ! -d "$d" ]; then
|
|
mkdir -p "$d"
|
|
fi
|
|
done
|
|
|
|
if [ ! -e "$LOCAL_CACHE_ORIGIN" ]; then
|
|
echo "$ORIGIN" > $LOCAL_CACHE_ORIGIN
|
|
ORIGIN_DIR="$ORIGIN"
|
|
else
|
|
ORIGIN_DIR=$(grep -v '^#' $LOCAL_CACHE_ORIGIN | head -n 1)
|
|
fi
|
|
|
|
if [ ! -d "$ORIGIN_DIR" ]; then
|
|
echo "ERROR: directory not found '$ORIGIN_DIR'"
|
|
exit -1
|
|
fi
|
|
|
|
# copy standard and rt build of binary packages
|
|
for f in $(find "$RT_PKG_DIR" "$STD_PKG_DIR" -name '*.rpm' \
|
|
| grep -v '[.]src[.]rpm'); do
|
|
ff="$(basename $f)"
|
|
echo "$ff"
|
|
cp "$f" "$DEST_RPM"
|
|
touch "${DEST_RPM}/${ff}" --date="$TIMESTAMP"
|
|
done
|
|
|
|
# Make a repo out of it
|
|
( cd "$DEST_RPM_ROOT_NEW"; $CREATEREPO $PWD; exit $? )
|
|
|
|
# copy standard and rt build of src.rpm packages
|
|
for f in $(find "$STD_PKG_DIR" "$RT_PKG_DIR" -name '*.src.rpm'); do
|
|
ff="$(basename $f)"
|
|
echo "$ff"
|
|
cp "$f" "$DEST_SRPM"
|
|
touch "${DEST_SRPM}/${ff}" --date="$TIMESTAMP"
|
|
done
|
|
|
|
# Make a repo out of it
|
|
( cd "$DEST_SRPM_ROOT_NEW"; $CREATEREPO $PWD; exit $? )
|
|
|
|
date > "${DEST_SRPM_ROOT_NEW}/last_updated"
|
|
date > "${DEST_RPM_ROOT_NEW}/last_updated"
|
|
|
|
# Rotate directories ... current becomes old, and new becomes current
|
|
if [ -d $DEST_RPM_ROOT ]; then
|
|
mv "$DEST_RPM_ROOT" "$DEST_RPM_ROOT_OLD"
|
|
fi
|
|
|
|
mv "$DEST_RPM_ROOT_NEW" "$DEST_RPM_ROOT"
|
|
rm -rf "$DEST_RPM_ROOT_OLD"
|
|
|
|
if [ -d "$DEST_SRPM_ROOT" ]; then
|
|
mv "$DEST_SRPM_ROOT" "$DEST_SRPM_ROOT_OLD"
|
|
fi
|
|
|
|
mv "$DEST_SRPM_ROOT_NEW" "$DEST_SRPM_ROOT"
|
|
rm -rf "$DEST_SRPM_ROOT_OLD"
|
|
|
|
# Update symlinks in local-repo
|
|
|
|
for d in $(find "$ORIGIN_DIR" -type d | tail -n +2); do
|
|
RELATIVE_DIR=$(echo $d | sed "s#^$ORIGIN_DIR/##")
|
|
if [ -d "${LOCAL_REPO_DIR}/${RELATIVE_DIR}" ]; then
|
|
rm -rf "${LOCAL_REPO_DIR}/${RELATIVE_DIR}/*"
|
|
fi
|
|
echo "mkdir -p $RELATIVE_DIR"
|
|
mkdir -p "${LOCAL_REPO_DIR}/${RELATIVE_DIR}"
|
|
done
|
|
|
|
for d in $(find "$ORIGIN_DIR" -type d | tail -n +2); do
|
|
for f in $(find $d -maxdepth 1 -type f); do
|
|
RELATIVE_FILE=$(echo $f | sed "s#^$ORIGIN_DIR/##")
|
|
if [ -e "${LOCAL_REPO_DIR}/${RELATIVE_FILE}" ]; then
|
|
rm -f "${LOCAL_REPO_DIR}/${RELATIVE_FILE}"
|
|
fi
|
|
ln -s "$f" "${LOCAL_REPO_DIR}/${RELATIVE_FILE}"
|
|
done
|
|
done
|
|
|
|
for d in $(find -L "$LOCAL_REPO_DIR" -type d -name repodata); do
|
|
pushd "${d}/.."
|
|
rm -rf repodata
|
|
if [ -f "comps.xml" ]; then
|
|
"$CREATEREPO" -g comps.xml "$PWD"
|
|
else
|
|
"$CREATEREPO" "$PWD"
|
|
fi
|
|
popd
|
|
done
|
|
|
|
# Recreate repodata
|
|
cd "$LOCAL_REPO_DIR"
|
|
|
|
for d in $(find -L . -type d -name repodata); do
|
|
pushd "${d}/.."
|
|
for c in $(ls -1 repodata/*comps*xml); do
|
|
mv -f "${c}" comps.xml
|
|
done
|
|
if [ -d "repodata" ]; then
|
|
rm -rf repodata
|
|
fi
|
|
if [ -f "comps.xml" ]; then
|
|
$CREATEREPO -g comps.xml "$PWD"
|
|
else
|
|
$CREATEREPO "$PWD"
|
|
fi
|
|
popd
|
|
done
|
|
|
|
# Update the dependancy_cache under local-repo
|
|
create_dependancy_cache.py --cache_dir "${LOCAL_CACHE_DIR}"
|