Периодически, при обновлении больших подсистем (python, perl, et al.) в репозитории приходится пересобирать большое количество зависимых пакетов без изменения их исходных пакетов. Для разрешения таких пересборок можно было бы использовать группы @qa, @python, @cpan и другие, но они, к сожалению, включают слишком много людей, а добавление этих групп в ACL воспринимается всеми *очень* по-разному. Я предлагаю сделать возможность добавлять в ACL фиктивную группу @rebuild, которая позволит любому майнтейнеру пересобрать пакет. Сборочница может проверять, что пакет был собран из того же исходника с через sid (source id), который уже записан в последней строчке /ALT/repo/<branch>/index/src/<package:0:1>/<package>/d-t-s-evr.list .
Хорошая идея.
А почему мы не хотим дать возможность кому угодно делать rebuild ?
(In reply to Anton Farygin from comment #2) > А почему мы не хотим дать возможность кому угодно делать rebuild ? Во время сборки пакет может собраться не совсем так, как он собирался раньше, иначе бы его, наверное, и не пересобирали. В отношении некоторых пакетов такие вольности могут быть нежелательны. Не во всех пакетах есть достаточно хорошие тесты, и мантейнеры могут хотеть проверять результат. Возможно, мы хотим opt-out, а не opt-in на разрешение делать rebuild определённых пакетов кому угодно.
Да, похоже на то, что таких пакетов, которым надо запретить rebuild - не так уж и много и опция настройки запрета rebuild нужна именно для них.
(Ответ для Dmitry V. Levin на комментарий #3) > Возможно, мы хотим opt-out, а не opt-in на разрешение делать rebuild > определённых пакетов кому угодно. Оно разве уже не opt-out? По-умолчанию обычно @everybody в ACL добавляется.
Речь идёт о том, что нет возможности разрешить только rebuild кому угодно, а хотелось бы.
мне кажется, что надо вводить новую сущность - действия и права на них для каждого пакета. например: rebuild - user, group, all change - user, group, all delete - user, group, all и т.д. Тогда и группа everybody станет не нужна.
(In reply to Anton Farygin from comment #7) > мне кажется, что надо вводить новую сущность - действия и права на них для > каждого пакета. > > например: > rebuild - user, group, all > change - user, group, all > delete - user, group, all > > и т.д. Клонировать list.packages.sisyphus на 3 файла? Мне кажется, это overkill.
(In reply to Anton Farygin from comment #4) > Да, похоже на то, что таких пакетов, которым надо запретить rebuild - не так > уж и много и опция настройки запрета rebuild нужна именно для них. А что если просто добавлять @norebuild для тех пакетов, которым rebuild не разрешён по умолчанию? Это, наверное, относительно недолго реализовать.
Это быстро, но немного ломает архитектуру ACL. По умолчанию у нас в группы кто-то входит. С точки зрения логики обработки придётся делать отдельные исключения для специальных групп, меняющих поведение girar при проверке действий ментейнера. Было бы удобнее, всё-таки, ввести какую-то новую сущность для подобных исключений. пусть и не настолько универсальную, как я предложил в посте выше. Видимо, таких действий станет много и хотелось бы иметь возможность для некоторых пакетов делать тонкую настройку общих групп acl (типа @everybody). может быть, как вариант, добавить модификатор в ACL (необязательный), в котором указывать кому возможно то или иное действие. Имя модификатора = имени действия. например тот же rebuild в таком случае мог бы выглядеть вот так: glibc: ldv glebfm rebuild:@core при отсутствии модификатора, например, считать что это действие может выполнять кто угодно. тогда этот же синтаксис можно расширить, например, вот так: php: rider rebuild:@qa update:@php remove:rider
"кто угодно" - в зависимости от типа действия. Например, задокументировать, что действие rebuild может делать по умолчанию кто-угодно, если иное не сказано в ACL. или, как вариант, ввести модификатор norebuild:@everybody в котором можно будет перечислять ментейнеров, кому запрещено делать rebuild пакета. Перечисление делать, как вариант, через запятую.
(Ответ для Anton Farygin на комментарий #10) > Это быстро, но немного ломает архитектуру ACL. > По умолчанию у нас в группы кто-то входит. Возможно, это не acl, а новая сущность flags. PS: так-то проблема назрела, перезрела, дала плоды, мутировала и вновь с нами.
Мне кажется, что это уже в каком-то виде реализовано.
В каком ?
Исправлено в dc2e66ce395e6d8343f6f7f0916fb7c34fa51daa. (In reply to Anton Farygin from comment #14) > В каком ? По умолчанию всем можно пересобирать любые пакеты. Чтобы запретить это нужно добавить группу @norebuild в ACL.