From 2b17b257cafa4196565bc34a03d73dcff1656bda Mon Sep 17 00:00:00 2001 From: pluknet Date: Sat, 22 Feb 2014 10:29:12 +0000 Subject: [PATCH] MFen up to before splitting porters-handbook. book.xml r42833 -> r43827 uses.xml r43006 -> r43793 versions.xml r42930 -> r43967 --- ru_RU.KOI8-R/books/porters-handbook/book.xml | 1860 ++++++++++------- ru_RU.KOI8-R/books/porters-handbook/uses.xml | 764 ++++++- .../books/porters-handbook/versions.xml | 182 +- 3 files changed, 1960 insertions(+), 846 deletions(-) diff --git a/ru_RU.KOI8-R/books/porters-handbook/book.xml b/ru_RU.KOI8-R/books/porters-handbook/book.xml index 444be85ed946..50339b5cbf01 100644 --- a/ru_RU.KOI8-R/books/porters-handbook/book.xml +++ b/ru_RU.KOI8-R/books/porters-handbook/book.xml @@ -10,14 +10,20 @@ $FreeBSD$ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/book.xml,v 1.136 2006/10/20 09:25:00 marck Exp $ - Original revision: r42833 + Original revision: r43827 --> - - Руководство FreeBSD по созданию портов - + + + + + Руководство &os; по созданию портов - The FreeBSD Documentation Project + + The &os; Documentation Project + $FreeBSD$ @@ -37,27 +43,32 @@ 2011 2012 2013 - - The FreeBSD Documentation Project + The &os; Documentation + Project - &trademarks; - &legalnotice; + + &tm-attrib.freebsd; + &tm-attrib.unix; + &tm-attrib.sun; + &tm-attrib.general; + + $FreeBSD$ Введение - Коллекция портов FreeBSD является способом, используемым - практически каждым для установки приложений ("портов") на FreeBSD. - Как и почти всё остальное во FreeBSD, эта система в основном является + Коллекция портов &os; является способом, используемым + практически каждым для установки приложений ("портов") на &os;. + Как и почти всё остальное во &os;, эта система в основном является добровольно поддерживаемым начинанием. Важно иметь это в виду при чтении данного документа. - Во FreeBSD любой может прислать новый порт либо изъявить желание + Во &os; каждый может прислать новый порт либо изъявить желание поддерживать существующий порт, если его никто ещё никто не поддерживает—вам не нужно иметь никаких особых привилегий на внесение изменений, чтобы это делать. @@ -70,7 +81,7 @@ обновить существующий? Великолепно! Ниже находятся некоторые указания по созданию нового порта для - FreeBSD. Если вы хотите обновить существующий порт, вы должны + &os;. Если вы хотите обновить существующий порт, вы должны прочесть их, а затем . Если этот документ недостаточно подробен, вы должны обратиться к @@ -114,11 +125,24 @@ Здесь предполагается, что программное обеспечение компилируется без проблем как есть, то есть для работы приложения на вашей системе - FreeBSD не потребовалось абсолютно никаких изменений. Если + &os; не потребовалось абсолютно никаких изменений. Если требовалось что-то изменить, то вам придется обратиться также и к следующему разделу. + + Перед началом портирования рекомендуется установить + переменную &man.make.1; DEVELOPER в + /etc/make.conf. + + &prompt.root; echo DEVELOPER=yes >> /etc/make.conf + + Эта настройка включает режим разработчика, + в котором отображаются предупреждения при использовании + устаревших конструкций и задействуются некоторые дополнительные + проверки при вызове команды make. + + Создание файла <filename>Makefile</filename> @@ -132,12 +156,9 @@ PORTVERSION= 1.1b CATEGORIES= games MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ -MAINTAINER= asami@FreeBSD.org +MAINTAINER= youremail@example.com COMMENT= Cat chasing a mouse all over the screen -MAN1= oneko.1 -MANCOMPRESSED= yes - .include <bsd.port.mk> @@ -150,7 +171,8 @@ MANCOMPRESSED= yes Посмотрим, сможете ли вы его понять. Не обращайте внимание на содержимое строчки $FreeBSD$, она - будет заполнена автоматически системой SVN, когда порт будет + будет заполнена автоматически системой + Subversion, когда порт будет импортирован в наше дерево портов. Вы можете найти более подробный пример в разделе пример Makefile. @@ -178,8 +200,8 @@ MANCOMPRESSED= yes из README или страниц справочника; слишком часто они не являются кратким описанием порта или имеют неудобный формат (например, страницы - справочника выровнены пробелами, поскольку это выглядит в - особенности плохо с моноширинными шрифтами). + справочника выровнены пробелами, что особенно плохо + смотрится с моноширинными шрифтами). Хорошо составленный pkg-descr @@ -225,16 +247,14 @@ WWW: http://www.oneko.org/ пакет генерируется упаковкой файлов, которые здесь указаны. Имена путей указываются относительно установочного префикса (обычно /usr/local). - Если вы используете переменные - MANn (а вы должны - это делать), то указывать страницы справочника здесь не - нужно. Если порт во время установки создает каталоги, убедитесь, - что добавили строку @dirrm для удаления + Если порт во время установки создает каталоги, убедитесь, + что добавлены строки @dirrm для удаления каталогов при удалении пакета. Вот маленький пример: bin/oneko +man/man1/oneko.1.gz lib/X11/app-defaults/Oneko lib/X11/oneko/cat1.xpm lib/X11/oneko/cat2.xpm @@ -242,7 +262,7 @@ lib/X11/oneko/mouse.xpm @dirrm lib/X11/oneko Обратитесь к странице справочной системы по команде - &man.pkg.create.1; с подробным описанием формата списка + &man.pkg-create.8; с подробным описанием формата списка упаковки. @@ -270,6 +290,7 @@ lib/X11/oneko/mouse.xpm Makefile: PLIST_FILES= bin/oneko \ + man/man1/oneko.1.gz \ lib/X11/app-defaults/Oneko \ lib/X11/oneko/cat1.xpm \ lib/X11/oneko/cat2.xpm \ @@ -293,7 +314,7 @@ PLIST_DIRS= lib/X11/oneko Обратной стороной такого способа перечисления файлов и каталогов порта является невозможность использования - последовательностей команд, описанных в &man.pkg.create.1;. + последовательностей команд, описанных в &man.pkg-create.8;. Поэтому он подходит для простых портов, что делает их ещё более простыми. Одновременно с этим положительным моментом является уменьшение количества файлов в коллекции портов. Пожалуйста, @@ -333,22 +354,34 @@ PLIST_DIRS= lib/X11/oneko pkg-plist не содержит ничего сверх того, - что устанавливается вашим портом + что устанавливается портом pkg-plist содержит абсолютно все, что - устанавливается вашим портом + устанавливается портом - Ваш порт может быть переустановлен множество раз с помощью - указания цели reinstall + Порт может быть установлен с помощью + указания цели install. Это + позволяет убедиться в правильной работе сценария + установки. - Ваш порт подчищает - за собой после своего удаления + Порт может быть правильным образом удалён с помощью + указания цели deinstall. Это + позволяет убедиться в правильной работе сценария + удаления. + + + + Следует убедиться, что make package + можно запустить из-под обычного пользователя (то есть, + не из-под root). + Если это не так, в Makefile порта + должно быть добавлено NEED_ROOT=yes. @@ -356,20 +389,19 @@ PLIST_DIRS= lib/X11/oneko Рекомендуемый порядок проверки - make install + make stage - make package + make check-orphans - make deinstall + make package - pkg_add package-name - + make install @@ -377,31 +409,25 @@ PLIST_DIRS= lib/X11/oneko - make reinstall + pkg add package-filename - make package - - - - make readme + make package (из-под + пользователя) - Проверьте, что ни на шаге package, ни на - шаге deinstall не выдается никаких - предупреждений. После выполнения шага 3 проверьте, что все новые - каталоги были успешно удалены. Также попробуйте запустить - программное обеспечение после выполнения шага 4, чтобы убедиться, что - оно работает правильно при установке из пакета. - - Наиболее основательным способом автоматизации этих шагов является - установка ports tinderbox. Это - обеспечивает jails, в которых вы можете проверять - все вышеуказанные шаги без изменения состояния в вашей основной - системе. Для получения дополнительной информации смотрите - ports/ports-mgmt/tinderbox. + Убедитесь, что на любом из этапов не выдается никаких + предупреждений. + + Основательное автоматизированное тестирование может быть + выполнено при помощи + ports-mgmt/tinderbox или + ports-mgmt/poudriere из Коллекции + Портов. Эти приложения используют jails, + в которых проверяются все перечисленные выше этапы без + изменения состояния основной системы. @@ -410,7 +436,7 @@ PLIST_DIRS= lib/X11/oneko Будьте добры, пользуйтесь утилитой portlint для проверки того, что ваш порт соответствует нашим рекомендациям. - Программа ports-mgmt/portlint + Программа ports-mgmt/portlint является частью Коллекции Портов. В частности, вы можете захотеть проверить, правильно ли сформирован файл Makefile и @@ -420,38 +446,45 @@ PLIST_DIRS= lib/X11/oneko Посылка нового порта - Перед посылкой нового порта удостоверьтесь, что вы прочитали - раздел о том, что можно и нельзя делать. + Перед посылкой нового порта прочитайте раздел о том, что + можно и нельзя делать. - Теперь, когда вы счастливы от своего первого порта, единственное, + Когда вы наконец довольны своим первым портом, единственное, что осталось сделать, это включить его в основное дерево портов - &os; и осчастливить этим всех остальных. Нам не нужен ни ваш + &os; и осчастливить этим всех остальных. Нам не нужен ни каталог work, ни пакет - pkgname.tgz, так что удалите их прямо сейчас. - Затем (предположим, что ваш порт зовут oneko) перейдите в каталог - выше, там, где находится каталог oneko, и наберите - следующее: shar `find oneko` > oneko.shar - - Включите ваш файл oneko.shar - в сообщение об ошибке и пошлите - его с помощью программы &man.send-pr.1; (обратитесь к разделу - Сообщения об ошибках и общие замечания для получения подробной - информации о программе &man.send-pr.1;). Не забудьте - указать в сообщении категорию ports и класс - change-request (Не указывайте, что сообщение - имеет статус confidential!). Добавьте также - краткое описание программы, порт которой вы создали, в раздел - Description отправляемого PR (например, содержимое - COMMENT в сокращенном виде) и сам файл в виде архива - shar, поместив его в раздел Fix. + pkgname.tgz, так что удалите их прямо + сейчас. + + Затем получите файл &man.shar.1;. Предполагая, что порт + называется oneko, перейдите в каталог выше, где находится + каталог oneko, и наберите: + shar `find oneko` > oneko.shar + + Включите oneko.shar в сообщение об + ошибке и пошлите его с помощью &man.send-pr.1;. Обратитесь к + разделу + Сообщения об ошибках и общие замечания для получения + подробной информации о &man.send-pr.1;). + + Укажите в сообщении категорию ports и + класс change-request. + Не указывайте, что сообщение имеет статус + confidential! Добавьте краткое описание + программы в поле Description отправляемого PR + (например, содержимое COMMENT в сокращённом + варианте) и сам файл в виде архива .shar + в поле Fix. - Вы можете значительно облегчить нашу работу, если в тему - сообщения о проблеме поместите хорошее описание. Мы рекомендуем - нечто вроде New port: <категория>/<название - порта> <краткое описание порта> для новых портов. - Если вы следуете этой схеме, то шансы на то, что на ваше PR вскоре - кто-то взглянет, гораздо выше. + Хорошее описание в заголовке сообщения о проблеме + значительно облегчает работу коммиттеров портов. Для новых + портов мы предпочитаем нечто вроде New port: + <категория>/<название порта> <краткое + описание порта>. Следование этой схеме + упрощает и ускоряет начало работы по добавлению нового + порта. Повторим ещё раз, что не нужно включать ни оригинальный @@ -460,16 +493,17 @@ PLIST_DIRS= lib/X11/oneko make package; для новых портов используйте &man.shar.1;, но не &man.diff.1;. - После того как вы послали порт, пожалуйста, потерпите. - Иногда включение нового порта во &os; может занять до нескольких - месяцев, а иногда всего несколько дней. - Здесь вы можете найти список PR для портов ожидающих своей - очереди для включения во &os;. - - Мы рассмотрим ваш порт, при необходимости вернём его обратно, а - затем включим порт в наше дерево. Ваше имя также будет добавлено - в список - Дополнительных контрибуторов проекта FreeBSD и другие + После отправки порта, пожалуйста, потерпите. Время, + необходимое для включения нового порта во &os;, может занимать + от нескольких дней до нескольких месяцев. + Здесь можно увидеть список ожидающих PR для портов. + + После рассмотрения нового порта мы при необходимости вам + ответим, а затем включим порт в наше дерево. Ваше имя также + будет добавлено в список + Дополнительных контрибуторов проекта &os; и другие файлы. @@ -502,10 +536,9 @@ PLIST_DIRS= lib/X11/oneko текстов имеется в наличии локально в каталоге DISTDIR. Если цель fetch не может найти требуемые файлы в - каталоге DISTDIR, то он будет искаться по + каталоге DISTDIR, то они будут искаться по указателю URL MASTER_SITES, который - устанавливается в Makefile, а также на нашем основном FTP-сервере - по адресу ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/, + устанавливается в Makefile, а также на наших FTP зеркалах, куда мы по возможности помещаем дистрибутивные файлы для архива. Затем она попытается сгрузить указанный файл с помощью FETCH, полагая, что запрашивающая машина имеет @@ -558,11 +591,22 @@ PLIST_DIRS= lib/X11/oneko Выполняется цель build. Она отвечает за переход в собственный рабочий каталог порта - (WRKSRC) и его построение. Если задана - переменная USES= gmake, будет использоваться - GNU-версия утилиты make, в противном случае - будет использована системная утилита - make. + (WRKSRC) и его построение. + + + + Выполняется цель stage. + Конечный набор построенных файлов помещается во временный + каталог (STAGEDIR, смотрите + ). Иерархия этого + каталога отражает иерархию каталогов системы, в которую + данный пакет будет устанавливаться. + + + + Выполняется цель install. + В систему копируются файлы, перечисленные в pkg-plist + порта. @@ -608,8 +652,9 @@ PLIST_DIRS= lib/X11/oneko и не выполняется инфраструктурой портов. - Теперь вы представляете, что происходит, когда пользователь - набирает команду make, теперь давайте пройдемся + Теперь, когда вы представляете, что происходит, когда + пользователь набирает команду make install, + давайте пройдемся через шаги, рекомендуемые для создания настоящего порта. @@ -706,22 +751,44 @@ PLIST_DIRS= lib/X11/oneko Создание патчей Файлы, которые добавлялись или изменялись в процессе создания - порта, могут быть выявлены вызовом программы &man.diff.1;, + порта, могут быть выявлены программой &man.diff.1;, а результат работы этой программы может быть в дальнейшем передан - программе &man.patch.1;. Каждый патч, который вы собираетесь - применить, должен быть сохранен в файл с именем + программе &man.patch.1;. Такое действие с обычным файлом + подразумевает сохранение копии файла с первоначальным содержимым + перед внесением каких-либо изменений. + + &prompt.user; cp file file.orig + + Патчи сохраняются в виде файлов с именем patch-*, где - * обозначает путь к файлу, к которому - применяется патч, такой как + * обозначает путь к файлу, + к которому применяется патч, такой как patch-Imakefile или - patch-src-config.h. Эти файлы должны находиться в + patch-src-config.h. + + После того как файл был изменён, используется &man.diff.1; + для получения разницы между первоначальной и изменённой + версиями. Параметр указывает &man.diff.1; + выводить разницу в унифицированном формате, + который также является предпочтительным. + + &prompt.user; diff -u file.orig file > patch-pathname-file + + Для порождении патчей для новых добавляемых файлов + используется параметр , который заставляет + &man.diff.1; трактовать несуществующие прежде файлы как если + бы они существовали, но имели пустое содержимое: + + &prompt.user; diff -u -N newfile.orig newfile > patch-pathname-newfile + + Файлы с патчами помещаются в каталоге PATCHDIR - (как правило, это files/), + (как правило, это files/), откуда они будут взяты автоматически. Все патчи обязаны быть сделаны относительно каталога WRKSRC (как правило, это каталог, в который распаковывается исходный архив и где будет выполняться построение). Для упрощения внесения изменений и - обновлений вы должны избегать наличия более чем одного патча для + обновлений избегайте наличия более чем одного патча для одного и того же файла (например, патчей patch-file и patch-file2, оба меняющих файл WRKSRC/foobar.c). @@ -732,14 +799,23 @@ PLIST_DIRS= lib/X11/oneko соответствующий патч следует назвать patch-src-freeglut__joystick.c. - Пожалуйста, используйте для именования ваших патчей только символы + Пожалуйста, используйте для именования патчей только символы [-+._a-zA-Z0-9]. Не используйте любые другие - символы, кроме этих. Не называйте ваши патчи как - patch-aa или patch-ab и - так далее, всегда ссылайтесь на путь и название файла в названиях + символы, кроме этих. Не называйте патчи как + patch-aa или patch-ab, + всегда ссылайтесь на путь и название файла в названиях самих патчей. - Не помещайте строки RCS в патчи. SVN будет изменять их при + Существует альтернативный упрощённый способ создания + патчей для существующих файлов. Первые шаги те же самые: + создание копии неизменённого файла с расширением + .orig и внесение изменений. После этого + используйте make makepatch, чтобы обновить + файлы с патчами в каталоге files данного + порта. + + Не помещайте строки RCS в патчи. + Subversion будет изменять их при помещении файлов в дерево портов, и когда мы будем их оттуда извлекать, они будут уже другие, поэтому применение патчей окончится неудачей. Строчки RCS предваряются знаком доллара @@ -754,65 +830,72 @@ PLIST_DIRS= lib/X11/oneko резервными копиями файлов, файлы Makefile, когда как порт использует Imake или GNU-версию программы configure, и так далее, - не нужны, и должны быть удалены. Если вы отредактировали файл - configure.in и запустили - autoconf для перегенерации + не нужны, и должны быть удалены. Если было необходимо + отредактировать файл configure.in и + запустить autoconf для перегенерации configure, не нужно включать файлы diff для configure (они частенько вырастают до нескольких - тысяч строк!); задайте USE_AUTOTOOLS=autoconf:261 и + тысяч строк!). Вместо этого задайте + USE_AUTOTOOLS=autoconf:261 и включите diff-файл для configure.in. - Также постарайтесь минимизировать в ваших патчах объем + Старайтесь минимизировать в патчах объём нефункциональных изменений с пустыми символами. В мире Открытого Исходного Кода является распространенным совместное использование проектами больших объемов кодовой базы, но с различными стилями - и правилами отступов. Если вы берете работающую функциональную - часть из одного проекта для исправления похожей области в другом, - то будьте аккуратны, пожалуйста: получаемый однострочный патч - может быть полон нефункциональных изменений. Это не только - увеличивает размер репозитория SVN, но также усложняет поиск того, - что конкретно вызвало проблему и что вы вообще изменили. - - Если вам нужно удалить файл, то вы можете сделать это при - выполнении цели post-extract вместо того, - чтобы оформлять это как часть патча. + и правилами отступов. При копировании работающей функциональной + части из одного проекта для исправления похожей области в другом, + будьте аккуратны, пожалуйста: получаемый однострочный патч + может указаться полон нефункциональных изменений. Это не только + увеличивает размер репозитория Subversion, + но также усложняет поиск того, + что конкретно вызвало проблему и что вообще поменялось. + + Если нужно удалить файл, сделайте это при выполнении цели + post-extract, вместо того чтобы + оформлять это как часть патча. Простые перемещения могут быть выполнены непосредственно из Makefile порта с использованием &man.sed.1; в - режиме in-place. Это очень удобно, когда вам нужно применить патч - на значение переменной. Пример: + режиме in-place. Это удобно, когда при изменении используется + значение переменной: post-patch: @${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README - Довольно часто бывают ситуации, когда портируемое программное - обеспечение, особенно если основной платформой разработки является - &windows;, использует конвенцию CR/LF для большинства своих исходных - файлов. Это может быть причиной проблем с дальнейшей упаковкой, - предупреждениями компилятора, выполнением скриптов - (/bin/sh^M not found) и так далее. Для быстрой + Довольно часто в исходных файлах портируемого программного + обеспечения используется конвенция CR/LF. Это может стать + причиной проблем с дальнейшей упаковкой, предупреждениями + компилятора или выполнением скриптов (таких как + /bin/sh^M not found). Для быстрого преобразования всех файлов из CR/LF просто в LF добавьте - USE_DOS2UNIX=yes в Makefile - порта. Может быть указан перечень преобразуемых файлов: + в Makefile порта эту запись: + + USES= dos2unix + + Может быть задан точный список преобразуемых файлов: - USE_DOS2UNIX= util.c util.h + USES= dos2unix +DOS2UNIX_FILES= util.c util.h - Если вы хотите преобразовать группу файлов в разных подкаталогах, - то для этого можно использовать DOS2UNIX_REGEX. + Используйте DOS2UNIX_REGEX, чтобы + преобразовать группу файлов в разных подкаталогах. Его параметром является регулярное выражение, совместимое с - find. Подробнее о формате в &man.re.format.7;. - Эта опция используется для преобразования всех файлов заданного - расширения, к примеру всех исходных файлов, не затрагивая двоичные - файлы: - - USE_DOS2UNIX= yes -DOS2UNIX_REGEX= .*\.(c|cpp|h) - - Если вы хотите создать патч на основе существующего файла, то вы - можете его скопировать с расширением .orig, а - затем изменить исходный. Цельmakepatch - запишет соответствующий файл с патчем в каталог - files данного порта. + &man.find.1;. Подробнее о формате в &man.re.format.7;. + Такой вариант удобен для преобразования всех файлов заданного + расширения. Для примера, преобразуем все исходные файлы, + не затрагивая двоичные файлы: + + USES= dos2unix +DOS2UNIX_REGEX= .*\.([ch]|cpp) + + Другим вариантом является использование + DOS2UNIX_GLOB, который вызывает + find для каждого из перечисленных в нём + элементов. + + USES= dos2unix +DOS2UNIX_GLOB= *.c *.cpp *.h @@ -913,13 +996,16 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h) есть каждый раз, когда создателями выпускается новый официальный релиз), и добавляется к имени пакета, если оно не равно нулю. Изменения в PORTREVISION используются - автоматизированными инструментами (например, &man.pkg.version.1;) + автоматизированными инструментами (например, + pkg version, см. &man.pkg-version.8;) для определения факта появления нового пакета. Значение PORTREVISION должно увеличиваться каждый раз, когда в порте FreeBSD делаются изменения, которые - достаточно сильно затрагивают содержимое или структуру - соответствующего пакета. + как-либо меняют получаемый пакет. Сюда относятся только + изменения, затрагивающие построение пакета с параметрами по + умолчанию. Примеры случаев, когда значение PORTREVISION должно быть увеличено: @@ -1009,7 +1095,7 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h) <varname>PORTEPOCH</varname> Время от времени разработчик программного обеспечения или - создатель порта FreeBSD делают что-то не так и выпускают версию + создатель порта &os; делают что-то не так и выпускают версию программы, номер которой меньше предыдущей версии. Примером этого является порт, название которого меняется с foo-20000801 на foo-1.0 (изначально это не считалось бы более новой версией, так как @@ -1018,9 +1104,8 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h) Результат сравнения номера версии не всегда очевиден. Для выполнения сравнения двух строк с номером версии можно - использовать &man.pkg.version.1;. Эквивалентом в - pkgng является - pkg version -t. Например: + использовать pkg version + (см. &man.pkg-version.8;). Например: &prompt.user; pkg_version -t 0.031 0.29 > @@ -1060,7 +1145,7 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h) корректном использовании PORTVERSION может появиться необходимость её иметь, если в будущих релизах программное обеспечение должно изменить структуру номера версии. - Однако создателям портов нужно быть внимательными, когда + Однако создателям портов для &os; нужно быть внимательными, когда разработчик выпускает релиз без официального номера версии — эдакие промежуточные релизы. Имеется соблазн пометить релиз датой его выхода, что может вызвать проблемы, как и @@ -1091,7 +1176,7 @@ PORTVERSION= 0.10 Обнаружена брешь в безопасности, исправление которой потребовало создания - локального патча для FreeBSD. Соответственно было увеличено + локального патча для &os;. Соответственно было увеличено значение переменной PORTREVISION. PORTNAME= gtkmumble @@ -1165,40 +1250,6 @@ PORTEPOCH= 1 частью значения переменной PORTNAME. - - <varname>LATEST_LINK</varname> - - LATEST_LINK задает в процессе построения - пакета короткое имя ссылки, которые могут использоваться при - выполнении команды pkg_add -r. Это позволяет, - к примеру, установить последнюю версию perl, используя - pkg_add -r perl, без знания точного номера - версии. Такое имя должно быть уникальным и очевидным для - пользователей. - - В некоторых случаях в коллекции портов может присутствовать - несколько версий программы одновременно. Обе системы, построения - индексов и построения пакетов, нуждаются в способности их видеть - как разные, независимые порты, хотя все они могут иметь схожее - значение для PORTNAME, - PKGNAMEPREFIX и даже - PKGNAMESUFFIX. В этих случаях для всех портов - кроме главного следует присвоить различные значения для - необязательной переменной LATEST_LINK — - чтобы получить пример ее использования, смотрите порты - lang/gcc46 и lang/gcc, - а также семейство www/apache*. При установке - NO_LATEST_LINK ссылки не создаются; эта - необязательная переменная может быть указана во всех версиях, - кроме главной. Обратите - внимание, как выбирать главную версию — - самую популярную, самую поддерживаемую, - с наименьшими изменениями и так далее — это - выходит за рамки рекомендаций этого руководства; мы всего лишь - сообщаем вам, как указывать версии других портов после того, как - вы выбрали главный. - - Соглашения по именованию пакетов @@ -1218,7 +1269,7 @@ PORTEPOCH= 1 - FreeBSD пытается поддерживать языки, на которых разговаривают + &os; пытается поддерживать языки, на которых разговаривают её пользователи. Часть language- должна быть двухсимвольным сокращением от названия языка по стандарту ISO-639, если порт специфичен для конкретного языка. @@ -1262,9 +1313,8 @@ PORTEPOCH= 1 имеют одинаковый PORTNAME, является вполне нормальным, как для портов www/apache*; в этом случае различные версии (и различные записи в индексе) - отличаются по значениям PKGNAMEPREFIX, - PKGNAMESUFFIX и - LATEST_LINK. + отличаются по значениям PKGNAMEPREFIX + и PKGNAMESUFFIX. @@ -1613,7 +1663,7 @@ PORTEPOCH= 1 docs* - Мета-порты для документации FreeBSD. + Мета-порты для документации &os;. @@ -1902,7 +1952,7 @@ PORTEPOCH= 1 ports-mgmt Порты для управления, установки и разработки - портов и пакетов FreeBSD. + портов и пакетов &os;. @@ -2158,7 +2208,9 @@ PORTEPOCH= 1 Порты, устанавливающие загружаемые модули ядра, должны содержать виртуальную категорию kld в - строке CATEGORIES. + строке CATEGORIES. Это одно из действий, + выполняемых автоматически с добавлением + kmod в строке USES. @@ -2694,7 +2746,7 @@ EXTRACT_ONLY= source.tar.gz на сеть, которую это даёт. В последующих разделах информация будет даваться вместе с - реализацией этой идеи во FreeBSD. Мы несколько улучшили концепцию + реализацией этой идеи во &os;. Мы несколько улучшили концепцию OpenBSD. @@ -3358,9 +3410,9 @@ ALWAYS_KEEP_DISTFILES= yes Старайтесь делать строку COMMENT длиной не больше, чем 70 - символов, так как эта строка будет использована программой - &man.pkg.info.1; для отображения однострочного описания - порта; + символов, так как эта строка будет использована командой + pkg info (см. &man.pkg-info.8;) для + отображения однострочного описания порта; @@ -3442,7 +3494,7 @@ ALWAYS_KEEP_DISTFILES= yes Когда URL, в которых указаны доступные версии, отличаются от URL их загрузки. Например, чтобы привязать проверку новых версий дистрибутивных файлов к странице загрузки для порта - databases/pgtune, + databases/pgtune, добавьте: PORTSCOUT= site:http://pgfoundry.org/frs/?group_id=1000416 @@ -3482,9 +3534,10 @@ ALWAYS_KEEP_DISTFILES= yes отсутствует. Зависимость проверяется дважды, один раз внутри цели - extract, а затем из цели + build, а затем из цели install. Кроме того, имя зависимости - помещается в пакет, так что &man.pkg.add.1; будет + помещается в пакет, так что pkg install + (см. &man.pkg-install.8;) будет автоматически её устанавливать, если её нет на пользовательской системе. @@ -3537,7 +3590,8 @@ ALWAYS_KEEP_DISTFILES= yes Зависимость проверяется внутри цели install. Кроме того, имя зависимости - помещается в пакет, так что программа &man.pkg.add.1; + помещается в пакет, так что pkg install + (см. &man.pkg-install.8;) будет автоматически его устанавливать, если он не будет найден в пользовательской системе. Часть target может быть опущена, если она @@ -3562,7 +3616,7 @@ ALWAYS_KEEP_DISTFILES= yes которые обрабатываются в ports/Mk/bsd.*.mk для пополнения первоначальных зависимостей построения. Например, USES= gmake добавляет - devel/gmake в + devel/gmake в BUILD_DEPENDS. Для предотвращения загрязнения RUN_DEPENDS подобными дополнительными зависимостями проявляйте осторожность с присвоением с раскрытием, @@ -3675,15 +3729,15 @@ ALWAYS_KEEP_DISTFILES= yes <varname>USES</varname> - Существует несколько параметров для определения различных - видов характерных особенностей и зависимостей, которыми - обладает рассматриваемый порт. Они могут быть указаны путём - добавления следующей строки в Makefile - порта: + Могут быть добавлены параметры для определения различных + характерных особенностей и зависимостей, которыми + обладает данный порт. Они указываются путём добавления + в Makefile этой строки: USES= feature[:arguments] - Для получения полного списка значений смотрите . + Для получения полного списка значений смотрите + . Значение USES нельзя присваивать @@ -3855,7 +3909,7 @@ ALWAYS_KEEP_DISTFILES= yes Технология построения портов не защищена от зацикленных зависимостей. Если вы создадите такую, то у кого-нибудь и - где-нибудь установка FreeBSD будет немедленно сломана, а у остальных + где-нибудь установка &os; будет немедленно сломана, а у остальных сломается несколько позже. Это на самом деле очень трудно распознать; если вы сомневаетесь, то перед внесением изменений проверьте, что выполнили следующее: cd /usr/ports; make @@ -3880,7 +3934,7 @@ ALWAYS_KEEP_DISTFILES= yes .include <bsd.port.pre.mk> .if exists(${LOCALBASE}/bin/foo) -LIB_DEPENDS= bar:${PORTSDIR}/foo/bar +LIB_DEPENDS= libbar.so:${PORTSDIR}/foo/bar .endif @@ -3904,7 +3958,7 @@ BAR_DESC= Bar support .include <bsd.port.options.mk> .if ${PORT_OPTIONS:MBAR} -LIB_DEPENDS= bar:${PORTSDIR}/foo/bar +LIB_DEPENDS= libbar.so:${PORTSDIR}/foo/bar .endif @@ -3936,7 +3990,8 @@ LIB_DEPENDS= bar:${PORTSDIR}/foo/bar В некоторых случаях для большего контроля над зависимостями используются переменные WANT_, которые позволяют указывать требования в более точной форме. - Например, взгляните на порт mail/squirrelmail. Этому порту + Например, взгляните на порт + mail/squirrelmail. Этому порту нужны несколько модулей PHP, которые перечислены в переменной USE_PHP: @@ -3948,8 +4003,8 @@ LIB_DEPENDS= bar:${PORTSDIR}/foo/bar WANT_PHP_WEB= yes Имеющиеся переменные USE_ и - WANT_ определены в файлах - /usr/ports/Mk. + WANT_ определены в файлах в + /usr/ports/Mk. @@ -3989,7 +4044,7 @@ RESOLUTION?= 300 .endif - Порт japanese/xdvi300 содержит + Порт japanese/xdvi300 содержит также все обычные патчи, файлы для пакета и так далее. Если вы введете здесь команду make, она возьмет в качестве разрешения значение по умолчанию (300) и построит порт обычным образом. @@ -4017,98 +4072,14 @@ MASTERDIR= ${.CURDIR}/../xdvi300 Страницы Справочника - Переменные MAN[1-9LN] автоматически добавят любые - страницы Справочника к файлу pkg-plist (это - означает, что вам не нужно указывать страницы - Справочника в файле pkg-plist—обратитесь к - главе о генерации файла PLIST для - получения более подробной информации). Это также позволяет на этапе - установки автоматически упаковывать и распаковывать страницы - Справочника в зависимости от значения переменной - NO_MANCOMPRESS в файле - /etc/make.conf. - - Если ваш порт пытается задать несколько имен для страниц - Справочника при помощи символических или жестких ссылок, то вы должны - использовать переменную MLINKS, чтобы указать на - это. Ссылка, установленная вашим портом, будет уничтожена и создана - заново сценарием bsd.port.mk для проверки того, - что она указывает на правильный файл. Любые страницы Справочника, - перечисленные в переменной MLINKS, не должны фигурировать в файле - pkg-plist. - - Для указания того, что страницы Справочника нужно сжимать во - время установки, используйте переменную - MANCOMPRESSED. Эта переменная может принимать три - значения - yes, no и - maybe. yes означает, что - страницы Справочника устанавливаются уже сжатыми, no - означает, что они не сжимаются и maybe означает, что - программное обеспечение принимает во внимание значение переменной - NO_MANCOMPRESS, так что сценарию - bsd.port.mk ничего дополнительно делать не - нужно. - Если ваш порт определяет корнем для файлов Справочника каталог, отличный от PREFIX, вы можете использовать - переменную MANPREFIX, чтобы задать его явно. Кроме - того, если страницы только некоторых разделов помещаются в - нестандартное место, например, в случае портов модулей языка - perl Perl, вы можете установить маршруты к справочным - страницам индивидуально, при помощи - MANsectPREFIX (где - sect принимает значения - 1-9, L или - N). - - Если страницы Справочника помещаются в подкаталоги, соответствующие - некоторому языку, то задайте название языка языка в переменной - MANLANG. Значение этой переменной по умолчанию - равно "" (то есть только английский язык). - - Вот пример, в котором приводятся все случаи. - - -MAN1= foo.1 -MAN3= bar.3 -MAN4= baz.4 -MLINKS= foo.1 alt-name.8 -MANLANG= "" ja -MAN3PREFIX= ${PREFIX}/share/foobar -MANCOMPRESSED= yes - - - Здесь указано, что этот порт устанавливает 6 файлов: - - ${MANPREFIX}/man/man1/foo.1.gz -${MANPREFIX}/man/ja/man1/foo.1.gz -${PREFIX}/share/foobar/man/man3/bar.3.gz -${PREFIX}/share/foobar/man/ja/man3/bar.3.gz -${MANPREFIX}/man/man4/baz.4.gz -${MANPREFIX}/man/ja/man4/baz.4.gz - - Кроме того, файл - ${MANPREFIX}/man/man8/alt-name.8.gz может быть, а - может и не быть установлен вашим портом. В любом случае будет создана - символическая ссылка для объединения страниц Справочника foo(1) и - alt-name(8). - - Если переведена только часть страниц справочника, вы можете - использовать некоторые переменные, созданные динамически из - содержимого MANLANG: - - MANLANG= "" de ja -MAN1= foo.1 -MAN1_EN= bar.1 -MAN3_DE= baz.3 - - Что переводится в такой список файлов: - - ${MANPREFIX}/man/man1/foo.1.gz -${MANPREFIX}/man/de/man1/foo.1.gz -${MANPREFIX}/man/ja/man1/foo.1.gz -${MANPREFIX}/man/man1/bar.1.gz -${MANPREFIX}/man/de/man3/baz.3.gz + переменную MANDIRS, чтобы указать эти каталоги. + Обратите внимание, что файлы страниц справочника следует размещать + в pkg-plist наряду с остальными файлами. + MANDIRS предназначена для автоматического + сжатия страниц справочника, так чтобы имена файлов оканчивались + на .gz. @@ -4123,7 +4094,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gz использует другое место для размещения. Однако, это не рекомендуется делать. Эти записи всего лишь содержат путь относительно PREFIX/INFO_PATH. - Например, lang/gcc34 устанавливает + Например, lang/gcc34 устанавливает файлы info в PREFIX/INFO_PATH/gcc34, и в INFO будет что-то вроде этого: @@ -4205,7 +4176,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gz WITH_OPENSSL_PORT Устанавливает версию OpenSSL из - security/openssl, + security/openssl, даже если в базовой системе последняя версия. @@ -4417,7 +4388,7 @@ CONFIGURE_ARGS+= --without-postgres .endif .if ${PORT_OPTIONS:MICU} -LIB_DEPENDS+= icuuc:${PORTSDIR}/devel/icu +LIB_DEPENDS+= libicuuc.so:${PORTSDIR}/devel/icu .endif .if ! ${PORT_OPTIONS:MEXAMPLES} @@ -4750,6 +4721,24 @@ OPT1_CFLAGS= -DTEST .if ${PORT_OPTIONS:MOPT1} USES+= gmake CFLAGS+= -DTEST +.endif + + Если установлена X_ABOVEVARIABLE_OFF, + то флаг ABOVEVARIABLE будет автоматически + выставлен при выключенном параметре X. + Например: + + OPTIONS_DEFINE= OPT1 +OPT1_USES_OFF=gmake + + соответствует: + + OPTIONS_DEFINE= OPT1 + +.include <bsd.port.options.mk> + +.if ! ${PORT_OPTIONS:MOPT1} +USES+= gmake .endif Для любого из следующих типов зависимости: @@ -4800,6 +4789,24 @@ OPT1_LIB_DEPENDS= liba.so:${PORTSDIR}/devel/a .if ${PORT_OPTIONS:MOPT1} LIB_DEPENDS+= liba.so:${PORTSDIR}/devel/a +.endif + + Если установлена X_ABOVEVARIABLE_OFF, + то зависимость типа ABOVEVARIABLE будет + добавлена при выключенном параметре X. + Например: + + OPTIONS_DEFINE= OPT1 +OPT1_LIB_DEPENDS_OFF= liba.so:${PORTSDIR}/devel/a + + соответствует: + + OPTIONS_DEFINE= OPT1 + +.include <bsd.port.options.mk> + +. if ! ${PORT_OPTIONS:MOPT1} +LIB_DEPENDS+= liba.so:${PORTSDIR}/devel/a .endif @@ -4924,8 +4931,15 @@ PORTVERSION= 1.0 Используйте макросы, которые есть в файле bsd.port.mk для обеспечения правильных прав - доступа и владения файлов в своих целях - *-install. + доступа файлов в целях *-install + порта. Устанавливайте права владения напрямую в + pkg-plist через соответствующие записи + @owner owner и + @group group. Эти операторы работают до + момента их переопределения или до конца + pkg-plist, поэтому не забывайте их + сбрасывать, когда они больше не нужны. По умолчанию владение + устанавливается для root:wheel. @@ -4987,23 +5001,35 @@ PORTVERSION= 1.0 post-install. К примеру: post-install: - ${STRIP_CMD} ${PREFIX}/bin/xdl + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xdl + + Удаление отладочной информации из нескольких + файлов: + + post-install: + .for l in geometry media body track world + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}-${l}.so.0 + .endfor Для проверки того, удалена ли отладочная информация из - установленного выполнимого файла, выполните команду &man.file.1;. - Если утилита не выдаст строку not stripped, то - файл уже обработан. Кроме того, &man.strip.1; не будет обрабатывать - программу, отладочная информация из которой уже удалена; вместо этого - утилита просто завершит свою работу. + файла, используйте &man.file.1;. Для двоичных файлов + &man.file.1; печатает stripped или + not stripped. Кроме того, &man.strip.1; + определяет, была ли уже удалена из программы отладочная + информация, и в этом случае просто завершает свою работу. Установка целого дерева файлов - Иногда существует необходимость в установке большого количества - файлов с сохранением их иерархической организации, т.е. в копировании + Иногда должно быть установлено большое количество файлов + с сохранением их иерархической организации. Например, копирование дерева каталогов целиком из WRKSRC в целевой - каталог внутри PREFIX. + каталог внутри PREFIX. Обратите внимание, + что PREFIX, EXAMPLESDIR, + DATADIR и другие переменные пути всегда + должны предваряться STAGEDIR, чтобы не + ломать staging (смотрите ). Для этой ситуации существует два макроса. Преимущество от использования этих макросов вместо команды cp @@ -5017,16 +5043,16 @@ PORTVERSION= 1.0 PREFIX/share. post-install: - ${MKDIR} ${EXAMPLESDIR} - (cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${EXAMPLESDIR}) + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + (cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}) В этом примере устанавливается содержимое каталога examples из установочных файлов производителя в надлежащее место для примеров вашего порта. post-install: - ${MKDIR} ${DATADIR}/summer - (cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} "June July August" ${DATADIR}/summer) + ${MKDIR} ${STAGEDIR}${DATADIR}/summer + (cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} "June July August" ${STAGEDIR}${DATADIR}/summer) А в этом примере будут установлены данные летних месяцев в подкаталог summer каталога @@ -5039,14 +5065,19 @@ PORTVERSION= 1.0 использовать следующую команду. post-install: - ${MKDIR} ${EXAMPLESDIR} + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} (cd ${WRKSRC}/examples && \ - ${COPYTREE_SHARE} . ${EXAMPLESDIR} "! -name Makefile") - - Обратите внимание, что эти макросы не производят добавление - устанавливаемых файлов в pkg-plist. Вам все - еще нужно их перечислить. - + ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} "! -name Makefile") + + Эти макросы не производят добавление устанавливаемых + файлов в pkg-plist. Они должны быть + добавлены туда вручную. Необязательные файлы документации + (PORTDOCS, смотрите + ) и примеров + (PORTEXAMPLES) всегда должны предваряться + в pkg-plist префиксами + %%PORTDOCS%% или + %%PORTEXAMPLES%%. @@ -5067,16 +5098,17 @@ PORTVERSION= 1.0 установленные одновременно, то вы можете использовать полное имя PKGNAME. - Сделайте установку документации зависящей от параметра - DOCS для того, чтобы пользователи могли - выключить это в файле /etc/make.conf, как - здесь: + Поскольку устанавливаются только файлы, перечисленные в + pkg-plist, безопасным способом будет + устанавливать документацию в STAGEDIR + всегда (смотрите ). Следовательно, + блоки .if нужны только для файлов + достаточно большого размера, установка которых влечёт + значительные накладные расходы на операции ввода/вывода. post-install: -.if ${PORT_OPTIONS:MDOCS} - ${MKDIR} ${DOCSDIR} - ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${DOCSDIR} - .endif + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR} Вот несколько полезных переменных и то, как они преобразуются по умолчанию при использовании в Makefile: @@ -5166,10 +5198,10 @@ PORTVERSION= 1.0 EXAMPLESDIR являются PORTDATA и PORTEXAMPLES соответственно. - Кроме того, вы можете использовать файл - pkg-message для вывода сообщений во - время установки. За подробной информацией обратитесь к разделу об использовании - pkg-message. + Во время установки выводится содержимое + pkg-message. За подробной информацией + обратитесь к разделу об + использовании pkg-message. Файл pkg-message не нужно добавлять в pkg-plist. @@ -5212,6 +5244,72 @@ PORTVERSION= 1.0 создании порта. Этот раздел описывает наиболее часто встречающиеся из них. + + Staging + + bsd.port.mk ожидает от портов работу + с каталогом сборки. Это означает, что порт + должен устанавливать файлы не напрямую в назначенные каталоги + (то есть, например, под PREFIX), а в + отдельный каталог, из которого затем собирается пакет. + Во многих случаях привилегии root для этого не требуются, + что делает возможным сборку пакетов из-под непривилегированного + пользователя. В режиме staging порт собирается и устанавливается + в каталог сборки STAGEDIR. Пакет создается + из каталога сборки и затем устанавливается в систему. + В инструментарии automake такая концепция именуется + DESTDIR; в прочем, в &os; + DESTDIR имеет собственное значение + (смотрите ). + + Если для порта всё ещё требуются системные привилегии при + выполнении цели package, то в + Makefile должна быть добавлена следующая + строка: + + NEED_ROOT= yes + + Метапорты, то есть порты, которые не устанавливают файлы + непосредственно, а только зависят от других портов, должны + по возможности избегать распаковки &man.mtree.8; в каталог + сборки. Это основная иерархия каталогов пакета, и эти пустые + каталоги будут выглядеть лишними. Для предотвращения + распаковки &man.mtree.8; добавьте эту строку: + + NO_MTREE= yes + + Staging задействуется посредством добавления переменной + STAGEDIR слева от путей, которые используются + в целях pre-install, + do-install и + post-install (смотрите примеры + в книге). Обычно сюда относятся + PREFIX, ETCDIR, + DATADIR, EXAMPLESDIR, + MANPREFIX, DOCSDIR и + так далее. Каталоги должны создаваться при выполнении цели + post-install. Избегайте + использования абсолютных путей, когда это возможно. + + При создании символический ссылки STAGEDIR + должен ставиться только для пути назначения. Например: + + ${LN} -sf libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so + + Первоначальный путь + ${PREFIX}/lib/libfoo.so.42 выглядит + нормально, но по факту может быть неправильным. Абсолютные + пути могут указывать на неподходящее место, например, когда + удалённая файловая система смонтирована по + NFS как непривилегированная точка + монтирования. Относительные пути реже подвержены проблемам + и часто намного короче. + + Порты, устанавливающие модули ядра, должны предварять путь + установки (по умолчанию /boot/modules) + переменной STAGEDIR. + + Динамические библиотеки @@ -5248,10 +5346,10 @@ PORTVERSION= 1.0 добры перепроверить, т.к. часто это вовсе не является необходимым и может быть решено иначе с помощью -rpath или установки LD_RUN_PATH во время компоновки (для - примера смотрите lang/moscow_ml), + примера смотрите lang/moscow_ml), или с помощью сценария-обёртки, который выставляет LD_LIBRARY_PATH перед запуском исполняемого файла - как это делает www/seamonkey. + как это делает www/seamonkey. При установке 32-разрядных библиотек на 64-разрядной системе используйте вместо этого USE_LDCONFIG32. @@ -5268,7 +5366,8 @@ PORTVERSION= 1.0 - Порты с ограничениями на распространение + Порты с ограничениями на распространение или с + правовым обременением Лицензии бывают разных видов, и некоторые накладывают ограничение на то, как приложение может быть оформлено в виде пакета, может ли @@ -5277,7 +5376,7 @@ PORTVERSION= 1.0 На вас, как на человека, портирующего приложение, ложится обязанность прочесть лицензионные соглашения на программное - обеспечение и удостовериться, что проект FreeBSD не будет являться + обеспечение и удостовериться, что проект &os; не будет являться их нарушителем, если будет заниматься распространением исходного кода или в бинарном виде по FTP/HTTP или на CD-ROM. Если у вас возникли сомнения, то, пожалуйста, обратитесь в @@ -5375,13 +5474,32 @@ PORTVERSION= 1.0 противном случае она пуста. Если ограничены в распространении лишь некоторые из дистрибутивных файлов, то в этой переменной задаётся их список. + - Обратите внимание, что при включении порта в дерево исходных - текстов системы коммиттер должен добавить запись в файл - /usr/ports/LEGAL для каждого из перечисленных - файлов, в точности описав, что подразумевают ограничения. + + <varname>LEGAL_TEXT</varname> + + Если порт имеет правовое обременение, которое не + покрывается перечисленными выше переменными, то переменной + LEGAL_TEXT следует присвоить строку с + описанием данного обременения. Например, если было получено + особое разрешение для &os; на распространение двоичного + файла, то эта переменная должна содержать соответствующее + указание. + + <filename>/usr/ports/LEGAL</filename> и + <varname>LEGAL</varname> + + Порт, содержащий любую из перечисленных выше переменных, + также должен быть добавлен в /usr/ports/LEGAL. + Первый столбец содержит шаблон совпадения с дистрибутивными + файлами, имеющими ограничения на распространение. Второй + столбец содержит корень порта. Третий столбец содержит + вывод make -VLEGAL. + + Примеры использования @@ -5415,20 +5533,14 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi CPU, тем самым делая построение портов более быстрым и эффективным. - Это достигается путем передачи флага -jX - команде &man.make.1;. К сожалению, не все порты поддерживают - параллельную сборку достаточно хорошо. Поэтому требуется включать - этот механизм явным образом путем добавления строки - MAKE_JOBS_SAFE=yes в Makefile - где-нибудь после раздела с объявлениями зависимостей. - - Другой опцией управления этим механизмом с точки зрения - сопровождающего является MAKE_JOBS_UNSAFE=yes. + Это достигается путём передачи флага -jX + команде &man.make.1;. Такое построение портов является + поведением по умолчанию. К сожалению, не все порты поддерживают + параллельную сборку достаточно хорошо, и поэтому может + потребоваться выключить этот механизм явным образом путём + добавления переменной MAKE_JOBS_UNSAFE=yes. Эта переменная используется в случае, когда известно, что порт - ломается с -jX, и пользователь форсирует - использование многопроцессорной компиляции для всех портов с - переменной FORCE_MAKE_JOBS=yes в - /etc/make.conf. + ломается с -jX. @@ -5613,6 +5725,38 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi + + Переменные построения <command>cmake</command>, + устанавливаемые пользователем + + + + + Переменная + Значение + + + + + + CMAKE_VERBOSE + Разрешает подробный вывод сообщений при + построении. Значение по умолчанию не задано, + если не заданы BATCH или + PACKAGE_BUILDING. + + + + CMAKE_NOCOLOR + Запрещает цветной вывод сообщений при + построении. Значение по умолчанию не задано, + если не заданы BATCH или + PACKAGE_BUILDING. + + + +
+ CMake поддерживает следующие профили построения: Debug, Release, @@ -5628,7 +5772,8 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi в нижнем регистре в PLIST_SUB и должно использоваться, если порт устанавливает файлы *.cmake в зависимости от типа построения - (для примера посмотрите на deskutils/strigi). Следует + (для примера посмотрите на + deskutils/strigi). Следует учитывать, что некоторые проекты могут определять собственные профили построения и/или форсировать конкретный тип построения через установку CMAKE_BUILD_TYPE в файлах @@ -5917,7 +6062,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject Если для вашего порта требуется gettext, добавьте USES= gettext, и ваш порт - унаследует зависимость от devel/gettext. + унаследует зависимость от devel/gettext. содержит перечень других значений для использования gettext. @@ -6002,7 +6147,8 @@ PLIST_SUB+= NLS="@comment " перечисленные в PORTSDIR/Templates/BSD.local.dist. Каталоги для - множества других языков управляются с помощью порта devel/gettext. Обратите внимание + множества других языков управляются с помощью порта + devel/gettext. Обратите внимание на его pkg-plist и посмотрите, куда данный порт собирается установить файлы каталогов сообщений для единственного в своем роде языка. @@ -6170,6 +6316,18 @@ PLIST_SUB+= NLS="@comment " p5-IO-Tee>=0.64:${PORTSDIR}/devel/p5-IO-Tee + + Для портов Perl, которые устанавливают страницы справочника, + в pkg-plist можно использовать макрос + PERL5_MANx (где + x принимает значение от + 1 до 9). Например, + + lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz + + можно заменить на + + %%PERL5_MAN3%%/AnyEvent::I3.3.gz @@ -6250,9 +6408,9 @@ USE_XORG= x11 xpm Если вашему порту требуется Motif, задайте переменную USES= motif в файле Makefile. Реализация Motif, используемая по умолчанию, находится в - x11-toolkits/open-motif. + x11-toolkits/open-motif. Пользователи вместо этого могут выбрать - x11-toolkits/lesstif через + x11-toolkits/lesstif через установку переменной WANT_LESSTIF. Переменная MOTIFLIB будет установлена в @@ -6392,9 +6550,9 @@ USE_XORG= x11 xpm Использование GNOME Для задания того, какие компоненты GNOME использует конкретный - порт, проект FreeBSD/GNOME использует собственный набор переменных. - На странице проекта FreeBSD/GNOME - размещён + порт, проект &os;/GNOME использует собственный набор переменных. + На странице проекта &os;/GNOME размещён + исчерпывающий список этих переменных. @@ -6410,16 +6568,6 @@ USE_XORG= x11 xpm - - USE_QT_VER - - Порт использует инструментальный пакет Qt. - Единственным возможным значением является - 3. Соответствующие - параметры передаются в сценарий configure - и make. - - USE_QT4 @@ -6536,19 +6684,6 @@ USE_XORG= x11 xpm - Когда переменная USE_QT_VER определена - со значением 3, - сценарию configure можно передавать некоторые - полезные настройки: - - CONFIGURE_ARGS+= --with-qt-includes=${QT_PREFIX}/include \ - --with-qt-libraries=${QT_PREFIX}/lib \ - --with-extra-libs=${LOCALBASE}/lib \ - --with-extra-includes=${LOCALBASE}/include -CONFIGURE_ENV+= MOC="${MOC}" LIBS="${QTCFGLIBS}" \ - QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}" -CPPFLAGS+= ${QTCPPFLAGS} - При заданной переменной USE_QT4 применяются следующие настройки: @@ -6566,7 +6701,7 @@ PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \
- Выбор компонентов (только для Qt 4.x) + Выбор компонентов В переменной USE_QT4 должны указываться зависимости от отдельных инструментов и библиотек Qt 4. К каждому @@ -6737,27 +6872,61 @@ PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ - - Прочие соображения + + Использование <command>qmake</command> + + + Переменные для портов, использующих + <command>qmake</command> + + + + + Название + Описание + + + + + + QMAKE_ARGS + Спефицичные для порта флаги + QMake для передачи + программе qmake. + - Если вместе с приложением вместо configure + + QMAKE_ENV + Переменные окружения, устанавливаемые для + программы qmake. По умолчанию + соответствует значению + ${CONFIGURE_ENV}. + + + + QMAKE_PRO + Название файла проекта .pro. + По умолчанию принимает пустое значение (с + использованием автоопределения). + + + +
+ + Если вместе с приложением вместо configure поставляется файл .pro, вы можете использовать следующее: - HAS_CONFIGURE= yes + USES= qmake +USE_QT4= qmake_build -do-configure: - @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \ - ${QMAKE} ${QMAKEFLAGS} PREFIX=${PREFIX} texmaker.pro - - Обратите внимание на сходство со строкой qmake - из прилагаемого сценария BUILD.sh. Передача - CONFIGURE_ENV обеспечивает видимость переменной - QMAKESPEC для qmake, без - которой команда не может работать. qmake - порождает стандартные Makefile, и, таким образом, отпадает - необходимость в написании своих собственных целей - build. + USES=qmake указывает порту на + использование qmake в процессе + конфигурации. Обратите внимание, что + USES=qmake не подразумевает зависимость + от Qt 4 qmake. Для этого в значении + USE_QT4 должен присутствовать компонент + qmake_build. Приложения Qt часто пишутся в кроссплатформенной манере, и X11/Unix часто не является для них платформой разработки, что в @@ -6774,8 +6943,8 @@ do-configure: добавила каталоги в пути поиска заголовочных файлов и библиотек через командную строку. К примеру: - ${QMAKE} ${QMAKEFLAGS} PREFIX=${PREFIX} INCLUDEPATH+=${LOCALBASE}/include \ - LIBS+=-L${LOCALBASE}/lib sillyapp.pro + QMAKE_ARGS+= INCLUDEPATH+=${LOCALBASE}/include \ + LIBS+=-L${LOCALBASE}/lib
@@ -6783,7 +6952,7 @@ do-configure: Иногда данные, такие как иконки и файлы .desktop, устанавливаются по умолчанию в каталоги, которые не просматриваются XDG-совместимыми приложениями. Примером - является editors/texmaker - + является editors/texmaker - взгляните на patch-texmaker.pro из каталога files этого порта, который можно взять в качестве шаблона исправления этого непосредственно в файле @@ -6951,7 +7120,7 @@ do-configure: - smokekde + smokekde Библиотеки KDE SMOKE @@ -7006,7 +7175,8 @@ USE_QT4= moc_build qmake_build rcc_build uic_build В Коллекции Портов присутствуют несколько JDK различных разработчиков и разных версий. Если ваш порт должен использовать одну из этих версий, то вы должны указать, какую именно. Самой - последней версией и версией по умолчанию является java/openjdk6. + последней версией и версией по умолчанию является + java/openjdk6. Переменные, которые которые могут задаваться портами, @@ -7321,8 +7491,35 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> использовать уже установленные (из каталога <filename>${JAVAJARDIR}</filename>).</para> + <para>При портировании приложения &java;, для запуска сервиса + которого требуется сервер приложений, такой как + <package role="port">www/tomcat7</package>, для производителя + в порядке вещей является распространение файла + <filename>.war</filename>. Файл <filename>.war</filename> + — это Веб-приложение АРхивированное и оно распаковывается + при вызове данным приложением. Избегайте добавлять файлы + <filename>.war</filename> в <filename>pkg-plist</filename>. + Это не является наилучшим решением. Сервер приложений + производит расширение архива <filename>war</filename> без + должной его очистки при удалении порта. Более подходящим + способом работы с этим файлом будет распаковать архив, + установить файлы и добавить их в + <filename>pkg-plist</filename>.</para> + + <programlisting>TOMCATDIR= ${LOCALBASE}/apache-tomcat-7.0 +WEBAPPDIR= myapplication + +post-extract: + @${MKDIR} ${WRKDIR}/${PORTDIRNAME} + @${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME} + +do-install: + cd ${WRKDIR} && \ + ${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME} + @cd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \* ${WEBAPPDIR}/${PORTDIRNAME}</programlisting> + <para>Вне зависимости от типа вашего порта (библиотека это или - приложение), дополнительная документация должна быть устанавливаться + приложение), дополнительная документация должна устанавливаться <link linkend="install-documentation">в тоже самое место</link>, что и для других портов. Известно, что в зависимости от используемой версии JDK утилита JavaDoc генерирует различные наборы файлов. Для @@ -7357,7 +7554,8 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> в файле <filename>bsd.java.mk</filename>. Если вы предположите, что вашему порту требуется менее тривиальная поддержка Java, пожалуйста, взгляните сначала на <link xlink:href="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.java.mk?view=markup">журнал - изменений bsd.java.mk в SVN</link>, так как для + изменений bsd.java.mk в + <application>Subversion</application></link>, так как для документирования последних изменений требуется какое-то время. Затем, если вы думаете, что не хватающая вам поддержка окажется полезной для многих других портов Java, обсудите ваш вопрос в @@ -7784,23 +7982,6 @@ _DOCSDIR= . </entry> </row> - <row> - <entry><varname>USE_TWISTED</varname></entry> - - <entry>Добавить зависимость от twistedCore. Перечень требуемых - компонентов может быть указан как значение этой переменной. - Пример: <literal>web lore pair flow</literal></entry> - </row> - - <row> - <entry><varname>USE_ZOPE</varname></entry> - - <entry>Добавить зависимость от Zope, платформы веб приложений. - Изменяет зависимость от Python на Python 2.7. Переменная - <varname>ZOPEBASEDIR</varname> содержит директорию с - установленным Zope.</entry> - </row> - </tbody> </tgroup> </table> @@ -7808,6 +7989,32 @@ _DOCSDIR= . <para>Полный перечень доступных переменных можно найти в <filename>/usr/ports/Mk/bsd.python.mk</filename>.</para> + <para>Некоторые приложения на Python заявляют о поддержке + <varname>DESTDIR</varname> (требуется для staging), которая + не работает (в частности, у Mailman до версии 2.1.16). + Ограничение можно обойти путём перекомпиляции сценариев. + Например, это можно выполнить в цели + <buildtarget>post-build</buildtarget>. С учётом того, что после + установки предполагаемое место размещения сценариев Python + будет находиться в <varname>PYTHONPREFIX_SITELIBDIR</varname>, + можно применить следующее решение:</para> + + <programlisting>(cd ${STAGEDIR}${PREFIX} \ + && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ + -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})</programlisting> + + <para>Эта команда перекомпилирует исходный текст с заменой путей + на относительные к каталогу сборки, а также дописывает значение + <varname>PREFIX</varname> перед именем файла, записанного в + выходном файле с промежуточным представлением, с использованием + <literal>-d</literal>. <literal>-f</literal> требуется для + безусловной перекомпиляции, а <literal>:S;${PREFIX}/;;</literal> + удаляет префиксы из значения переменной + <varname>PYTHONPREFIX_SITELIBDIR</varname>, чтобы сделать его + относительным к <varname>PREFIX</varname>.</para> + + <para>Для этого требуется Python 2.7 или выше. Это не + работает с Python 2.6.</para> </sect1> <sect1 xml:id="using-tcl"> @@ -8051,65 +8258,113 @@ _DOCSDIR= . <para>Переменная <varname>USE_SDL</varname> используется для автоматической настройки зависимостей для портов, использующих библиотеки на основе SDL, такие как - <package>devel/sdl12</package> или - <package>x11-toolkits/sdl_gui</package>.</para> + <package role="port">devel/sdl12</package> или + <package role="port">graphics/sdl_image</package>.</para> - <para>На данный момент распознаются следующие SDL-библиотеки:</para> + <para>Для версии 1.2 + на данный момент распознаются следующие SDL-библиотеки:</para> <itemizedlist> - <listitem> - <para>sdl: <package>devel/sdl12</package></para> - </listitem> + <listitem> + <para>sdl: <package + role="port">devel/sdl12</package></para> + </listitem> - <listitem> - <para>gfx: <package>graphics/sdl_gfx</package></para> - </listitem> + <listitem> + <para>console: <package + role="port">devel/sdl_console</package></para> + </listitem> - <listitem> - <para>gui: <package>x11-toolkits/sdl_gui</package></para> - </listitem> + <listitem> + <para>gfx: <package + role="port">graphics/sdl_gfx</package></para> + </listitem> - <listitem> - <para>image: <package>graphics/sdl_image</package></para> - </listitem> + <listitem> + <para>image: <package + role="port">graphics/sdl_image</package></para> + </listitem> - <listitem> - <para>ldbad: <package>devel/sdl_ldbad</package></para> - </listitem> + <listitem> + <para>mixer: <package + role="port">audio/sdl_mixer</package></para> + </listitem> - <listitem> - <para>mixer: <package>audio/sdl_mixer</package></para> - </listitem> + <listitem> + <para>mm: <package + role="port">devel/sdlmm</package></para> + </listitem> - <listitem> - <para>mm: <package>devel/sdlmm</package></para> - </listitem> + <listitem> + <para>net: <package + role="port">net/sdl_net</package></para> + </listitem> - <listitem> - <para>net: <package>net/sdl_net</package></para> - </listitem> + <listitem> + <para>pango: <package + role="port">x11-toolkits/sdl_pango</package></para> + </listitem> - <listitem> - <para>sound: <package>audio/sdl_sound</package></para> - </listitem> + <listitem> + <para>sound: <package + role="port">audio/sdl_sound</package></para> + </listitem> - <listitem> - <para>ttf: <package>graphics/sdl_ttf</package></para> - </listitem> + <listitem> + <para>ttf: <package + role="port">graphics/sdl_ttf</package></para> + </listitem> + </itemizedlist> + + <para>Для версии 2.0 + на данный момент распознаются следующие SDL-библиотеки:</para> + + <itemizedlist> + <listitem> + <para>sdl: <package + role="port">devel/sdl20</package></para> + </listitem> + + <listitem> + <para>gfx: <package + role="port">graphics/sdl2_gfx</package></para> + </listitem> + + <listitem> + <para>image: <package + role="port">graphics/sdl2_image</package></para> + </listitem> + + <listitem> + <para>mixer: <package + role="port">audio/sdl2_mixer</package></para> + </listitem> + + <listitem> + <para>net: <package + role="port">net/sdl2_net</package></para> + </listitem> + + <listitem> + <para>ttf: <package + role="port">graphics/sdl2_ttf</package></para> + </listitem> </itemizedlist> <para>Таким образом, если порт имеет зависимость от - <package>net/sdl_net</package> и - <package>audio/sdl_mixer</package>, то строка будет + <package role="port">net/sdl_net</package> и + <package role="port">audio/sdl_mixer</package>, то строка будет следующей:</para> <programlisting>USE_SDL= net mixer</programlisting> - <para>Зависимость от порта <package>devel/sdl12</package>, который требуется для <package>net/sdl_net</package> и <package>audio/sdl_mixer</package> будет также автоматически - добавлен.</para> + <para>Зависимость от порта <package role="port">devel/sdl12</package>, + который требуется для <package role="port">net/sdl_net</package> + и <package role="port">audio/sdl_mixer</package>, будет также + автоматически добавлен.</para> - <para>Если вы используете <varname>USE_SDL</varname>, то - он автоматически:</para> + <para>Если вы используете <varname>USE_SDL</varname> с элементами + SDL 1.2, то он автоматически:</para> <itemizedlist> <listitem> @@ -8129,6 +8384,27 @@ _DOCSDIR= . </listitem> </itemizedlist> + <para>Если вы используете <varname>USE_SDL</varname> с элементами + SDL 2.0, то он автоматически:</para> + + <itemizedlist> + <listitem> + <para>Добавляет зависимость от + <application>sdl2-config</application> к + <varname>BUILD_DEPENDS</varname></para> + </listitem> + + <listitem> + <para>Добавляет переменную <varname>SDL2_CONFIG</varname> к + <varname>CONFIGURE_ENV</varname></para> + </listitem> + + <listitem> + <para>Добавляет зависимости от указанных библиотек к + <varname>LIB_DEPENDS</varname></para> + </listitem> + </itemizedlist> + <para>Для проверки наличия библиотеки SDL вы можете делать это при помощи переменной <varname>WANT_SDL</varname>:</para> @@ -8233,19 +8509,22 @@ USE_SDL+= mixer <row> <entry><literal>2.4</literal></entry> - <entry><package>x11-toolkits/wxgtk24</package></entry> + <entry><package + role="port">x11-toolkits/wxgtk24</package></entry> </row> <row> <entry><literal>2.6</literal></entry> - <entry><package>x11-toolkits/wxgtk26</package></entry> + <entry><package + role="port">x11-toolkits/wxgtk26</package></entry> </row> <row> <entry><literal>2.8</literal></entry> - <entry><package>x11-toolkits/wxgtk28</package></entry> + <entry><package + role="port">x11-toolkits/wxgtk28</package></entry> </row> </tbody> </tgroup> @@ -8845,19 +9124,22 @@ PLIST_SUB+= VERSION="${VER_STR}" <row> <entry><literal>4.0</literal></entry> - <entry><package>lang/lua4</package></entry> + <entry><package + role="port">lang/lua4</package></entry> </row> <row> <entry><literal>5.0</literal></entry> - <entry><package>lang/lua50</package></entry> + <entry><package + role="port">lang/lua50</package></entry> </row> <row> <entry><literal>5.1</literal></entry> - <entry><package>lang/lua</package></entry> + <entry><package + role="port">lang/lua</package></entry> </row> </tbody> </tgroup> @@ -9335,55 +9617,205 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" </sect2> </sect1> + <sect1 xml:id="using-iconv"> + <title>Использование <command>iconv</command> + + После 10-08-2013 (254273) + в составе &os;  10-CURRENT и более новых версий имеется + собственный iconv. В более + ранних версиях дополнительной зависимостью выступал + converters/libiconv. + + Для программного обеспечения, которому нужен + iconv, определите + USES=iconv. Версии &os; до + 10-CURRENT от 13-08-2013 (254273) не + имеют собственного iconv. На этих более + ранных версиях будет автоматически добавлена зависимость от + converters/libiconv. + + Когда порт задаёт USES=iconv, становятся + доступными следующие переменные: + + + + + + Имя переменной + Назначение + Значение до &os; 10-CURRENT + 254273 (13-08-2013) + Значение после &os; 10-CURRENT + 254273 (13-08-2013) + + + + + + ICONV_CMD + Каталог размещения двоичного файла + iconv + ${LOCALBASE}/bin/iconv + /usr/bin/iconv + + + + ICONV_LIB + Аргумент ld для компоновки с + libiconv (если нужно) + -liconv + (пусто) + + + + ICONV_PREFIX + Каталог размещения реализации + iconv (используется для сценариев + конфигурации) + ${LOCALBASE} + /usr + + + + ICONV_CONFIGURE_ARG + Параметр предварительно собранной конфигурации + для сценариев конфигурации + --with-libiconv-prefix=${LOCALBASE} + (пусто) + + + + ICONV_CONFIGURE_BASE + Параметр предварительно собранной конфигурации + для сценариев конфигурации + --with-libiconv=${LOCALBASE} + (пусто) + + + + + + В следующих двух примерах демонстрируется автоматическое + присвоение переменным правильных значений для систем, + использующих converters/libiconv + или собственный iconv. + + + Простое использование <command>iconv</command> + + USES= iconv +LDFLAGS+= -L${LOCALBASE}/lib ${ICONV_LIB} + + + + Использование <command>iconv</command> с + <command>configure</command> + + USES= iconv +CONFIGURE_ARGS+=${ICONV_CONFIGURE_ARG} + + + Как показано выше, ICONV_LIB имеет + пустое значение с собственным iconv. Эту + особенность можно использовать для обнаружения собственного + iconv с соответствующими действиями. + + Иногда в программе параметр ld или путь + поиска жёстко заданы в Makefile или + сценарии конфигурации. Для решения этой проблемы можно + использовать следующий подход: + + + Исправление жёстко заданного + <literal>-liconv</literal> + + USES= iconv + +post-patch: + @${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile + + + В некоторых случаях необходимо установить альтернативные + значения или выполнить операции в случае использования + собственного iconv. Перед проверкой + значения ICONV_LIB обязан быть подключён + bsd.port.pre.mk: + + + Проверка доступности собственного + <command>iconv</command> + + USES= iconv + +.include <bsd.port.pre.mk> + +post-patch: +.if empty(ICONV_LIB) + # обнаружен собственный iconv + @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh +.endif + +.include <bsd.port.post.mk> + + + Использование Xfce Переменная USE_XFCE используется для автоматической конфигурации зависимостей для портов, использующих библиотеки или приложения на основе Xfce, такие как - x11-toolkits/libxfce4gui и - x11-wm/xfce4-panel. + x11-toolkits/libxfce4gui и + x11-wm/xfce4-panel. В настоящее время распознаются следующие библиотеки и приложения Xfce: - libexo: x11/libexo + libexo: x11/libexo - libgui: x11-toolkits/libxfce4gui + libgui: x11-toolkits/libxfce4gui - libutil: x11/libxfce4util + libutil: x11/libxfce4util - libmcs: x11/libxfce4mcs + libmcs: x11/libxfce4mcs - mcsmanager: sysutils/xfce4-mcs-manager + mcsmanager: sysutils/xfce4-mcs-manager - panel: x11-wm/xfce4-panel + panel: x11-wm/xfce4-panel - thunar: x11-fm/thunar + thunar: x11-fm/thunar - wm: x11-wm/xfce4-wm + wm: x11-wm/xfce4-wm - xfdev: dev/xfce4-dev-tools + xfdev: dev/xfce4-dev-tools - Распознаются следующие дополнительные параметры: @@ -9401,7 +9833,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" Следовательно, если у порта имеется зависимость от - sysutils/xfce4-mcs-manager, и + sysutils/xfce4-mcs-manager, и порт требует специальных CPPFLAGS в своем окружении configure, то синтаксис будет следующим: @@ -9512,7 +9944,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" Если переменная установлена в yes, добавляет зависимость от порта - databases/db41. + databases/db41. Также переменной можно присвоить значения: 2, 3, 40, 41, 42, 43, 44, 46, 47, 48 или 51. Вы можете объявить диапазон принимаемых значений, USE_BDB=42+ @@ -9525,7 +9957,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" Если переменная установлена в yes, добавляет зависимость от порта - databases/mysql55-client. + databases/mysql55-client. Как связанная переменная, WANT_MYSQL_VER может быть установлена в значение 323, 40, 41, 50, 51, 52, 55 или 60. @@ -9535,7 +9967,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" USE_PGSQL Если установлена в yes, добавляет - зависимость от порта databases/postgresql90-client. + зависимость от порта databases/postgresql90-client. Как связанная переменная, WANT_PGSQL_VER может быть установлена в значение 83, 84, 90, 91 или 92. Вы можете указать @@ -9549,7 +9981,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" USE_SQLITE Если переменная имеет значение yes, - добавляет зависимость от порта databases/sqlite3. + добавляет зависимость от порта databases/sqlite3. Переменная может принимать значения: 3, 2. @@ -9584,14 +10016,6 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" %%PREFIX%% и %%LOCALBASE%%. Подробнее о SUB_LIST в соответствующей главе. - До &os; 6.1-RELEASE интеграция с &man.rcorder.8; доступна - через использование USE_RCORDER вместо - USE_RC_SUBR. Однако, использовать этот метод - не нужно, если ваш порт не включает опцию по своей установке в - основную систему или службе не нужно запускаться до выполнения - сценария FILESYSTEMS из rc.d - основной системы. - Начиная с &os; 6.1-RELEASE локальные сценарии rc.d (включая установленные из портов) включены в общий &man.rcorder.8; основной системы. @@ -9672,11 +10096,6 @@ run_rc_command "$1" _enable является обязательной; значением по умолчанию должно быть ":". - - Новые сценарии следует добавлять без окончания - .sh. - - Контрольный список перед внесением изменений @@ -9685,12 +10104,16 @@ run_rc_command "$1" сверьтесь со следующим контрольным списком, чтобы убедиться, что порт для этого готов. + Большинство из этих проверок умеет выполнять порт + devel/rclint, но это не + является заменой надлежащему просмотру. + Если это новый файл, заканчивается ли он на .sh? Если это так, то имя файла должно быть изменено на file.in, поскольку - новые файлы rc.d не могут оканчиваться + файлы rc.d не могут оканчиваться на такое расширение. @@ -9717,7 +10140,7 @@ run_rc_command "$1" Содержит ли строка REQUIRE значение LOGIN? Это условие обязательно для сценариев, работающих не - из под суперпользователя. Если сценарий запускается из-под + из-под суперпользователя. Если сценарий запускается из-под суперпользователя, то стоит ли его запускать до LOGIN? Если нет, то его следует запускать после, так чтобы мы могли свободно сгруппировать локальные @@ -9732,7 +10155,7 @@ run_rc_command "$1" Убедитесь в том, что в сценарии отсутствует - KEYWORD: FreeBSD. Это перестало быть + KEYWORD: &os;. Это перестало быть нужным и нежелательно уже много лет. Это также служит индикатором того, что новый сценарий был скопирован со старого, поэтому особое внимание должно быть уделено при @@ -9855,9 +10278,11 @@ run_rc_command "$1" компиляции нужны файлы с исходными текстами ядра. Ниже указан корректный способ определения, установлены ли они пользователем: - .if !exists(${SRC_BASE}/sys/Makefile) -IGNORE= requires kernel sources to be installed -.endif + USES= kmod + + Кроме этой проверки, kmod заботится о + большинстве пунктов, которые должны учитываться в этих + портах. @@ -9923,7 +10348,7 @@ PLIST_SUB+= X11="@comment " %%X11%%bin/foo-gui - Эта подстановка (также, как и добавление любых справочных страниц) будет сделана + Эта подстановка будет сделана между выполнением целей pre-install и do-install, посредством чтения файла PLIST и записью в файл @@ -9990,7 +10415,8 @@ lib/X11/oneko/sounds/cat.au @dirrmtry share/doc/gimp Эта команда не выведет никаких сообщений об ошибках и не вызовет - аварийного завершения работы &man.pkg.delete.1;, даже если + аварийного завершения работы pkg delete + (см. &man.pkg-delete.8;), даже если каталог ${PREFIX}/share/doc/gimp не пуст из-за того, что другие порты установили сюда какие-то файлы. @@ -10001,7 +10427,8 @@ lib/X11/oneko/sounds/cat.au Пустым каталогам, создаваемым во время установки порта, нужно особое внимание. Они не будут созданы при установке пакета, потому - что пакеты содержат только файлы, а &man.pkg.add.1; создает для них + что пакеты содержат только файлы, а pkg add + и pkg install создают для них каталоги по мере надобности. Чтобы убедиться, что пустой каталог создается при установке пакета, добавьте эту строку в pkg-plist перед соответствующей строкой @@ -10019,7 +10446,7 @@ lib/X11/oneko/sounds/cat.au PREFIX/etc (или куда-то еще), не делайте их простого перечисления в файле pkg-plist. Это приведёт к тому, что по команде - &man.pkg.delete.1; или при новой установке файлы, + pkg delete или при новой установке файлы, тщательно отредактированные и настроенные пользователем, будут уничтожены. @@ -10036,7 +10463,7 @@ lib/X11/oneko/sounds/cat.au post-install: @if [ ! -f ${PREFIX}/etc/orbit.conf ]; then \ - ${CP} -p ${PREFIX}/etc/orbit.conf.sample ${PREFIX}/etc/orbit.conf ; \ + ${CP} -p ${PREFIX}/etc/orbit.conf.sample ${STAGEDIR}${PREFIX}/etc/orbit.conf ; \ fi Добавьте по три строки в pkg-plist для @@ -10065,7 +10492,7 @@ etc/orbit.conf.sample Для получения дополнительной инфорации по использованию %D и прочих маркеров подстановки обратитесь - к странице Справочника &man.pkg.create.1;. + к странице Справочника &man.pkg-create.8;. Если существует действительно стоящая причина не устанавливать рабочий файл конфигурации по умолчанию, уберите строку @@ -10111,53 +10538,18 @@ etc/orbit.conf.sample которые изменяют список упаковки на основе версии используемого им программного обеспечения (например, порты, которые порождают документы при помощи Javadoc). - - Сопровождающим, которые предпочитают динамические списки - упаковки, рекомендуется добавлять в свои порты новую цель, - которая производит файл pkg-plist, чтобы - пользователи могли изучать содержимое. - Автоматическое создание списка упаковки Первым делом убедитесь, что ваш порт практически полностью - завершён и осталось создать только pkg-plist. - - Далее создайте временное дерево каталогов, куда может быть - установлен ваш порт, и установите все зависимости. + завершён и осталось создать только pkg-plist. + После этого вы можете запустить make makeplist + для автоматического создания pkg-plist. + Содержимое этого файла должно быть дважды перепроверено. - &prompt.root; mkdir /var/tmp/`make -V PORTNAME` -&prompt.root; mtree -U -f `make -V MTREE_FILE` -d -e -p /var/tmp/`make -V PORTNAME` -&prompt.root; make depends PREFIX=/var/tmp/`make -V PORTNAME` - - Сохраните структуру каталогов в новом файле. - - &prompt.root; (cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort > OLD-DIRS - - Создайте пустой файл pkg-plist: - - &prompt.root; :>pkg-plist - - Если ваш порт принимает во внимание PREFIX (а он - должен это делать), то тогда вы можете установить порт и создать список - упаковки. - - &prompt.root; make install PREFIX=/var/tmp/`make -V PORTNAME` -&prompt.root; (cd /var/tmp/`make -V PORTNAME` && find -d * \! -type d) | sort > pkg-plist - - Кроме того, в список упаковки вы должны добавить все вновь - созданные каталоги. - - &prompt.root; (cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist - - И наконец, вам нужно вручную отшлифовать список упаковки; его - создание автоматизировано не полностью. Страницы - справочной системы должны быть перечислены в файле - Makefile порта в переменных - MANn, а не в списке - упаковки. Пользовательские конфигурационные файлы должны быть удалены + Пользовательские конфигурационные файлы должны быть удалены или быть установлены как filename.sample. Файл info/dir включать в список не нужно, но @@ -10165,33 +10557,6 @@ etc/orbit.conf.sample install-info, так, как это описано в разделе о файлах в формате info. Все библиотеки, устанавливаемые портом, должны быть перечислены так, как это описано в разделе о динамических библиотеках. - - Как альтернативу, можно использовать скрипт plist - из /usr/ports/Tools/scripts/ для автоматического - построения списка упаковки. Скрипт plist - это - сценарий на Ruby, который автоматизирует - большинство ручных операций, изложенных в предыдущем параграфе. - - Первый шаг такой же как выше: взять - первые три строки, - mkdir, mtree и - make depends. Затем собрать и установить - порт: - - &prompt.root; make install PREFIX=/var/tmp/`make -V PORTNAME` - - И позволить plist создать файл - pkg-plist: - - &prompt.root; /usr/ports/Tools/scripts/plist -Md -m `make -V MTREE_FILE` /var/tmp/`make -V PORTNAME` > pkg-plist - - Список упаковки всё ещё должен быть подчищен вручную как описано - выше. - - Для первоначального создания pkg-plist можно - использовать другой инструмент ports-mgmt/genplist. Как и с прочими - автоматизированными инструментами, получаемый pkg-plist - следует проверить и при необходимости отредактировать вручную. @@ -10210,8 +10575,8 @@ etc/orbit.conf.sample приложение, то вы можете поместить сообщение в файл pkg-message. Эта возможность часто оказывается полезной для вывода дополнительных шагов установки, которые нужно - предпринять после выполнения команды &man.pkg.add.1;, или - для вывода информации о лицензировании. + предпринять после выполнения команды pkg install, + или для вывода информации о лицензировании.Если должны выводиться некоторые строки о knobs времени построения или предупреждения, используйте ECHO_MSG. Файл @@ -10229,10 +10594,7 @@ etc/orbit.conf.sample Файл pkg-message не нужно добавлять в - pkg-plist. И он не будет автоматически - выводиться, если пользователь использует порт, а не пакет, так что - вы должны будете сами выводить его при выполнении цели - post-install. + pkg-plist. @@ -10240,20 +10602,18 @@ etc/orbit.conf.sample <filename>pkg-install</filename>Если при установке бинарного пакета по команде - &man.pkg.add.1; вашему порту нужно выполнить какие-то - дополнительные действия или команды, то вы можете сделать это с - помощью скрипта pkg-install. Этот скрипт будет - автоматически добавлен к пакету, и будет дважды запускаться по - команде &man.pkg.add.1;: первый раз в виде - ${SH} pkg-install ${PKGNAME} - PRE-INSTALL, а второй раз как ${SH} {PKGNAME} - POST-INSTALL. + pkg add или pkg install + вашему порту нужно выполнить какие-то команды, то вы можете + это сделать с помощью скрипта pkg-install. + Этот скрипт будет автоматически добавлен к пакету и будет + дважды запускаться командой pkg: первый раз + в виде ${SH} pkg-install ${PKGNAME} + PRE-INSTALL, а второй раз как + ${SH} {PKGNAME} POST-INSTALL. Для распознавания того, в каком режиме запущен скрипт, можно использовать параметр $2. Переменная окружения PKG_PREFIX будет принимать значение, - соответствующее каталогу, в который устанавливается пакет. - Дополнительная информация находится на странице Справочника о - команде &man.pkg.add.1;. + соответствующее каталогу, в который устанавливается пакет. Этот скрипт не запускается автоматически, если вы @@ -10270,30 +10630,14 @@ etc/orbit.conf.sample Этот скрипт вызывается при удалении пакета. - Этот скрипт утилитой &man.pkg.delete.1; будет запускаться - дважды. Первый раз как ${SH} pkg-deinstall + Этот скрипт будет дважды запускаться командой + pkg delete. + Первый раз как ${SH} pkg-deinstall ${PKGNAME} DEINSTALL, а второй раз как ${SH} pkg-deinstall ${PKGNAME} POST-DEINSTALL. - - <filename>pkg-req</filename> - - Если вашему порту нужно определять, должен ли он устанавливаться - или нет, то вы можете создать скрипт необходимости - pkg-req. Он будет вызван автоматически - в момент установки/удаления для определения того, должны ли они - реально выполняться. - - Скрипт будет запущен в процессе установки командой - &man.pkg.add.1;, как pkg-req - ${PKGNAME} INSTALL. В процессе удаления он - будет запущен командой &man.pkg.delete.1; как - pkg-req ${PKGNAME} DEINSTALL. - - - Изменение имён файлов <filename>pkg-*</filename> @@ -10340,11 +10684,6 @@ etc/orbit.conf.sample ${PKGDIR}/pkg-install - - PKGREQ - ${PKGDIR}/pkg-req - - PKGMESSAGE ${PKGDIR}/pkg-message @@ -10379,8 +10718,8 @@ etc/orbit.conf.sample качестве значения USE_RC_SUBR (или устаревшего USE_RCORDER), автоматически добавляются в SUB_FILES. Для файлов - pkg-message, pkg-install, - pkg-deinstall и pkg-req + pkg-message, pkg-install + и pkg-deinstall устанавливается соответствующая переменная Makefile, указывающая на обработанную версию. @@ -10479,7 +10818,7 @@ as .putsy.conf and edit it. Port Tools - Программа ports-mgmt/porttools + Программа ports-mgmt/porttools входит в состав Коллекции Портов. port является сценарием переднего плана, @@ -10541,8 +10880,13 @@ as .putsy.conf and edit it. PREFIX, то процесс создания пакета сообщит об отсутствии файлов. - Этот тест не найдет явно указанных путей внутри файлов порта - и не проверит корректность использования LOCALBASE + Это также стоит проверить с использованием поддержки + каталога сборки (смотрите ): + + &prompt.root; make stage && make check-orphans && make package + + Эти проверки не найдут явно указанных путей внутри файлов порта + и не проверят корректность использования LOCALBASE в качестве ссылки на файлы из других портов. Порт, временно установленный в /var/tmp/`make -V PORTNAME`, следует проверять на работоспособность, чтобы убедиться в отсутствии @@ -10573,15 +10917,28 @@ as .putsy.conf and edit it. Если вы алчный контрибутор портов, то вы можете захотеть взглянуть на Tinderbox. Это мощная - система построения и тестирования портов, основанная на сценариях, - используемых в Pointyhat. + система построения и тестирования портов. Tinderbox можно установить, используя - порт ports-mgmt/tinderbox. + порт ports-mgmt/tinderbox. Обязательно прочитайте поставляемую документацию, поскольку конфигурация не является тривиальной. - Для получения подробностей посетите вебсайт Tinderbox. + Для получения подробностей посетите + вебсайт Tinderbox. + + + + Poudriere + + Если вы контрибутор портов, подумайте об установке + poudriere. Это мощная система + для построения и тестирования портов. + Poudriere можно установить из + ports-mgmt/poudriere. + Для получения подробной информации посетите вебсайт + Poudriere. @@ -10610,8 +10967,8 @@ as .putsy.conf and edit it. Однако иногда люди забывают поместить название порта в поле Synopsis в точном виде. В таком случае вы можете воспользоваться - Системой мониторинга портов - FreeBSD (которая известна также как + Системой мониторинга портов &os; + (которая известна также как portsmon). В рамках этой системы делается попытка классифицировать PR, касающиеся портов, по имени порта. Для поиска PR, относящихся к определённому порту, используйте механизм Просмотра @@ -10688,20 +11045,21 @@ as .putsy.conf and edit it. утилитой uuencode; в противном случае просто включите его как есть в PR. - Прежде чем пользоваться &man.send-pr.1; вы должны просмотреть раздел + Прежде чем пользоваться &man.send-pr.1; просмотрите раздел о Написании - сообщений о проблемах в статье о Сообщениях об ошибках; он + сообщений о проблемах в статье о Сообщениях об ошибках. Он содержит гораздо больше информации о том, как писать полезные сообщения о проблемах. - Если ваше обновление вызвано соображениями информационной + Если обновление вызвано соображениями информационной безопасности или наличием серьёзных ошибок в имеющемся порте, пожалуйста, оповестите &a.portmgr; о необходимости немедленного - перепостроения и повторного распространения пакета вашего порта. - В противном случае ничего не подозревающие пользователи &man.pkg.add.1; - будут продолжать устанавливать старую версию по команде - pkg_add -r в течение ещё нескольких недель. + перепостроения и повторного распространения пакета данного порта. + В противном случае ничего не подозревающие пользователи + pkg будут продолжать устанавливать старую + версию по команде pkg install в течение + ещё нескольких недель. @@ -10710,19 +11068,19 @@ as .putsy.conf and edit it. понять коммиттерам портов, что именно было изменено. - Теперь, когда вы проделали всё это, вам может понадобиться - прочесть о том, как поддерживать актуальное состояние, в . + Теперь, когда вы проделали всё это, прочитайте о том, как + поддерживать актуальное состояние, в . - Использование <literal>SVN</literal> для создания патчей + Использование <application>Subversion</application> для + создания патчей - По возможности присылайте исправления в формате &man.svn.1; diff; - — в таком виде их проще использовать по сравнению с разницей между - старым и новым каталогами. К тому же, вам проще - увидеть ваши изменения и обновить их в случае, если что-нибудь - изменилось в Коллекции Портов с тех пор, как вы начали работу, пока вы - не отправите ваши изменения, либо если коммиттер попросит вас - исправить что-то еще. + По возможности присылайте исправления в формате &man.svn.1; diff. + В таком виде их проще использовать по сравнению с разницей между + старым и новым каталогами. Так проще + увидеть изменения и обновить их в случае, если что-нибудь + изменилось в Коллекции Портов с тех пор, как вы начали работу, + либо если коммиттер просит что-то исправить. &prompt.user; cd ~/my_wrkdir &prompt.user; svn co https://svn0.us-west.FreeBSD.org/ports/head/dns/pdnsd @@ -10737,7 +11095,8 @@ as .putsy.conf and edit it. svn0.us-west.FreeBSD.org - — это общедоступный SVN сервер. + — это общедоступный сервер + Subversion. Выберите ближайшее зеркало и проверьте сертификат зеркалирующего сервера на наличие в перечне зеркалирующих сайтов Subversion. @@ -10762,7 +11121,7 @@ as .putsy.conf and edit it. Эта команда попытается выполнить слияние различий между - вашим патчем и текущим содержимым в SVN; внимательно проверьте + вашим патчем и текущей версией репозитория; внимательно проверьте полученный вывод. Буква перед названием каждого файла означает тип изменения, сделанного с этим файлом. Для получения полного списка смотрите . @@ -10770,7 +11129,8 @@ as .putsy.conf and edit it.
- Префиксы файлов для <literal>SVN</literal> update + Префиксы файлов для <application>Subversion</application> + update @@ -10805,16 +11165,17 @@ as .putsy.conf and edit it.
Если в результате выполнения svn update - вы получили C, то это означает, что что-то - изменилось в репозитории SVN и &man.svn.1; не смогла выполнить - слияние ваших локальных изменений с полученными из репозитория. + отображается C, то это означает, что что-то + изменилось в репозитории Subversion + и &man.svn.1; не смогла выполнить + слияние локальных изменений с полученными из репозитория. В любом случае никогда не помешает просмотреть изменения, поскольку &man.svn.1; ничего не знает о том, каким должен быть порт, поэтому эта команда может (и, вероятно, будет) делать слияние тех изменений, которые не имеют смысла. Последним шагом является создание унифицированного &man.diff.1; - для файлов относительно SVN: + для полученных изменений: &prompt.user; svn diff > ../`basename ${PWD}`.diff @@ -10973,7 +11334,9 @@ as .putsy.conf and edit it. каждому случаю выпускать бюллетень безопасности без создания флуда и потери внимания сообщества к моменту появления действительно серьезных причин. Поэтому уязвимости безопасности, - обнаруженные в портах, записываются в базу данных FreeBSD VuXML. + обнаруженные в портах, записываются в + базу данных + &os; VuXML. Члены Команды Офицеров Безопасности также отслеживают её на предмет появления вопросов, требующих их вмешательства. @@ -10983,13 +11346,14 @@ as .putsy.conf and edit it. менее, если вы не являетесь коммиттером или верите, что нашли исключительно серьезную уязвимость, то не задумываясь свяжитесь с Командой Офицеров Безопасности напрямую - как это описано на странице информационной - безопасности FreeBSD. - - База данных VuXML является - документом XML. Его исходный файл vuln.xml - содержится прямо внутри порта security/vuxml. Поэтому полное имя - пути к файлу будет + как это описано на странице + информационной + безопасности &os;. + + База данных VuXML является документом XML. + Его исходный файл vuln.xml содержится + прямо внутри порта security/vuxml. + Следовательно, полное имя пути к файлу будет PORTSDIR/security/vuxml/vuln.xml. Каждый раз, при обнаружении вами в порте уязвимости безопасности добавьте об этом запись в этот файл. Пока вы не знакомы с VuXML, @@ -11001,8 +11365,8 @@ as .putsy.conf and edit it. Короткое вступление в VuXML - В совокупности XML является очень сложным форматом, и его - описание выходит далеко за рамки + В совокупности XML является очень + сложным форматом, и его описание выходит далеко за рамки этой книги. Тем не менее, для достижения основного понимания структуры записи VuXML вам понадобится всего лишь понять теги. Имена тегов XML обрамляются в угловые скобки. Каждый открывающий @@ -11188,13 +11552,13 @@ as .putsy.conf and edit it. Это бюллетень - безопасности FreeBSD. + безопасности &os;. Это сообщение - об ошибке FreeBSD. + об ошибке &os;. @@ -11258,9 +11622,9 @@ as .putsy.conf and edit it. Прежде всего, вам нужно установить последние версии портов - ports-mgmt/portaudit, - ports-mgmt/portaudit-db и - security/vuxml. + ports-mgmt/portaudit, + ports-mgmt/portaudit-db и + security/vuxml. Для запуска packaudit вы должны обладать @@ -11298,8 +11662,8 @@ as .putsy.conf and edit it. Вам понадобится установить по крайней мере один из следующих - пакетов: textproc/libxml2, - textproc/jade. + пакетов: textproc/libxml2, + textproc/jade. Теперь выполните перепостроение базы данных @@ -11351,8 +11715,9 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 Введение Вот список часто встречающихся действий, которые нужно и которые - нельзя делать во время процесса портирования. Вы должны проверять ваш - порт по этому списку, и вы также можете проверять порты в базе + нельзя делать во время процесса портирования. Проверьте + порт по этому списку, и также проверьте порты в + базе сообщений PR, которые присланы другими людьми. Присылайте любые комментарии о портах, которые вы проверили, так, как это описано в статье о @@ -11401,7 +11766,8 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 Unix он работает. Предпочтительным способом отделения кода для версий &os; является использование макросов __FreeBSD_version и - __FreeBSD__, определённых в файле sys/param.h. + __FreeBSD__, определённых в sys/param.h. Если этот файл не подключен, добавьте код #include <sys/param.h> @@ -11412,13 +11778,11 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 9.x __FreeBSD__ определён со значением 9. - - #if __FreeBSD__ >= 9 + #if __FreeBSD__ >= 9 # if __FreeBSD_version >= 901000 /* здесь особый код для версий 9.1+ */ # endif #endif - @@ -11594,8 +11958,8 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@" CXX= g++ - Обе переменные CC и CXX - могут быть определены в системах FreeBSD в файле + В системах &os; обе переменные CC и + CXX могут быть определены в файле /etc/make.conf. В первом примере задаётся значение, если оно ранее не было определено в /etc/make.conf, что сохраняет любые определения, @@ -11633,7 +11997,7 @@ CFLAGS+= -Wall -Werror CFLAGS= -Wall -Werror - В системе FreeBSD переменная CFLAGS определена + В системе &os; переменная CFLAGS определена в файле /etc/make.conf. В первом примере к переменной CFLAGS добавляются дополнительные флаги, при этом сохраняются все определения, данные ранее на уровне системы. @@ -11675,7 +12039,7 @@ CFLAGS= -Wall -Werror - + Пожелания Посылайте подходящие изменения/патчи авторам/сопровождающему @@ -11686,9 +12050,9 @@ CFLAGS= -Wall -Werror <filename>README.html</filename> - Не включайте сюда файл README.html. Этот файл - не является частью дерева SVN, и он генерируется при помощи команды - make readme. + README.html не является частью порта + и генерируется при помощи make readme. + Не включайте этот файл в патчи или коммиты. Если не удается выполнить make readme, @@ -11763,14 +12127,14 @@ CFLAGS= -Wall -Werror FORBIDDEN используется для портов, которые содержат уязвимости в информационной безопасности или являются потенциально вредными в плане обеспечения информационной - безопасности системы FreeBSD при установке данного порта + безопасности системы &os; при установке данного порта (например: заведомо небезопасная программа или программа, которая предоставляет легко взламываемые сервисы). Порты должны помечаться как FORBIDDEN, как только в конкретном программном обеспечении обнаружилась уязвимость, но обновление выпущено не было. В идеальном случае порты должны обновляться максимально быстро после обнаружения уязвимости, - чтобы уменьшить число уязвимых хостов FreeBSD (нам нравится иметь + чтобы уменьшить число уязвимых хостов &os; (нам нравится иметь репутацию безопасной системы), однако иногда случается значительный временной разрыв между обнаружением уязвимости и выходом обновлённого релиза уязвимого программного обеспечения. @@ -11796,11 +12160,6 @@ CFLAGS= -Wall -Werror не работает на установленной версии &os;
- - требует для построения исходные тексты ядра &os;, но - у пользователя в установленном виде они отсутствуют - - имеет distfile, который не может быть автоматически извлечен из-за лицензионных ограничений @@ -11808,8 +12167,9 @@ CFLAGS= -Wall -Werror не работает с каким-либо другим портом, установленным - в настоящее время (например, порт зависит от www/apache20, но установлен - www/apache22) + в настоящее время (например, порт зависит от + www/apache20, но установлен + www/apache22)
@@ -11865,16 +12225,16 @@ CFLAGS= -Wall -Werror Также построение строки должно несколько различаться из-за способа отображения информации пользователю. Примеры: - BROKEN= this port is unsupported on FreeBSD 5.x + BROKEN= fails to link with base -lcrypto - IGNORE= is unsupported on FreeBSD 5.x + IGNORE= unsupported on recent versions получаемые в результате следующего вывода make describe: - ===> foobar-0.1 is marked as broken: this port is unsupported on FreeBSD 5.x. + ===> foobar-0.1 is marked as broken: fails to link with base -lcrypto. - ===> foobar-0.1 is unsupported on FreeBSD 5.x. + ===> foobar-0.1 is unsupported on recent versions. @@ -11927,23 +12287,16 @@ CFLAGS= -Wall -Werror Как избегать использование <literal>.error</literal> - Предположим, что кто-то поместил строку - USE_POINTYHAT=yes + Из следующих двух вариантов строки файла + Makefile первый приведёт к неудачному + завершению работы make index, а второй - + нет: - в make.conf. Первый из последующих двух - вариантов строк файла Makefile приведёт к - неудачному завершению работы make index, а - второй - нет: - .if USE_POINTYHAT -.error "POINTYHAT is not supported" -.endif + .error "option is not supported" - .if USE_POINTYHAT -IGNORE=POINTYHAT is not supported -.endif + IGNORE=option is not supported - @@ -12037,12 +12390,6 @@ IGNORE=POINTYHAT is not supported Список основных bash-измов расположен здесь. - Не используйте #include - <stdint.h>, если - достаточно подключить inttypes.h. Это - позволит убедиться, что программное обеспечение собирается на - более старых версиях &os;. - Проверьте, что используемые заголовочные файлы включены в POSIX или список, рекомендуемый страницей справочника, т.к. например, забыть подключить @@ -12127,7 +12474,7 @@ PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz сохранения как можно более высокого качества Коллекции Портов мы больше не принимаем новые порты, назначенные на "ports@FreeBSD.org".] MAINTAINER= asami@FreeBSD.org -COMMENT= A DVI Previewer for the X Window System +COMMENT= DVI Previewer for the X Window System [зависимости -- могут быть пустыми] RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript @@ -12166,6 +12513,7 @@ pre-install: и потом еще кое-что перед установкой, ого [и, наконец, эпилог] + .include <bsd.port.mk> @@ -12206,7 +12554,7 @@ pre-install: Во FreshPorts имеется также функция проверки правильности, которая автоматически проверяет каждое изменение, внесённое в дерево - портов FreeBSD. Если вы подпишетесь на эту услугу, то будете + портов &os;. Если вы подпишетесь на эту услугу, то будете оповещаться обо всех ошибках, обнаруженных FreshPorts при проверке внесённых вами изменений. @@ -12224,7 +12572,7 @@ pre-install: и связанных с ним файлов. - + Список рассылки &os;, посвящённый портам Если вы поддерживаете порты, то должны следить за &a.ports;. @@ -12237,15 +12585,12 @@ pre-install: - Кластер построения портов &os; на - <systemitem class="fqdomainname">pointyhat.FreeBSD.org</systemitem> + Кластер построения портов &os; Одной из наименее известных сильных сторон &os; является тот факт, что для непрерывного построения Коллекции Портов для каждого из основных релизов ОС для каждой архитектуры уровня поддержки - Tier-1 выделен целый кластер машин. Вы можете увидеть результаты - этих построений в протоколах - построения пакетов и обнаруженных ошибок. + Tier-1 выделен целый кластер машин. Отдельные порты собираются, если они специально не помечены как IGNORE. Для портов, помеченных как @@ -12294,8 +12639,9 @@ pre-install: Система мониторинга портов &os; - Другим полезным ресурсом является Система мониторинга портов - FreeBSD (известная также как portsmon). + Другим полезным ресурсом является + Система мониторинга + портов &os; (известная также как portsmon). Система представляет собой базу данных, обрабатывающую информацию из нескольких источников и позволяющую просматривать их при помощи Web-интерфейса. На данный момент задействованы база сообщений об @@ -12324,7 +12670,7 @@ pre-install: Значения <varname>USES</varname> - +
Значения <varname>USES</varname> @@ -12335,7 +12681,7 @@ pre-install: Описание - + &values.uses; diff --git a/ru_RU.KOI8-R/books/porters-handbook/uses.xml b/ru_RU.KOI8-R/books/porters-handbook/uses.xml index bffe7dd9c634..fdfd107b546d 100644 --- a/ru_RU.KOI8-R/books/porters-handbook/uses.xml +++ b/ru_RU.KOI8-R/books/porters-handbook/uses.xml @@ -5,11 +5,12 @@ $FreeBSD$ - Original revision: r43006 + Original revision: r43793 --> ada + (нет) Зависимость от компилятора с поддержкой @@ -19,23 +20,26 @@ bison + (нет), build, run, both - Подразумевает использование devel/bison тем или иным образом. По - умолчанию, без аргументов или с аргументом build, - означает использование bison для сборки, - run для выполения, и both - для сборки и выполнения. + + Использует devel/bison. + По умолчанию, без аргументов или с аргументом + build, bison означает + зависимость для сборки, run для выполения, + и both для сборки и выполнения. charsetfix + (нет) + Предотвращает установку charset.alias. - Этот файл должен устанавливаться только совместно с converters/libiconv. Через - CHARSETFIX_MAKEFILEIN можно указать другой + Этот файл должен устанавливаться только совместно с + converters/libiconv. Используя + CHARSETFIX_MAKEFILEIN, можно указать другой путь относительно WRKSRC, если charset.alias устанавливается иначе чем через WRKSRC/Makefile.in. @@ -43,160 +47,535 @@ cmake - (нет), outsource - Порт будет использовать CMake для + (нет), outsource, + run + + Использует CMake для конфигурации и построения. При использовании аргумента - outsource будет произведена сборка вне исходных - текстов (out-of-source). Более подробно смотрите . + outsource будет произведена сборка вне дерева + исходных текстов (out-of-source). При использовании аргумента + run регистрируется как зависимость для + выполнения. Для получения дополнительной информации смотрите + . + + + + compiler + + (нет), c++0x, + c++11-lang, + c++11-lib, c11, + openmp, nestedfct, + features + + Определяет используемый компилятор с учётом любых пожеланий. + Используйте c++11-lang, если для порта нужен + компилятор с поддержкой C++11, и c++11-lib, + если для порта также нужна стандартная библиотека C++11. Если + для порта нужен компилятор, понимающий C++0X, C11, OpenMP или + вложенные функции, для этого можно использовать соответствующие + параметры. Используйте features, чтобы + запросить список функциональных особенностей, поддерживаемых + компилятором по умолчанию. После подключения + bsd.port.pre.mk порт может проверить + результат, используя эти переменные: + + + + COMPILER_TYPE: системный компилятор + по умолчанию, gcc или clang + + + + ALT_COMPILER_TYPE: альтернативный + системный компилятор, gcc или clang. Значение + устанавливается, только если оба компилятора присутствуют + в основной системе. + + + + COMPILER_VERSION: первые две цифры + версии компилятора по умолчанию. + + + + ALT_COMPILER_VERSION: первые две + цифры версии альтернативного компилятора, если такой + присутствует. + + + + CHOSEN_COMPILER_TYPE: используемый + компилятор, gcc или clang + + + + COMPILER_FEATURES: поддерживаемые + возможности компилятора по умолчанию. В настоящее время + здесь указана библиотека C++. + + + + + + cran + + (нет), auto-plist + + Использует Comprehensive R Archive Network. Используйте + auto-plist для автоматического получения + pkg-plist. desktop-file-utils + (нет) - Подразумевает использование - update-desktop-database из - devel/desktop-file-utils. - Будет включён дополнительный этап post-install без взаимодействия - с уже имеющимися этапами post-install. В plist будут добавлены - строки для запуска update-desktop-database + Использует update-desktop-database + из devel/desktop-file-utils. Будет + включён дополнительный этап post-install без взаимодействия с уже + имеющимися этапами post-install. В plist будут добавлены строки + для запуска update-desktop-database при установке и удалении пакета. + + desthack + + (нет) + + Изменяет поведение GNU configure для правильной поддержки + DESTDIR, в случае если программное обеспечение + этого не делает. + + + + display + + (нет), ARGS + + Устанавливает окружение виртуального дисплея. Если переменная + окружения DISPLAY не установлена, то + Xvfb добавляется как зависимость для + построения и CONFIGURE_ENV дополняется номером + порта текущего запущенного экземпляра Xvfb. + Параметр ARGS по умолчанию имеет значение + install и управляет фазой, в которой запускается + и останавливается виртуальный дисплей. + + + + dos2unix + + (нет) + + В составе порта имеются файлы с окончанием строк в формате + DOS, для которых требуется преобразование. + Для управления тем, какие из файлов должны быть преобразованы, + используются три переменные. По умолчанию преобразуются + все файлы, включая двоичные. + + + + DOS2UNIX_REGEX: сопоставление с + именем файла с использованием регулярных выражений. + + + + DOS2UNIX_FILES: строковое + сопоставление с именем файла. + + + + DOS2UNIX_GLOB: сопоставление с + именем файла с использованием шаблонов поиска. + + + + + + fam + + (нет), fam, gamin + + Использует File Alteration Monitor как зависимость от + библиотеки порта devel/fam или + devel/gamin. Пользователи могут + задать WITH_FAM_SYSTEM для указания своего предпочтения. + + + + fmake + + (нет) + + Использует devel/fmake как + зависимость для сборки. + + + + fortran + + gcc (default), ifort + + Использует компилятор Fortran от GNU или Intel. + + fuse + (нет) - Подразумевает использование библиотеки FUSE, а также модуля ядра - в соответствии с версией &os;. + Порт будет зависеть от библиотеки FUSE и возможно от модуля + ядра, в соответствии с версией &os;. gettext - (нет), lib, build, - run - Подразумевает использование devel/gettext тем или иным образом. - По умолчанию, без аргументов или с аргументом lib, - означает использование gettext для сборки - и выполнения, build для сборки, и - run для выполнения. + + (нет), lib (по умолчанию), + build, run + + Использует devel/gettext. + По умолчанию, без аргументов или с аргументом + lib, означает зависимость от библиотеки + libintl.so. build + и run соответственно означают зависимости от + от xgettext для сборки и выполнения. gmake + (нет) - Подразумевает использование devel/gmake для сборки. + + Использует devel/gmake как + зависимость для сборки и подготавливает окружение для + использования gmake в качестве + make для сборки по умолчанию. iconv - (нет) - Подразумевает использование converters/libiconv для сборки и - выполнения. + + (нет), lib, build, + patch + + Использует функции iconv, из порта + converters/libiconv как зависимость + для сборки и выполнения или же из основной системы на 10-CURRENT после + появления собственного iconv в + 254273. По умолчанию, без параметров или + с параметром lib, iconv + означает зависимость для сборки и выполнения, + build для сборки и patch + для использования патчей. Более подробно смотрите + . imake + + (нет), env, + notall + + Использует devel/imake как + зависимость для сборки. С аргументом env + всего лишь подготавливает окружение и не задаёт каких-либо целей. + С аргументом notall запрещает передачу + -a команде xmkmf. + + + + kmod + + (нет) + + Заполняет шаблоны для портов модулей ядра: + + + + Добавляет kld в список + CATEGORIES. + + + + Задаёт SSP_UNSAFE. + + + + Задаёт IGNORE, если исходные тексты + ядра не найдены в SRC_BASE. + + + + В качестве значения по умолчанию для + KMODDIR устанавливает + /boot/modules, + добавляет его в PLIST_SUB и + MAKE_ENV и создает на этапе установки. + Если для KMODDIR установлено значение + /boot/kernel, оно + будет заменено на + /boot/modules. Это + предотвращает повреждение пакетов вследствие переименования + /boot/kernel в + /boot/kernel.old + в процессе обновления ядра. + + + + Управляет перекрёстными ссылками модулей ядра во время + установки и удаления. + + + + + + libtool + (нет) - Подразумевает использование devel/imake для сборки. + + Применяет исправления для сценариев + libtool. Должно быть добавлено для всех + портов, использующих libtool. + + + + lua + + (нет), XY+, XY, + build, run + + Добавляет зависимость от Lua. По + умолчанию является зависимостью от библиотеки, если это не + переопределено параметрами build или + run. Версия по умолчанию 5.2, если не задана + с помощью параметра XY (например, + 51 или 52+). motif + (нет) - Подразумевает использование devel/open-motif в качестве библиотеки. - Конечные пользователи могут задать WANT_LESSTIF - для замены devel/open-motif на - devel/lesstif. + + Использует x11-toolkits/open-motif как зависимость + от библиотеки. Пользователи могут задавать + WANT_LESSTIF для использования зависимости + от x11-toolkits/lesstif вместо + x11-toolkits/open-motif. ncurses + (нет), base, port - Подразумевает использование ncurses, + + Использует ncurses, тем самым задаёт некоторые нужные переменные. + + ninja + + (нет) + + Использует ninja для построения + порта. Пользователи могут задать NINJA_VERBOSE + для подробного вывода сообщения. + + + + openal + + al, soft (по умолчанию), + si, alut + + Использует OpenAL. Может быть + указан бэкэнд, по умолчанию используется программная реализация. + Пользователь может указать предпочитаемый бэкэнд с использованием + переключателя WANT_OPENAL. Правильными + значениями для этого переключателя являются soft + (по умолчанию) и si. + + pathfix + (нет) + Исправляет общие пути для их соответствия иерархии &os; в файлах Makefile.in и configure, принадлежащих исходному коду порта. + + perl5 + + (нет) + + Зависит от Perl. + Могут быть заданы следующие переменные: + + + + PERL_VERSION: Полная версия + Perl для использования; если не + задано, используется значение по умолчанию + + + + PERL_ARCH: Имя каталога для + архитектурозависимых библиотек, по умолчанию + mach + + + + PERL_PORT: Имя порта + Perl для установки; значение по + умолчанию наследуется из + PERL_VERSION + + + + SITE_PERL: Имя каталога для пакетов + Perl со специальным + размещением + + + + USE_PERL5: Фазы для использования + Perl, может быть + extract, patch, + build, install или + run. Также может быть + configure, modbuild + или modbuildtiny, когда требуются + Makefile.PL, + Build.PL или его вариация + Module::Build::Tiny. По умолчанию + build run. + + + + + + pgsql + + (нет), X.Y, X.Y+, + X.Y- + + + Обеспечивает поддержку PostgreSQL. Мейнтейнеры могут + задавать требуемую версию. Могут быть указаны минимальная и + максимальная версии; например, 9.0-, 8.4+. + + Добавляет зависимость от компонентов PostgreSQL с + использованием + WANT_PGSQL=component[:target]. Например, + WANT_PGSQL=server:configure pltcl plperl. + Для получения полного перечня используйте + make -V _USE_PGSQL_DEP. + + pkgconfig - (нет), build, run, - both + (нет), build (по умолчанию), + run, both - Подразумевает использование devel/pkgconf тем или иным образом. - Без аргументов или с аргументом build это - означает использование pkg-config для сборки, + Использует devel/pkgconf. + Без аргументов или с аргументом build + pkg-config означает зависимость для сборки, run для выполнения и both для сборки и выполнения. pure + (нет), ffi - Подразумевает использование lang/pure тем или иным образом, - но в основном используется для построения портов, относящихся к - pure. С аргументом ffi означает использование - devel/pure-ffi для + + Использует lang/pure. + В основном используется для построения портов, относящихся к + pure. С аргументом + ffi означает зависимость от + devel/pure-ffi для выполнения. qmail + (нет), build, run, both, vars - Подразумевает использование mail/qmail тем или иным образом. - С аргументом build означает использование - qmail для сборки и run для - выполнения. Без аргументов или с аргументом both - означает использование qmail для сборки и - выполнения. vars задает переменные QMAIL для - нужд порта. + + Использует mail/qmail. + С аргументом build qmail + означает зависимость для сборки и run для + выполнения. Без аргументов или с аргументом + both qmail означает + зависимость для сборки и выполнения. vars + задает переменные QMAIL для нужд порта. + + + + qmake + + (нет), norecursive, + outsource + + Использует QMake для конфигурации. + Для получения дополнительной информации смотрите + . readline - (нет), port - Подразумевает использование библиотеки - readline и по необходимости устанавливает - переменные CPPFLAGS и LDFLAGS. - + + (нет), port + + Использует readline как + зависимость от библиотеки и по необходимости устанавливает + переменные CPPFLAGS и + LDFLAGS. При использовании параметра + port заставляет использовать + devel/readline. + + + + scons + + (нет) + + Обеспечивает поддержку для использования + devel/scons shared-mime-info + (нет) - Подразумевает использование - update-mime-database из - misc/shared-mime-info. Это - также добавляет собственный этап post-install и строки в plist для - запуска update-mime-data с подходящими - аргументами во время установки и удаления пакета. + Использует update-mime-database + из misc/shared-mime-info. Это + также добавляет собственный этап post-install и строки в plist + для запуска update-mime-data с + подходящими аргументами во время установки и удаления пакета. + shebangfix + (нет) + Во многом программном обеспечении указывается неправильный путь к интерпретатору (shebang), в первую очередь это касается /usr/bin/perl и /bin/bash. @@ -211,11 +590,238 @@ lua_OLD_CMD и lua_CMD. + + tcl + + PORT + + Добавляет зависимость от Tcl. + Параметр PORT в качестве значения может + принимать tcl или tk. К + значению может быть добавлена версия или зависимость wrapper с + использованием PORT:version или + PORT:wrapper. Поле версии может иметь пустое + значение, один или более номеров версии (на данный момент + 84, 85 или + 86) или же минимальный номер версии (на данный + момент 84+, 85+ или + 86+). Может быть указана зависимость для + сборки или выполнения с использованием PORT,build + или PORT,run. После подключения + bsd.port.pre.mk порт может проверить + результат, используя эти переменные: + + + + TCL_VER: используемая старшая.младшая + версия Tcl + + + + TCLSH: полный путь к интерпретатору + Tcl + + + + TCL_LIBDIR: путь к библиотекам + Tcl + + + + TCL_INCLUDEDIR: путь к заголовочным + файлам Tcl на языке Си + + + + TK_VER: используемая старшая.младшая + версия Tk + + + + WISH: полный путь к интерпретатору + Tk + + + + TK_LIBDIR: путь к библиотекам + Tk + + + + TK_INCLUDEDIR: путь к заголовочным + файлам Tk на языке Си + + + + + + tk + + То же, что и для tcl + + Небольшая обёртка при одновременном использовании + Tcl и Tk. + Возвращает те же переменные, что и при использовании + Tcl. + + + + twisted + + (нет), ARGS + + Добавляет зависимость от twistedCore. + Перечень требуемых компонентов можно указать в качестве значения + этой переменной. ARGS может принимать одно из + значений: + + + + build: добавляет + twistedCore или любой из указанных + компонентов как зависимость построения. + + + + run: добавляет + twistedCore или любой из указанных + компонентов как зависимость запуска. + + + + Помимо build и run можно + указать один или несколько поддерживаемых компонентов + twisted. Поддерживаемые значения + перечислены в Uses/twisted.mk. + + + + uidfix + + (нет) + + Изменяет некоторое поведение по умолчанию (в основном, + переменные) системы построения для возможности установки этого + порта из-под обычного пользователя. Попробуйте это в вашем порте + перед добавлением NEED_ROOT=yes. + + + + uniquefiles + + (нет), dirs + + + Делает файлы и каталоги 'уникальными' посредством добавления + приставки или окончания. При использовании параметра + dirs порт нуждается в приставке (и только в + ней) на основе UNIQUE_PREFIX для стандартных + каталогов DOCSDIR, + EXAMPLESDIR, DATADIR, + WWWDIR, ETCDIR. Для портов + доступны следующие переменные: + + + UNIQUE_PREFIX: приставка + для использования с каталогами и файлами. По умолчанию + ${PKGNAMEPREFIX}. + + UNIQUE_PREFIX_FILES: + перечень файлов, для которых нужна приставка. По умолчанию + пустое значение. + + UNIQUE_SUFFIX: окончание + для использования с файлами. По умолчанию + ${PKGNAMESUFFIX}. + + UNIQUE_SUFFIX_FILES: + перечень файлов, для которых нужно окончание. По умолчанию + пустое значение. + + + + + webplugin + + (нет), ARGS + + Автоматически создаёт и удаляет символические ссылки для + каждого из приложений с поддержкой фреймворка webplugin. + ARGS может принимать одно из значений: + + + + gecko: поддержка плагинов + Gecko + + + + native: поддержка плагинов Gecko, + Opera и WebKit-GTK + + + + linux: поддержка плагинов + Linux + + + + all (по умолчанию, неявно): + поддержка всех типов плагинов + + + + (отдельные записи): поддержка только указанных + браузеров + + + + Следующие переменные могут быть отредактированы: + + + + WEBPLUGIN_FILES: Без значения по + умолчанию, должна устанавливаться вручную. + Устанавливаемые файлы плагина. + + + + WEBPLUGIN_DIR: Директория для + установки файлов плагина, по умолчанию PREFIX/lib/browser_plugins/WEBPLUGIN_NAME. + Задавайте её, если порт устанавливает файлы плагина за + пределами каталога по умолчанию, для защиты от повреждения + символических ссылок. + + + + WEBPLUGIN_NAME: Итоговое имя + каталога для установки файлов плагина, по умолчанию + PKGBASE. + + + + zenoss + (нет) - Подразумевает использование net-mgmt/zenoss тем или иным образом, - но в основном используется для построения портов zenpack, - относящихся к zenoss. + + Использует net-mgmt/zenoss. + В основном используется для построения портов + zenoss, относящихся + к zenpack. + + + + zope + + (нет) + + Использует www/zope. + В основном используется для построения портов, относящихся к + zope. ZOPE_VERSION + может использоваться портом для указания того, что должна + использоваться определённая версия + zope. diff --git a/ru_RU.KOI8-R/books/porters-handbook/versions.xml b/ru_RU.KOI8-R/books/porters-handbook/versions.xml index 996f71f87d18..8e1e4dc72525 100644 --- a/ru_RU.KOI8-R/books/porters-handbook/versions.xml +++ b/ru_RU.KOI8-R/books/porters-handbook/versions.xml @@ -5,7 +5,7 @@ $FreeBSD$ - Original revision: r42930 + Original revision: r43967 --> @@ -4162,6 +4162,44 @@ + + 902502 + 26 августа 2013 + 9.2-STABLE после включения флага поиска пути CAM + PIM_RESCAN + (рев. 254938). + + + + 902503 + 27 августа 2013 + 9.2-STABLE после включения флага cdev + SI_UNMAPPED + (рев. 254979). + + + + 902504 + 22 октября 2013 + 9.2-STABLE после включения поддержки первой загрузки + first boot для сценариев &man.rc.8; + (рев. 256917). + + + + 902505 + December 12, 2013 + 9.2-STABLE after Heimdal encoding fix + (rev 259448). + + + + 902506 + 31 декабря 2013 + 9-STABLE после исправлений для MAP_STACK + (рев. 260082). + + 1000000 26 сентября 2011 @@ -4180,8 +4218,8 @@ 12 декабря 2011 10-CURRENT после определения булевых true/false в sys/types.h, значение sizeof(bool) могло измениться (рев. - 228444). 10-CURRENT после появления xlocale.h - (рев. r227753). + 228444). 10-CURRENT после появления + xlocale.h (рев. r227753). @@ -4330,7 +4368,8 @@ 22 октября 2012 10-CURRENT после удаления поддержки файловых систем, не являющихся MPSAFE, и добавления поддержки FUSEFS (рев. - 241519, 241897). + 241519, 241897). + @@ -4355,7 +4394,8 @@ 1000024 5 ноября 2012 10-CURRENT после переключения компилятора по умолчанию на - clang на платформах i386 и amd64 (рев. 242624). + clang на платформах i386 и amd64 (рев. + 242624). @@ -4488,7 +4528,8 @@ 16 июля 201310-CURRENT после переключения ABI, используемого по умолчанию, на ARM EABI для архитектур arm, - armeb, armv6, and armv6eb (рев. 253396). + armeb, armv6, and armv6eb (рев. 253396). + @@ -4537,8 +4578,9 @@ 1000044 15 августа 2013 10-CURRENT после перевода libc.so на - использование сценария &man.ld.1; (рев. 251668, - 254358). + использование сценария &man.ld.1; (рев. + 251668, 254358). + @@ -4556,7 +4598,8 @@ 10-CURRENT после добавления флагов mbuf M_PROTO[9-12] и удаления флагов M_FRAG|M_FIRSTFRAG|M_LASTFRAG (рев. - 254524, 254526). + 254524, 254526). + @@ -4598,7 +4641,8 @@ 1000051 25 августа 2013 10-CURRENT после импорта драйвера Radeon KMS (рев. - 254885, 254887). + 254885, 254887). + @@ -4632,6 +4676,14 @@ 255426). + + 1000100 + 7 декабря 2013 + releng/10.0 после отделения ветки от + stable/10 + (рев. 259065). + + 1000500 10 октября 2013 @@ -4639,8 +4691,118 @@ (рев. 256283). + + 1000501 + 22 октября 2013 + 10-STABLE после добавления поддержки первой загрузки в + &man.rc.8; (рев. 256916). + + + + 1000502 + 20 ноября 2013 + 10-STABLE после удаления символов iconv из + libc.so.7 + (рев. 258398). + + + + 1000510 + 7 декабря 2013 + Обновлено значение __FreeBSD_version для + releng/10.0, для того чтобы оно не + уменьшалось (рев. 259067). + + + + 1000700 + 7 декабря 2013 + 10-STABLE после отделения ветки releng/10.0 + (рев. 259069). + + + + 1000701 + 15 декабря 2013 + 10.0-STABLE после исправления кодировки Heimdal + (рев. 259447). + + + + 1000702 + 31 декабря 2013 + 10-STABLE после исправлений для MAP_STACK + (рев. 260135). + + 1100000 10 октября 2013 11.0-CURRENT (рев. 256284). + + + 1100001 + 19 октября 2013 + 11.0-CURRENT после добавления поддержки "первой загрузки" + в сценарии rc.d для использования в + портах (рев. 256776). + + + + 1100002 + 5 ноября 2013 + 11.0-CURRENT после удаления поддержки исторических ioctl + (рев. 257696). + + + + 1100003 + 17 ноября 2013 + 11.0-CURRENT после изменений в iconv + (рев. 258284). + + + + 1100004 + 15 декабря 2013 + 11.0-CURRENT после изменения в поведении + gss_pseudo_random, добавленного в r259286 + (рев. 259424). + + + + 1100005 + 28 декабря 2013 + 11.0-CURRENT после r259951 - Не объединять записи в + vm_map_stack() + (рев. 260010). + + + + 1100006 + 28 января 2014 + 11.0-CURRENT после обновления libelf и libdwarf + (рев. 261246). + + + + 1100007 + 30 января 2014 + 11.0-CURRENT после обновления libc++ до версии to 3.4 + (рев. 261283). + + + + 1100008 + 14 февраля 2014 + 11.0-CURRENT после исправления совместимости ABI в libc++ 3.4 + (рев. 261801). + + + + 1100009 + 16 февраля 2014 + 11.0-CURRENT после обновления llvm/clang до версии 3.4 + (рев. 261991). +