ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Dmitry Kazimirov" <d.kazimirov@olivema.com>
To: "ALT Linux Sisyphus discussion list" <sisyphus@altlinux.ru>
Subject: Re: [sisyphus] Re: пережёвываем libtool
Date: Mon, 11 Apr 2005 11:53:29 +0600
Message-ID: <004f01c53e5a$c9819a60$c464a8c0@OLIVEMA> (raw)
In-Reply-To: <20050408134734.GA8213@basalt.office.altlinux.org>

Прошу прощения, что опять поднимаю эту мутную тему.
Просто я письмо написал в пятницу вечером, а потом на
сервере питание выключили, и послать я его не смог.

Libtool пожевали, теперь нужно выплюнуть.  :-)

> Извините, libtool не должен подменять программисту голову.  Если
> APP использует libBASE, извольте написать об этом в Makefile.

Так вот очень часто бывает так, что в Makefile о таких
зависимостях не пишут. Вот пример:

Допустим, в приложении APP некий программист использует
обертку BASE++ для обращения к структурам и функциям
библиотеки BASE. Интерфейсы классов BASE++ полностью
скрывают от программиста эти функции и структуры данных,
однако они (эти структуры из BASE) присутствуют в виде членов
классов BASE++. Таким образом у модулей, использующих BASE++,
сохраняется зависимость от BASE по ABI или даже API - в
случае, если функции BASE обернуты inline-методами BASE++).

Внимание, вопрос! Как много программистов, использующих
BASE++, но ничего не знающих о структурах BASE, догадаются
включить библиотеку BASE в зависимости своего приложения?

Ответ - немногие. Но об этом может позаботиться libtool.

Более того, указывать зависимость от BASE в приложениях,
использующих BASE++, было бы неверно. Ведь я использую
обертку! Я понадеялся, что она реализована правильно.
Да и мало ли что случится с базовой библиотекой...
Она может быть переименована, разделена на две и прочее.
Хоть мое приложение и зависит от BASE вследствие не самого
лучшего способа реализации BASE++, я не должен все время
следить, какие там базовые библиотеки использует BASE++.
Сегодня одну, завтра две другие. Об этом может позаботиться
libtool. Но лучше пусть BASE++ перепишут нормально, чтобы
исключить такую косвенную зависимость моего приложения от
BASE. А еще лучше пусть сам BASE напишут нормально, чтобы
сократить ABI до передачи указателей, а API стандартизировать.
Тогда у авторов BASE++ почти не будет шансов неправильно
спроектировать свою библиотеку.

Однако! Все это пережевывание libtool яйца выеденного
не стоит. Можно приводить много примеров, для которых имеет
смысл оставлять файлы *.la, но польза от них перечеркивается
практической выгодой в сокращении трафика на выкачивании
пакетов по лишним зависимостям.

И уж однозначно нормальные приложения не должны требовать
присутствия файлов *.la. Можно включать файлы *.la, а лучше,
конечно, их не включать, но вот требовать их присутсвия никак
нельзя.

