On Sat, Sep 15, 2007 at 01:53:39PM +0400, Хихин Руслан wrote: > Здравствуйте Alexey Tourbin > В сообщении от Суббота 15 сентября 2007 Alexey Tourbin написал(a): > > On Thu, Sep 13, 2007 at 12:08:25AM +0400, Хихин Руслан wrote: > > > Здравствуйте Alexey Tourbin > > > > > А зачем? Мы обсуждали это на конференции. Если явно указывать > > дизъюнкцию, то она получается "закрытой" во времени, к ней нельзя > > ничего присоединить. Напр. Requires: gcc3.4|gcc4.1. > Ну, при следующей пересборке пакета она легко присоединяется. Как же туда присоединится gcc4.2? Вручную? > > А можно длеать "открытую" дизъюнкцию на основе виртуальных > > зависимостей, > > типа Requires: /usr/bin/gcc. К ней потом можно будет задним числом > > "подшить" gcc4.2, и скорее всего такая семантика более преемлема > > с точки зрения репозитария в целом. > Не всегда зависимость определяется общим файлом - чаще - это различный > набор интерфейса. Желательно чтобы общие интерфейсы предоставляли какое-то общее имя в provides, на которое легко сослаться. Такова логика построения репозитария. Хотя конечно она навязчива. > Это мне понятно - дизъюнкционная зависимость и Provides это разные формы > отбражения одного и того-же. Вопрос стоит именно о возможности хранить > такую информацию не в куче пакетов, собираемых разными людьми, а в Это понятно. Организационное неудобство. С другой стороны, нет способа указывать "глупые"/бессмысленные дизъюнкции типа что-угодно1|что-угодно2. То есть имеются дополнительные ограничения на дизайн репозитария по зависимостям. Изредка эти ограничения неудобны, зато дают меньше возможностей деградации. > одном пакете. Особенно полезно с учётом того, что дизъюнкция > выполняется при первой истине. Мил человек. Дизъюнкция это функция, причем ассоциативная (а также коммутативная). А у Вас дизъюнкция это процедура, которая ещё типа должна выполнять какие-то эвристические действия при попытке ее вычисления в зависимости от последовательности дизъюнктов.