LINUX.ORG.RU

История изменений

Исправление sunny1983, (текущая версия) :

Перешёл от теории к практике.
Так, теперь понятно почему нужно создавать каталог rpmbuild именно в домашнем каталоге пользователя - потому что именно туда пакеты src.rpm и устанавливаются.
Сейчас я попытаюсь написать spec-файл для iptables-1.6.0, основываясь на spec-файл для iptables-1.4.21. Что-то в исходном spec-файле мне непонятно, из-за чего у меня появляется желание упростить код, выкинув из него то, что мне кажется лишним. Собственно можно ли так... ладно, сейчас опишу обо что именно я запнулся.
Макрос %setup я заменяю тем, что он делает, то есть секция %prep у меня такая:

%prep
cd ~/rpmbuild/BUILD
rm -rf %{name}-%{version}
tar --extract --file=~/rpmbuild/SOURCES/%{name}-%{version}.tar.bz2
if [ $? -ne 0 ]; then
  exit $?
fi
cd %{name}-%{version}
chown -R root.root .
chmod -R a+rX,g-w,o-w .
Здесь и здесь нашёл некую инфу по переменным и макросам, но не всю. Так нашёл, что ~/rpmbuild/BUILD я бы мог заменить переменной %{_builddir}, а вот какой переменной можно заменить каталог ~/rpmbuild/SOURCES?
Ещё я выкидываю из кода все патчи, потому что они имеют отношение к версии 1.4.21, а я собираю 1.6.0.
Дальше идут самые ответственные секции %build и %install, где в исходном spec-файле присутствуют непонятные переменные, например строка:
make %{?_smp_mflags}
Пока вопросов хватит. Но это только начало.
Да, очень прошу, не отсылайте в гугл, лучше поделитесь опытом, он бесценен.

Исходная версия sunny1983, :

Перешёл от теории к практике.
Так, теперь понятно почему нужно создавать каталог rpmbuild именно в домашнем каталоге пользователя - потому что именно туда пакеты src.rpm и устанавливаются.
Сейчас я попытаюсь написать spec-файл для iptables-1.6.0, основываясь на spec-файл для iptables-1.4.21. Что-то в исходном spec-файле мне непонятно, из-за чего у меня появляется желание упростить код, выкинув из него то, что мне кажется лишним. Собственно можно ли так... ладно, сейчас опишу обо что именно я запнулся.
Макрос %setup я заменяю тем, что он делает, то есть секция %prep у меня такая:

%prep
cd ~/rpmbuild/BUILD
rm -rf %{name}-%{version}
tar --extract --file=~/rpmbuild/SOURCES/%{name}-%{version}.tar.bz2
if [ $? -ne 0 ]; then
  exit $?
fi
cd %{name}-%{version}
chown -R root.root .
chmod -R a+rX,g-w,o-w .
Здесь и здесь нашёл некую инфу по переменным и макросам, но не всю. Так нашёл, что ~/rpmbuild/BUILD я бы мог заменить переменной %{_builddir}, а вот какой переменной можно заменить каталог ~/rpmbuild/SOURCES?
Ещё я выкидываю из кода все патчи, потому что они имеют отношение к версии 1.4.21, а я собираю 1.6.0.
Дальше идут самые ответственные секции %build и %install, где в исходном spec-файле присутствуют непонятные переменные, например строка:
make %{?_smp_mflags}
Пока вопросов хватит. Но это только начало.