И требует эти файлы, заметьте, не libtool, на который тут
незаслуженно наехали, а извращенные скрипты для построения
отдельно взятого приложения. Или даже не отдельно взятого, а
(о, ужас) многих приложений KDE. Вот для них и надо найти
"правильную замену".   :-)



  reply	other threads:[~2005-04-11  5:53 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-04  9:39 [sisyphus] Рационализаторам посвящается Ruslan Popov
2005-04-04  9:30 ` Igor Zubkov
2005-04-04 10:40   ` Ruslan Popov
2005-04-04 12:05   ` Dmitry Kazimirov
2005-04-04 11:44     ` Igor Zubkov
2005-04-04 13:14       ` Dmitry Kazimirov
2005-04-04 12:27     ` Ruslan Popov
2005-04-04 12:59       ` [sisyphus] [JT] " Dmitry Kazimirov
2005-04-04 14:01         ` Ruslan Popov
2005-04-05  4:09           ` Mike Lykov
2005-04-04 13:08       ` [sisyphus] " Andrey Rahmatullin
2005-04-04  9:47 ` Alexey I. Froloff
2005-04-04  9:53   ` Ruslan Popov
2005-04-04  9:54 ` Led
2005-04-04 10:06   ` Ruslan Popov
2005-04-04 10:15     ` Alexey I. Froloff
2005-04-04 10:24       ` Ruslan Popov
2005-04-06 19:30       ` [sisyphus] " Arioch
2005-04-06 20:22         ` [sisyphus] Re: пережёвываем libtool Dmitry V. Levin
2005-04-08  8:01           ` Alexey Borovskoy
2005-04-08 12:25             ` Dmitry Kazimirov
2005-04-08 12:39               ` Alexey I. Froloff
2005-04-08 12:43                 ` Ivan Fedorov
2005-04-08 12:47                   ` Alexey I. Froloff
2005-04-08 13:26                     ` Dmitry Kazimirov
2005-04-08 13:32                       ` Alexey I. Froloff
2005-04-08 13:41                         ` Dmitry Kazimirov
2005-04-08 13:47                           ` Alexey I. Froloff
2005-04-08 13:58                             ` Dmitry Kazimirov
2005-04-08 14:01                               ` Eugene Ostapets
2005-04-08 14:30                                 ` Nick S. Grechukh
2005-04-08 14:41                                   ` Eugene Ostapets
2005-04-08 14:26                               ` Nick S. Grechukh
2005-04-10 13:37                           ` Vitaly Ostanin
2005-04-08 12:54                   ` Nick S. Grechukh
2005-04-08 13:20                   ` Dmitry Kazimirov
2005-04-08 13:13                 ` Dmitry Kazimirov
2005-04-08 13:21                   ` Dmitry V. Levin
2005-04-08 13:32                     ` Dmitry Kazimirov
2005-04-08 13:47                       ` Dmitry V. Levin
2005-04-11  5:53                         ` Dmitry Kazimirov [this message]
2005-04-13 16:08                           ` [sisyphus] [JT] rpm + libdb4.x + libdb4.x = rm -f *.la (was: пережёвываем libtool) Michael Shigorin
2005-04-09 17:29               ` [sisyphus] Re: пережёвываем libtool Alexey Tourbin
2005-04-09  8:44             ` Alexey Borovskoy
2005-04-04 14:33     ` [sisyphus] Рационализаторам посвящается Led
2005-04-05  6:31       ` Ruslan Popov
2005-04-05  6:41         ` Led
2005-04-05  6:51           ` Ruslan Popov
2005-04-05  7:09             ` Led
2005-04-05  7:19               ` Ruslan Popov
2005-04-05 11:13         ` Dmitry V. Levin
2005-04-05 11:39           ` Ruslan Popov
2005-04-05 11:43             ` Nick S. Grechukh
2005-04-05 11:47             ` Dmitry V. Levin
2005-04-05 11:56               ` Ivan Fedorov
2005-04-05 11:58                 ` Genix
2005-04-05 12:05                   ` Genix
2005-04-06 14:26                   ` [sisyphus] " Arioch
2005-04-07  5:34                     ` Genix
2005-04-07  6:37                       ` [sisyphus] даты в почтовом архиве (was: Рационализаторам посвящается...) Michael Shigorin
2005-04-05 13:31           ` [sisyphus] Рационализаторам посвящается Ruslan Popov
2005-04-05 13:38             ` Andrey Rahmatullin
2005-04-06  6:34               ` Ruslan Popov
2005-04-06  7:01                 ` Andrey Rahmatullin
2005-04-05 21:47             ` Dmitry V. Levin
2005-04-04 16:06     ` Andrey Rahmatullin
2005-04-04 10:20 ` [sisyphus] " Michael Shigorin
2005-04-04  9:49   ` Igor Zubkov
2005-04-04 11:43     ` Led
2005-04-04 13:33       ` Arioch
2005-04-04 14:36         ` Led
2005-04-04 20:17         ` Michael Shigorin
2005-04-04 22:03           ` Arioch
2005-04-05 10:15             ` Michael Shigorin
2005-04-05 10:23               ` Arioch
2005-04-05  6:20           ` Led
2005-04-05  6:21             ` Led
2005-04-05  6:44             ` Michael Shigorin
2005-04-04 10:26   ` Ruslan Popov
2005-04-04 10:26 ` [sisyphus] " Valery Pipin
2005-04-04 10:30   ` Guest007
2005-04-04 10:38     ` Led
2005-04-04 10:51       ` Guest007
2005-04-04 11:09         ` Valery Pipin
2005-04-04 11:20           ` Guest007
2005-04-04 11:04     ` Valery Pipin
2005-04-04 11:16       ` Guest007
2005-04-04 11:48         ` Valery Pipin
2005-04-04 12:12           ` Guest007
2005-04-05  3:28             ` Valery Pipin
2005-04-04 14:20           ` Sergey
2005-04-04 15:37             ` Valery Pipin
2005-04-04 11:52         ` Guest007

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='004f01c53e5a$c9819a60$c464a8c0@OLIVEMA' \
    --to=d.kazimirov@olivema.com \
    --cc=sisyphus@altlinux.ru \
    /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