From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 9 Jul 2003 19:48:26 +0300 From: Alexander Bokovoy To: devel@altlinux.ru Message-ID: <20030709164826.GA28304@sam-solutions.net> Mail-Followup-To: devel@altlinux.ru Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [devel] W: build policy enhancement for packages using iconv() X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.2 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: Wed, 09 Jul 2003 16:47:44 -0000 Archived-At: List-Archive: List-Post: Greetings! Как обнаружилось нашим QA, вероятность присутствия пакета glibc-gconv-modules в системе зависит только от желающих этот функционал пакетов, коих оказалось очень мало. На сегодня в Сизифе glibc-gconv-modules хотят только два пакета: iconv и glibc. Первый -- утилита командной строки, необязанная стоять в системе. Второй -- пакет-обертка над базовым функционалом Glibc, опять же, требуемый только glibc-devel. Чем это плохо? Дело в том, что пакет glibc-gconv-modules предоставляет динамические модули для iconv(3) в glibc. Отсутствие этого пакета ведет к невозможности эксплуатации системного iconv() (наличие установленных переменных окружения, переопределяющих директорию для поиска этих динамических модулей, пренебрежимо мало) во всех приложениях, его использующих. А это, например, все пакеты Gnome, Samba3, Netatalk, KDE. Список можно продолжать. Думаю, что в ALT Packaging Policy следует добавить следующее правило: ------------------------------------------------------------------------- Если упаковываемое приложение непосредственно вызывает системную функцию iconv(3), то пакет обязан требовать присутствие пакета glibc-gconv-modules: либо через Requires: glibc-gconv-modules, либо через PreReq: glibc-gconv-modules, в случае, если предполагается запуск приложения во время выполнения скриптов установки (%prein/%postin). В случае, если iconv(3) вызывается опосредованно, через некоторую библиотеку (например, libglib2), то достаточно такую зависимость установить только в используемой библиотеке. Помните, что упаковщик должен следовать "золотому правилу": минимум предположений о среде, в которой будет использоваться пакет, максимум фактов зависимостей задокументированных в самом пакете. Существует более одного способа получить рабочую систему и единственное требование к ней со стороны упаковщика должно быть удовлетворение всех описанных в пакете зависимостей. ------------------------------------------------------------------------- -- / Alexander Bokovoy --- Here comes the orator, with his flood of words and his drop of reason.