Руководство FreeBSD по созданию портов

The FreeBSD Documentation Project


Содержание
1. Введение
2. Как самому сделать порт
3. Быстрое портирование
3.1. Создание файла Makefile
3.2. Создание информационных файлов
3.2.1. pkg-descr
3.2.2. pkg-plist
3.3. Создание файла с контрольной суммой
3.4. Тестирование порта
3.5. Проверка вашего порта утилитой portlint
3.6. Посылка порта
4. Медленное портирование
4.1. Как всё это работает
4.2. Получение исходного кода
4.3. Модификация порта
4.4. Создание патчей
4.5. Конфигурирование
4.6. Обработка пользовательского ввода
5. Настройка файла Makefile
5.1. Оригинальные исходный код
5.2. Именование
5.2.1. PORTNAME и PORTVERSION
5.2.2. PORTREVISION и PORTEPOCH
5.2.3. Переменные PKGNAMEPREFIX и PKGNAMESUFFIX
5.2.4. Соглашения по именованию пакетов
5.3. Разделение по категориям
5.3.1. CATEGORIES
5.3.2. Текущий список категорий
5.3.3. Выбор правильной категории
5.4. Дистрибутивные файлы
5.4.1. DISTNAME
5.4.2. MASTER_SITES
5.4.3. EXTRACT_SUFX
5.4.4. DISTFILES
5.4.5. EXTRACT_ONLY
5.4.6. PATCHFILES
5.4.7. Несколько дистрибутивных файлов или патчей с различных серверов и подкаталогов (MASTER_SITES:n)
5.4.8. DIST_SUBDIR
5.5. MAINTAINER
5.6. COMMENT
5.7. Зависимости
5.7.1. LIB_DEPENDS
5.7.2. RUN_DEPENDS
5.7.3. BUILD_DEPENDS
5.7.4. FETCH_DEPENDS
5.7.5. EXTRACT_DEPENDS
5.7.6. PATCH_DEPENDS
5.7.7. DEPENDS
5.7.8. USE_*
5.7.9. Замечания касательно зависимостей
5.7.10. Необязательные зависимости
5.7.11. Зацикленные зависимости фатальны
5.8. Задание рабочего каталога
5.8.1. WRKSRC
5.8.2. NO_WRKSUBDIR
5.9. CONFLICTS
5.10. Механизмы построения
6. Особые соглашения
6.1. Динамические библиотеки
6.2. Порты с ограничениями на распространение
6.2.1. NO_PACKAGE
6.2.2. NO_CDROM
6.2.3. RESTRICTED
6.2.4. RESTRICTED_FILES
6.3. Использование perl
6.4. Использование X11
6.5. Использование automake, autoconf и libtool
6.6. Использование GNOME
6.7. Использование KDE
6.8. Использование Bison
6.9. Использование Java
6.9.1. Задание переменных
6.9.2. Практические рекомендации
6.10. Использование Python
6.11. Использование Emacs
6.12. Использование Ruby
6.13. Использование SDL
7. MASTERDIR
8. Версии динамических библиотек
9. Страницы Справочника
10. Порты, которым требуется Motif
10.1. USE_MOTIF
10.2. MOTIFLIB
11. Шрифты для X11
12. Файлы в формате info
13. Файлы pkg-*
13.1. pkg-message
13.2. pkg-install
13.3. pkg-deinstall
13.4. pkg-req
13.5. Изменение содержимого pkg-plist в зависимости от make-переменных
13.6. Изменение имён файлов pkg-*
14. Тестирование вашего порта
14.1. Запуск make describe
14.2. Portlint
14.3. PREFIX
15. Обновление
16. Что делать нужно, и что делать нельзя
16.1. Введение
16.2. Удаление отладочной информации в бинарных файлах
16.3. Макросы INSTALL_*
16.4. WRKDIR
16.5. WRKDIRPREFIX
16.6. Различение операционных систем и версий ОС
16.7. Значения __FreeBSD_version
16.8. Написание чего-либо после bsd.port.mk
16.9. Установка дополнительной документации
16.10. Подкаталоги
16.11. Очистка пустых каталогов
16.12. Идентификаторы UID
16.13. Поступайте разумно
16.14. Работа как с CC, так и CXX
16.15. Использование CFLAGS
16.16. Конфигурационные файлы
16.17. Пожелания
16.18. README.html
16.19. Пометка порта как BROKEN, FORBIDDEN или как-то ещё
16.20. Необходимые предосторожности
16.21. Разное
16.22. Если вы испытываете затруднения...
17. Примерный Makefile
18. Автоматическое создание списка упаковки
19. Актуализация
19.1. FreshPorts
19.2. Web-интерфейс к хранилищу исходных текстов
19.3. Список рассылки FreeBSD, посвящённый портам
19.4. Кластер построения портов FreeBSD
19.5. Проверка дистрибутивных файлов портов FreeBSD
19.6. Система мониторинга портов FreeBSD
Список таблиц
5-1. Переменные USE_*
6-1. Переменные для портов, использующих perl
6-2. Переменные для портов, использующих X
6-3. Переменные для портов, использующих automake, autoconf или libtool
6-4. Переменные для портов, которые используют KDE
6-5. Переменные, которые которые могут задаваться портами, использующими Java
6-6. Переменные, доступные в портах, использующих Java
6-7. Константы, определённые для портов, использующих Java
16-1. Значения __FreeBSD_version
Список примеров
5-1. Упрощённое использование MASTER_SITES:n с 1 файлом на каждом сайте
5-2. Упрощённое использование MASTER_SITES:n с более чем 1 файлом на каждом сервере
5-3. Подробное использование MASTER_SITES:n в MASTER_SITE_SUBDIR
5-4. Подробное использование MASTER_SITES:n с запятыми, несколькими файлами, несколькими серверами и несколькими подкаталогами
5-5. Подробное использование MASTER_SITES:n с MASTER_SITE_SOURCEFORGE
5-6. Упрощённое использование MASTER_SITES:n с PATCH_SITES.
14-1. Как избегать использование .error
По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите по адресу <doc@FreeBSD.org>.