BuildEnvVars

Материал из ALT Linux Wiki

Переменные окружения сборки

При написании спека, вместо указания конкретных каталогов можно указывать их переменные.

Они представлены в таблице ниже.

Заголовок
Переменная Использование в спеке Описание Стандартное значение
RPM_SOURCE_DIR $RPM_SOURCE_DIR Эта переменная окружения получает свое значение из записи файла rpmrc sourcedir, который в свою очередь может получить часть своего значения из записи topdir. Это путь RPM будет добавлен к файлу, указанному в исходный тег. /usr/src/RPM/SOURCES
RPM_BUILD_DIR $RPM_BUILD_DIR Каталог сборки RPM, куда будет распакована большая часть программного обеспечения и собрана /usr/src/RPM/BUILD
RPM_BUILD_ROOT $RPM_BUILD_ROOT Эта переменная окружения используется для хранения «корня сборки», в которую "встраивается" вновь собранное установленное программное обеспечение.
Если его значение было изменено, его можно посмотреть в $ cat /usr/lib/rpm/macros
/usr/src/tmp/%name-buildroot

Как использовать эти переменные в разделе %install

Т.к. в разделе %install уже используются свои переменные типа %buildroot, %datadir и пр. данные переменные будут вызывать конфликты.

Чтобы их использовать, их нужно экранировать.

Например, у нас в спеке:

Source1: icons.tar.gz
Source2: mypalm.desktop

У нас раздел install:

%install

Мы хотим распаковать архив, указываем не просто %SOURCE1, а в фигурных скобках:

tar -xf %{SOURCE1}

Мы хотим расположить desktop-файл в applications, указываем не %SOURCE2, а тоже экранируем:

install -m 0755 %{SOURCE2} %buildroot%_datadir/applications/mypalm.desktop

Располагаем значки в нужном месте:

install -m 0644 %{RPM_BUILD_DIR}/icons/*/*.png %buildroot%_datadir/icons/hicolor/