summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/return-assignment17
1 files changed, 14 insertions, 3 deletions
diff --git a/bin/return-assignment b/bin/return-assignment
index 3178d09..d040b22 100755
--- a/bin/return-assignment
+++ b/bin/return-assignment
@@ -370,9 +370,6 @@ if [ "$6" = 'ERROR' ]; then
tr ' ' '\t' > \
"${tmp_dir}/broken-packages-with-version"
-# TODO: prioritize those packages which will not get scheduled, because
-# they are already on the build-list
-
# now we look if the broken packages have been rebuilt in the meantime
haskell_rebuild_packages=$(
# shellcheck disable=SC2016
@@ -404,6 +401,20 @@ if [ "$6" = 'ERROR' ]; then
sed 's/,$//'
printf ');\n'
+ printf 'SET @`max_priority` = ('
+ printf 'SELECT MAX(`build_assignments`.`priority`)'
+ printf ' FROM `build_assignments`'
+ printf ');\n'
+
+ printf 'UPDATE `broken`'
+ printf ' JOIN `binary_packages`'
+ printf ' ON `binary_packages`.`pkgname`=`broken`.`pkgname`'
+ mysql_join_binary_packages_build_assignments
+ mysql_join_binary_packages_binary_packages_in_repositories
+ printf ' AND `binary_packages_in_repositories`.`repository`=%s' \
+ "${repository_ids__any_build_list}"
+ printf ' SET `build_assignments`.`priority`=@`max_priority`+1;\n'
+
printf 'SELECT DISTINCT `broken`.`pkgname`'
printf ' FROM `broken`'
printf ' WHERE NOT EXISTS ('