13 ноября 2015 г.

Сборка программ и библиотек по рецептам из репозитория HaikuPorts

HaikuPorts

HaikuPorts это централизованная коллекция рецептов сборки программного обеспечения портированного на платформу Haiku. Основной целью ресурса https://github.com/haikuports является сотрудничество по портированию программ и библиотек для операционной системы Haiku.

Инструмент HaikuPorter https://github.com/haikuports/haikuporter написан на Python и предназначен для получения, исправления (применение патчей), сборки исходного кода и упаковки в пакет. Его можно сравнить с Gentoo Portage.

Установка и настройка HaikuPorter


Устанавливаем HaikuPorter из репозитория с помощью менеджера пакетов HaikuDepot.

Установка пакета HaikuPorter с помощью менеджера пакетов HaikuDepot
Установка пакета HaikuPorter с помощью менеджера пакетов HaikuDepot
Есть другой способ установки пакетов из репозитория. Если известно точное название пакета, то его можно установить, набрав в терминале команду:
pkgman install haikuporter

Или скачать пакет из репозитория через браузер по ссылке https://depot.haiku-os.org/haikuporter и установить его вручную.

Подробное описание настройки и использования HaikuPorter описано здесь: https://github.com/haikuports/haikuports/wiki (на английском языке).

После установки пакета HaikuPorter переходим к его настройке в несколько этапов:
  1. Смотрим пример файла конфигурации, который лежит здесь:
  2. /boot/system/settings/haikuports.conf
  3. Создаём файл конфигурации в директории настроек пользователя:
  4. /boot/home/config/settings/haikuports.conf
  5. Заполняем созданный файл конфигурации следующим содержанием:

# HaikuPorts configuration

TREE_PATH="/boot/home/haikuports"
PACKAGER="My Name <mymail@mydomain.org>"

ALLOW_UNTESTED="yes"
ALLOW_UNSAFE_SOURCES="yes"

TARGET_ARCHITECTURE="x86_gcc2"
SECONDARY_TARGET_ARCHITECTURES="x86"


Описание значений параметров в файле конфигурации:
  • TREE_PATH - путь к директории локальной копии репозитория с рецептами для HaikuPorter.
  • PACKAGER - ваше имя (ник) и адрес электронной почты. Для подписи собранных пакетов.
  • ALLOW_UNTESTED - разрешить сборку рецептов, непроверенных на данной архитектуре Haiku.
  • ALLOW_UNSAFE_SOURCES - разрешить сборку из небезопасных источников (скачиваемых не по https).
  • TARGET_ARCHITECTURE - основная архитектура для сборки пакетов.
  • SECONDARY_TARGET_ARCHITECTURES - вторичная поддерживаемая архитектура для сборки пакетов. К примеру сборка x86 (gcc4) пакетов для гибридного дистрибутива Haiku x86_gcc2.

Продолжаем настройку HaikuPorter:
  1. В директории настроек пользователя /boot/home/config/settings/ (тоже самое ~/config/settings/) создаём файл с именем: profile
  2. Заполняем созданный файл профиля следующим содержанием:

function inpatches() { grep -rni $1 /boot/home/haikuports/*/*/patches/*; }
function inrecipe() { grep -rni $1 /boot/home/haikuports/*/*/*.recipe; }
alias hp="haikuporter -S -j1 --get-dependencies --no-source-packages"


Описание значений параметров в файле профиля:
  • hp - сокращение команды haikuporter с уже указанными параметрами.
  • inrecipe - команда поиска текста в рецептах.
  • inpatches - команда поиска текста в патчах к рецептам.
  • -j1 - компиляция в несколько потоков (цифрой указывается количество задействованных ядер для многоядерных процессоров).
  • --get-dependencies - автоматическая установка зависимостей пакета (если они присутствуют в репозитории).
  • --no-source-packages - не создавать пакеты с исходным кодом.

Теперь HaikuPorter настроен и готов к работе!
Чтобы собрать пакет по рецепту, нам нужно создать локальную копию репозитория рецептов.
Для этого в терминале вводим команду:
git clone https://github.com/haikuports/haikuports.git

После завершения копирования репозитория, в директории пользователя будет создана папка haikuports со всеми доступными на данный момент рецептами.
Чтобы в дальнейшем обновлять вашу локальную копию репозитория рецептов, достаточно вводить в терминале команду:
haikuporter -g

Чтобы произвести первичную инициализацию локального репозитория рецептов, нужно ввести в терминале команду:
haikuporter --list

Эта команда отобразит список всех рецептов (при первом запуске это займёт продолжительное время).

Сборка пакета по рецепту


Соберём пакет (в Haiku программы и библиотеки упакованы в пакеты формата HPKG). Чтобы ознакомиться с форматом пакетов, можете прочитать эту статью: Создание установочного пакета в формате HPKG.

Для примера соберём пакет с программой (репликантом) отображающей погоду.
Вводим в терминале команду:
hp weather

Компиляция исходного кода и сборка пакета должна закончится примерно так, как на этом скриншоте:

Компиляция и сборка пакета с помощью HaikuPorter
Компиляция и сборка пакета с помощью HaikuPorter
Собранный пакет находится в директории репозитория рецептов в папке packages и готов к установке в систему.

Расположение пакета, после сборки
Расположение пакета, после сборки
Таким образом собираете любой доступный в репозитории рецепт, набирая в терминале команду:
hp название_рецепта

Чтобы увидеть названия всех рецептов, введите в терминале команду:
haikuporter --list

Или просто осуществляя навигацию по разделам репозитория.

Примечание:
  • hp название_рецепта - производит компиляцию и сборку пакета для архитектуры x86_gcc2
  • hp название_рецепта_x86 - производит компиляцию и сборку пакета для архитектуры x86 (с использованием gcc4)
Некоторые рецепты собираются только для архитектуры x86_gcc2 или только для x86, или для обоих архитектур. Это зависит от требований к версии компилятора и версий используемых библиотек.

Чтобы очистить директорию с рецептом после сборки пакета (особенно неуспешной), введите в терминале команду:
haikuporter -c название_рецепта

Для поиска текста во всех рецептах введите в терминале команду:
inrecipe искомый_тект

Для поиска текста во всех патчах к рецептам введите в терминале команду:
inpatches искомый_текст

На этом краткая инструкция по основным возможностям HaikuPorter закончена. Удачных вам сборок!

Комментариев нет:

Отправить комментарий