сборка php-5.5
сборка php-5.5
Добрый день, господа.
Попытался собрать на abf php-5.5, не вышло
https://abf.io/build_lists/2101535
Можете присоветовать почему? Из логов совсем непонятно.
Попытался собрать на abf php-5.5, не вышло
https://abf.io/build_lists/2101535
Можете присоветовать почему? Из логов совсем непонятно.
Re: сборка php-5.5
Причем локально из сорцов собирается номально.
Re: сборка php-5.5
Да не, из логов понятно, что не ставится зависимость сборки: php-5.5.15-1.src (due to unsatisfied sasl-devel)clicman писал(а):Добрый день, господа.
Попытался собрать на abf php-5.5, не вышло
https://abf.io/build_lists/2101535
Можете присоветовать почему? Из логов совсем непонятно.
Возможно, замена в спеке sasl-devel на libsasl-devel поможет. Сейчас нет под рукой Марафона, чтобы посмотреть, какие там Provides у пакета libsasl2-devel/lib64sasl2-devel.
Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586
Re: сборка php-5.5
Точно! Спасибо. Не по глазам было:) В понедельник продолжу попытки.
Re: сборка php-5.5
Хмм.. конечно php я собрал, но чтобы сборка заработала пришлось странные вещи делать.
Например:
BuildRequires: lib64enchant-devel
Как итог - сборка работает только под x64
При этом, если взглянуть на спеку php из официального репозитория, там в BuildRequires архитектура не фигурирует.
Что я делаю не так?
Например:
BuildRequires: lib64enchant-devel
Как итог - сборка работает только под x64
При этом, если взглянуть на спеку php из официального репозитория, там в BuildRequires архитектура не фигурирует.
Что я делаю не так?
Re: сборка php-5.5
Сейчас объясню подробно. В BuildRequires указываются зависимости сборки, которые вычисляются на основе данных Provides других пакетов. Имя пакета входит в Provides, но также туда входят и другие значения, часть из которых прописывается вручную, а часть генерируется автоматически (алгоритмы там разные и в такие детали сейчас углубляться не будем).clicman писал(а):Хмм.. конечно php я собрал, но чтобы сборка заработала пришлось странные вещи делать.
Например:
BuildRequires: lib64enchant-devel
Как итог - сборка работает только под x64
При этом, если взглянуть на спеку php из официального репозитория, там в BuildRequires архитектура не фигурирует.
Что я делаю не так?
Вот вывод списка Provides для 32-битного пакета libenchant-devel из платформы 2012.1:
Код: Выделить всё
$ rpm -q libenchant-devel --provides
devel(libenchant)
enchant-devel = 1.6.0-5
pkgconfig(enchant) = 1.6.0
libenchant-devel = 1.6.0-5:2012.1
Код: Выделить всё
$ rpm -q lib64enchant --provides
devel(libenchant(64bit))
enchant-devel = 1.6.0-5
pkgconfig(enchant) = 1.6.0
lib64enchant-devel = 1.6.0-5:2012.1
2. Вторым в списке идёт прописанная вручную архитектурно-независимая запись. В спеках это выглядит так:
Provides: %{name}-devel = %{EVRD}
или так:
Provides: %{name}-devel = %{version}-%{release}
%{EVRD} - это макрос, включающий кроме Version и Release ещё значения Epoch и Distepoch. Для некоторых пакетов в Provides указывают ещё lib%{name}-devel (хотя лучше так не делать, т.к. это только вносит путаницу, но такое встречается).
3. Далее идёт автоматически сгенерированная архитектурно-независимая запись. pkgconfig(enchant) генерируется на основе имени файла в пакете: /usr/lib/pkgconfig/enchant.pc (/usr/lib64/pkgconfig/enchant.pc для 64-битного пакета).
Именно этот формат наиболее предпочтительно использовать в BuildRequires. Если же такой Provides у пакета отсутствует (*.pc файлы есть не во всех пакетах), то использовать значение из п.2. В целом логика такая: архитектурно-независимые предпочтительнее архитектурно-зависимых, сгенерированные автоматически предпочтительнее прописанных вручную.
4. И последним идёт автоматически сгенерированная архитектурно-зависимая запись. Она формируется на основе имени пакета.
Если внимательно посмотреть на список, то видно, что у некоторых Provides отсутствует информация о версии и релизе, а у некоторых о релизе. Более того, значение версии pkgconfig(...) записей берётся из содержимого *.pc файла, так что в некоторых случаях может отличаться от тэга Version, указанного в спеке. Хотя обычно это баг, а не фича. Ну да ладно, теории и так уже достаточно, дальше ещё много можно о нюансах написать, но это уже перебор для форума будет.
В данном конкретном случае с lib64enchant-devel в Марафоне рекомендую заменить BuildRequires на pkgconfig(enchant).
P.S. Для того, чтобы посмотреть имя пакета по Provides, есть команда: urpmq --whatprovides (например, urpmq --whatprovides "pkgconfig(enchant)").
Intel Core i7-6700 / 8 Gb RAM / GeForce GTX 750 Ti / Rosa 2016.1 i586
Re: сборка php-5.5
Вот теперь понимание пришло. Успешно сборка прошла под обе архитектуры. Спасибо!
Re: сборка php-5.5
Собственно ссылки на репозиторий c php-5.15, php-pear, php-timezonedb и php-mongo
Код: Выделить всё
#32bit#
urpmi.addmedia php-backports http://abf-downloads.rosalinux.ru/vsidochenko_personal/repository/rosa2012lts/i586/php/release
#64bit#
urpmi.addmedia php-backports http://abf-downloads.rosalinux.ru/vsidochenko_personal/repository/rosa2012lts/x86_64/php/release
Re: сборка php-5.5
И последним идёт автоматически сгенерированная архитектурно-зависимая запись. Она формируется на основе имени пакета.