diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2023-08-06 01:15:08 +0200 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2023-08-06 01:15:08 +0200 |
commit | f1ac8778e45caa7c397f4c8a8976eccb94a07c0e (patch) | |
tree | 02260256d6bb3bb1a8dc80f43576ad8176d93b7f | |
parent | fixes (diff) | |
download | mastermirror-scripts-f1ac8778e45caa7c397f4c8a8976eccb94a07c0e.tar.gz mastermirror-scripts-f1ac8778e45caa7c397f4c8a8976eccb94a07c0e.tar.bz2 mastermirror-scripts-f1ac8778e45caa7c397f4c8a8976eccb94a07c0e.zip |
first complete version
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
-rwxr-xr-x | sign-binpackages.sh | 28 | ||||
-rwxr-xr-x | sync-binpackages.sh | 40 |
2 files changed, 35 insertions, 33 deletions
diff --git a/sign-binpackages.sh b/sign-binpackages.sh index 8fa8475..e11ba71 100755 --- a/sign-binpackages.sh +++ b/sign-binpackages.sh @@ -14,7 +14,6 @@ ARCHES=${ARCHES:-${_ARCHES}} INTREE=/release/weekly/binpackages SIGTREE=/release/binpackages -DEBUG='' VERBOSE='' BINPKG_GPG_SIGNING_GPG_HOME=/home/gmirror/.gnupg-releng @@ -22,38 +21,23 @@ BINPKG_GPG_SIGNING_KEY=DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D gpgconf --kill all -## step 0: ensure all directories exist and have the right -## permissions -## we can't actually do that here since this script runs as -## unprivileged user -# -#for a in $ARCHES ; do -# if ! [[ -d ${INTREE}/${a} ]]; then -# mkdir -p ${INTREE}/${a} -# chown ${a}:${a} ${INTREE}/${a} -# chmod u+rwx,o+rx ${INTREE}/${a} -# fi -#done -# -#[[ -d SIGTREE ]] || mkdir -p ${SIGTREE} - # step 1: rsync from the dirs where the arches copy in # make sure to *not* overwrite existing newer files (obviously # the signature changed them)... for a in $ARCHES ; do - rsync --recursive --delete --delete-after --update ${INTREE}/${a}/ ${SIGTREE}/${a}/ + rsync ${VERBOSE} --archive --delete --delete-after --update --mkpath ${INTREE}/${a}/* ${SIGTREE}/${a}/ done # step 2: iterate over all binary package trees, sign # all unsigned files # we assume the directory structure to be -# /binpackages/amd64/17.1/x86-64 -# /binpackages/amd64/17.1/x86-64_musl -# /binpackages/mips/17.0/mipsel3_n32 -# /binpackages/x86/17.0/x86_musl_hardened +# .../binpackages/amd64/17.1/x86-64 +# .../binpackages/amd64/17.1/x86-64_musl +# .../binpackages/mips/17.0/mipsel3_n32 +# .../binpackages/x86/17.0/x86_musl_hardened for t in ${SIGTREE}/*/*/* ; do - find ${t} -name '*.gpkg' -exec gpkg-sign --skip-signed \{\} \; + find "${t}" -name '*.gpkg' -exec gpkg-sign --skip-signed \{\} \; PKGDIR=${t} emaint binhost fix done diff --git a/sync-binpackages.sh b/sync-binpackages.sh index da94c33..dbee1d7 100755 --- a/sync-binpackages.sh +++ b/sync-binpackages.sh @@ -1,19 +1,37 @@ #!/bin/bash # Copyright 2011-2023 Gentoo Authors; Distributed under the GPL v2 -# this is the directory where the tree is fully assembled and all packages are signed +# for testing +ARCHES="arm64 sparc" + +# Keep this variable in sync in both sign-binpackages.sh & sync-binpackages.sh +_ARCHES="alpha amd64 arm64 arm hppa ia64 loong m68k mips ppc riscv s390 sh sparc x86" + #alpha amd64 arm64 arm hppa ia64 loong m68k mips ppc riscv s390 sh sparc x86 +ARCHES=${ARCHES:-${_ARCHES}} + +# this is the directory where all packages are signed # we assume it's on dipper / releng-incoming, but might as well give a full rsync # specification here -INITIALDIR="/release/binpackages" +SRCDIR="/release/binpackages" +# append ${a} -FINALDIR="/var/tmp/gmirror-releases/binpackages" -RSYNC="/usr/bin/rsync" -RSYNC_ARGS="--no-motd --recursive --times --links --ignore-errors --delete --delete-after --timeout=300 --exclude=timestamp*" -RSYNC_ARGS="${RSYNC_ARGS} --quiet" +# this is the outgoing directory +DSTDIR="/var/tmp/gmirror-releases/releases" +# append ${a}/binpackages -[[ -d ${FINALDIR} ]] || mkdir ${FINALDIR} -${RSYNC} ${RSYNC_ARGS} ${INITIALDIR}/ ${FINALDIR}/ +RSYNC="/usr/bin/rsync" +RSYNC_OPTS=( + --no-motd + --archive + --ignore-errors + --delete + --delete-after + --timeout=300 + --quiet + --mkpath +) -/bin/date -u '+%s %c' > ${FINALDIR}/timestamp.x -/bin/date -R -u > ${FINALDIR}/timestamp.chk -/bin/date -u '+%s' > ${FINALDIR}/timestamp.mirmon +for a in ${ARCHES}; do + [[ -d ${DSTDIR}${a}/binpackages ]] || mkdir ${DSTDIR}/${a}/binpackages + ${RSYNC} ${RSYNC_ARGS} ${SRCDIR}/${a}/* ${DSTDIR}/${a}/binpackages/ +done |