Fedora linux forum

Форум русской поддержки ОС Fedora linux

 

#1 2010-11-22 13:55:06

WhiteWolf
New member
Зарегистрирован: 2010-11-22
Сообщений: 3

Сборка SRPM php-5.2.14

Всем доброго времени суток. Назрела необходимость собрать последнюю php-5.2, а засорять систему make install'ом не хочется.
Система — Fedora 14 x86_64
Я ранее пакеты не собирал, поэтому заранее извиняюсь за свою тупизну в данном вопросе.
Вообщем последовательность действий:

Код:

0. yum groupinstall "Development Tools"
yum install rpmdevtools
mkdir -p /root/rpmbuild/{RPMS,SRPMS,SPECS,SOURCES,BUILD}
echo '%_topdir /root/rpmbuild/' > ~/.rpmmacros
1. скачал и поставил php-5.2.13-1.fc11.src.rpm
2. заменил в каталоге SOURCES файл php-5.2.13.tar.bz2 на скачанный с php.net php-5.2.14.tar.bz2
3. в php.spec заменил "Version: 5.2.13" на "Version: 5.2.14"
4. поставил все devel-пакеты которые просил rpmbuild
5. rpmbuild -ba php.spec

В итоге получил ситуацию описанную тут

Сообственно вопрос: как правильно приминить указанный по ссылке патч к SRPM'у?
Заранее благодарен за любую помощь.

Отредактированно WhiteWolf (2010-11-22 13:55:51)

Неактивен

 

#2 2010-11-23 09:23:47

WhiteWolf
New member
Зарегистрирован: 2010-11-22
Сообщений: 3

Re: Сборка SRPM php-5.2.14

Разобрался. Собрал. Если кому интересно — чуть позже опишу как.

Неактивен

 

#3 2010-11-23 15:49:49

Mak_s
Member
Откуда: Чернигов
Зарегистрирован: 2009-12-06
Сообщений: 346

Re: Сборка SRPM php-5.2.14

Интересно. Описывайте.


Круче самовара только титан

Неактивен

 

#4 2010-11-24 12:26:20

WhiteWolf
New member
Зарегистрирован: 2010-11-22
Сообщений: 3

Re: Сборка SRPM php-5.2.14

1. Устанавливаем необходимы для сборки пакеты

Код:

yum groupinstall "Development Tools"
yum install rpmdevtools yum-utils
yum-builddep php

2. Создаем окружение для сборки RPM (в моём примере сборка происходит от рута, хотя из соображений безопасности лучще собирать от пользователя)

Код:

mkdir -p /root/rpmbuild/{RPMS,SRPMS,SPECS,SOURCES,BUILD}
echo '%_topdir /root/rpmbuild/' > /root/.rpmmacros

3. Скачиваем и устанавливаем SRPM php из Fedora 11 (последняя доступная версия — 5.2.13)

Код:

wget http://archives.fedoraproject.org/pub/archive/fedora/linux/updates/11/SRPMS/php-5.2.13-1.fc11.src.rpm
rpm -ihv php-5.2.13-1.fc11.src.rpm

4. Переходим в каталог /root/rpmbuild/SOURCES и скачиваем архив (обязательно tar.bz2) с исходниками php 5.2.14 с php.net

Код:

cd /root/rpmbuild/SOURCES
rm -f ./php-5.2.*.tar.bz2
wget http://www.php.net/distributions/php-5.2.14.tar.bz2

5. Для сборки пакетов в Fedora 14 нам понадобится дополнительный патч (проблема описана здесь)
Привиденный по ссылке патч необходимо подправить как описано ниже или взять уже исправленый патч. Заранее извиняюсь за возможную неправильную правку патча, до этого с патчами не работал.

Заменяем строки 4 и 53 на

Код:

 ## $Id: configure.in 301437 2010-07-21 10:32:07Z johannes $ -*- autoconf -*-

и

Код:

 dnl $Id: config.m4 291364 2009-11-27 23:41:13Z rasmus $ -*- autoconf -*-

соответсвенно.

6. Переходим в каталог /root/rpmbuild/SPECS и правим файл php.spec (или берем уже исправленный).

заменяем

Код:

Version: 5.2.13

на

Код:

Version: 5.2.14

Добавляем в секцию

Код:

# Build fixes
...
Patch8: php-5.2.14-m4-divert.patch

добавляем после

Код:

%prep
%setup -q
...
%patch8 -p1 -b .m4-divert

опционально можете что либо дописать в changelog

7. Приступаем к сборке
/root/rpmbuild/SPECS
rpmbuild -ba php.spec

если rpmbuild укажет на неудовлетворенные зависимости — доустановите указанные пакеты и заного запустите
rpmbuild -ba php.spec

8. Ждём окончания сборки и если всё прошло хорошо, то в каталоге /root/rpmbuild/RPMS/ будут лежать собранные RPM-пакеты php.

Теперь можно поставить нужные пакеты в систему. Лично я пошёл дальше и сделал свой репозиторий как описано здесь и привязал его к yum как описано здесь с той лишь разницей что в моём случае openssl, readline и mod_suphp ставяться из федоровского репозитария, т.е. в fedora.repo и в fedora-updates.repo добавляем только:

Код:

exclude=php-* php-common php-pdo

Теперь я могу удобно ставить и обновлять php-5.2 на моих серверах через yum smile

Неактивен