Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-12-06 09:03:50 +0100
committerErich Eckner <git@eckner.net>2019-12-06 09:03:50 +0100
commit0b5474bd4539ff6344604cedd21a076dbd18319e (patch)
tree9533644e1649f49b7a787a632a24292d69adebe8
parentb822396f6e33ae68afcdbc93535a97ce4571a86a (diff)
bin/seed-build-list: do not schedule to-be-deleted packages via -a
-rwxr-xr-xbin/seed-build-list19
1 files changed, 15 insertions, 4 deletions
diff --git a/bin/seed-build-list b/bin/seed-build-list
index 81104f7..1ac49d5 100755
--- a/bin/seed-build-list
+++ b/bin/seed-build-list
@@ -20,8 +20,6 @@
# TODO: remove hard-coded package suffixes
-# TODO: -a should not reschedule to-be-deleted packages
-
# TODO: -a reschedules too many packages (for example, packages, that have just been rescheduled in a previous run)
# shellcheck disable=SC2016
@@ -352,7 +350,8 @@ fi
# schedule any package, that:
# 1) is not on the build-list currently and
# 2) is not in ignore-packages and
- # 3) has some dependency which is not provided by any package which
+ # 3) is not on the deletion-list or to-be-deleted and
+ # 4) has some dependency which is not provided by any package which
# a) is also on the build-list or
# b) is the least stable package with that name and for that architecture
printf 'CREATE TEMPORARY TABLE `least_stable_bp%s`(`id` BIGINT, `is_on_build_list` BIT(1), PRIMARY KEY `id`(`id`));\n' \
@@ -451,7 +450,19 @@ fi
printf '`ignore_packages`.`pkgbase`=`binary_packages`.`pkgname`'
printf ' OR `ignore_packages`.`pkgbase`=`package_sources`.`pkgbase`'
printf ') AND `ba_a`.`name`=`ignore_packages`.`architecture`'
- # 3) some dependencies are not provided by the least stable packages
+ # 3) not on the deletion-list or to-be-deleted
+ printf ' AND NOT EXISTS ('
+ printf 'SELECT 1'
+ printf ' FROM `binary_packages` AS `d_bp`'
+ mysql_join_binary_packages_binary_packages_in_repositories 'd_bp' 'd_bpir'
+ mysql_join_binary_packages_in_repositories_repositories 'd_bpir' 'd_r'
+ printf ' AND ('
+ printf '`d_r`.`stability`=%s' \
+ "${repository_stability_ids__forbidden}"
+ printf ' OR `d_bpir`.`is_to_be_deleted`'
+ printf ') WHERE `d_bp`.`pkgname`=`binary_packages`.`pkgname`'
+ printf ' AND `ba_a`.`name`=`d_r`.`architecture`'
+ # 4) some dependencies are not provided by the least stable packages
printf ') AND NOT EXISTS ('
printf 'SELECT 1'
printf ' FROM `least_stable_bp_copy`'