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

The FreeBSD Documentation Project

Издание: 44029
Юридическое уведомление
Юридическое уведомление
2014-02-22 pluknet.
[ По разделам / Одним файлом ]

Содержание
1. Введение
2. Как самому сделать новый порт
3. Быстрое портирование
3.1. Создание файла Makefile
3.2. Создание информационных файлов
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.3. Разделение по категориям
5.4. Дистрибутивные файлы
5.5. MAINTAINER
5.6. COMMENT
5.7. PORTSCOUT
5.8. Зависимости
5.9. MASTERDIR
5.10. Страницы Справочника
5.11. Файлы в формате info
5.12. Опции для Makefile
5.13. Задание рабочего каталога
5.14. Разрешение конфликтов
5.15. Установка файлов
6. Особые соглашения
6.1. Staging
6.2. Динамические библиотеки
6.3. Порты с ограничениями на распространение или с правовым обременением
6.4. Механизмы построения
6.5. Использование GNU autotools
6.6. Использование GNU gettext
6.7. Использование Perl
6.8. Использование X11
6.9. Использование GNOME
6.10. Использование Qt
6.11. Использование KDE
6.12. Использование Java
6.13. Веб-приложения, Apache и PHP
6.14. Использование Python
6.15. Использование Tcl/Tk
6.16. Использование Emacs
6.17. Использование Ruby
6.18. Использование SDL
6.19. Использование wxWidgets
6.20. Использование Lua
6.21. Использование iconv
6.22. Использование Xfce
6.23. Использование Mozilla
6.24. Использование баз данных
6.25. Запуск и остановка служб (сценарии rc)
6.26. Добавление пользователей и групп
6.27. Порты, требующие наличия исходных текстов ядра
7. Продвинутые практики pkg-plist
7.1. Изменение содержимого pkg-plist в зависимости от make-переменных
7.2. Пустые каталоги
7.3. Конфигурационные файлы
7.4. Динамический или статический список упаковки
7.5. Автоматическое создание списка упаковки
8. Файлы pkg-*
8.1. pkg-message
8.2. pkg-install
8.3. pkg-deinstall
8.4. Изменение имён файлов pkg-*
8.5. Использование SUB_FILES и SUB_LIST
9. Тестирование вашего порта
9.1. Запуск make describe
9.2. Portlint
9.3. Port Tools
9.4. PREFIX и DESTDIR
9.5. Tinderbox
9.6. Poudriere
10. Обновление отдельного порта
10.1. Использование Subversion для создания патчей
10.2. Файлы UPDATING и MOVED
11. Безопасность портов
11.1. Почему безопасность так важна
11.2. Исправление уязвимостей безопасности
11.3. Обеспечение сообщества информацией
12. Что делать нужно, и что делать нельзя
12.1. Введение
12.2. WRKDIR
12.3. WRKDIRPREFIX
12.4. Различение операционных систем и версий ОС
12.5. Написание чего-либо после bsd.port.mk
12.6. Использование выражения exec в сценариях обёртках
12.7. Поступайте разумно
12.8. Работа как с CC, так и CXX
12.9. Использование CFLAGS
12.10. Библиотеки потоков
12.11. Пожелания
12.12. README.html
12.13. Пометка неустанавливаемого порта как BROKEN, FORBIDDEN или IGNORE
12.14. Пометка порта на удаление с DEPRECATED или EXPIRATION_DATE
12.15. Избегайте использования конструкции .error
12.16. Использование sysctl
12.17. Меняющиеся дистрибутивные файлы
12.18. Избегание линуксизмов
12.19. Разное
13. Примерный Makefile
14. Актуализация
14.1. FreshPorts
14.2. Web-интерфейс к хранилищу исходных текстов
14.3. Список рассылки FreeBSD, посвящённый портам
14.4. Кластер построения портов FreeBSD
14.5. Portscout: сканер дистрибутивных файлов портов FreeBSD
14.6. Система мониторинга портов FreeBSD
15. Приложения
15.1. Значения USES
15.2. Значения __FreeBSD_version
Список таблиц
5.1. Популярные магические макросы для MASTER_SITES
5.2. Переменные USE_*
5.3. Основные переменные WITH_* и WITHOUT_*
6.1. Переменные для портов, использующих gmake
6.2. Переменные для портов, использующих configure
6.3. Переменные для портов, использующих cmake
6.4. Переменные построения cmake, устанавливаемые пользователем
6.5. Переменные для портов, использующих scons
6.6. Переменные для портов, использующих Perl
6.7. Переменные для портов, использующих X
6.8. Переменные для портов, использующих Qt
6.9. Дополнительные переменные для портов, использующих Qt 4.x
6.10. Доступные библиотечные компоненты Qt 4
6.11. Доступные компоненты инструментов Qt 4
6.12. Доступные компоненты плагинов Qt 4
6.13. Переменные для портов, использующих qmake
6.14. Доступные компоненты KDE 4
6.15. Переменные, которые которые могут задаваться портами, использующими Java
6.16. Переменные, доступные в портах, использующих Java
6.17. Константы, определённые для портов, использующих Java
6.18. Переменные для портов, использующих Apache
6.19. Используемые переменные при портировании модулей Apache
6.20. Переменные для портов, использующих PHP
6.21. Переменные для портов, которые используют Python
6.22. Наиболее востребованные переменные для портов, которые используют Tcl/Tk
6.23. Полезные переменные для портов, использующих Ruby
6.24. Отобранные переменные только для чтения для портов, использующих Ruby
6.25. Переменные для выбора версии wxWidgets
6.26. Доступные версии wxWidgets
6.27. Определение версии для wxWidgets
6.28. Переменные для выбора предпочитаемых версий wxWidgets
6.29. Доступные компоненты wxWidgets
6.30. Доступные типы зависимости wxWidgets
6.31. Типы зависимости wxWidgets, используемые по умолчанию
6.32. Переменные для выбора версии wxWidgets с Unicode
6.33. Переменные, определенные для портов, использующих wxWidgets
6.34. Допустимые значения WX_CONF_ARGS
6.35. Переменные для выбора версии Lua
6.36. Доступные версии Lua
6.37. Определение версии Lua
6.38. Переменные для выбора предпочитаемых версий Lua
6.39. Доступные компоненты Lua
6.40. Доступные типы зависимости Lua
6.41. Типы зависимости Lua, используемые по умолчанию
6.42. Переменные, определенные для портов, использующих Lua
6.43. Переменные для портов, использующих Mozilla
6.44. Переменные для портов, использующих базы данных
10.1. Префиксы файлов для Subversion update
15.1. Значения USES
15.2. Значения __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.
5.7. Использование ALWAYS_KEEP_DISTFILES.
5.8. Некорректное объявление необязательной зависимости
5.9. Корректное объявление необязательной зависимости
5.10. Простое использование OPTIONS
5.11. Проверка незаданных значений OPTIONS
5.12. Пример реального использования OPTIONS
5.13. Неправильное управление опцией
5.14. Правильное управление опцией
6.1. Пример использования USES= cmake
6.2. Пример зависимости Perl
6.3. Пример для USE_XORG
6.4. Использование переменных X11 в порте
6.5. Выбор компонентов Qt 4
6.6. Пример USE_KDE4
6.7. Пример Makefile для классов PEAR
6.8. Выбор компонентов wxWidgets
6.9. Обнаружение установленных версий и компонентов wxWidgets
6.10. Использование переменных wxWidgets в командах
6.11. Выбор версии Lua
6.12. Выбор компонентов Lua
6.13. Обнаружение установленных версий и компонентов Lua
6.14. Указание для порта, где искать Lua
6.15. Использование переменных Lua в командах
6.16. Простое использование iconv
6.17. Использование iconv с configure
6.18. Исправление жёстко заданного -liconv
6.19. Проверка доступности собственного iconv
12.1. Как избегать использование .error

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.

По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.