ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Денис Смирнов" <mithraen@altlinux.ru>
To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org>
Subject: Re: [sisyphus] mk-configure -- lightweight replacement for GNU autotools
Date: Mon, 13 Jul 2009 10:05:15 +0400
Message-ID: <20090713060515.GA5511@mw.office.seiros.ru> (raw)
In-Reply-To: <s93fxd14qlt.fsf@chen.chizhovka.net>

[-- Attachment #1: Type: text/plain, Size: 6069 bytes --]

On Sun, Jul 12, 2009 at 11:02:22PM +0300, Aleksey Cheusov wrote:

AC> Я пока не понял, в чем именно заключается проблема. В том, что каталогов
AC> с инклюдами и библиотеками больше одного? Это не проблема.
AC>    LDFLAGS='-Ldir -Ldir2' CPPFLAGS='-Idir1 -Idir2' ./configure
AC>    make

Правильно написаный configure на autotols сделает это за меня.

И я, кстати, почти никогда не переопределяю переменные окружения для
./configure.

AC> Для этого не нужны опции --foo-includedir и --bar-includedir.
AC> Это просто лишний, ничего не добавляющий к функциональности, код (жир).

Он _очевиден_. Глядя на эти опции autotools я понимаю что таким образом
добавлена эта библиотека.

Кстати рекомендую посмотреть на spec чего-нибудь вроде mplayer, где
используетяс много with/without. Или на тот же asterisk.

AC> Проблема в том, что autotool не должен ИСКАТЬ библиотеку с которой
AC> приложение может затребовать. autotools должен ОБНАРУЖИТЬ библиотеку там
AC> и только там, где указал тот, кто приложение собирает.  

В случае если собирает пользователь на произвольной системе, а не
мантейнер дистрибутива -- эти слова неправда. Фича autotools как раз в том
что пользователь не должен знать где у него библиотеки.

AC> Пример: есть одно старое древнее приложение xsokoban, которое я собирал
AC> для pkgsrc.
AC> http://www.cs.cornell.edu/andru/xsokoban.html
AC> Его чудовищный
AC> configure.ac может наблюдать каждый, скачав тарбол.  Здесь можно видеть,
AC> что мне пришлось с ним сделать (кастрировать, по-другому не назовешь),
AC> чтобы привести его в чувство.
AC> http://pkgsrc-wip.cvs.sourceforge.net/viewvc/pkgsrc-wip/wip/xsokoban/patches/patch-ab?hideattic=0&revision=1.1.1.1&view=markup
AC> Обратить внимание на удаленную секцию про поиски libXpm.

Да, я согласен, не многие умеют писать нормальые configure-скрипты.

AC> Скажем так. В настоящее время большинство программ поступают к конечному
AC> пользователю в виде уже готового пакета в его родной системе. И среди
AC> программистов и среди админов в последнее время распранен такой подход:
AC> "если программы нет в моей системе, значит это она мне не нужна".
AC> Это говорит о том, расстояние между автором и конечным пользвателем из
AC> года в год увеличивается. Лично я не вижу смысла заботиться о постоянно
AC> уменьшающейся доле пользователей, собирающих софт руками, оправдывая
AC> этой заботой нарушение правильного подхода к настройке и сборке софта,
AC> то есть нарушением нормального дизайна.

Эта самая уменьшающаяся доля пользователей -- является как раз
квалифицироваными пользователями, разработчиками, будущими мантейнерами.

То есть те о ком вы не собираетесь заботиться, для меня лично является
иденственной аудитории, которой я готов многим помочь не выставив
предварительно счет.

>> Вы пробовали написать приложение, которое бы:
>> а) пользовалось большим количеством сторонних библиотек;
AC> Нет. Любой дурак может написать большое приложение. Попробуй написать
AC> маленькое ;-) У меня довольно много проектов в open source, и все они
AC> невелики по объему исходного кода. Много сторонних библиотек я тоже не
AC> использую.

Таким образом, естественно, что вы не учли при разработке своего решения
интересов тем, кому приходится писать большие системы :)

>> б) использовало бы некоторые ОС-специфичные функции (к примеру системные
>> вызовы);
>> в) собиралось бы под хотя бы 2-3 разных ОС;
AC> Естественно. dictd, runawk, paexec...

Как выглядит сборка под разные ОС?
В случае autotools она выглядит так:
./configure
make
make install

AC> Само собой. Примеры те же. Почти все, что мной создано. Я тестирую свой
AC> софт на всех ОС и любом железе, которое мне доступно. В данный момент
AC> это NetBSD, Linux, FreeBSD, Solaris, Darwin.  По железу:
AC> alpha,x86,x86-64. Периодически "проскакивает" другое железо.
AC> Список проектов можно найти на {sourceforge,freshmeat}.net и в
AC> репозитории pkgsrc-wip (там pkgsrc специфичные проекты, например
AC> распределенная, устойчивая к сбоям система пакетной сборки (bulk
AC> builder) для пакетов pkgsrc, примерный аналог вашего hasher-а).
AC> Я был бы весьма признателен за список того, чего не хватает в
AC> mk-configure. На данный момент реализованы в полном объеме все
AC> возможности, необходимые в 95% случаев. Напомню, проекту 4 месаца. Менее
AC> критичные вещи я отложил "на потом". Одним словом проект развивается и
AC> не стоит на месте, например, только что сделал я поддержку custom тестов
AC> (a la AC_TRY_COMPILE).
AC> Но начинается любой проект с концепции...  Зачем я сюда и
AC> пришел. Выслушать "фи" насчет идеологии и, приняв к сведению, учесть при
AC> разработке.

