From 0cad63d41294ad13e65ea047396de54adbd7cef6 Mon Sep 17 00:00:00 2001 From: Ryan Lerch Date: Mon, 15 May 2023 16:44:47 +1000 Subject: [PATCH] pkg01 - generate spec tarballs for epel with make-git-checkout-seed.sh Signed-off-by: Ryan Lerch --- .../files/make-git-checkout-seed.sh | 55 ++++++++++++------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh b/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh index 0b8fe54b2d..d1c0876abb 100755 --- a/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh +++ b/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh @@ -16,6 +16,18 @@ SEED_DIR=$WORK_DIR/git-checkout # subdirectory to collect rpm speciles SPEC_DIR=$WORK_DIR/rpm-specs +# list of branches to make extra spec tarballs for +EXTRA_BRANCHES=("epel7" "epel8" "epel9") +EXTRA_BRANCHES_PREFIX=extra-rpm-specs- + +# clear extra branches specs working directories +rm -rf $WORK_DIR/$EXTRA_BRANCHES_PREFIX* + +# create extra branches specs working directories +pushd $WORK_DIR &>/dev/null +mkdir -p ${EXTRA_BRANCHES[@]/#/$EXTRA_BRANCHES_PREFIX} +popd &>/dev/null + # Where to store the seed tarball for download OUTPUT_DIR=/srv/cache/lookaside/ @@ -40,7 +52,6 @@ for repo in $ORIGIN_DIR/*.git; do pushd $working_tree &>/dev/null sed -i "s@url = .*@url = $repo@" $working_tree/.git/config git pull --all &>/dev/null - sed -i "s@url = .*@url = https://src.fedoraproject.org/rpms/$bname@" $working_tree/.git/config popd &>/dev/null if [ -e $working_tree/dead.package ]; then rm -f $working_tree/$bname.spec @@ -52,7 +63,6 @@ for repo in $ORIGIN_DIR/*.git; do pushd $SEED_DIR &>/dev/null git clone $repo &>/dev/null popd &>/dev/null - sed -i "s@url = .*@url = https://src.fedoraproject.org/rpms/$bname@" $working_tree/.git/config if [ -e $working_tree/dead.package ]; then rm -f $working_tree/$bname.spec rm -f $SPEC_DIR/$bname.spec @@ -60,26 +70,28 @@ for repo in $ORIGIN_DIR/*.git; do cp -p $working_tree/$bname.spec $SPEC_DIR/ fi fi -done -# Search and create tar balls for existing Epel branches -archive_branches() { - branches="$(git branch -r --list | grep -P '[a-z]+\/([fF][0-9]+|epel[0-9]+|rawhide)')" - for result in $branches; do - if [[ "(echo $result )" ]]; then - git checkout "$result" - tar -cf - -C$WORK_DIR $(basename $SEED_DIR) | xz -2 >$OUTPUT_DIR/.git-seed-$DATE-$result.tar.xz - tar -cf - -C$WORK_DIR $(basename $SPEC_DIR) | xz -2 >$OUTPUT_DIR/.rpm-specs-$DATE-$result.tar.xz - rm $OUTPUT_DIR/git-seed*tar.xz - rm $OUTPUT_DIR/rpm-specs*tar.xz - mv $OUTPUT_DIR/.git-seed-$DATE.tar.xz $OUTPUT_DIR/git-seed-$DATE-$result.tar.xz - mv $OUTPUT_DIR/.rpm-specs-$DATE.tar.xz $OUTPUT_DIR/rpm-specs-$DATE-$result.tar.xz - ln -s git-seed-$DATE-$result.tar.xz $OUTPUT_DIR/git-seed-latest.tar.xz - ln -s rpm-specs-$DATE-$result.tar.xz $OUTPUT_DIR/rpm-specs-latest.tar.xz + # Now we go through each of the defined extra branches, and if the branch exists and + # contains a specfile, we move it to the $EXTRA_BRANCHES_PREFIX$branchname directory + pushd $working_tree &>/dev/null + for branchname in ${EXTRA_BRANCHES[@]}; do + git ls-remote --exit-code origin $branchname &>/dev/null + # if exit code for git ls-remote is 0, we found the branch + if [ $? -eq 0 ]; then + git checkout $branchname &>/dev/null + if [ -e $working_tree/$bname.spec ]; then + cp -p $working_tree/$bname.spec $WORK_DIR/$EXTRA_BRANCHES_PREFIX$branchname/ + fi + git checkout rawhide &>/dev/null fi done -} + popd &>/dev/null + sed -i "s@url = .*@url = https://src.fedoraproject.org/rpms/$bname@" $working_tree/.git/config + +done + +# tar up and copy the rawhide / regular seed and specs tarballs like we always have tar -cf - -C$WORK_DIR $(basename $SEED_DIR) | xz -2 >$OUTPUT_DIR/.git-seed-$DATE.tar.xz tar -cf - -C$WORK_DIR $(basename $SPEC_DIR) | xz -2 >$OUTPUT_DIR/.rpm-specs-$DATE.tar.xz rm $OUTPUT_DIR/git-seed*tar.xz @@ -89,7 +101,12 @@ mv $OUTPUT_DIR/.rpm-specs-$DATE.tar.xz $OUTPUT_DIR/rpm-specs-$DATE.tar.xz ln -s git-seed-$DATE.tar.xz $OUTPUT_DIR/git-seed-latest.tar.xz ln -s rpm-specs-$DATE.tar.xz $OUTPUT_DIR/rpm-specs-latest.tar.xz -archive_branches +# tar up and copy over the spec tarballs for the extra epel branches +for branchname in ${EXTRA_BRANCHES[@]}; do + tar -cf - -C$WORK_DIR $(basename $WORK_DIR/$EXTRA_BRANCHES_PREFIX$branchname) | xz -2 >$OUTPUT_DIR/.rpm-specs-$branchname-$DATE.tar.xz + rm $OUTPUT_DIR/rpm-specs-$branchname*.tar.xz + mv $OUTPUT_DIR/.rpm-specs-$branchname-$DATE.tar.xz $OUTPUT_DIR/rpm-specs-$branchname-$DATE.tar.xz +done python2 /usr/local/bin/alternative_arch_report.py /srv/git_seed/rpm-specs/ | mail -s "[Report] Packages Restricting Arches" arch-excludes@lists.fedoraproject.org