On Wed, Aug 29, 2007 at 11:37:07PM +0400, Alexey Tourbin wrote: > On Wed, Aug 29, 2007 at 11:29:42PM +0400, Dmitry V. Levin wrote: > > > Такие пироги. > > Сколько у тебя уйдёт времени, чтобы всё это реализовать? > > Это ещё не продумано до конца. > Не знаю. Буду дальше думать. У меня сейчас есть большая неопределенность во многих отношениях, что да как делать, и она тянет меня на дно. Иногда даже всё сводится к каким-то мутным соображениям, "а вот хорошо бы..." С другой стороны, я слишком забиваю себе голову возможностью реализации, при том, что плохо представляю себе сборочную инфраструктуру в офисе и как вообще сейчас всё это работает и как ещё оно может работать. Предлагаю начать обмен мнениями с того, чтобы уточнить, чего мы хотим, и детализировать это достаточно четко, но не доходя до особенностей реализации, т.е. не доходя до анатомии шелл-кода в виде грепов и т.д. Я мыслю в следующих категориях. На вход пришел src.rpm пакет. На выходе мы получаем либо новое состояние сизифа, либо отлуп maintainer'у (при некоем запоминании состояния для последующего подтверждения). Соответственно, задачу girar я представляю себе так: проверить репозитарий и сформировать trusted src.rpm с валидным полем Packager; либо дать отлуп прямо здесь. Итого, на входе есть src.rpm пакет. У меня нарисовался следующий фрагментарный "псевдо-шелл" код, который отчасти проясняет, "чего мы хотим". Его нужно читать снизу вверх. #!/bin/sh exit_hander() { sisyphus_unlock } srpm_check_version() { srpm_find_sisyphus_version if srpm_found_sisyphus_version; then srpm_ensure_newer_version fi } srpm_build() { parallel srpm_build_arch `all_arches` srpm_built_ok `primary_arches` srpm_check_if_noarch } srpm_test_arch_unmets() { dump_sisyphus_unmets dump_my_sisyphus_unmets check_new_unmets } srpm_test_arch() { make_my_arch_sisyphus srpm_test_arch_unmets } srpm_test() { parallel srpm_test_arch `primary_arches` } srpm_init sisyphus_lock_r srpm_check_acl srpm_check_verison srpm_build srpm_test sisypuhs_lock_w srpm_commit