summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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