Чтение онлайн

на главную - закладки

Жанры

Создаем порт для FreeBSD своими руками. Часть II
Шрифт:

@cd ${WRKSRC} && PATH="${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin" && ${TCSH} -c 'source FreeBSDEnv.Set && localize -m -i ru-RU -l ${LANG_EXT} -f ${RUSSIAN_GSI}'

.endif

Первая часть задает предварительную сборку программы transex3, для чего формируется скрипт, затем осуществляется переход в каталог с распакованными исходниками и запуск сборки. Обратите внимание, как передается значение переменной PATH. Вторая часть задает обработку исходных текстов OpenOffice согласно новому файлу

локализации интерфейса.

Полный текст Makefile из editors/openoffice-1.1 с внесенными мной изменениями можно скачать с [3] . Этот файл уже не используется как файл порта, но как образец написания Makefile, там есть чему поучиться. 

Некоторые переменные USE_*

Здесь описаны некоторые наиболее часто используемые переменные USE_*, не упомянутые до сих пор. Полный список их значительно больше, смотреть его нужно в bsd.port.mk.

3

Доработанный Makefile из порта editors/openoffice-1.1 – ftp://ftp.granch.ru/pub/openoffice/Makefile.OOo.

IGNOREFILES= <список файлов> – задает список файлов, для которых не выполняется проверка контрольной суммы из distinfo.

EXTRACT_ONLY=yes – только распаковать файлы дистрибутива, не выполнять никакой работы по сборке. Как правило, в таком порту применяется заменяющая подмишень do-install.

RESTRICTED=yes – запрещает помещать собранный пакет на FTP или распространять на CD-ROM. Как правило вследствие лицензионных ограничений. Это не такая уже редкость, например такое ограничение имеет виртуальная машина Java.

NO_CDROM=yes почти то же самое, только разрешает помещение на FTP.

FORBIDDEN=yes – запрещает сборку из-за уязвимостей программы.

IGNORE=yes – запрещает сборку из-за грубых ошибок при сборке программы. Фактически используется для прекращения работы системы по каким-либо причинам (например, неподдерживаемая версия FreeBSD).

BROKEN=yes – запрещает сборку из-за различных ошибок.

USE_ZIP=yes – для распаковки использовать zip.

USE_DOS2UNIX=yes – все тексты перекодировать таким образом, чтобы преобразовать переводы строк из вида DOS в вид UNIX.

USE_GCC=<номер> – задает номер версии компилятора GCC. Я помню только один порт, использовавший эту USE_* – editors/openoffice на 4.х, имевший по умолчанию GCC 2.95.4.

USE_GETOPT_LONG=yes – для 4.х добавляет зависимость от libgnugetopt. Для 5.х и выше уже неактуально – libgnugeopt перенесена в базовую систему.

USE_PERL=yes, USE_JAVA=yes, USE_PYTHON=yes,

• USE_RUBY=yes

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

USE_AUTOTOOLS=<tool>:<version> – добавляет зависимость от некоторой программы из GNU Autotools. Если задана и программа и версия, задает зависимость от конкретной версии, если версия опущена, то задает зависимость от программы без номера в имени. Например: «USE_AUTOTOOLS=libtool:15» задает зависимость от devel/libtool15, но «USE_AUTOTOOLS=libtool» задает зависимость от devel/libtool, что может быть совсем не одно и то же!

USE_GNOME=<список компонентов через пробел> – задает зависимости от перечисленного списка компонентов GNOME. Например, приведенная выше строка: «USE_GNOME+= orbit gtk12» задает зависимости от компонентов devel/orbit и x11-toolkits/gtk12. При задании зависимостей следует придерживаться разумного минимума – указывать только те компоненты, которые действительно нужны для работы. Помните, что подключенные компоненты тоже имеют свои зависимости, которые могут иметь свои зависимости и т. д. – глубина вложенности неограничена.

USE_QT_VER=3 – добавляет зависимость от библиотеки x11-toolkits/qt33 и неявно подключает файл bsd.kde.mk.

USE_LINUX={yes|<число>} – добавляет зависимость от порта emulators/linux-base-8, если не указано <число>. Если <число> указано, то добавляется зависимость от порта emulators/linux-base-<число>.

CONFLICTS=<список портов> – содержит список портов, с которыми может конфликтовать данный порт. Конфликт может выражаться в совпадающих именах каталогов для установки, совпадающих именах файлов, одинаковых TCP/UDP-портах, невозможность сборки одного порта при наличии другого и прочих причинах. Выражение для списка портов может содержать мета-символы «*?[]!». Например, «apache*-1.3.[012345]».

Заключение

Наша работа закончена, но жизнь продолжается... Мы рассмотрели основные возможности системы сборки портов. Однако далеко не для каждого порта требуется такое количество работы – для многих несложных программ порт от начала до конца, включая отсылку во FreeBSD Team, пишется за полдня. Система сборки портов обладает очень большими возможностями. Изучать их все нет необходимости – всегда можно заглянуть в bsd.port.mk, который и является главным справочником по ее возможностям.

В начале файла идет громадный блок комментария, в котором перечислены все переменные, которые можно использовать, и даны к ним краткие описания, для чего они предназначены. Число программ, которые работают под FreeBSD, постоянно увеличивается, порты для них пишутся, как мы теперь видим, обычными людьми, и, создавая новый порт для программы, которая там в данный момент отсутствует, мы не только облегчаем себе жизнь, но и помогаем сообществу.

Поделиться:
Популярные книги

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Я снова граф. Книга XI

Дрейк Сириус
11. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я снова граф. Книга XI

Болотник

Панченко Андрей Алексеевич
1. Болотник
Фантастика:
попаданцы
альтернативная история
6.50
рейтинг книги
Болотник

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Голодные игры

Коллинз Сьюзен
1. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.48
рейтинг книги
Голодные игры

Последняя Арена 8

Греков Сергей
8. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 8

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Измена. Свадьба дракона

Белова Екатерина
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Измена. Свадьба дракона