LibKing » Книги » comp-programming » Рашид Ачилов - Создаем порт для FreeBSD своими руками. Часть II

Рашид Ачилов - Создаем порт для FreeBSD своими руками. Часть II

Тут можно читать онлайн Рашид Ачилов - Создаем порт для FreeBSD своими руками. Часть II - бесплатно полную версию книги (целиком). Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
libking
  • Название:
    Создаем порт для FreeBSD своими руками. Часть II
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.55/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Рашид Ачилов - Создаем порт для FreeBSD своими руками. Часть II краткое содержание

Создаем порт для FreeBSD своими руками. Часть II - описание и краткое содержание, автор Рашид Ачилов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Система сборки программ, используемая во FreeBSD, имеет значительно большие возможности, чем те, которые мы задействовали. Какие это возможности и как их использовать в своих портах?

Создаем порт для FreeBSD своими руками. Часть II - читать онлайн бесплатно полную версию (весь текст целиком)

Создаем порт для FreeBSD своими руками. Часть II - читать книгу онлайн бесплатно, автор Рашид Ачилов
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

post-patch:

if defined(USE_INFRA_PATCHSET)

@${ECHO_MSG} "===> Patching OOo with Infra patches set"

@cd ${WRKDIR}/${INFRA_PATCHDIR}/${INFRA_PATCHEXT} && \

${SH} ${INFRA_PATCHER}

endif

Дополняем мишень patch подмишенью post-patch, в которой собственно и запускаем скрипт, вносящий изменения. Обратите внимание — записать это в две строки нельзя! Если записать команды cd и запуск скрипта на разных строках, то запуск скрипта произойдет не из каталога, в который перешли командой cd, а из текущего, потому что make, выполнив запрошенное действие, возвращается в каталог, из которого она была запущена. Точно так же выполняются все другие действия, связанные со сменой каталога, — например распаковка файлов.

if defined(PREBUILD_TRANSEX3)

@${ECHO_MSG} "===> Pre-build TRANSEX3"

@${ECHO} "source ${WRKSRC}/FreeBSDEnv.Set"

> ${GSI_PREBUILD}

@${ECHO} "cd transex3 && build — all && deliver"

>> ${GSI_PREBUILD}

@${CHMOD} +x ${GSI_PREBUILD}

@cd ${WRKSRC} && PATH="${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin" && ${TCSH} ${GSI_PREBUILD}

endif

if defined(USE_RUSSIAN_GSI)

@${ECHO_MSG} "===> Build russian GSI"

@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 из порта editors/openoffice-1.1 — ftp://ftp.granch.ru/pub/openoffice/Makefile.OOo . Этот файл уже не используется как файл порта, но как образец написания Makefile, там есть чему поучиться.

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

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

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=:— добавляет зависимость от некоторой программы из 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, постоянно увеличивается, порты для них пишутся, как мы теперь видим, обычными людьми, и, создавая новый порт для программы, которая там в данный момент отсутствует, мы не только облегчаем себе жизнь, но и помогаем сообществу.

1

Ачилов Р. Порт для FreeBSD своими руками. Часть первая — основные возможности. Журнал «Системный администратор», № 3, март 2006 г. — 32–38 с.

2

Руководство FreeBSD по созданию портов — http://www.ru.freebsd.org/doc/ru_RU.KOI8-R/books/porters-handbook/index.html.

3

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

Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Рашид Ачилов читать все книги автора по порядку

Рашид Ачилов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Создаем порт для FreeBSD своими руками. Часть II, автор: Рашид Ачилов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img