Commit 68315df7 authored by jan.koester's avatar jan.koester
Browse files

build-cross repo: createrepo_c from a fenriros-devel image while the x86 chroot has none

parent 323deca9
Loading
Loading
Loading
Loading
+13 −2
Changes for build-cross.sh: 13 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -841,8 +841,13 @@ ALL_STEPS=(headers systempp builtins toolchain fresh syslite kernel rootfs image
# REPO_UPLOAD: rsync target, e.g. host:/srv/www/fenriros
step_repo() {
    local chroot="${REPO_CHROOT:-/build/$USER/systempp/build-chroot/chroot}"
    local repo="$WORK/repo" arch="$RPM_ARCH" rpm n=0
    [[ -x $chroot/usr/bin/createrepo_c ]] || die "no createrepo_c in $chroot (set REPO_CHROOT)"
    local repo="$WORK/repo" arch="$RPM_ARCH" rpm n=0 image=""
    # else (the x86 chroot is being rebuilt): an x86 FenrirOS devel image's
    if [[ ! -x $chroot/usr/bin/createrepo_c ]]; then
        image="${REPO_IMAGE:-$("$DOCKER" images --format '{{.Repository}}:{{.Tag}}' 2>/dev/null |
            grep -E '(^|/)fenriros-devel:[0-9]+$' | sort -t: -k2 | tail -n1)}"
        [[ -n $image ]] || die "no createrepo_c: neither in $chroot (REPO_CHROOT) nor a fenriros-devel image (REPO_IMAGE)"
    fi
    mkdir -p "$repo/$arch/Packages"
    for rpm in "$WORK"/rpmbuild/RPMS/*/*.rpm; do
        [[ -e $rpm ]] || continue
@@ -852,10 +857,16 @@ step_repo() {
        fi
    done
    msg "repo: $n new or rebuilt RPMs, metadata for $repo/$arch"
    if [[ -z $image ]]; then
        mkdir -p "$chroot/mnt/repo"
        run repo unshare -rm sh -c 'mount --bind "$1" "$2/mnt/repo" &&
            exec chroot "$2" /usr/bin/env -i PATH=/usr/bin:/bin createrepo_c --update --general-compress-type=zstd /mnt/repo' \
            sh "$repo/$arch" "$chroot"
    else
        msg "repo: createrepo_c of $image"
        run repo "$DOCKER" run --rm --user "$(id -u):$(id -g)" -v "$repo/$arch:/mnt/repo" "$image" \
            /usr/bin/createrepo_c --update --general-compress-type=zstd /mnt/repo
    fi
    if [[ -n ${REPO_UPLOAD:-} ]]; then
        msg "repo: uploading to $REPO_UPLOAD"
        # the packages first, then the metadata that refers to them