Igor Vlasenko пишет: > On Sat, Aug 02, 2008 at 05:59:45PM +0400, Aleksey Avdeev wrote: >> Здравствуйте, уважаемые. >> 2viy: В repocop можно добавить проверку на использование пакетами >> устаревших макросов apache2`го. Срабатывать должно (примерно): > > ... > skipped > ... > я этого не сделал, так как не совсем уверен, что понял, > > а частично сделал только Если будет заготовка теста проверки зависимостей -- дополню: Беглый просмотр показал, что кажется на эту тему есть SQL база. Но как ей пользоваться я сходу не понял (а может она вообще не для этого). >> Возможно нужно выдавать предупреждение и при корректном использовании >> rpm-macros-apache2-compat (как напоминание о использовании устаревших >> макросов). > > см. > http://git.altlinux.org/people/viy/packages/?p=repocop-unittest.git;a=blob;f=repocop-unittest-spec-has-obsolete-macroses.spec;h=844ac0cf4fbee01c12cec9934785e8dcf201a714;hb=bb7bc2c0e2a4ffa2f0b739aa6059e4c453b35d4d > > Алексей, > хотел бы попросить выписать > 1) таблицы замены старых макросов на новые + в каких секциях эти макросы > могут встречаться - > я тогда напишу генератор патчей. Таблица замен в файле /etc/rpm/macros.d/rpm-macros-apache2-compat пакета rpm-macros-apache2-compat (он же apache2-compat.rpm-macros в rpm-macros-apache2.git, см. ). Проверять нужно все секции, кроме %changelog. Паршиво то, что данная таблица применима не всегда: если по сборочным зависимостям вытягивается rpm-macros-apache, то при проверке из макросов предоставляемых rpm-macros-apache2-compat нужно вычесть макросы предоставляемые rpm-macros-apache (файл /etc/rpm/macros.d/rpm-macros-apache, он же ) -- часть макросов в этих пакетах совпадает, и _эту_ ошибку они (совпадающие) генерировать не должны (это другой случай: rpm-macros-apache2-compat и rpm-macros-apache не должны вытягиваться вместе). Вышеизложенное -- теория, слабо применимая на практике (т. к. пакеты rpm-macros-apache2-compat и rpm-macros-apache конфликтуют). Я могу генерировать подпакеты с данными для repocop`а, но для этого мне нужно знать следующие: 1. Куда класть файлы. 2. Как обозвать оные подпакеты. (repocop-data-?) > > 2) Что же касается проверок на комбинации Requres/BuildRequires, > то большая просьба к вам вписать этот алгоритм прямо > в repocop-unittest-spec-has-obsolete-macroses.spec, > а я добавлю вас в ACL, чтобы вы могли исправлять его по ходу > дела, если будут ошибки. > > Хочется иметь официальный алгоритм, > за который апстрим несет ответственность :) OK, см. бранч solo (): 1. Проверяются только спеки с Build{PreReq,Requires} {apache2-devel,rpm-{macros,build}-apache2}. 2. Если в спеке определяется (%define) макрос {a,apache}_* -- соответствующая проверка отключается. (Т. к. пока нет простой возможности разделить импортированные и определённые макросы.) 3. Если макрос %{a,apache}_* присутствует, а сборочных зависимостей на rpm-macros-apache2-compat нет -- добавлена рекомендация данный пакет задействовать. 4. Небольшая косметика (tmp файл для фильтрованного спека и ключи для egrep). -- С уважением. Алексей.