TODO #12 - bin/why-dont-you(line 12):
reintrocude "keep", "stubbornly_keep", "stabilize" and "unstage"
using information from the database.

TODO #13 - bin/db-update(line 10):
make (all) locking less restrictive

TODO #14 - bin/return-assignment(line 1028):
sign database

TODO #18 - bin/get-package-updates(line 10):
keep database clean in case of abort

TODO #23 - bin/ping-to-master(line 13):
abort build if requested to

TODO #58 - bin/build-packages(line 10):
report back memory and hdd stats to the build master on successful build

TODO #98 - bin/bootstrap-mysql(line 63):
`package_blobs` needs too much space!

TODO #104 - bin/copy-to-build-support(line 10):
allow to introduce a manually built package into build-support

TODO #108 - bin/return-assignment(line 1157):
possibly remove install_target_providers with less restrictive
versions than we have now

TODO #115 - bin/return-assignment(line 880):
maybe, we should not put "any" packages into repositories of all
architectures at once, but wait until they can actually be installed
on that architecture? (They might be missing an architecture specific

TODO #117 - lib/mysql-functions(line 357):
we might want to keep the pkgrel part and only remove the
sub_pkgrel part - but then we need to include pkgrels on the provide
side, too(?)

TODO #120 - bin/build-packages(line 795):
symbols may be in object files _inside_archives_
In that case, we're interested in the object file's name,
not the archive's file name

TODO #126 - bin/seed-build-list(line 424):
this might become wrong if we ever change the order of the
rows in repository_stabilities -- we might want to refer to
repository_stability_relations here somehow ...

TODO #128 - bin/create-build-support-package(line 184):
mangle customizable meta-infos here (new provides, keep some

TODO #135 - bin/create-build-support-package(line 356):
maybe add (some?) depends here, too?

TODO #136 - bin/return-assignment(line 1314):
set _correct_ version of install_target_providers

TODO #138 - bin/check-opcodes(line 107):

TODO #152 - bin/build-packages(line 543):
get the name of the key file from its finger print or
some other information inside the repository

TODO #153 - bin/build-packages(line 12):
some build failures should skip straws - e.g. if dependencies are unavailable,
we should not try to rebuild with a cleaned chroot

TODO #154 - bin/build-packages(line 15):
some build environments should be archived when the build fails - but:

TODO #155 - bin/build-packages(line 18):
it might be worth trying to build with makedepends installed from
[testing] and only depends installed from [staging]

TODO #160 - bin/build-packages(line 21):
the following things need proper locking and/or proper handling of
external locks:
- `git` on the package source
- `archbuild` (e.g. /var/lib/archbuilds/staging-i686-build/root.lock)
- `find ... -exec umount` on the build chroot

TODO #161 - bin/build-packages(line 27):
releave some locking conditions - meta goal: be able to run multiple
build slaves on one host from within one archlinux32/builder repository

TODO #167 - bin/nit-picker(line 13):

- check for differences of dependencies between mysql and git
- check for differences of dependencies between mysql and packages
- check for installability of packages
- check if our packages are still available upstream
- complain about packages residing too long in [staging]/[testing]

TODO #170 - bin/return-assignment(line 998):
this makes sense for provide= entries in .PKGINFO, too

TODO #173 - bin/manage-fail-reasons(line 6):
deduplicate matching logic (with bin/return-assignment)

TODO #176 - bin/seed-build-list(line 19):
allow to reschedule filtered by architecture

TODO #177 - bin/seed-build-list(line 226):
translate lib32-* packages instead of ignoring them for -m

TODO #179 - bin/build-packages(line 921):
dependency-adding from make_source_info() should
be replicated here, somehow ...

TODO #180 - bin/seed-build-list(line 687):
this seems to be broken (deletes too few packages) - still valid
after implementing the correct blacklisting below?

TODO #181 - bin/get-assignment(line 323):
This is broken, it cannot work and probably never will do this way.

TODO #189 - bin/filter-build-logs(line 10):
remove hard-coded package suffixes

TODO #191 - bin/copy-to-build-support(line 12):
remove hard-coded package suffixes

TODO #192 - bin/seed-build-list(line 21):
remove hard-coded package suffixes

TODO #193 - bin/create-build-support-package(line 6):
remove hard-coded package suffixes

TODO #195 - bin/interpret-mail(line 8):
remove hard-coded default package suffixes

TODO #205 - bin/seed-build-list(line 23):
-a reschedules too many packages (for example, packages, that have just been rescheduled in a previous run)

TODO #207 - bin/get-package-updates(line 453):
sometimes we schedule the identical package twice (once "normal"
and once, because we found the deleted package elsewhere) - this could
be avoided

TODO #209 - lib/mysql-functions(line 506):
we might want to move packages of blacklisted architectures to
the deletion-list instead of the build-list

TODO #210 - bin/seed-build-list(line 25):
-a and -p leave the buildmaster in an unclean state

TODO #211 - bin/build-packages(line 30):
remove hard-coded package suffixes

TODO #212 - bin/create-build-support-package(line 8):
use the intention-queue

TODO #216 - bin/db-update(line 584):
sign repositories

TODO #218 - bin/build-packages(line 32):
save build-logs in case of success, too - only the build is
guaranteed to have been successful, maybe the package is broken.

TODO #220 - bin/why-dont-you(line 271):
This logic is different from `calculate_maximal_moveable_set`:
If a package has a broken dependency already, we do not see it, but
db-update does.

TODO #221 - lib/mysql-functions(line 1400):
needs a left-join variant, too (possibly a right-join, too?)

TODO #224 - lib/mysql-functions(line 1098):
only consider installable providers (at least for haskell-*, but
it would be probably best to do so for all packages)

TODO #226 - bin/db-update(line 12):
intentionally break packages that failed to build for a certain time

TODO #228 - bin/return-assignment(line 412):
We might want to make this architecture-sensitive.

TODO #229 - bin/db-update(line 14):
-p seems to try to move stuff from community to community and from
extra to extra - which of course leads to problems.

TODO #230 - bin/get-package-updates(line 324):
maybe, we want to exclude our own packages here, too? But why
would they be black listed in the first place?
shellcheck disable=SC2154