From b806c88704e9cff931d7839c0201a2cc9fcd9f4e Mon Sep 17 00:00:00 2001 From: Simon Quigley Date: Sat, 9 Mar 2019 17:53:36 -0600 Subject: [PATCH] Initial working prototype. --- .gitignore | 3 +- .gitmodules | 3 ++ britney.conf.in | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ britney2-ubuntu | 1 + config.sh | 4 +-- fetch-indexes | 52 +++++++++++++++++++++------------- 6 files changed, 116 insertions(+), 22 deletions(-) create mode 100644 .gitmodules create mode 100644 britney.conf.in create mode 160000 britney2-ubuntu diff --git a/.gitignore b/.gitignore index 95942ee..7accf39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ britney_data/ -britney-output/ +britney_output/ britney_hints/ britney_cache/ +britney.conf diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f460764 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "britney2-ubuntu"] + path = britney2-ubuntu + url = https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu diff --git a/britney.conf.in b/britney.conf.in new file mode 100644 index 0000000..29048e4 --- /dev/null +++ b/britney.conf.in @@ -0,0 +1,75 @@ +# Configuration file for britney + +# Paths for control files +TESTING = britney_data/$RELEASE +UNSTABLE = britney_data/$SOURCE_PPA-$RELEASE +PARTIAL_UNSTABLE = yes + +# Output +NONINST_STATUS = britney_output/$BRITNEY_TIMESTAMP/$SOURCE_PPA-$RELEASE-non-installable-status +EXCUSES_OUTPUT = britney_output/$BRITNEY_TIMESTAMP/$SOURCE_PPA-$RELEASE-excuses.html +EXCUSES_YAML_OUTPUT = britney_output/$BRITNEY_TIMESTAMP/$SOURCE_PPA-$RELEASE-excuses.yaml +UPGRADE_OUTPUT = +HEIDI_OUTPUT = + +# Appease piuparts +STATE_DIR = /tmp/piuparts-is-not-used + +# List of release architectures +ARCHITECTURES = $ARCHES $PORTS_ARCHES + +# if you're not in this list, arch: all packages are allowed to break on you +NOBREAKALL_ARCHES = amd64 + +# if you're in this list, your packages may not stay in sync with the source +OUTOFSYNC_ARCHES = + +# if you're in this list, your uninstallability count may increase +BREAK_ARCHES = + +# if you're in this list, you are a new architecture +NEW_ARCHES = + +# priorities and delays +MINDAYS_LOW = 0 +MINDAYS_MEDIUM = 0 +MINDAYS_HIGH = 0 +MINDAYS_CRITICAL = 0 +MINDAYS_EMERGENCY = 0 +DEFAULT_URGENCY = medium + +# hint permissions +HINTS_CJWATSON = ALL +HINTS_ADCONRAD = ALL +HINTS_KITTERMAN = ALL +HINTS_LANEY = ALL +HINTS_JRIDDELL = ALL +HINTS_STEFANOR = ALL +HINTS_STGRABER = ALL +HINTS_VORLON = ALL +HINTS_PITTI = ALL + +# support for old libraries in testing (smooth update) +# use ALL to enable smooth updates for all the sections +# +# naming a non-existent section will effectively disable new smooth +# updates but still allow removals to occur +SMOOTH_UPDATES = badgers + +REMOVE_OBSOLETE = no + +ADT_ENABLE = no +ADT_DEBUG = no +ADT_ARCHES = amd64 i386 armhf ppc64el s390x +ADT_PPAS = +ADT_SHARED_RESULTS_CACHE = britney_data/$RELEASE/results.cache +ADT_AMQP = +# Swift base URL with the results (must be publicly readable and browsable) +ADT_SWIFT_URL = + +BOOTTEST_ENABLE = no +BOOTTEST_DEBUG = yes +BOOTTEST_ARCHES = armhf amd64 +BOOTTEST_FETCH = yes + +EMAIL_ENABLE = no diff --git a/britney2-ubuntu b/britney2-ubuntu new file mode 160000 index 0000000..daaadf5 --- /dev/null +++ b/britney2-ubuntu @@ -0,0 +1 @@ +Subproject commit daaadf5bbdc7400e10636570b1e43995ef814076 diff --git a/config.sh b/config.sh index 2ce4e5d..9cc671d 100755 --- a/config.sh +++ b/config.sh @@ -1,4 +1,4 @@ -export RELEASE="disco" +export RELEASE="cosmic" export LP_TEAM="lubuntu-ci" export SOURCE_PPA="unstable-ci-proposed" @@ -11,7 +11,7 @@ export PORTS_ARCHIVE="http://ports.ubuntu.com/dists" export ARCHES="i386 amd64" export PORTS_ARCHES="armhf arm64 ppc64el s390x" -export BRITNEY_LOC="britney" +export BRITNEY_LOC="britney2-ubuntu/britney.py" export BRITNEY_DATADIR="britney_data" export BRITNEY_OUTDIR="britney_output" export BRITNEY_HINTDIR="britney_hints" diff --git a/fetch-indexes b/fetch-indexes index 5c21553..8f22942 100755 --- a/fetch-indexes +++ b/fetch-indexes @@ -47,20 +47,20 @@ for pocket in $RELEASE $RELEASE-updates $RELEASE-proposed; do done done -# Treat the source PPA as just another pocket +# Treat the destination PPA as just another pocket for pocket in $RELEASE-ppa-proposed; do for arch in $ARCHES $PORTS_ARCHES; do - refresh $SOURCE_PPA_URL/source/Sources.gz - refresh $SOURCE_PPA_URL/binary-$arch/Packages.gz + refresh $DEST_PPA_URL/source/Sources.gz + refresh $DEST_PPA_URL/binary-$arch/Packages.gz done done -# Get the destination PPA -pocket=$DEST_PPA-$RELEASE +# Get the source PPA +pocket=$SOURCE_PPA-$RELEASE for arch in $ARCHES $PORTS_ARCHES; do - refresh $DEST_PPA_URL/binary-$arch/Packages.gz + refresh $SOURCE_PPA_URL/binary-$arch/Packages.gz done -refresh $DEST_PPA_URL/source/Sources.gz +refresh $SOURCE_PPA_URL/source/Sources.gz wait # for wgets to finish @@ -68,26 +68,40 @@ find $BRITNEY_DATADIR -name "$$-wget-log*" -exec cat '{}' \; -delete 1>&2 echo 'Building britney indexes...' -# "Unstable" is just silo PPA -DEST=$BRITNEY_DATADIR/$DEST_PPA-$RELEASE -mkdir --parents $DEST "$BRITNEY_OUTDIR/$BRITNEY_TIMESTAMP/" +mkdir --parents "$BRITNEY_OUTDIR/$BRITNEY_TIMESTAMP/" + +# "Unstable" is SOURCE_PPA +DEST=$BRITNEY_DATADIR/$SOURCE_PPA-$RELEASE +mkdir --parents $DEST +touch --no-create $DEST +ln --verbose --symbolic --force --no-dereference $BRITNEY_HINTDIR $DEST/Hints +zcat $BRITNEY_CACHE/$SOURCE_PPA-$RELEASE/*/source/Sources.gz > $DEST/Sources +for arch in $ARCHES $PORTS_ARCHES; do + zcat $BRITNEY_CACHE/$SOURCE_PPA-$RELEASE/*/binary-$arch/Packages.gz > $DEST/Packages_${arch} +done +touch $DEST/Blocks +touch "$BRITNEY_DATADIR/$SOURCE_PPA-$RELEASE/Dates" + +# "Testing" is a combination of the archive and DEST_PPA +DEST=$BRITNEY_DATADIR/$RELEASE +mkdir --parents $DEST touch --no-create $DEST -loudly ln --verbose --symbolic --force --no-dereference $BRITNEY_HINTDIR $DEST/Hints -zcat $BRITNEY_CACHE/$DEST_PPA-$RELEASE/*/source/Sources.gz > $DEST/Sources +ln --verbose --symbolic --force --no-dereference $BRITNEY_HINTDIR $DEST/Hints +zcat $BRITNEY_CACHE/$RELEASE*/*/source/Sources.gz > $DEST/Sources for arch in $ARCHES $PORTS_ARCHES; do - zcat $BRITNEY_CACHE/$DEST_PPA-$RELEASE/*/binary-$arch/Packages.gz > $DEST/Packages_${arch} + zcat $BRITNEY_CACHE/$RELEASE*/*/binary-$arch/Packages.gz > $DEST/Packages_${arch} done touch $DEST/Blocks -touch "$DATADIR/$RELEASE/Dates" +touch "$BRITNEY_DATADIR/$SOURCE_PPA-$RELEASE/Dates" # Create config file atomically. -#CONFIG="$DEST.conf" -#envsubst "$CONFIG" < "$CODEDIR/britney.conf.in" +CONFIG="britney.conf" +envsubst < "$CONFIG.in" > "$CONFIG" -#log 'Running britney...' -#loudly $BRITNEY -v --config "$CONFIG" --series $SERIES | sed "s#$AMQP_URI#AMQP_URI#" +echo 'Running britney...' +$BRITNEY_LOC -v --config "$CONFIG" --series $RELEASE # shellcheck disable=SC2059 #printf "$files\n" >> $OUTDIR/$BRITNEY_TIMESTAMP/$TICKETID.manifest -log "$0 done." +echo "$0 done."