From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 8 Jan 2004 11:31:03 +0300 From: Stanislav Ievlev To: ALT Devel discussion list Subject: Re: [devel] =?koi8-r?B?/tTPIM3OxSDOxSDO?= =?koi8-r?B?0sHXydTT0SDX?= alternatives Message-ID: <20040108083103.GG21302@basalt.office.altlinux.org> References: <20040107174903.GA15291@mhz.mikhail.zabaluev.name> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20040107174903.GA15291@mhz.mikhail.zabaluev.name> X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.3 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 08:31:05 -0000 Archived-At: List-Archive: List-Post: On Wed, Jan 07, 2004 at 08:49:03PM +0300, Mikhail Zabaluev wrote: > Доброго времени суток. > > Недавно в некоей дискуссии мне был задан вопрос: чем мне не > нравится alternatives в его существующем виде. Я несколько раз > брался размышлять на эту тему, прикидывал, что там можно, на > мой взгляд улучшить. Вдобавок, жизнь заставила залезть внутрь > программы с отладчиком. Попытаюсь здесь изложить то, что я надумал > в этой связи. Спасибо. Посмотрю и подумаю на досуге. Некоторые вещи учту в новой версии которая ориентировочно в феврале/марте появится в Дедале. > > Без сомнения, новая утилита решает две проблемы, присущие > update-alternatives: практическую трудность восстановления > сломанной конфигурации и необходимость поддерживать > уникальные имена для конфигурируемых ссылок. Однако в предложенной > реализации обнаруживаются свои проблемы. > > Хранить конфигурацию в XML-файлах -- неплохая идея сама по себе, > но надо иметь в виду, что имена файлов в POSIX и последовательности > символов в языке разметки XML -- вовсе не одно и то же. Чтобы ощутить > разницу, попробуйте создать альтернативы на ссылку, в имени которой > есть не-ASCII символы (допустим, если кодировка имен в файловой > системе KOI8-R). Libxml при разборе XML-файла конвертируёт > текст в UTF-8 независимо от исходной кодировки документа. > Можно представить, что имя файла побайтно корректно именно в исходной > кодировке документа, но это большая натяжка на семантику XML, > официально никак не поддерживается, да и с преобразованием обратно > в исходную кодировку будет геморрой. Я вижу надёжное, пусть и не очень > грациозное, решение -- кодировать в XML-конфигурации > имена файлов так же, как они кодируются в URL. Другое, менее надежное > решение -- иметь возможность указывать кодировку для имён файлов (не > как кодировку документа, а в виде специального атрибута в > конфигурации). Между прочим, эта проблема затрагивает все приложения, которые > представляют имена файлов в XML. > > По поводу реализации у меня тоже есть возражения. > Я уже говорил однажды, что схема кодирования имён ссылок имеет > недостатки. Во-первых, она без хорошего повода сужает набор символов, > которые можно использовать в именах, из-за того, что '/' > конвертируется в '|', а '|' не конвертируется ни во что. Несерьёзно. > Впрочем, это еще более академическая проблема, чем не-ASCII > символы в именах. Есть ещё неиспользованный потенциал для > более эффективного использования файловой системы и отсюда, > лучшей масштабируемости, если не изобретать никакого "манглинга", > а просто создавать в ссылочном каталоге структуру каталогов, > отображающую реальные имена файлов. Это потребует несколько > более трудоёмкой поддержки, зато позволит лучшим образом > ограничить неавторизованное получение информации о содержимом > каталогов (сейчас /etc/alternatives открыта всем даже > на чтение, но даже если выставить права 751, останется > возможность исследования по угаданным именам). > > Во время отладки заглянул в код разбора конфигурации. Недоумеваю. За > использованием разных вкусных плюшек из C++ скрывается то, что > называется wall-follower approach: все конфигурационные файлы > засасываются в память программы. Это обрамляется в один большой > XML-документ, который невозможно получить в физическом представлении, > не заглянув в код, кажется, библиотеки libing. Т.е. фактически > отдельные конфигурационные файлы могут быть даже не > well-formed XML-документами. После этого всё это разбирается в развесистое > дерево XML в памяти, из которого, насколько я понял, нужные вещи > вытягиваются с помощью XPath. У меня, конечно, Pentium 4 и достаточно > памяти, чтобы это работало пристойно. Но осадок остался. > > -- > Stay tuned, > MhZ JID: mhz@altlinux.org > ___________ > The longest part of the journey is said to be the passing of the gate. > -- Marcus Terentius Varro > _______________________________________________ > Devel mailing list > Devel@altlinux.ru > http://altlinux.ru/mailman/listinfo/devel