From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: devel@lists.altlinux.org References: <20080909202344.GW6477@altlinux.org> From: Sergey Bolshakov Date: Wed, 10 Sep 2008 01:37:33 +0400 In-Reply-To: <20080909202344.GW6477@altlinux.org> (Alexey Tourbin's message of "Wed, 10 Sep 2008 00:23:45 +0400") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.5-b28 (linux) MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Subject: Re: [devel] gtk-update-icon-cache filetrigger (+ libtcl deficiency) X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.10b3 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Sep 2008 21:37:34 -0000 Archived-At: List-Archive: List-Post: >>>>> "Alexey" == Alexey Tourbin writes: [skipped] > * * * > Хотя принцип правильной группировки файлов не всегда можно толковать > однозначно, на практике он имеет большое значение. Приведу пример > пакета, в котором принцип правильной группировки файлов между пакетами > явно нарушен -- это пакет libtcl. Tcl может использоваться как embedded > language, т.е. приложения пишут обёртку для libtcl и дальше Tcl как язык > может использоваться внутри приложения. Такие приложения получают > зависимость на libtcl soname. > Напишем простейшую программу, которая встраивает libtcl. [skipped] > Библиотека libtcl имеет "непрозрачную" зависимость на init.tcl, этот > файл загружается при инициализации библиотеки. Без init.tcl приложения, > слинованные c libtcl, обламываются; а файл init.tcl имеет смысл только > в связи с наличием конкретной библиотеки libtcl. Это достаточное > основание для того, чтобы применить принцип правильной группировки > файлов между пакетами -- файлы libtcl*so* и init.tcl должны быть > запакованы в один и тот же пакет. На практике возможны два решения: > либо перенести init.tcl (и, возможно, ещё некоторые файлы) из пакета tcl > в пакет libtcl, либо полностью внести libtcl в tcl (то есть исключить > отдельный пакет с библиотекой, если библиотека "сама по себе" > не работает). библиотека "сама по себе" работает, если приложение, в которое встроена libtcl, потрудится установить в своё окружение переменную TCL_LIBRARY, указывающую на специфический init.tcl -- например. Есть и другие способы, желающие да насладятся разбором исходников tcl, в районе generic/tclInterp.c и unix/tclUnix.Init.c Кроме того, я был бы признателен, если бы ты избирал для иллюстрации своих, безусловно, интересных размышлений более подходящие примеры. [rest skipped] --