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>2018-06-26 13:52:28 +0200
committerErich Eckner <git@eckner.net>2018-06-26 13:52:28 +0200
commitdac98cdb30f75307e96916b2048d45db23589910 (patch)
treec8f5504a46f74e60e78ab9f7368ed432da1b96af
parent50c040c0334e6c0483d5983404729b3b6667bac4 (diff)
bin/seed-build-list: dependencies are also broken if they are not the least stable ones (because then, they will block stabilizing of something)
-rwxr-xr-xbin/seed-build-list18
1 files changed, 15 insertions, 3 deletions
diff --git a/bin/seed-build-list b/bin/seed-build-list
index 516a947..6ffde81 100755
--- a/bin/seed-build-list
+++ b/bin/seed-build-list
@@ -21,9 +21,9 @@ usage() {
>&2 echo 'possible options:'
>&2 echo ' -a|--auto:'
>&2 echo ' Automatically reschedule packages which have run-time'
- >&2 echo ' dependencies that are not available anywhere and which'
- >&2 echo ' cannot be replaced by another less stable version of'
- >&2 echo ' the same package.'
+ >&2 echo ' dependencies that are not available from staging and'
+ >&2 echo ' which cannot be replaced by another less stable version'
+ >&2 echo ' of the same package.'
>&2 echo ' -c|--cron-exit:'
>&2 echo ' Exit with 0 if not getting a lock - makes the script'
>&2 echo ' suitable for a crontab.'
@@ -340,6 +340,18 @@ printf 'CREATE TEMPORARY TABLE `pkgbases` (`pkgbase` VARCHAR(64), `repository` V
mysql_join_binary_packages_in_repositories_repositories 'subst_bir' 'subst_r'
printf ' AND `subst_r`.`name` NOT IN ("build-support","deletion-list","to-be-decided")'
printf ' WHERE `install_target_providers`.`install_target`=`dependencies`.`depending_on`'
+ # this is the least stable install_target_provider with that name
+ printf ' AND NOT EXISTS ('
+ printf 'SELECT 1 FROM `binary_packages` AS `ss_bp`'
+ mysql_join_binary_packages_binary_packages_in_repositories 'ss_bp' 'ss_bir'
+ mysql_join_binary_packages_in_repositories_repositories 'ss_bir' 'ss_r'
+ printf ' AND `ss_r`.`name` NOT IN ("build-support","deletion-list","to-be-decided")'
+ printf ' JOIN `repository_stability_relations` AS `ss_rsr`'
+ printf ' ON `ss_rsr`.`less_stable`=`ss_r`.`stability`'
+ printf ' WHERE `ss_bp`.`pkgname`=`subst_bp`.`pkgname`'
+ printf ' AND `ss_bp`.`id`!=`subst_bp`.`id`'
+ printf ' AND `ss_rsr`.`more_stable`=`subst_r`.`stability`'
+ printf ')'
printf ')'
printf ';\n'
fi