* [devel] новые gear + hasher @ 2008-04-29 10:13 Evgeny Sinelnikov 2008-04-29 10:17 ` Alexey Gladkov 2008-04-29 13:05 ` Dmitry V. Levin 0 siblings, 2 replies; 14+ messages in thread From: Evgeny Sinelnikov @ 2008-04-29 10:13 UTC (permalink / raw) To: ALT Linux Team development discussions Здравствуйте, наткнулся на проблему сборки kde-пакетов на новых gear-1.4.0-alt1 + hasher-1.3.6-alt1 из-под gear. Проблема состоит в том, что не все сборочные зависимости, в частности kde-common-devel, оказываются доступными при сборке из-под gear. Две следующие команды отрабатывают по разному: 1) Не работает так: gear --commit --hasher -- hsh "/home/sin/hasher-SS" --apt-config="/etc/apt/apt.conf.SS" --target=i586 --repo-bin="/home/sin/geet/repo/RPMS" --repo-src="/home/sin/geet/repo/SRPMS" --eager-clean .... <13>Apr 29 13:47:03 rpmi: cpp4.1-4.1.2-alt2 installed <13>Apr 29 13:47:05 rpmi: rpm-build-4.0.4-alt92 installed <86>Apr 29 13:47:08 groupadd[15121]: new group: name=caller, gid=500 <86>Apr 29 13:47:08 useradd[15122]: new user: name=caller, uid=500, gid=500, home=/, shell=/bin/bash <86>Apr 29 13:47:08 groupadd[15123]: new group: name=rooter, gid=501 <86>Apr 29 13:47:08 useradd[15124]: new user: name=rooter, uid=501, gid=501, home=/root, shell=/bin/bash <86>Apr 29 13:47:08 groupadd[15125]: new group: name=builder, gid=502 <86>Apr 29 13:47:08 useradd[15126]: new user: name=builder, uid=502, gid=502, home=/usr/src, shell=/bin/bash warning: Macro %_K_if_ver_lt not found error: line 9: Unknown tag: %_K_if_ver_lt 2.5.1 2.5 hsh-rebuild: pkg.tar: failed to fetch build dependencies. 2) Но работает так: hsh "/home/sin/hasher-SS" --apt-config="/etc/apt/apt.conf.SS" --target=i586 --repo-bin="/home/sin/geet/repo/RPMS" --repo-src="/home/sin/geet/repo/SRPMS" --eager-clean /home/sin/RPM/SRPMS/kdelibs-3.5.9-alt4.bld1.src.rpm -- Sin (Sinelnikov Evgeny) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 10:13 [devel] новые gear + hasher Evgeny Sinelnikov @ 2008-04-29 10:17 ` Alexey Gladkov 2008-04-29 10:22 ` Evgeny Sinelnikov 2008-04-29 13:05 ` Dmitry V. Levin 1 sibling, 1 reply; 14+ messages in thread From: Alexey Gladkov @ 2008-04-29 10:17 UTC (permalink / raw) To: ALT Linux Team development discussions Evgeny Sinelnikov wrote: > Две следующие команды отрабатывают по разному: Разумеется они работают по разному. > 1) Не работает так: > gear --commit --hasher -- hsh "/home/sin/hasher-SS" > --apt-config="/etc/apt/apt.conf.SS" --target=i586 > --repo-bin="/home/sin/geet/repo/RPMS" > --repo-src="/home/sin/geet/repo/SRPMS" --eager-clean Покажите BuildRequires* из пакета. -- Rgrds, legion ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 10:17 ` Alexey Gladkov @ 2008-04-29 10:22 ` Evgeny Sinelnikov 2008-04-29 10:31 ` Alexey Gladkov 0 siblings, 1 reply; 14+ messages in thread From: Evgeny Sinelnikov @ 2008-04-29 10:22 UTC (permalink / raw) To: ALT Linux Team development discussions [...] > > 1) Не работает так: > > gear --commit --hasher -- hsh "/home/sin/hasher-SS" > > --apt-config="/etc/apt/apt.conf.SS" --target=i586 > > --repo-bin="/home/sin/geet/repo/RPMS" > > --repo-src="/home/sin/geet/repo/SRPMS" --eager-clean > > > > Покажите BuildRequires* из пакета. > $ grep "BuildRequires.*" kdelibs.spec #BuildRequires: XFree86-devel XFree86-libs bzlib-devel doxygen fontconfig freetype2 gcc-c++ gcc-g77 glib2 kde-settings libalsa-devel libart_lgpl-devel libarts-devel libarts-qt-devel libcups-devel libjpeg-devel libldap-devel libpcre-devel libpcsclite-devel libpng-devel libqt3-devel libssl-devel libstdc++-devel libtiff-devel libutempter-devel libxml2-devel libxslt-devel menu-devel netpbm qt3-designer qt3-doc su xml-utils zlib-devel BuildRequires: xorg-x11-devel bzlib-devel doxygen BuildRequires: gcc-c++ libalsa-devel BuildRequires: libart_lgpl-devel libcups-devel BuildRequires: libjpeg-devel libldap-devel libpcre-devel BuildRequires: libpng-devel libqt3-devel libssl-devel libstdc++-devel libtiff-devel BuildRequires: libutempter-devel libxml2-devel libxslt-devel menu-devel netpbm libnetpbm-devel BuildRequires: qt3-doc xml-utils zlib-devel libkrb5-devel libidn-devel BuildRequires: libkrb5-devel libaspell-devel libacl-devel libattr-devel BuildRequires: libavahi-qt3-devel pkg-config liblua5-devel libjasper-devel BuildRequires: glibc-utils glibc-devel BuildRequires: openexr-devel BuildRequires: libqt3-devel-cxx = %__gcc_version_base BuildRequires: libqt3 >= 3.2.0 libqt3-devel >= 3.2.0 BuildRequires: flex su sudo kde-common-devel >= 0.2.0 BuildRequires: libarts-devel >= 1.5.8 libarts-qtmcop-devel >= 1.5.8 BuildRequires: djvu-common libgnutls-devel BuildRequires: openjade docbook-utils docbook-dtds #BuildRequires: libqt3-qsa > 3.0 libqt3-qsa-devel > 3.0 kde-common-devel присутствует -- Sin (Sinelnikov Evgeny) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 10:22 ` Evgeny Sinelnikov @ 2008-04-29 10:31 ` Alexey Gladkov 2008-04-29 10:48 ` Evgeny Sinelnikov 0 siblings, 1 reply; 14+ messages in thread From: Alexey Gladkov @ 2008-04-29 10:31 UTC (permalink / raw) To: ALT Linux Team development discussions Evgeny Sinelnikov wrote: > kde-common-devel присутствует Если этот пакет участвует в образовании имени/версии/релиза (поправьте меня если ошибаюсь), то такая зависимость должна быть объявлена как: BuildRequires(pre): kde-common-devel -- Rgrds, legion ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 10:31 ` Alexey Gladkov @ 2008-04-29 10:48 ` Evgeny Sinelnikov 2008-04-29 10:51 ` Evgeny Sinelnikov 0 siblings, 1 reply; 14+ messages in thread From: Evgeny Sinelnikov @ 2008-04-29 10:48 UTC (permalink / raw) To: ALT Linux Team development discussions 2008/4/29 Alexey Gladkov <legion@altlinux.ru>: > Evgeny Sinelnikov wrote: > > > kde-common-devel присутствует > > > > Если этот пакет участвует в образовании имени/версии/релиза (поправьте меня > если ошибаюсь), то такая зависимость должна быть объявлена как: > Я полагаю, что такая вот конструкция: %_K_if_ver_lt %glibc_core_ver 2.5 %define _keep_libtool_files 0 %endif не влияет на вычисление NVR, но тем не менее из-за неё возникает вопрос... > BuildRequires(pre): kde-common-devel > Да, так работает, но есть один момент... некоторые пакеты (например kdebase, если не ошибаюсь) тоже хотят пресловутый макрос, а вытягивают его через зависимость на kdelibs-devel -- Sin (Sinelnikov Evgeny) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 10:48 ` Evgeny Sinelnikov @ 2008-04-29 10:51 ` Evgeny Sinelnikov 0 siblings, 0 replies; 14+ messages in thread From: Evgeny Sinelnikov @ 2008-04-29 10:51 UTC (permalink / raw) To: ALT Linux Team development discussions [...] > > > BuildRequires(pre): kde-common-devel > > > > Да, так работает, Правда после этого возниакет ещё один хвост: ... <13>Apr 29 14:39:11 rpmi: kde-common-devel-4.0.3-alt1 installed error: line 44: Version required: Requires: libart_lgpl >= hsh-rebuild: pkg.tar: failed to fetch build dependencies. -- Sin (Sinelnikov Evgeny) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 10:13 [devel] новые gear + hasher Evgeny Sinelnikov 2008-04-29 10:17 ` Alexey Gladkov @ 2008-04-29 13:05 ` Dmitry V. Levin 2008-04-29 13:22 ` Alexey Gladkov 1 sibling, 1 reply; 14+ messages in thread From: Dmitry V. Levin @ 2008-04-29 13:05 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 804 bytes --] On Tue, Apr 29, 2008 at 02:13:29PM +0400, Evgeny Sinelnikov wrote: > Здравствуйте, > > наткнулся на проблему сборки kde-пакетов на новых gear-1.4.0-alt1 + > hasher-1.3.6-alt1 из-под gear. Проблема состоит в том, что не все > сборочные зависимости, в частности kde-common-devel, оказываются > доступными при сборке из-под gear. На всякий случай скажу, что новизна hasher/gear на это не влияет. Всё дело в том, что spec-файлы тех kde-пакетов, о которых идёт речь, с одной стороны, не обрабатываются с помощью команды rpmbuild -bs --nodeps --define '_allow_undefined_macros 1' если в сборочной среде не установлено каких-то kde-специфичных пакетов, и, с другой стороны, в BuildRequires(pre) не перечислены все эти kde-специфичные пакеты, необходимые для сборки srpm-пакета. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 13:05 ` Dmitry V. Levin @ 2008-04-29 13:22 ` Alexey Gladkov 2008-04-29 13:25 ` Dmitry V. Levin 0 siblings, 1 reply; 14+ messages in thread From: Alexey Gladkov @ 2008-04-29 13:22 UTC (permalink / raw) To: ALT Linux Team development discussions Dmitry V. Levin wrote: > Всё дело в том, что spec-файлы тех kde-пакетов, о которых идёт речь, > с одной стороны, не обрабатываются с помощью команды > rpmbuild -bs --nodeps --define '_allow_undefined_macros 1' > если в сборочной среде не установлено каких-то kde-специфичных пакетов, > и, с другой стороны, в BuildRequires(pre) не перечислены все эти > kde-специфичные пакеты, необходимые для сборки srpm-пакета. Кстати, требования BuildRequires(pre) у нас не описан ни в gear, ни в hasher. Или я что-то упустил? -- Rgrds, legion ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 13:22 ` Alexey Gladkov @ 2008-04-29 13:25 ` Dmitry V. Levin 2008-04-29 15:05 ` Evgeny Sinelnikov 0 siblings, 1 reply; 14+ messages in thread From: Dmitry V. Levin @ 2008-04-29 13:25 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 637 bytes --] On Tue, Apr 29, 2008 at 05:22:24PM +0400, Alexey Gladkov wrote: > Dmitry V. Levin wrote: > >Всё дело в том, что spec-файлы тех kde-пакетов, о которых идёт речь, > >с одной стороны, не обрабатываются с помощью команды > >rpmbuild -bs --nodeps --define '_allow_undefined_macros 1' > >если в сборочной среде не установлено каких-то kde-специфичных пакетов, > >и, с другой стороны, в BuildRequires(pre) не перечислены все эти > >kde-специфичные пакеты, необходимые для сборки srpm-пакета. > > Кстати, требования BuildRequires(pre) у нас не описан ни в gear, ни в > hasher. Или я что-то упустил? Надо проверить. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 13:25 ` Dmitry V. Levin @ 2008-04-29 15:05 ` Evgeny Sinelnikov 2008-04-29 19:17 ` Sergey Vlasov 0 siblings, 1 reply; 14+ messages in thread From: Evgeny Sinelnikov @ 2008-04-29 15:05 UTC (permalink / raw) To: ALT Linux Team development discussions 2008/4/29 Dmitry V. Levin <ldv@altlinux.org>: > On Tue, Apr 29, 2008 at 05:22:24PM +0400, Alexey Gladkov wrote: > > Dmitry V. Levin wrote: > > >Всё дело в том, что spec-файлы тех kde-пакетов, о которых идёт речь, > > >с одной стороны, не обрабатываются с помощью команды > > >rpmbuild -bs --nodeps --define '_allow_undefined_macros 1' > > >если в сборочной среде не установлено каких-то kde-специфичных пакетов, > > >и, с другой стороны, в BuildRequires(pre) не перечислены все эти > > >kde-специфичные пакеты, необходимые для сборки srpm-пакета. > > > > Кстати, требования BuildRequires(pre) у нас не описан ни в gear, ни в > > hasher. Или я что-то упустил? > > Надо проверить. > Непонятно теперь две вещи... 1) Я полагаю, что требование для BuildRequires(pre) теперь ужесточается... то есть нужно патчить спеки... Так? Тогда каков формальный критерий? Если в хешере оно всё равно собирается? не собирается ведь только в хешере, запущенном из-под gear... 2) Довольно непонятно, почему, при наличии нужных BuildRequires(pre), возникает это: ... <13>Apr 29 14:39:11 rpmi: kde-common-devel-4.0.3-alt1 installed error: line 44: Version required: Requires: libart_lgpl >= - Hide quoted text - hsh-rebuild: pkg.tar: failed to fetch build dependencies. На самом деле конструкция вида: Requires: libart_lgpl >= %{get_version libart_lgpl} на сборку влиять не должна... но на новых gear + hasher оно так себя ведёт... -- Sin (Sinelnikov Evgeny) ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 15:05 ` Evgeny Sinelnikov @ 2008-04-29 19:17 ` Sergey Vlasov 2008-04-29 19:21 ` Andrey Rahmatullin 2008-05-06 23:39 ` Dmitry V. Levin 0 siblings, 2 replies; 14+ messages in thread From: Sergey Vlasov @ 2008-04-29 19:17 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 3817 bytes --] On Tue, Apr 29, 2008 at 07:05:05PM +0400, Evgeny Sinelnikov wrote: > Непонятно теперь две вещи... > 1) Я полагаю, что требование для BuildRequires(pre) теперь > ужесточается... то есть нужно патчить спеки... Так? Тогда каков > формальный критерий? Если в хешере оно всё равно собирается? не > собирается ведь только в хешере, запущенном из-под gear... Разница в том, что в традиционном варианте hasher получает на вход готовый src.rpm, в котором уже присутствуют готовые сборочные зависимости, а при запуске через gear изначально доступны только файлы с исходниками и текст spec-файла. В последнем случае для получения сборочных зависимостей необходимо выполнить разбор spec-файла средствами rpmbuild, однако результат этой операции в общем случае зависит и от среды, в которой запускается rpmbuild - в частности, для раскрытия некоторых макросов требуется наличие в сборочной среде определённых пакетов, без которых при попытке разбора spec-файла возникают ошибки, препятствующие извлечению из него информации о зависимостях. Для разрыва этого цикла и создан механизм BuildRequires(pre) - такие зависимости извлекаются из spec-файла при помощи sed, и установки полученного из этих строк набора пакетов должно быть достаточно для выполнения команды вида: rpmbuild -bs --nodeps --define '_allow_undefined_macros 1' \ (определения _specdir и прочих каталогов) \ FILE.spec Формальный критерий необходимости BuildRequires(pre) - невозможность успешного выполнения указанной команды в сборочном чруте без предварительной установки туда некоторых пакетов, не входящих в минимальную сборочную систему. Обычно встречающиеся случаи, когда требуется BuildRequires(pre): 1) Использование макросов для формирования условных конструкций (например, упоминавшийся здесь макрос %_K_if_ver_gt - он раскрывается в %if, и при отсутствии определения макроса в сборочной среде встречающиеся далее %else или %endif рассматриваются как синтаксическая ошибка). 2) Использование макросов для подстановки версий в зависимости (типа Requires: PACKAGE >= %{get_version PACKAGE}) - обычно при отсутствии указанного пакета в сборочной среде такие макросы раскрываются в пустую строку, в результате формируется синтаксически неверный параметр тега Requires. В других случаях (если используется макрос без параметров, определённый в пакете, который оказался не установлен) в поле версии пакета попадает символ '%' из нераскрывшегося макроса, что rpmbuild также считает ошибкой. Если отсутствие определения макроса вызывает только предупреждения, но не приводит к ошибкам при разборе spec-файла для rpmbuild -bs, пакет, требуемый для такого макроса, не требуется указывать в BuildRequires(pre) - достаточно обычной сборочной зависимости. > 2) Довольно непонятно, почему, при наличии нужных BuildRequires(pre), > возникает это: > > ... > <13>Apr 29 14:39:11 rpmi: kde-common-devel-4.0.3-alt1 installed > error: line 44: Version required: Requires: libart_lgpl >= > - Hide quoted text - > hsh-rebuild: pkg.tar: failed to fetch build dependencies. > > На самом деле конструкция вида: > Requires: libart_lgpl >= %{get_version libart_lgpl} > на сборку влиять не должна... > но на новых gear + hasher оно так себя ведёт... Макрос %{get_version PACKAGE} может быть правильно раскрыт только при наличии в сборочной среде установленного пакета PACKAGE; если такой пакет не установлен, в результате раскрытия макроса получается пустая строка, которая при подстановке в spec-файл даёт синтаксическую ошибку. Из-за этого пакеты, упоминаемые в %{get_version ...} и других подобных макросах, необходимо также перечислять в BuildRequires(pre), чтобы к моменту разбора spec-файла средствами rpmbuild эти пакеты были уже установлены. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 19:17 ` Sergey Vlasov @ 2008-04-29 19:21 ` Andrey Rahmatullin 2008-05-06 23:44 ` Dmitry V. Levin 2008-05-06 23:39 ` Dmitry V. Levin 1 sibling, 1 reply; 14+ messages in thread From: Andrey Rahmatullin @ 2008-04-29 19:21 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 558 bytes --] On Tue, Apr 29, 2008 at 11:17:13PM +0400, Sergey Vlasov wrote: > Формальный критерий необходимости BuildRequires(pre) - невозможность > успешного выполнения указанной команды в сборочном чруте без > предварительной установки туда некоторых пакетов, не входящих в > минимальную сборочную систему. > > Обычно встречающиеся случаи, когда требуется BuildRequires(pre): Когда это появилось и где описано? -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(8): [...] любители ругаться не читают документацию :-)\r -- aen in devel@\r [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 19:21 ` Andrey Rahmatullin @ 2008-05-06 23:44 ` Dmitry V. Levin 0 siblings, 0 replies; 14+ messages in thread From: Dmitry V. Levin @ 2008-05-06 23:44 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 931 bytes --] On Wed, Apr 30, 2008 at 01:21:57AM +0600, Andrey Rahmatullin wrote: > On Tue, Apr 29, 2008 at 11:17:13PM +0400, Sergey Vlasov wrote: > > Формальный критерий необходимости BuildRequires(pre) - невозможность > > успешного выполнения указанной команды в сборочном чруте без > > предварительной установки туда некоторых пакетов, не входящих в > > минимальную сборочную систему. > > > > Обычно встречающиеся случаи, когда требуется BuildRequires(pre): > Когда это появилось и где описано? BuildRequires(pre) обрабатываются rpmbuild'ом наравне с обычными BuildRequires. Дополнительная смысловая нагрузка была возложена на BuildRequires(pre) для того, чтобы решить задачу сборки пакетов hasher'ом из gear-репозитория. Поддержка сборки пакетов hasher'ом из gear-репозитория впервые появилась 2 года назад в hasher-1.0.30-alt1. Самое полное описание, насколько мне известно, было в этом списке рассылки. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [devel] новые gear + hasher 2008-04-29 19:17 ` Sergey Vlasov 2008-04-29 19:21 ` Andrey Rahmatullin @ 2008-05-06 23:39 ` Dmitry V. Levin 1 sibling, 0 replies; 14+ messages in thread From: Dmitry V. Levin @ 2008-05-06 23:39 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 4995 bytes --] On Tue, Apr 29, 2008 at 11:17:13PM +0400, Sergey Vlasov wrote: > On Tue, Apr 29, 2008 at 07:05:05PM +0400, Evgeny Sinelnikov wrote: > > Непонятно теперь две вещи... > > 1) Я полагаю, что требование для BuildRequires(pre) теперь > > ужесточается... то есть нужно патчить спеки... Так? Тогда каков > > формальный критерий? Если в хешере оно всё равно собирается? не > > собирается ведь только в хешере, запущенном из-под gear... > > Разница в том, что в традиционном варианте hasher получает на вход > готовый src.rpm, в котором уже присутствуют готовые сборочные > зависимости, а при запуске через gear изначально доступны только файлы > с исходниками и текст spec-файла. В последнем случае для получения > сборочных зависимостей необходимо выполнить разбор spec-файла > средствами rpmbuild, однако результат этой операции в общем случае > зависит и от среды, в которой запускается rpmbuild - в частности, для > раскрытия некоторых макросов требуется наличие в сборочной среде > определённых пакетов, без которых при попытке разбора spec-файла > возникают ошибки, препятствующие извлечению из него информации о > зависимостях. Для разрыва этого цикла и создан механизм > BuildRequires(pre) - такие зависимости извлекаются из spec-файла при > помощи sed, и установки полученного из этих строк набора пакетов > должно быть достаточно для выполнения команды вида: > > rpmbuild -bs --nodeps --define '_allow_undefined_macros 1' \ > (определения _specdir и прочих каталогов) \ > FILE.spec > > Формальный критерий необходимости BuildRequires(pre) - невозможность > успешного выполнения указанной команды в сборочном чруте без > предварительной установки туда некоторых пакетов, не входящих в > минимальную сборочную систему. > > Обычно встречающиеся случаи, когда требуется BuildRequires(pre): > > 1) Использование макросов для формирования условных конструкций > (например, упоминавшийся здесь макрос %_K_if_ver_gt - он > раскрывается в %if, и при отсутствии определения макроса в > сборочной среде встречающиеся далее %else или %endif > рассматриваются как синтаксическая ошибка). > > 2) Использование макросов для подстановки версий в зависимости (типа > Requires: PACKAGE >= %{get_version PACKAGE}) - обычно при > отсутствии указанного пакета в сборочной среде такие макросы > раскрываются в пустую строку, в результате формируется > синтаксически неверный параметр тега Requires. В других случаях > (если используется макрос без параметров, определённый в пакете, > который оказался не установлен) в поле версии пакета попадает > символ '%' из нераскрывшегося макроса, что rpmbuild также считает > ошибкой. > > Если отсутствие определения макроса вызывает только предупреждения, но > не приводит к ошибкам при разборе spec-файла для rpmbuild -bs, пакет, > требуемый для такого макроса, не требуется указывать в > BuildRequires(pre) - достаточно обычной сборочной зависимости. Ответ получился настолько развёрнутым, что просится в документацию. Поэтому позволю себе его дополнить. Действительно, при сборке srpm-пакетов вычисление и установка в чрут сборочных зависимостей происходит ровно 1 раз, поскольку все сборочные зависимости явно указаны в заголовке srpm-пакета. При сборке из gear вычисление в чруте и установку сборочных зависимостей в чрут приходится выполнять в 3 этапа: 1. извлечение зависимостей вида BuildRequires(pre) из spec-файла sed'ом и их установка; 2. извлечение сборочных зависимостей из результата препроцессинга spec-файла (rpmbuild -bE) и их установка; 3. создание srpm-пакета (rpmbuild -bs) и установка сборочных зависимостей согласно заголовку srpm-пакета. Таким образом, в BuildRequires(pre) необходимо указывать только такие основополагающие сборочные зависимости, которые необходимы для корректного вычисления сборочных зависимостей посредством rpmbuild -bE и rpmbuild -bs. > > 2) Довольно непонятно, почему, при наличии нужных BuildRequires(pre), > > возникает это: > > > > ... > > <13>Apr 29 14:39:11 rpmi: kde-common-devel-4.0.3-alt1 installed > > error: line 44: Version required: Requires: libart_lgpl >= > > - Hide quoted text - > > hsh-rebuild: pkg.tar: failed to fetch build dependencies. > > > > На самом деле конструкция вида: > > Requires: libart_lgpl >= %{get_version libart_lgpl} > > на сборку влиять не должна... > > но на новых gear + hasher оно так себя ведёт... > > Макрос %{get_version PACKAGE} может быть правильно раскрыт только при > наличии в сборочной среде установленного пакета PACKAGE; если такой > пакет не установлен, в результате раскрытия макроса получается пустая > строка, которая при подстановке в spec-файл даёт синтаксическую > ошибку. Из-за этого пакеты, упоминаемые в %{get_version ...} и других > подобных макросах, необходимо также перечислять в BuildRequires(pre), > чтобы к моменту разбора spec-файла средствами rpmbuild эти пакеты были > уже установлены. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2008-05-06 23:44 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-04-29 10:13 [devel] новые gear + hasher Evgeny Sinelnikov 2008-04-29 10:17 ` Alexey Gladkov 2008-04-29 10:22 ` Evgeny Sinelnikov 2008-04-29 10:31 ` Alexey Gladkov 2008-04-29 10:48 ` Evgeny Sinelnikov 2008-04-29 10:51 ` Evgeny Sinelnikov 2008-04-29 13:05 ` Dmitry V. Levin 2008-04-29 13:22 ` Alexey Gladkov 2008-04-29 13:25 ` Dmitry V. Levin 2008-04-29 15:05 ` Evgeny Sinelnikov 2008-04-29 19:17 ` Sergey Vlasov 2008-04-29 19:21 ` Andrey Rahmatullin 2008-05-06 23:44 ` Dmitry V. Levin 2008-05-06 23:39 ` Dmitry V. Levin
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/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 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git