On Mon, Jul 13, 2009 at 11:56:45PM +0300, Aleksey Cheusov wrote: > >> Речь идет об одной из моих последних open source разработок, > >> mk-configure, легковесной простой использовании (да, я знаю, звучит как > >> маркетоидное заклинание :-) , уж простите ) альтернативе GNU > >> autotools. Ни много, ни мало... > > > Есть ещё одно соображение, не прозвучавшее за прошедшие 2 дня обсуждения. > > > Не секрет, что многие мантейнеры пакетов нередко используют заклинание > > "autoreconf -fisv" для того, чтобы заменить поставляемые в исходниках > > сгенерированные файлы на более адекватные. > Да, что, кстати, ломает изначальную идеологию autotools -- предоставить > тарбол, достаточный для сборки абсолютно везде. Оказывается, > недостаточный, необходимо, оказывается, еще и autotools ставить. Не совсем так. С одной стороны, на выходе autotools получается генерат, достаточный для сборки "абсолютно везде". С другой стороны, мантейнер пакета по разным причинам патчит исходник, он вообще предпочитает собирать всё из исходников, и тарболлу предпочитает репозиторий исходного кода, в котором (по определению) нет файлов, полученных на выходе autotools. Просто это две разные целевые аудитории. > Новое > поколение разработчиков считает даже, что за предоставленный в тарболе > готовый configure нужно бить по рукам. Когда я об этом услышал, я был > просто в шоке :-) Это разные целевые аудитории. Разработчик проекта старается вместить в тарболл всё по максимуму, а мейнтейнер пакета старается выкинуть всё то, что дублирует компоненты его ОС, которая, по его мнению, свежее, лучше, и т.п. Есть форма, которая обычно подходит этим двум группам разработчиков -- это репозиторий исходного кода, в котором нет ничего лишнего. > Во-первых, это делает подход с кодогенерацией абсолютно неуместным. > Преврати autotools в библиотеку на шеле и пиши декларативно на шеле, > безо всяких m4 и кодогенерации. Это сложно вот в каком аспекте: разработчик, запускающий инструменты autotools и формирующий тарболл, тестирует исходные файлы для некоторых фиксированных версий autotools. Обеспечить совместимость с произвольными версиями autotools _у_пользователя_ задача не стоит в принципе. Если бы autotools и куча m4-макросов (проекта gnulib и некоторых других) была одной большой библиотекой, это получился бы совсем другой проект, с другими целями и задачами. -- ldv