Search
Write a publication
Pull to refresh

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

HaikuPorts

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

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

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


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

image
Установка пакета HaikuPorter с помощью менеджера пакетов HaikuDepot

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

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

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

После установки пакета HaikuPorter переходим к его настройке в несколько этапов:

  1. Смотрим пример файла конфигурации, который лежит здесь:
  2. Создаём файл конфигурации в директории настроек пользователя:
  3. Заполняем созданный файл конфигурации следующим содержанием:

# 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 github.com/haikuports/haikuports.git.

После завершения копирования репозитория, в директории пользователя будет создана папка haikuports со всеми доступными на данный момент рецептами.

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

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

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

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


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

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

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

image
Компиляция и сборка пакета с помощью HaikuPorter

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

image
Расположение пакета, после сборки

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

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

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

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

Некоторые рецепты собираются только для архитектуры x86_gcc2 или только для x86, или для обоих архитектур. Это зависит от требований к версии компилятора и версий используемых библиотек.

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

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

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

На этом краткая инструкция по основным возможностям HaikuPorter закончена. Удачных вам сборок!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.