Я как раз к концепции и придираюсь :) Честно скажу, несколько лет назад я
пользовался slackware и считал autotools жутким непонятным монстром
который мне мешал ковыряться в коде. И приложения где были простые
самодельные makefile мне нравились.

Сейчас, когда я много времени трачу на сборку, у меня к любой системе
сборки всегда один вопрос -- чем она _принципиально_ лучше autotools? Если
нет ни одной killer feature -- то ее использование кем-либо буду для себя
считать неудобным. Потому что мне как мантейнеру, пришлось с autotools
сколь-нибудь разобраться. Другая система -- требует отдельного вкуривание
в него, и не всегда понятно с какими перспективами.

Система созданная вами облегчает жизнь разработчику (ее применение требует
меньше эзотерических знаний чем autotools), однако слегка _осложняет_
жизнь мантейнеру (повторюсь - большинство пакетов собирается тремя
командами) и пользователю. А также не очень-то пригодна для больших
проектов.

Ради интереса -- ознкомьтесь с системой сборки в Asterisk, там
действительно все непросто, и даже над autotools еще написали отдеьлную
обвязку для управления зависимостями. Думаю это поставит перед вами ряд
вопросов которые вам будет интересно решить :)

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

  parent reply	other threads:[~2009-07-13  6:05 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-12  5:53 Aleksey Cheusov
2009-07-12  9:18 ` Gleb Kulikov
2009-07-12 14:44   ` Aleksey Cheusov
2009-07-12 17:18     ` Gleb Kulikov
2009-07-12 17:37       ` Aleksey Cheusov
2009-07-16 10:52         ` Gleb Kulikov
2009-07-12 22:13     ` Mikhail Yakshin
2009-07-13 19:56       ` Aleksey Cheusov
2009-07-13 21:02         ` Led
2009-07-13 21:18           ` Aleksey Cheusov
2009-07-14  1:49         ` [sisyphus] [JT] " Pavel N. Solovyov
2009-07-14  5:22           ` Afanasov Dmitry
2009-07-14  6:21             ` Aleksey Cheusov
2009-07-14 23:13         ` [sisyphus] " Mikhail Yakshin
2009-07-15 19:23           ` Aleksey Cheusov
2009-07-15 19:41             ` Vitaly Kuznetsov
2009-07-15 19:53               ` Aleksey Cheusov
2009-07-12 12:03 ` Alexey I. Froloff
2009-07-12 12:07 ` Alexey Gladkov
2009-07-12 13:48   ` Aleksey Cheusov
2009-07-12 14:52     ` Alexey Gladkov
2009-07-12 15:15       ` Aleksey Cheusov
2009-07-12 18:57         ` Денис Смирнов
2009-07-12 20:02           ` Aleksey Cheusov
2009-07-12 20:31             ` Alexey I. Froloff
2009-07-12 20:41               ` Aleksey Cheusov
2009-07-12 20:49                 ` Alexey I. Froloff
2009-07-12 21:00                   ` Aleksey Cheusov
2009-07-12 21:03                     ` Aleksey Cheusov
2009-07-12 22:17                     ` Alexey I. Froloff
2009-07-13 20:03                       ` Aleksey Cheusov
2009-07-13 20:54                         ` Alexey I. Froloff
2009-07-13 21:06                           ` Aleksey Cheusov
2009-07-13 21:12                             ` Alexey I. Froloff
2009-07-13 21:23                               ` Aleksey Cheusov
2009-07-13 21:43                                 ` Alexey I. Froloff
2009-07-12 21:27             ` Alexey Rusakov
2009-07-12 21:36               ` Alexey I. Froloff
2009-07-12 22:29               ` Aleksey Cheusov
2009-07-12 23:04                 ` Alexey I. Froloff
2009-07-13  5:26                 ` Alexey Rusakov
2009-07-13  6:05             ` Денис Смирнов [this message]
2009-07-13  8:26               ` Afanasov Dmitry
2009-07-13 17:54                 ` Денис Смирнов
2009-07-13 20:20               ` Aleksey Cheusov
2009-07-13 20:52                 ` Alexey I. Froloff
2009-07-13 21:06                   ` Aleksey Cheusov
2009-07-13 21:39                     ` Alexey I. Froloff
2009-07-13 19:43         ` [sisyphus] mk-configure: args vs options Dmitry V. Levin
2009-07-13 20:28           ` Aleksey Cheusov
2009-07-13 20:40             ` Dmitry V. Levin
2009-07-12 16:06 ` [sisyphus] mk-configure -- lightweight replacement for GNU autotools Led
2009-07-12 16:18   ` Aleksey Cheusov
2009-07-12 16:28     ` Led
2009-07-13 20:36 ` Dmitry V. Levin
2009-07-13 20:56   ` Aleksey Cheusov
2009-07-13 21:29     ` Dmitry V. Levin
2009-07-14  6:37       ` Aleksey Cheusov
2009-07-14  6:53         ` Afanasov Dmitry
2009-07-14 18:25           ` Aleksey Cheusov
2009-07-14 18:32             ` Led
2010-06-12 14:56 ` Aleksey Cheusov
2010-06-15  3:25   ` REAL
2010-06-15  6:05     ` Aleksey Cheusov
2010-06-15  5:29       ` REAL
2010-06-15  7:19         ` Slava Semushin
2010-06-15  7:22         ` Aleksey Cheusov
2010-06-15  7:03           ` REAL
2010-06-15  7:52           ` REAL
2010-06-15  9:39             ` Aleksey Cheusov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090713060515.GA5511@mw.office.seiros.ru \
    --to=mithraen@altlinux.ru \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git