В преддверии новогодних каникул предлагаю вернуться к этому вопросу.
Как это вижу я:
* Все действо происходит в systemd-nspawn контейнере
* Используем сразу Python 3
* Веб-приложение на Tornado (асинхронное), чтобы в реал-тайме можно было мониторить лог сборки и/или ожидание очереди
* Сборка запускается как баш-скрипт из питона через subprocess.call в выводом лога в текстовый файл
* С использованием pyinotify файл лога мониторится и выводится в веб при наличии изменений, плюс сохраняется в бд
* Сборка проходит в порядке очереди в отдельном процессе
* Максимальное кол-во одновременно собираемых пакетов думаю стоит обсудить заранее. По сути, если сборка каждого пакета в отдельном процессе, это же и лимит процессов для multiprocessing.Pool
* Давать пользователям самостоятельно генерировать окружения с mageia смысла не вижу, вместо этого пусть используются готовый набор таррболов, который нагенерим заранее сами
* Авторизация по OpenID (от гугла, например)
В качестве БД или PostgreSQL или MongoDB. Мне, в принципе, без разницы.