
1: Building rpms now produces an rpm.lst file. This file serves to list all rpms produced by the build. A seperate rpm.lst file is producede for each build type (std, rt, installer). The file is co-resident with the matching repodata directory. The rpm.lst files will need to be published by cengn for each layer build. The download tools in stx-tools will need to find the rpm.lst files of lower layer builds, and use it to direct the download of rpms from the lower layer. 2: Building rpms now produces an image.inc file. This file serves to list all rpms that the layer recommends be built into an iso. The file is stored under the $MY_WORKSPACE/<build-type> subdirectory, although it has identical content for any build-type. The image.inc file will need to be published by cengn for each layer build. The download tools in stx-tools will need to download the per-layer image.inc files to the $MY_REPO/cgcs-centos-repo/layer_image_inc/ sub-directory, renaming the file in some layer specific way. The build-iso tool will process any *.inc files found under $MY_REPO/cgcs-centos-repo/layer_image_inc/ , adding those rpms to the iso. 3) Add a mechanism for layer specific mock.cfg prototypes. This will allow special handling of the real-time (aka 'rt'), repositories for layer builds that need to do a 'rt' build. 4) Add support for a $MY_REPO/cgcs-centos-repo/rt subdirectory, a place to build a repo of real-time rpms originating from lower layer builds. The download tools in stx-tools will need to populate the new rt repos. As of this writing, non-rt rpms remain in $MY_REPO/cgcs-centos-repo/. i.e. there is not a new $MY_REPO/cgcs-centos-repo/std/ directory. 5) Some changes to make us more flexible about where we find realease and bsp files. 6) Found that kernel mudules were not reliably building against the hearnel-headers of our modified kernel. Found that adding '--update' to our mock build command was not working. Does mock expect '--update' to only be used independently of a build command? It does work when used in that manner, so that's what we will do. 7) The build-pkgs, build-srpms, build-rpms family of commands can take a layer argument and/or will read the LAYER environment variable. Current the only use of this variable is to modify the build-info. It does NOT limit the compile to packages for a specific layer. Story: 2006166 Task: 37094 Depends-On: https://review.opendev.org/698756 Depends-On: https://review.opendev.org/700819 Change-Id: I817e08a19cdabe08b3fcc47dee63a36b461c13c0 Co-Authored-by: Martin Chen <haochuan.z.chen@intel.com> Signed-off-by: Scott Little <scott.little@windriver.com>
73 lines
1.9 KiB
Bash
Executable File
73 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# usage: create-yum-conf [<layer>]
|
|
#
|
|
|
|
LAYER=${1:-$LAYER}
|
|
|
|
if [ "$MY_WORKSPACE" == "" ]; then
|
|
echo "ERROR: MY_WORKSPACE not defined"
|
|
exit 1;
|
|
fi
|
|
|
|
if [ "$MY_REPO" == "" ]; then
|
|
echo "ERROR: MY_REPO not defined"
|
|
exit 1;
|
|
fi
|
|
|
|
if [ "$MY_BUILD_ENVIRONMENT" == "" ]; then
|
|
echo "ERROR: MY_BUILD_ENVIRONMENT not defined"
|
|
exit 1;
|
|
fi
|
|
|
|
if [ "$MY_BUILD_DIR" == "" ]; then
|
|
echo "ERROR: MY_BUILD_DIR not defined"
|
|
exit 1;
|
|
fi
|
|
|
|
MY_YUM_CONF="$MY_WORKSPACE/yum.conf"
|
|
YUM_DIR="$MY_WORKSPACE/yum"
|
|
YUM_CACHE="$YUM_DIR/cache"
|
|
|
|
# Try to find a layer specific mock.cfg.proto
|
|
MOCK_CFG_PROTO="$MY_REPO/cgcs-centos-repo/mock.cfg.${LAYER}.proto"
|
|
if [ ! -f "$MOCK_CFG_PROTO" ]; then
|
|
# Not present, Use default mock.cfg.proto
|
|
MOCK_CFG_PROTO="$MY_REPO/cgcs-centos-repo/mock.cfg.proto"
|
|
fi
|
|
|
|
|
|
if [ -f "$MOCK_CFG_PROTO" ]; then
|
|
if [ -f "$MY_YUM_CONF" ]; then
|
|
N=$(find $MOCK_CFG_PROTO $MY_REPO/build-tools/create-yum-conf -cnewer $MY_YUM_CONF | wc -l)
|
|
if [ $N -gt 0 ]; then
|
|
# New inputs, remove to force regeneration of yum.conf
|
|
\rm -f "$MY_YUM_CONF"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ ! -f "$MY_YUM_CONF" ]; then
|
|
if [ -f "$MOCK_CFG_PROTO" ]; then
|
|
mock_cfg_to_yum_conf.py "$MOCK_CFG_PROTO" > "$MY_YUM_CONF"
|
|
sed -i "s%\[main\]%&\ncachedir=$YUM_CACHE%" "$MY_YUM_CONF"
|
|
sed -i "s%logfile=.*%logfile=$YUM_DIR/yum.log%" "$MY_YUM_CONF"
|
|
sed -i "s%LOCAL_BASE%file://%g" "$MY_YUM_CONF"
|
|
sed -i "s%MIRROR_BASE%file:///import/mirrors%g" "$MY_YUM_CONF"
|
|
sed -i "s%BUILD_ENV%$MY_BUILD_ENVIRONMENT%g" "$MY_YUM_CONF"
|
|
sed -i "s%/MY_BUILD_DIR%$MY_BUILD_DIR%g" "$MY_YUM_CONF"
|
|
sed -i "s%/MY_REPO_DIR%$MY_REPO%g" "$MY_YUM_CONF"
|
|
else
|
|
echo "ERROR: Could not find yum.conf or MOCK_CFG_PROTO"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ ! -d "$YUM_CACHE" ]; then
|
|
mkdir -p "$YUM_CACHE"
|
|
fi
|
|
|
|
echo "$MY_YUM_CONF"
|
|
exit 0
|