diff options
Diffstat (limited to 'ru_RU.KOI8-R/books/porters-handbook/book.xml')
-rw-r--r-- | ru_RU.KOI8-R/books/porters-handbook/book.xml | 3543 |
1 files changed, 1712 insertions, 1831 deletions
diff --git a/ru_RU.KOI8-R/books/porters-handbook/book.xml b/ru_RU.KOI8-R/books/porters-handbook/book.xml index 479cdb7d0d..c49b556fd2 100644 --- a/ru_RU.KOI8-R/books/porters-handbook/book.xml +++ b/ru_RU.KOI8-R/books/porters-handbook/book.xml @@ -1,10 +1,9 @@ <?xml version="1.0" encoding="koi8-r"?> -<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" - "../../../share/xml/freebsd45.dtd" [ +<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" + "../../../share/xml/freebsd50.dtd" [ <!ENTITY values.uses SYSTEM "uses.xml"> <!ENTITY values.versions SYSTEM "versions.xml"> ]> - <!-- The FreeBSD Russian Documentation Project @@ -13,13 +12,12 @@ Original revision: r42833 --> - -<book lang="ru"> - <bookinfo> - <title>Руководство FreeBSD по созданию портов</title> +<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru"> + <info><title>Руководство FreeBSD по созданию портов</title> + <authorgroup> - <corpauthor>The FreeBSD Documentation Project</corpauthor> + <author><orgname>The FreeBSD Documentation Project</orgname></author> </authorgroup> <pubdate>$FreeBSD$</pubdate> @@ -48,9 +46,9 @@ &legalnotice; <releaseinfo>$FreeBSD$</releaseinfo> - </bookinfo> + </info> - <chapter id="why-port"> + <chapter xml:id="why-port"> <title>Введение</title> <para>Коллекция портов FreeBSD является способом, используемым @@ -65,7 +63,7 @@ внесение изменений, чтобы это делать.</para> </chapter> - <chapter id="own-port"> + <chapter xml:id="own-port"> <title>Как самому сделать новый порт</title> <para>Итак, вы интересуетесь, как создать собственный порт или @@ -84,7 +82,7 @@ <note> <para>Только часть переменных - (<makevar><replaceable>VAR</replaceable></makevar>), которые могут быть + (<varname><replaceable>VAR</replaceable></varname>), которые могут быть переопределены, описаны в этом документе. Большинство (если не все) описаны в начале файла <filename>/usr/ports/Mk/bsd.port.mk</filename>; остальные, скорее всего, тоже там описаны. Заметьте, что @@ -97,13 +95,12 @@ </note> <para> - Ищете, с чего бы начать попроще? Посмотрите на <ulink - url="http://wiki.freebsd.org/WantedPorts">перечень запрошенных - портов</ulink>, есть ли там такие, над которыми вы можете работать. + Ищете, с чего бы начать попроще? Посмотрите на <link xlink:href="http://wiki.freebsd.org/WantedPorts">перечень запрошенных + портов</link>, есть ли там такие, над которыми вы можете работать. </para> </chapter> - <chapter id="quick-porting"> + <chapter xml:id="quick-porting"> <title>Быстрое портирование</title> <para>В этом разделе описано, как создать новый порт на скорую руку. @@ -111,7 +108,7 @@ прочитать документ дальше.</para> <para>Во-первых, скачайте оригинальный tar-файл и поместите его в каталог - <makevar>DISTDIR</makevar>, который по умолчанию есть не что иное, как + <varname>DISTDIR</varname>, который по умолчанию есть не что иное, как <filename>/usr/ports/distfiles</filename>.</para> <note> @@ -122,7 +119,7 @@ следующему разделу.</para> </note> - <sect1 id="porting-makefile"> + <sect1 xml:id="porting-makefile"> <title>Создание файла <filename>Makefile</filename></title> <para>Минимальный <filename>Makefile</filename> будет выглядеть @@ -159,7 +156,7 @@ MANCOMPRESSED= yes Makefile</link>.</para> </sect1> - <sect1 id="porting-desc"> + <sect1 xml:id="porting-desc"> <title>Создание информационных файлов</title> <para>Имеется два информационных файла, которые требуются для любого @@ -229,7 +226,7 @@ WWW: http://www.oneko.org/</programlisting> Имена путей указываются относительно установочного префикса (обычно <filename>/usr/local</filename>). Если вы используете переменные - <makevar>MAN<replaceable>n</replaceable></makevar> (а вы должны + <varname>MAN<replaceable>n</replaceable></varname> (а вы должны это делать), то указывать страницы справочника здесь не нужно. Если порт во время установки создает каталоги, убедитесь, что добавили строку <literal>@dirrm</literal> для удаления @@ -257,8 +254,7 @@ lib/X11/oneko/mouse.xpm <note> <para>Создание списка упаковки вручную может оказаться весьма трудоёмкой задачей. Если порт устанавливает большое количество - файлов, раздел об <link - linkend="plist-autoplist">автоматическом построении списка + файлов, раздел об <link linkend="plist-autoplist">автоматическом построении списка упаковки</link> может помочь сэкономить время.</para> </note> @@ -266,7 +262,7 @@ lib/X11/oneko/mouse.xpm отсутствовать <filename>pkg-plist</filename>. Если порт устанавливает лишь несколько файлов, а возможно, и каталогов, то они могут быть перечислены в переменных - <makevar>PLIST_FILES</makevar> и <makevar>PLIST_DIRS</makevar>, + <varname>PLIST_FILES</varname> и <varname>PLIST_DIRS</varname>, соответственно, внутри файла <filename>Makefile</filename> порта. К примеру, мы можем обойтись без файла <filename>pkg-plist</filename> у приведённого выше порта @@ -280,16 +276,16 @@ lib/X11/oneko/mouse.xpm lib/X11/oneko/mouse.xpm PLIST_DIRS= lib/X11/oneko</programlisting> - <para>Конечно, переменная <makevar>PLIST_DIRS</makevar> не должна + <para>Конечно, переменная <varname>PLIST_DIRS</varname> не должна задаваться, если порт не устанавливает никаких каталогов.</para> <note> <para>Несколько портов могут совместно использовать общий - каталог. В этом случае <makevar>PLIST_DIRS</makevar> - следует заменить на <makevar>PLIST_DIRSTRY</makevar>, так + каталог. В этом случае <varname>PLIST_DIRS</varname> + следует заменить на <varname>PLIST_DIRSTRY</varname>, так чтобы каталог удалялся только если он пуст, а иначе - игнорировался. Использование <makevar>PLIST_DIRS</makevar> - и <makevar>PLIST_DIRSTRY</makevar> аналогично + игнорировался. Использование <varname>PLIST_DIRS</varname> + и <varname>PLIST_DIRSTRY</varname> аналогично <literal>@dirrm</literal> и <literal>@dirrmtry</literal> в <filename>pkg-plist</filename>, описание которых входит в <xref linkend="plist-dir-cleaning"/>.</para> @@ -305,13 +301,13 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <filename>pkg-plist</filename>.</para> <para>Далее мы увидим, как можно использовать файлы - <filename>pkg-plist</filename> и <makevar>PLIST_FILES</makevar> + <filename>pkg-plist</filename> и <varname>PLIST_FILES</varname> выполнения <link linkend="plist">более сложных задач</link>.</para> </sect2> </sect1> - <sect1 id="porting-checksum"> + <sect1 xml:id="porting-checksum"> <title>Создание файла с контрольной суммой</title> <para>Просто введите команду <command>make makesum</command>. @@ -321,13 +317,13 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <para>Если у извлекаемого файла регулярно меняется контрольная сумма и вы не сомневаетесь в надежности источника (т.е. он получен из CD производителя, либо ежедневно обновляется документация), то вы - должны указать эти файлы в переменной <makevar>IGNOREFILES</makevar>. + должны указать эти файлы в переменной <varname>IGNOREFILES</varname>. Тогда контрольная сумма при выполнении <command>make makesum</command> для этого файла создаваться не будет, а вместо этого для него будет установлено значение <literal>IGNORE</literal>.</para> </sect1> - <sect1 id="porting-testing"> + <sect1 xml:id="porting-testing"> <title>Тестирование порта</title> <para>Вы должны удостовериться, что правила построения порта выполняют @@ -347,7 +343,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <listitem> <para>Ваш порт может быть переустановлен множество раз с помощью - указания цели <maketarget>reinstall</maketarget></para> + указания цели <buildtarget>reinstall</buildtarget></para> </listitem> <listitem> @@ -372,7 +368,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting> </step> <step> - <para><command>pkg_add <replaceable>package-name</replaceable> + <para><command>pkg_add package-name </command></para> </step> @@ -393,8 +389,8 @@ PLIST_DIRS= lib/X11/oneko</programlisting> </step> </procedure> - <para>Проверьте, что ни на шаге <maketarget>package</maketarget>, ни на - шаге <maketarget>deinstall</maketarget> не выдается никаких + <para>Проверьте, что ни на шаге <buildtarget>package</buildtarget>, ни на + шаге <buildtarget>deinstall</buildtarget> не выдается никаких предупреждений. После выполнения шага 3 проверьте, что все новые каталоги были успешно удалены. Также попробуйте запустить программное обеспечение после выполнения шага 4, чтобы убедиться, что @@ -408,26 +404,24 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <filename>ports/ports-mgmt/tinderbox</filename>.</para> </sect1> - <sect1 id="porting-portlint"> + <sect1 xml:id="porting-portlint"> <title>Проверка вашего порта утилитой <command>portlint</command></title> <para>Будьте добры, пользуйтесь утилитой <command>portlint</command> для проверки того, что ваш порт соответствует нашим рекомендациям. - Программа <filename role="package">ports-mgmt/portlint</filename> + Программа <package>ports-mgmt/portlint</package> является частью Коллекции Портов. В частности, вы можете захотеть проверить, правильно ли сформирован файл <link linkend="porting-samplem">Makefile</link> и - соответствующим ли образом именован <link - linkend="porting-pkgname">пакет</link>.</para> + соответствующим ли образом именован <link linkend="porting-pkgname">пакет</link>.</para> </sect1> - <sect1 id="porting-submitting"> + <sect1 xml:id="porting-submitting"> <title>Посылка нового порта</title> <para>Перед посылкой нового порта удостоверьтесь, что вы прочитали - раздел о том, что <link - linkend="porting-dads">можно и нельзя</link> делать.</para> + раздел о том, что <link linkend="porting-dads">можно и нельзя</link> делать.</para> <para>Теперь, когда вы счастливы от своего первого порта, единственное, что осталось сделать, это включить его в основное дерево портов @@ -440,16 +434,15 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <para>Включите ваш файл <literal>oneko.shar</literal> в сообщение об ошибке и пошлите - его с помощью программы &man.send-pr.1; (обратитесь к разделу <ulink - url="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL"> - Сообщения об ошибках и общие замечания</ulink> для получения подробной + его с помощью программы &man.send-pr.1; (обратитесь к разделу <link xlink:href="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL"> + Сообщения об ошибках и общие замечания</link> для получения подробной информации о программе &man.send-pr.1;). Не забудьте указать в сообщении категорию <literal>ports</literal> и класс <literal>change-request</literal> (Не указывайте, что сообщение имеет статус <literal>confidential</literal>!). Добавьте также краткое описание программы, порт которой вы создали, в раздел <quote>Description</quote> отправляемого PR (например, содержимое - <makevar>COMMENT</makevar> в сокращенном виде) и сам файл в виде архива + <varname>COMMENT</varname> в сокращенном виде) и сам файл в виде архива shar, поместив его в раздел <quote>Fix</quote>.</para> <note> @@ -469,21 +462,19 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <para>После того как вы послали порт, пожалуйста, потерпите. Иногда включение нового порта во &os; может занять до нескольких - месяцев, а иногда всего несколько дней. <ulink - url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports"> - Здесь</ulink> вы можете найти список PR для портов ожидающих своей + месяцев, а иногда всего несколько дней. <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?category=ports"> + Здесь</link> вы можете найти список PR для портов ожидающих своей очереди для включения во &os;.</para> <para>Мы рассмотрим ваш порт, при необходимости вернём его обратно, а затем включим порт в наше дерево. Ваше имя также будет добавлено - в список <ulink - url="&url.articles.contributors;/contrib-additional.html"> - Дополнительных контрибуторов проекта FreeBSD</ulink> и другие + в список <link xlink:href="&url.articles.contributors;/contrib-additional.html"> + Дополнительных контрибуторов проекта FreeBSD</link> и другие файлы.</para> </sect1> </chapter> - <chapter id="slow"> + <chapter xml:id="slow"> <title>Медленное портирование</title> <para>Итак, все оказалось не так уж и просто, и порт потребовал @@ -491,7 +482,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting> разделе мы расскажем, шаг за шагом, как его модифицировать, чтобы он работал с нашей системой портов.</para> - <sect1 id="slow-work"> + <sect1 xml:id="slow-work"> <title>Как всё это работает</title> <para>Во-первых, когда пользователь дает в своем каталоге с портом @@ -506,47 +497,46 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <procedure> <step> - <para>Запускается цель <maketarget>fetch</maketarget>. Цель - <maketarget>fetch</maketarget> отвечает за то, что архив исходных + <para>Запускается цель <buildtarget>fetch</buildtarget>. Цель + <buildtarget>fetch</buildtarget> отвечает за то, что архив исходных текстов имеется в наличии локально в каталоге - <makevar>DISTDIR</makevar>. Если цель - <maketarget>fetch</maketarget> не может найти требуемые файлы в - каталоге <makevar>DISTDIR</makevar>, то он будет искаться по - указателю URL <makevar>MASTER_SITES</makevar>, который + <varname>DISTDIR</varname>. Если цель + <buildtarget>fetch</buildtarget> не может найти требуемые файлы в + каталоге <varname>DISTDIR</varname>, то он будет искаться по + указателю URL <varname>MASTER_SITES</varname>, который устанавливается в Makefile, а также на нашем основном FTP-сервере - по адресу <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/"></ulink>, + по адресу <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</uri>, куда мы по возможности помещаем дистрибутивные файлы для архива. Затем она попытается сгрузить указанный файл с помощью - <makevar>FETCH</makevar>, полагая, что запрашивающая машина имеет + <varname>FETCH</varname>, полагая, что запрашивающая машина имеет прямое подключение к Интернет. Если файл скачается удачно, то - он будет помещен в каталог <makevar>DISTDIR</makevar> для + он будет помещен в каталог <varname>DISTDIR</varname> для последующего использования и обработки.</para> </step> <step> - <para>Выполняется цель <maketarget>extract</maketarget>. Она ищет + <para>Выполняется цель <buildtarget>extract</buildtarget>. Она ищет дистрибутивный файл порта (как правило, tar-архив <command>gzip</command>) в - каталоге <makevar>DISTDIR</makevar> и распаковывает его во + каталоге <varname>DISTDIR</varname> и распаковывает его во временный каталог, задаваемый переменной - <makevar>WRKDIR</makevar> (по умолчанию + <varname>WRKDIR</varname> (по умолчанию <filename>work</filename>).</para> </step> <step> - <para>Выполняется цель <maketarget>patch</maketarget>. Во-первых, + <para>Выполняется цель <buildtarget>patch</buildtarget>. Во-первых, применяются все патчи, заданные переменной - <makevar>PATCHFILES</makevar>. Во-вторых, если какие-либо файлы с + <varname>PATCHFILES</varname>. Во-вторых, если какие-либо файлы с патчами, носящие имена - <filename>patch-<replaceable>*</replaceable></filename>, имеются в - подкаталоге <makevar>PATCHDIR</makevar> (по умолчанию это каталог + <filename>patch-*</filename>, имеются в + подкаталоге <varname>PATCHDIR</varname> (по умолчанию это каталог <filename>files</filename>), то они применяются в этот момент в алфавитном порядке.</para> </step> <step> - <para>Запускается цель <maketarget>configure</maketarget>. Здесь + <para>Запускается цель <buildtarget>configure</buildtarget>. Здесь может выполняться любая из многих различных вещей.</para> <orderedlist> @@ -557,19 +547,19 @@ PLIST_DIRS= lib/X11/oneko</programlisting> </listitem> <listitem> - <para>Если задана переменная <makevar>HAS_CONFIGURE</makevar> - или <makevar>GNU_CONFIGURE</makevar>, то запускается скрипт - <filename><makevar>WRKSRC</makevar>/configure</filename>. + <para>Если задана переменная <varname>HAS_CONFIGURE</varname> + или <varname>GNU_CONFIGURE</varname>, то запускается скрипт + <filename>WRKSRC/configure</filename>. </para> </listitem> </orderedlist> </step> <step> - <para>Выполняется цель <maketarget>build</maketarget>. Она + <para>Выполняется цель <buildtarget>build</buildtarget>. Она отвечает за переход в собственный рабочий каталог порта - (<makevar>WRKSRC</makevar>) и его построение. Если задана - переменная <makevar>USES= gmake</makevar>, будет использоваться + (<varname>WRKSRC</varname>) и его построение. Если задана + переменная <varname>USES= gmake</varname>, будет использоваться GNU-версия утилиты <command>make</command>, в противном случае будет использована системная утилита <command>make</command>.</para> @@ -578,18 +568,18 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <para>Выше перечислены стандартные действия. Кроме того, вы сами можете определить цели - <maketarget>pre-<replaceable>что-то</replaceable></maketarget> или - <maketarget>post-<replaceable>что-то</replaceable></maketarget>, + <buildtarget>pre-<replaceable>что-то</replaceable></buildtarget> или + <buildtarget>post-<replaceable>что-то</replaceable></buildtarget>, или создать скрипты с такими именами в подкаталоге <filename>scripts</filename>, и они будут запущены до или после выполнения действий по умолчанию.</para> <para>Например, если у вас есть цель - <maketarget>post-extract</maketarget>, определённая в вашем файле + <buildtarget>post-extract</buildtarget>, определённая в вашем файле <filename>Makefile</filename> и файл <filename>pre-build</filename> в подкаталоге <filename>scripts</filename>, то после выполнения обычных действий по - распаковке, будет вызвана цель <maketarget>post-extract</maketarget> + распаковке, будет вызвана цель <buildtarget>post-extract</buildtarget> а скрипт <filename>pre-build</filename> будет выполнен перед запуском стандартных правил построения. Рекомендуется использовать цели из <filename>Makefile</filename>, если действия достаточно @@ -597,24 +587,24 @@ PLIST_DIRS= lib/X11/oneko</programlisting> нестандартные действия требует порт.</para> <para>Действия по умолчанию выполняются целями - <maketarget>do-<replaceable>что-то</replaceable></maketarget> из + <buildtarget>do-<replaceable>что-то</replaceable></buildtarget> из <filename>bsd.port.mk</filename>. Например, команды для распаковки порта находятся в цели - <maketarget>do-extract</maketarget>. Если вам не хватает цели по + <buildtarget>do-extract</buildtarget>. Если вам не хватает цели по умолчанию, вы можете ее исправить, переопределив цель - <maketarget>do-<replaceable>something</replaceable></maketarget> + <buildtarget>do-<replaceable>something</replaceable></buildtarget> в вашем файле <filename>Makefile</filename>.</para> <note> <para><quote>Основные</quote> цели (к примеру, - <maketarget>extract</maketarget>, <maketarget>configure</maketarget> + <buildtarget>extract</buildtarget>, <buildtarget>configure</buildtarget> и так далее) не делают ничего больше, чем проверяют успешность завершения всех предыдущих шагов и вызывают настоящие цели или скрипты, и их не нужно менять. Если вам нужно изменить распаковку, исправляйте - <maketarget>do-extract</maketarget>, но никогда не меняйте способ - работы <maketarget>extract</maketarget>! Кроме того, цель - <maketarget>post-deinstall</maketarget> является недействительной + <buildtarget>do-extract</buildtarget>, но никогда не меняйте способ + работы <buildtarget>extract</buildtarget>! Кроме того, цель + <buildtarget>post-deinstall</buildtarget> является недействительной и не выполняется инфраструктурой портов.</para> </note> @@ -623,19 +613,19 @@ PLIST_DIRS= lib/X11/oneko</programlisting> через шаги, рекомендуемые для создания настоящего порта.</para> </sect1> - <sect1 id="slow-sources"> + <sect1 xml:id="slow-sources"> <title>Получение исходного кода</title> <para>Получите оригинальные исходные тексты (обычно) в виде упакованного tar-архива - (<filename><replaceable>foo</replaceable>.tar.gz</filename> или - <filename><replaceable>foo</replaceable>.tar.bz2</filename>) - и скопируйте его в каталог <makevar>DISTDIR</makevar>. Всегда + (<filename>foo.tar.gz</filename> или + <filename>foo.tar.bz2</filename>) + и скопируйте его в каталог <varname>DISTDIR</varname>. Всегда используйте исходные тексты <emphasis>основной ветки разработки</emphasis> везде, где это возможно.</para> <para>Вам потребуется задать значение переменной - <makevar>MASTER_SITES</makevar> так, чтобы оно указывало на + <varname>MASTER_SITES</varname> так, чтобы оно указывало на местоположение оригинального tar-архива. В файле <filename>bsd.sites.mk</filename> вы найдёте краткие обозначения для большинства популярных сайтов. Пожалуйста, используйте эти @@ -652,20 +642,20 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <para>Если вы не можете найти доступного и надёжного места для помещения дистрибутивного файла, то мы сами сможем разместить его на - сервере <hostid>ftp.FreeBSD.org</hostid>; однако это наименее + сервере <systemitem>ftp.FreeBSD.org</systemitem>; однако это наименее рекомендуемое решение. Дистрибутивный файл должен быть помещён в каталог <filename>~/public_distfiles/</filename> - одного из пользователей машины <hostid>freefall</hostid>. Попросите + одного из пользователей машины <systemitem>freefall</systemitem>. Попросите того, кто коммиттил ваш порт, сделать это. Этот человек также задаст - переменной <makevar>MASTER_SITES</makevar> значение - <makevar>MASTER_SITE_LOCAL</makevar>, а в переменной - <makevar>MASTER_SITE_SUBDIR</makevar> укажет своё имя пользователя - с машины <hostid>freefall</hostid>.</para> + переменной <varname>MASTER_SITES</varname> значение + <varname>MASTER_SITE_LOCAL</varname>, а в переменной + <varname>MASTER_SITE_SUBDIR</varname> укажет своё имя пользователя + с машины <systemitem>freefall</systemitem>.</para> <para>Если дистрибутивные файлы вашего порта постоянно меняются по неизвестным причинам без изменения версий со стороны автора, остаётся только поместить дистрибутив на вашу домашнюю Web-страницу и указать - её первой в списке <makevar>MASTER_SITES</makevar>. Если можете, + её первой в списке <varname>MASTER_SITES</varname>. Если можете, попытайтесь договориться с автором порта об этом; это действительно помогает в достижении некоторого управления исходным кодом. Размещение собственной версии поможет избежать появления ошибок у @@ -673,17 +663,16 @@ PLIST_DIRS= lib/X11/oneko</programlisting> также уменьшит нагрузку на людей, сопровождающих наш FTP-сервер. Также, если у порта имеется только один основной сервер, то рекомендуется поместить архивную копию на свой сайт и указать его в - списке <makevar>MASTER_SITES</makevar> вторым.</para> + списке <varname>MASTER_SITES</varname> вторым.</para> <para>Если вашему порту требуются дополнительные `патчи', доступные в Интернет, скачайте также и их, поместив в каталог - <makevar>DISTDIR</makevar>. Не волнуйтесь, если они находятся не + <varname>DISTDIR</varname>. Не волнуйтесь, если они находятся не на том же сайте, откуда взят дистрибутивный архив, мы умеем - обрабатывать такие ситуации (смотрите описание <link - linkend="porting-patchfiles">PATCHFILES</link> ниже).</para> + обрабатывать такие ситуации (смотрите описание <link linkend="porting-patchfiles">PATCHFILES</link> ниже).</para> </sect1> - <sect1 id="slow-modifying"> + <sect1 xml:id="slow-modifying"> <title>Модификация порта</title> <para>Распакуйте копию дистрибутивного файла в отдельный каталог и @@ -713,7 +702,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting> </note> </sect1> - <sect1 id="slow-patch"> + <sect1 xml:id="slow-patch"> <title>Создание патчей</title> <para>Файлы, которые добавлялись или изменялись в процессе создания @@ -721,21 +710,21 @@ PLIST_DIRS= lib/X11/oneko</programlisting> а результат работы этой программы может быть в дальнейшем передан программе &man.patch.1;. Каждый патч, который вы собираетесь применить, должен быть сохранен в файл с именем - <filename>patch-<replaceable>*</replaceable></filename>, где + <filename>patch-*</filename>, где <replaceable>*</replaceable> обозначает путь к файлу, к которому применяется патч, такой как <filename>patch-Imakefile</filename> или <filename>patch-src-config.h</filename>. Эти файлы должны находиться в - каталоге <makevar>PATCHDIR</makevar> + каталоге <varname>PATCHDIR</varname> (как правило, это <filename>files/</filename>), откуда они будут взяты автоматически. Все патчи обязаны быть сделаны - относительно каталога <makevar>WRKSRC</makevar> (как правило, + относительно каталога <varname>WRKSRC</varname> (как правило, это каталог, в который распаковывается исходный архив и где будет выполняться построение). Для упрощения внесения изменений и обновлений вы должны избегать наличия более чем одного патча для одного и того же файла (например, патчей <filename>patch-file</filename> и <filename>patch-file2</filename>, - оба меняющих файл <filename><makevar>WRKSRC</makevar>/foobar.c</filename>). + оба меняющих файл <filename>WRKSRC/foobar.c</filename>). Обратите внимание, что если путь к изменяемому файлу содержит символ подчеркивания (<literal>_</literal>), то патч должен содержать в своем имени два подчеркивания вместо одного. Например, для применения патча @@ -785,7 +774,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting> что конкретно вызвало проблему и что вы вообще изменили.</para> <para>Если вам нужно удалить файл, то вы можете сделать это при - выполнении цели <maketarget>post-extract</maketarget> вместо того, + выполнении цели <buildtarget>post-extract</buildtarget> вместо того, чтобы оформлять это как часть патча.</para> <para>Простые перемещения могут быть выполнены непосредственно из @@ -809,7 +798,7 @@ PLIST_DIRS= lib/X11/oneko</programlisting> <programlisting>USE_DOS2UNIX= util.c util.h</programlisting> <para>Если вы хотите преобразовать группу файлов в разных подкаталогах, - то для этого можно использовать <makevar>DOS2UNIX_REGEX</makevar>. + то для этого можно использовать <varname>DOS2UNIX_REGEX</varname>. Его параметром является регулярное выражение, совместимое с <command>find</command>. Подробнее о формате в &man.re.format.7;. Эта опция используется для преобразования всех файлов заданного @@ -821,12 +810,12 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> <para>Если вы хотите создать патч на основе существующего файла, то вы можете его скопировать с расширением <filename>.orig</filename>, а - затем изменить исходный. Цель<maketarget>makepatch</maketarget> + затем изменить исходный. Цель<buildtarget>makepatch</buildtarget> запишет соответствующий файл с патчем в каталог - <filename class="directory">files</filename> данного порта.</para> + <filename>files</filename> данного порта.</para> </sect1> - <sect1 id="slow-configure"> + <sect1 xml:id="slow-configure"> <title>Конфигурирование</title> <para>Поместите все дополнительные команды, требуемые для настройки, @@ -837,12 +826,12 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> <filename>post-configure</filename>.</para> </sect1> - <sect1 id="slow-user-input"> + <sect1 xml:id="slow-user-input"> <title>Обработка пользовательского ввода</title> <para>Если для построения, конфигурации или установки вашего порта требуется некоторый ввод со стороны пользователя, то вы должны задать - переменную <makevar>IS_INTERACTIVE</makevar> в вашем файле + переменную <varname>IS_INTERACTIVE</varname> в вашем файле <filename>Makefile</filename>. В случае <quote>ночного построения</quote> это позволит пропустить ваш порт, если пользователь в своем окружении задал переменную @@ -854,49 +843,48 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> <para>При наличии разумных ответов на задаваемые вопросы, подходящих по умолчанию, также рекомендуется проверять переменную - <makevar>PACKAGE_BUILDING</makevar> и выключать интерактивный скрипт, + <varname>PACKAGE_BUILDING</varname> и выключать интерактивный скрипт, если он есть. Это позволит нам строить пакеты для помещения на компакт-диски и FTP-серверы.</para> </sect1> </chapter> - <chapter id="makefile"> + <chapter xml:id="makefile"> <title>Настройка файла Makefile</title> <para>Настройка файла <filename>Makefile</filename> достаточно проста, и мы снова предполагаем, что перед тем, как начать, вы посмотрите на - существующие примеры. К тому же в этом руководстве имеется <link - linkend="porting-samplem">примерный Makefile</link>, так что взгляните + существующие примеры. К тому же в этом руководстве имеется <link linkend="porting-samplem">примерный Makefile</link>, так что взгляните на него и, пожалуйста, следуйте порядку переменных и разделов в этом образце, чтобы облегчить чтение вашего порта другими людьми.</para> <para>Итак, расположим решаемые задачи в порядке их возникновения при создании вашего нового файла <filename>Makefile</filename>:</para> - <sect1 id="makefile-source"> + <sect1 xml:id="makefile-source"> <title>Оригинальные исходный код</title> - <para>Находится ли он в каталоге <makevar>DISTDIR</makevar> в виде + <para>Находится ли он в каталоге <varname>DISTDIR</varname> в виде стандартного упакованного архиватором <command>gzip</command> tar-архива с именем типа <filename>foozolix-1.2.tar.gz</filename>? Если это так, можно перейти к следующему шагу. Если нет, то вы должны попытаться переопределить некоторые из переменных - <makevar>DISTVERSION</makevar>, <makevar>DISTNAME</makevar>, - <makevar>EXTRACT_CMD</makevar>, - <makevar>EXTRACT_BEFORE_ARGS</makevar>, - <makevar>EXTRACT_AFTER_ARGS</makevar>, - <makevar>EXTRACT_SUFX</makevar> или <makevar>DISTFILES</makevar> в + <varname>DISTVERSION</varname>, <varname>DISTNAME</varname>, + <varname>EXTRACT_CMD</varname>, + <varname>EXTRACT_BEFORE_ARGS</varname>, + <varname>EXTRACT_AFTER_ARGS</varname>, + <varname>EXTRACT_SUFX</varname> или <varname>DISTFILES</varname> в зависимости от того, насколько необычен формат дистрибутивного файла.</para> <para>В худшем случае вы можете просто определить свою собственную цель - <maketarget>do-extract</maketarget> для переопределения действий по + <buildtarget>do-extract</buildtarget> для переопределения действий по умолчанию, хотя к этому нужно будет прибегать в очень редких случаях, если вообще придётся.</para> </sect1> - <sect1 id="makefile-naming"> + <sect1 xml:id="makefile-naming"> <title>Именование</title> <para>В первой части <filename>Makefile</filename> порта ему даётся @@ -904,36 +892,36 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> категории.</para> <sect2> - <title><makevar>PORTNAME</makevar> и - <makevar>PORTVERSION</makevar></title> + <title><varname>PORTNAME</varname> и + <varname>PORTVERSION</varname></title> - <para>В переменной <makevar>PORTNAME</makevar> вы должны указать + <para>В переменной <varname>PORTNAME</varname> вы должны указать основную часть имени вашего порта, а в переменной - <makevar>PORTVERSION</makevar> - номер версии.</para> + <varname>PORTVERSION</varname> - номер версии.</para> </sect2> - <sect2 id="makefile-naming-revepoch"> - <title><makevar>PORTREVISION</makevar> и - <makevar>PORTEPOCH</makevar></title> + <sect2 xml:id="makefile-naming-revepoch"> + <title><varname>PORTREVISION</varname> и + <varname>PORTEPOCH</varname></title> <sect3> - <title><makevar>PORTREVISION</makevar></title> + <title><varname>PORTREVISION</varname></title> - <para>Переменная <makevar>PORTREVISION</makevar> представляет собой + <para>Переменная <varname>PORTREVISION</varname> представляет собой монотонно увеличивающееся число, которое обнуляется при каждом - увеличении значения переменной <makevar>PORTVERSION</makevar> (то + увеличении значения переменной <varname>PORTVERSION</varname> (то есть каждый раз, когда создателями выпускается новый официальный релиз), и добавляется к имени пакета, если оно не равно нулю. - Изменения в <makevar>PORTREVISION</makevar> используются + Изменения в <varname>PORTREVISION</varname> используются автоматизированными инструментами (например, &man.pkg.version.1;) для определения факта появления нового пакета.</para> - <para>Значение <makevar>PORTREVISION</makevar> должно увеличиваться + <para>Значение <varname>PORTREVISION</varname> должно увеличиваться каждый раз, когда в порте FreeBSD делаются изменения, которые достаточно сильно затрагивают содержимое или структуру соответствующего пакета.</para> - <para>Примеры случаев, когда значение <makevar>PORTREVISION</makevar> + <para>Примеры случаев, когда значение <varname>PORTREVISION</varname> должно быть увеличено:</para> <itemizedlist> @@ -968,7 +956,7 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> порта, происходящие без объявлений, и приводящие к большим изменениям, то есть изменения в дистрибутиве требуют корректировки файла <filename>distinfo</filename> без - соответствующего изменения <makevar>PORTVERSION</makevar>, + соответствующего изменения <varname>PORTVERSION</varname>, когда как команда <command>diff -ru</command> между новой и старой версиями показывает нетривиальные изменения в коде.</para> @@ -976,7 +964,7 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> </itemizedlist> <para>Примеры изменений, которые не требуют увеличения переменной - <makevar>PORTREVISION</makevar>:</para> + <varname>PORTREVISION</varname>:</para> <itemizedlist> <listitem> @@ -985,7 +973,7 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> </listitem> <listitem> - <para>Изменения в переменной <makevar>MASTER_SITES</makevar> или + <para>Изменения в переменной <varname>MASTER_SITES</varname> или другие функциональные изменения порта, которые не затрагивают получающегося пакета.</para> </listitem> @@ -1001,9 +989,9 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> возможным построение пакета, если ранее это было невозможно сделать (пока изменения не приводят к изменению работы на любых других платформах, на которых порт ранее строился). Так как - <makevar>PORTREVISION</makevar> отражает содержимое пакета, + <varname>PORTREVISION</varname> отражает содержимое пакета, то, если ранее пакет не строился, то нет нужды увеличивать - <makevar>PORTREVISION</makevar> для отметки изменения.</para> + <varname>PORTREVISION</varname> для отметки изменения.</para> </listitem> </itemizedlist> @@ -1014,11 +1002,11 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> пакет будет вообще работоспособным), и примите во внимание тот факт, что при этом все, кто регулярно обновляют своё дерево портов, будут обязаны это сделать. Если это так, то переменная - <makevar>PORTREVISION</makevar> должна быть увеличена.</para> + <varname>PORTREVISION</varname> должна быть увеличена.</para> </sect3> <sect3> - <title><makevar>PORTEPOCH</makevar></title> + <title><varname>PORTEPOCH</varname></title> <para>Время от времени разработчик программного обеспечения или создатель порта FreeBSD делают что-то не так и выпускают версию @@ -1035,12 +1023,12 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> <command>pkg version -t</command>. Например:</para> <screen>&prompt.user; <userinput>pkg_version -t 0.031 0.29</userinput> -></screen> +></screen> <para>Для пользователей <application>pkgng</application>:</para> <screen>&prompt.user; <userinput>pkg version -t 0.031 0.29</userinput> -></screen> +></screen> <para>Строка <literal>></literal> в выводе команды означает, что версия 0.031 считается выше, чем версия 0.29, что может @@ -1048,10 +1036,10 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> </tip> <para>В ситуациях, подобных этой, должно быть увеличено значение - <makevar>PORTEPOCH</makevar>. Если значение - <makevar>PORTEPOCH</makevar> не равно нулю, то оно добавляется к + <varname>PORTEPOCH</varname>. Если значение + <varname>PORTEPOCH</varname> не равно нулю, то оно добавляется к имени пакета, как описано в разделе выше. Значение - <makevar>PORTEPOCH</makevar> никогда не должно уменьшаться или + <varname>PORTEPOCH</varname> никогда не должно уменьшаться или сбрасываться в ноль, потому что это приведёт к ошибке сравнения с пакетом с меньшим номером эпохи (то есть то, что пакет устарел, обнаружено не будет): номер новой версии (например, @@ -1062,14 +1050,14 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> чем предполагаемый суффикс <literal>,0</literal> более раннего пакета).</para> - <para>Некорректное уменьшение или сброс <makevar>PORTEPOCH</makevar> + <para>Некорректное уменьшение или сброс <varname>PORTEPOCH</varname> приводит к печальным последствиям; если вы не поняли, о чём шла речь ранее, пожалуйста, всё же разберитесь с этим, либо спросите в списках рассылки.</para> <para>Предполагается, что в большинстве портов переменная - <makevar>PORTEPOCH</makevar> использоваться не будет, но при - корректном использовании <makevar>PORTVERSION</makevar> может + <varname>PORTEPOCH</varname> использоваться не будет, но при + корректном использовании <varname>PORTVERSION</varname> может появиться необходимость её иметь, если в будущих релизах программное обеспечение должно изменить структуру номера версии. Однако создателям портов нужно быть внимательными, когда @@ -1082,15 +1070,15 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> <para>Например, если промежуточный релиз помечен датой 20000917, а предыдущая версия программного обеспечения имела номер 1.2, то промежуточному релизу должно быть поставлено в соответствие - значение <makevar>PORTVERSION</makevar>, равное 1.2.20000917 или + значение <varname>PORTVERSION</varname>, равное 1.2.20000917 или что-то похожее, но не 20000917, так как последующий релиз, скажем, 1.3, должен иметь численно большее значение.</para> </sect3> <sect3> <title>Пример использования переменных - <makevar>PORTREVISION</makevar> и - <makevar>PORTEPOCH</makevar></title> + <varname>PORTREVISION</varname> и + <varname>PORTEPOCH</varname></title> <para>Выполнен коммит порта <literal>gtkmumble</literal>, версии <literal>0.10</literal>, в коллекцию портов.</para> @@ -1098,19 +1086,19 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)</programlisting> <programlisting>PORTNAME= gtkmumble PORTVERSION= 0.10</programlisting> - <para>Значение <makevar>PKGNAME</makevar> станет равным + <para>Значение <varname>PKGNAME</varname> станет равным <literal>gtkmumble-0.10</literal>.</para> <para>Обнаружена брешь в безопасности, исправление которой потребовало создания локального патча для FreeBSD. Соответственно было увеличено - значение переменной <makevar>PORTREVISION</makevar>.</para> + значение переменной <varname>PORTREVISION</varname>.</para> <programlisting>PORTNAME= gtkmumble PORTVERSION= 0.10 PORTREVISION= 1</programlisting> - <para><makevar>PKGNAME</makevar> принимает значение + <para><varname>PKGNAME</varname> принимает значение <literal>gtkmumble-0.10_1</literal></para> <para>Разработчиком выпущена новая версия с номером @@ -1120,68 +1108,67 @@ PORTREVISION= 1</programlisting> версии 0.9</quote> - извините, теперь уже поздно). Так как новый младший номер версии <literal>2</literal> по значению меньше, чем номер предыдущей версии <literal>10</literal>, то должно быть - увеличено значение <makevar>PORTEPOCH</makevar> для того, чтобы + увеличено значение <varname>PORTEPOCH</varname> для того, чтобы заставить распознавать вновь создаваемый пакет как <quote>более новый</quote>. Так как это новый релиз программы, то - <makevar>PORTREVISION</makevar> обнуляется (или удаляется из + <varname>PORTREVISION</varname> обнуляется (или удаляется из файла <filename>Makefile</filename>).</para> <programlisting>PORTNAME= gtkmumble PORTVERSION= 0.2 PORTEPOCH= 1</programlisting> - <para><makevar>PKGNAME</makevar> принимает значение + <para><varname>PKGNAME</varname> принимает значение <literal>gtkmumble-0.2,1</literal></para> <para>Следующий релиз имеет номер версии 0.3. Так как значение - переменной <makevar>PORTEPOCH</makevar> никогда не уменьшается, что + переменной <varname>PORTEPOCH</varname> никогда не уменьшается, что переменные, определяющие версии, теперь выглядят так:</para> <programlisting>PORTNAME= gtkmumble PORTVERSION= 0.3 PORTEPOCH= 1</programlisting> - <para><makevar>PKGNAME</makevar> принимает значение + <para><varname>PKGNAME</varname> принимает значение <literal>gtkmumble-0.3,1</literal></para> <note> - <para>Если значение <makevar>PORTEPOCH</makevar> этим обновлением + <para>Если значение <varname>PORTEPOCH</varname> этим обновлением было бы сброшено в <literal>0</literal>, то кто-нибудь, имеющий установленный пакет <literal>gtkmumble-0.10_1</literal>, не смог бы опознать пакет <literal>gtkmumble-0.3</literal> как более новый, так как <literal>3</literal> было бы меньше, чем <literal>10</literal>. Помните, что в первую очередь это - касается <makevar>PORTEPOCH</makevar>.</para> + касается <varname>PORTEPOCH</varname>.</para> </note> </sect3> </sect2> <sect2> - <title>Переменные <makevar>PKGNAMEPREFIX</makevar> - и <makevar>PKGNAMESUFFIX</makevar></title> - - <para>Две необязательные переменные, <makevar>PKGNAMEPREFIX</makevar> и - <makevar>PKGNAMESUFFIX</makevar>, объединяются со значениями - <makevar>PORTNAME</makevar> и - <makevar>PORTVERSION</makevar> для формирования - <makevar>PKGNAME</makevar> в форме + <title>Переменные <varname>PKGNAMEPREFIX</varname> + и <varname>PKGNAMESUFFIX</varname></title> + + <para>Две необязательные переменные, <varname>PKGNAMEPREFIX</varname> и + <varname>PKGNAMESUFFIX</varname>, объединяются со значениями + <varname>PORTNAME</varname> и + <varname>PORTVERSION</varname> для формирования + <varname>PKGNAME</varname> в форме <literal>${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}</literal>. - Добейтесь того, чтобы это соответствовало нашим <link - linkend="porting-pkgname">рекомендациям по правильному выбору + Добейтесь того, чтобы это соответствовало нашим <link linkend="porting-pkgname">рекомендациям по правильному выбору названий для пакетов</link>. В частности, в переменной - <makevar>PORTVERSION</makevar> <emphasis>не разрешается</emphasis> + <varname>PORTVERSION</varname> <emphasis>не разрешается</emphasis> использование дефиса (<literal>-</literal>). Кроме того, если в имени пакета присутствует часть <replaceable>language-</replaceable> или <replaceable>-compiled.specifics</replaceable> (смотрите ниже), - то используйте переменные <makevar>PKGNAMEPREFIX</makevar> и - <makevar>PKGNAMESUFFIX</makevar>, соответственно. Не делайте их - частью значения переменной <makevar>PORTNAME</makevar>.</para> + то используйте переменные <varname>PKGNAMEPREFIX</varname> и + <varname>PKGNAMESUFFIX</varname>, соответственно. Не делайте их + частью значения переменной <varname>PORTNAME</varname>.</para> </sect2> <sect2> - <title><makevar>LATEST_LINK</makevar></title> + <title><varname>LATEST_LINK</varname></title> - <para><makevar>LATEST_LINK</makevar> задает в процессе построения + <para><varname>LATEST_LINK</varname> задает в процессе построения пакета короткое имя ссылки, которые могут использоваться при выполнении команды <command>pkg_add -r</command>. Это позволяет, к примеру, установить последнюю версию perl, используя @@ -1193,15 +1180,15 @@ PORTEPOCH= 1</programlisting> несколько версий программы одновременно. Обе системы, построения индексов и построения пакетов, нуждаются в способности их видеть как разные, независимые порты, хотя все они могут иметь схожее - значение для <makevar>PORTNAME</makevar>, - <makevar>PKGNAMEPREFIX</makevar> и даже - <makevar>PKGNAMESUFFIX</makevar>. В этих случаях для всех портов + значение для <varname>PORTNAME</varname>, + <varname>PKGNAMEPREFIX</varname> и даже + <varname>PKGNAMESUFFIX</varname>. В этих случаях для всех портов кроме <quote>главного</quote> следует присвоить различные значения для - необязательной переменной <makevar>LATEST_LINK</makevar> — + необязательной переменной <varname>LATEST_LINK</varname> — чтобы получить пример ее использования, смотрите порты <filename>lang/gcc46</filename> и <filename>lang/gcc</filename>, а также семейство <filename>www/apache*</filename>. При установке - <makevar>NO_LATEST_LINK</makevar> ссылки не создаются; эта + <varname>NO_LATEST_LINK</varname> ссылки не создаются; эта необязательная переменная может быть указана во всех версиях, кроме <quote>главной</quote>. Обратите внимание, как выбирать <quote>главную</quote> версию — @@ -1212,7 +1199,7 @@ PORTEPOCH= 1</programlisting> вы выбрали <quote>главный</quote>.</para> </sect2> - <sect2 id="porting-pkgname"> + <sect2 xml:id="porting-pkgname"> <title>Соглашения по именованию пакетов</title> <para>Далее описаны некоторые соглашения, которым вы должны следовать @@ -1222,7 +1209,7 @@ PORTEPOCH= 1</programlisting> взору!</para> <para>Имя пакета должно иметь вид - <filename><replaceable><optional>language<optional>_region</optional></optional>-name<optional><optional>-</optional>compiled.specifics</optional>-version.numbers</replaceable></filename>.</para> + <filename>language_region-name-compiled.specifics-version.numbers</filename>.</para> <para>Имя пакета определяется как <literal>${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}</literal>. @@ -1247,7 +1234,7 @@ PORTEPOCH= 1</programlisting> English и <literal>fr_CH</literal> для Swiss French.</para> <para>Часть <replaceable>language-</replaceable> должна задаваться - в переменной <makevar>PKGNAMEPREFIX</makevar>.</para> + в переменной <varname>PKGNAMEPREFIX</varname>.</para> </listitem> <listitem> @@ -1264,25 +1251,24 @@ PORTEPOCH= 1</programlisting> <listitem> <para>Убедитесь, что имя порта и версия четко отделены и - размещаются в переменных <makevar>PORTNAME</makevar> и - <makevar>PORTVERSION</makevar>. Единственная причина, по - которой <makevar>PORTNAME</makevar> содержит версионную часть, + размещаются в переменных <varname>PORTNAME</varname> и + <varname>PORTVERSION</varname>. Единственная причина, по + которой <varname>PORTNAME</varname> содержит версионную часть, это если полученный дистрибутив сам назван таким образом, как это сделано для портов <filename>textproc/libxml2</filename> или <filename>japanese/kinput2-freewnn</filename>. В противном - случае <makevar>PORTNAME</makevar> не должен содержать никакой + случае <varname>PORTNAME</varname> не должен содержать никакой информации, указывающей на версию. То, что некоторые порты - имеют одинаковый <makevar>PORTNAME</makevar>, является вполне + имеют одинаковый <varname>PORTNAME</varname>, является вполне нормальным, как для портов <filename>www/apache*</filename>; в этом случае различные версии (и различные записи в индексе) - отличаются по значениям <makevar>PKGNAMEPREFIX</makevar>, - <makevar>PKGNAMESUFFIX</makevar> и - <makevar>LATEST_LINK</makevar>.</para> + отличаются по значениям <varname>PKGNAMEPREFIX</varname>, + <varname>PKGNAMESUFFIX</varname> и + <varname>LATEST_LINK</varname>.</para> </listitem> <listitem> - <para>Если порт может быть построен с различными <link - linkend="makefile-masterdir">статически заданными значениями по + <para>Если порт может быть построен с различными <link linkend="makefile-masterdir">статически заданными значениями по умолчанию</link> (обычно это часть имени каталога в семействе портов), то часть <replaceable>-compiled.specifics</replaceable> должна определять вкомпилированные значения по умолчанию (дефис @@ -1290,7 +1276,7 @@ PORTEPOCH= 1</programlisting> шрифтов.</para> <para>Часть <replaceable>-compiled.specifics</replaceable> должна - задаваться в переменной <makevar>PKGNAMESUFFIX</makevar>.</para> + задаваться в переменной <varname>PKGNAMESUFFIX</varname>.</para> </listitem> <listitem> @@ -1313,15 +1299,15 @@ PORTEPOCH= 1</programlisting> по номеру версии. В частности, следите за тем, чтобы компоненты номера версии разделялись точкой, и если там присутствует дата, то используйте формат - <literal>0.0.<replaceable>yyyy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>, но не - <literal><replaceable>dd</replaceable>.<replaceable>mm</replaceable>.<replaceable>yyyy</replaceable></literal> + <literal>0.0.yyyy.mm.dd</literal>, но не + <literal>dd.mm.yyyy</literal> или не совместимый с проблемой Y2K - <literal><replaceable>yy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>. + <literal>yy.mm.dd</literal>. Добавление к версии префикса <literal>0.0.</literal> является важным, в случае если выпущен релиз с присвоением настоящей версии, которая в числовом представлении, конечно же, будет ниже, чем - <literal><replaceable>yyyy</replaceable></literal>.</para> + <literal>yyyy</literal>.</para> </listitem> </orderedlist> @@ -1335,13 +1321,13 @@ PORTEPOCH= 1</programlisting> <row> <entry>Имя дистрибутива</entry> - <entry><makevar>PKGNAMEPREFIX</makevar></entry> + <entry><varname>PKGNAMEPREFIX</varname></entry> - <entry><makevar>PORTNAME</makevar></entry> + <entry><varname>PORTNAME</varname></entry> - <entry><makevar>PKGNAMESUFFIX</makevar></entry> + <entry><varname>PKGNAMESUFFIX</varname></entry> - <entry><makevar>PORTVERSION</makevar></entry> + <entry><varname>PORTVERSION</varname></entry> <entry>Обоснование</entry> </row> @@ -1467,22 +1453,22 @@ PORTEPOCH= 1</programlisting> качестве номера версии задайте просто <literal>1.0</literal> (как в примере с <literal>piewm</literal> выше). В противном случае спросите автора программы или используйте дату - (<literal>0.0.<replaceable>yyyy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>) + (<literal>0.0.yyyy.mm.dd</literal>) в качестве номера версии.</para> </sect2> </sect1> - <sect1 id="makefile-categories"> + <sect1 xml:id="makefile-categories"> <title>Разделение по категориям</title> <sect2> - <title><makevar>CATEGORIES</makevar></title> + <title><varname>CATEGORIES</varname></title> <para>В процессе создания пакета он помещается в каталог <filename>/usr/ports/packages/All</filename>, а в одном или более подкаталогов из <filename>/usr/ports/packages</filename> создаются на него ссылки. Имена этих подкаталогов определяются - переменной <makevar>CATEGORIES</makevar>. Такая схема нужна для + переменной <varname>CATEGORIES</varname>. Такая схема нужна для облегчения жизни пользователя, когда он сталкивается с массой пакетов на FTP-сервере или компакт-диске. Пожалуйста, посмотрите на <link linkend="porting-categories">текущий список категорий</link> @@ -1492,12 +1478,11 @@ PORTEPOCH= 1</programlisting> <para>Этот список также определяет, куда в дереве портов будет помещен порт. Если вы укажете здесь более одной категории, то предполагается, что файлы порта будут помещены в подкаталог с именем - первой категории. Посмотрите <link - linkend="choosing-categories">ниже</link> для получения + первой категории. Посмотрите <link linkend="choosing-categories">ниже</link> для получения подробной информации о том, как правильно выбрать категории.</para> </sect2> - <sect2 id="porting-categories"> + <sect2 xml:id="porting-categories"> <title>Текущий список категорий</title> <para>Вот текущий список категорий. Те, которые отмечены @@ -1508,7 +1493,7 @@ PORTEPOCH= 1</programlisting> <note> <para>Для невиртуальных категорий имеется однострочное описание - в <makevar>COMMENT</makevar> в <filename>Makefile</filename> + в <varname>COMMENT</varname> в <filename>Makefile</filename> соответствующего подкаталога.</para> </note> @@ -1529,63 +1514,62 @@ PORTEPOCH= 1</programlisting> <entry><filename>accessibility</filename></entry> <entry>Порты для помощи пользователям с ограниченными возможностями.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>afterstep*</filename></entry> - <entry>Порты, поддерживающие менеджер окон <ulink - url="http://www.afterstep.org">AfterStep</ulink>.</entry> - <entry></entry> + <entry>Порты, поддерживающие менеджер окон <link xlink:href="http://www.afterstep.org">AfterStep</link>.</entry> + <entry/> </row> <row> <entry><filename>arabic</filename></entry> <entry>Поддержка арабского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>archivers</filename></entry> <entry>Инструменты для работы с архивами.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>astro</filename></entry> <entry>Приложения, связанные с астрономией.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>audio</filename></entry> <entry>Поддержка работы со звуком.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>benchmarks</filename></entry> <entry>Утилиты для измерения производительности системы.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>biology</filename></entry> <entry>Программное обеспечение, связанное с биологией.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>cad</filename></entry> <entry>Инструменты Систем Автоматизированного Проектирования.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>chinese</filename></entry> <entry>Поддержка китайского языка.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1598,19 +1582,19 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>converters</filename></entry> <entry>Утилиты для преобразования символьных форматов.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>databases</filename></entry> <entry>Базы данных.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>deskutils</filename></entry> <entry>То, что было на столе до изобретения компьютеров.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1624,13 +1608,13 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>dns</filename></entry> <entry>Программное обеспечение для работы с DNS.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>docs*</filename></entry> <entry>Мета-порты для документации FreeBSD.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1645,7 +1629,7 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>elisp*</filename></entry> <entry>Порты для Emacs lisp.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1662,13 +1646,13 @@ PORTEPOCH= 1</programlisting> <entry><filename>finance</filename></entry> <entry>Приложения для работы с деньгами, финансами и всем, что с этим связано.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>french</filename></entry> <entry>Поддержка французского языка.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1683,82 +1667,81 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>games</filename></entry> <entry>Игры.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>geography*</filename></entry> <entry>Программное обеспечение, связанное с географией.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>german</filename></entry> <entry>Поддержка немецкого языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>gnome*</filename></entry> - <entry>Порты Проекта <ulink - url="http://www.gnome.org">GNOME</ulink>.</entry> - <entry></entry> + <entry>Порты Проекта <link xlink:href="http://www.gnome.org">GNOME</link>.</entry> + <entry/> </row> <row> <entry><filename>gnustep*</filename></entry> <entry>Программное обеспечение для окружения рабочего стола GNUstep.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>graphics</filename></entry> <entry>Графические утилиты.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>hamradio*</filename></entry> <entry>Программное обеспечение для любительского радио</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>haskell*</filename></entry> <entry>Программное обеспечение, связанное с языком Haskell.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>hebrew</filename></entry> <entry>Поддержка иврита.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>hungarian</filename></entry> <entry>Поддержка венгерского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>ipv6*</filename></entry> <entry>Программное обеспечение, связанное с IPv6.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>irc</filename></entry> <entry>Утилиты для работы с Internet Relay Chat.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>japanese</filename></entry> <entry>Поддержка японского языка.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1776,58 +1759,58 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>kde*</filename></entry> <entry>Порты проекта - <ulink url="http://www.kde.org">KDE</ulink>.</entry> - <entry></entry> + <link xlink:href="http://www.kde.org">KDE</link>.</entry> + <entry/> </row> <row> <entry><filename>kld*</filename></entry> <entry>Загружаемые модули ядра.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>korean</filename></entry> <entry>Поддержка корейского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>lang</filename></entry> <entry>Языки программирования.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>linux*</filename></entry> <entry>Linux приложения и утилиты.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>lisp*</filename></entry> <entry>Программное обеспечение, связанное с языком Lisp.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>mail</filename></entry> <entry>Программы для работы с электронной почтой.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>math</filename></entry> <entry>Программное обеспечение для численных вычислений и другие утилиты, связанные с математикой.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>mbone*</filename></entry> <entry>Приложения для MBone.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1843,92 +1826,90 @@ PORTEPOCH= 1</programlisting> <entry><filename>multimedia</filename></entry> <entry>Программное обеспечение для работы с мультимедиа.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>net</filename></entry> <entry>Различное сетевое программное обеспечение.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>net-im</filename></entry> <entry>Программы мгновенного обмена сообщениями.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>net-mgmt</filename></entry> <entry>Программное обеспечение для сетевого управления.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>net-p2p</filename></entry> <entry>Приложения для пиринговых сетей.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>news</filename></entry> <entry>Программное обеспечение для работы с конференциями USENET.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>palm</filename></entry> - <entry>Программная поддержка <ulink - url="http://www.palm.com/">Palm™</ulink>.</entry> - <entry></entry> + <entry>Программная поддержка <link xlink:href="http://www.palm.com/">Palm™</link>.</entry> + <entry/> </row> <row> <entry><filename>parallel*</filename></entry> <entry>Приложения, связанные с параллельными вычислениями.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>pear*</filename></entry> <entry>Порты, относящиеся к технологии Pear PHP.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>perl5*</filename></entry> <entry>Порты, которым для работы требуется <application>Perl</application> версии 5.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>plan9*</filename></entry> - <entry>Различные программы из <ulink - url="http://www.cs.bell-labs.com/plan9dist/"> - Plan9</ulink>.</entry> - <entry></entry> + <entry>Различные программы из <link xlink:href="http://www.cs.bell-labs.com/plan9dist/"> + Plan9</link>.</entry> + <entry/> </row> <row> <entry><filename>polish</filename></entry> <entry>Поддержка польского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>ports-mgmt</filename></entry> <entry>Порты для управления, установки и разработки портов и пакетов FreeBSD.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>portuguese</filename></entry> <entry>Поддержка португальского языка.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1940,36 +1921,33 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>python*</filename></entry> - <entry>Программное обеспечение, связанное с языком <ulink - url="http://www.python.org/">Python</ulink>.</entry> - <entry></entry> + <entry>Программное обеспечение, связанное с языком <link xlink:href="http://www.python.org/">Python</link>.</entry> + <entry/> </row> <row> <entry><filename>ruby*</filename></entry> - <entry>Программное обеспечение, связанное с языком <ulink - url="http://www.ruby-lang.org/">Ruby</ulink>.</entry> - <entry></entry> + <entry>Программное обеспечение, связанное с языком <link xlink:href="http://www.ruby-lang.org/">Ruby</link>.</entry> + <entry/> </row> <row> <entry><filename>rubygems*</filename></entry> - <entry>Порты для пакетов <ulink - url="http://www.rubygems.org/">RubyGems</ulink>.</entry> - <entry></entry> + <entry>Порты для пакетов <link xlink:href="http://www.rubygems.org/">RubyGems</link>.</entry> + <entry/> </row> <row> <entry><filename>russian</filename></entry> <entry>Поддержка русского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>scheme*</filename></entry> <entry>Программное обеспечение, связанное с языком Scheme.</entry> - <entry></entry> + <entry/> </row> <row> @@ -1978,37 +1956,37 @@ PORTEPOCH= 1</programlisting> категории, скажем, <filename>astro</filename>, <filename>biology</filename> или <filename>math</filename>.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>security</filename></entry> <entry>Программы, обеспечивающие безопасность системы.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>shells</filename></entry> <entry>Различные командные процессоры.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>sysutils</filename></entry> <entry>Системные утилиты.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>spanish*</filename></entry> <entry>Поддержка испанского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>tcl*</filename></entry> <entry>Порты, для работы которых нужен Tcl.</entry> - <entry></entry> + <entry/> </row> <row> @@ -2021,25 +1999,25 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>tk*</filename></entry> <entry>Порты, для работы которых нужен Tk.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>ukrainian</filename></entry> <entry>Поддержка украинского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>vietnamese</filename></entry> <entry>Поддержка вьетнамского языка.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>windowmaker*</filename></entry> <entry>Порты, поддерживающие менеджер окон WindowMaker.</entry> - <entry></entry> + <entry/> </row> <row> @@ -2063,70 +2041,69 @@ PORTEPOCH= 1</programlisting> <row> <entry><filename>x11-clocks</filename></entry> <entry>Часы для X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-drivers</filename></entry> <entry>Драйверы X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-fm</filename></entry> <entry>Менеджеры файлов для X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-fonts</filename></entry> <entry>Шрифты для X11 и утилиты для работы с ними.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-servers</filename></entry> <entry>Серверы для X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-themes</filename></entry> <entry>Темы для X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-toolkits</filename></entry> <entry>Пакеты разработчика для X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>x11-wm</filename></entry> <entry>Оконные менеджеры для X11.</entry> - <entry></entry> + <entry/> </row> <row> <entry><filename>xfce*</filename></entry> <entry>Порты, связанные с окружением рабочего стола - <ulink url="http://www.xfce.org/">Xfce</ulink>.</entry> - <entry></entry> + <link xlink:href="http://www.xfce.org/">Xfce</link>.</entry> + <entry/> </row> <row> <entry><filename>zope*</filename></entry> - <entry>Поддержка <ulink - url="http://www.zope.org/">Zope</ulink>.</entry> - <entry></entry> + <entry>Поддержка <link xlink:href="http://www.zope.org/">Zope</link>.</entry> + <entry/> </row> </tbody> </tgroup> </informaltable> </sect2> - <sect2 id="choosing-categories"> + <sect2 xml:id="choosing-categories"> <title>Выбор правильной категории</title> <para>Так как многие категории перекрываются, вам часто необходимо @@ -2145,7 +2122,7 @@ PORTEPOCH= 1</programlisting> <listitem> <para>Сначала всегда идут категории, специфичные для языков. Например, если ваш порт устанавливает японские шрифты для X11, - то строчка <makevar>CATEGORIES</makevar> должна иметь вид + то строчка <varname>CATEGORIES</varname> должна иметь вид <filename>japanese x11-fonts</filename>.</para> </listitem> @@ -2181,7 +2158,7 @@ PORTEPOCH= 1</programlisting> <listitem> <para>Порты, устанавливающие загружаемые модули ядра, должны содержать виртуальную категорию <filename>kld</filename> в - строке <makevar>CATEGORIES</makevar>. + строке <varname>CATEGORIES</varname>. </para> </listitem> @@ -2189,7 +2166,7 @@ PORTEPOCH= 1</programlisting> <para><filename>misc</filename> не должна указываться вместе с любой другой невиртуальной категорией. Если вы указываете <literal>misc</literal> - вместе с чем-то ещё в строке <makevar>CATEGORIES</makevar>, + вместе с чем-то ещё в строке <varname>CATEGORIES</varname>, это значит, что вы можете спокойно удалить <literal>misc</literal> и просто поместить порт в этот другой подкаталог!</para> @@ -2211,7 +2188,7 @@ PORTEPOCH= 1</programlisting> исходных текстов.</para> </sect2> - <sect2 id="proposing-categories"> + <sect2 xml:id="proposing-categories"> <title>Предложение новой категории</title> <para>Поскольку со временем Коллекция Портов увеличилась, то в связи @@ -2232,8 +2209,8 @@ PORTEPOCH= 1</programlisting> выполнение обоих условий.</para> <para>Основной причиной для этого является то, что такое изменение - создает <ulink url="&url.articles.committers-guide;/#ports">изрядное - количество работы</ulink> и для коммиттеров, и для всех тех + создает <link xlink:href="&url.articles.committers-guide;/#ports">изрядное + количество работы</link> и для коммиттеров, и для всех тех пользователей, которые отслеживают изменения в Коллекции Портов. В дополнение, предложенная категория создает естественное разногласие. (Пожалуй, потому что не существует четкого соглашения, @@ -2300,9 +2277,8 @@ PORTEPOCH= 1</programlisting> <step> <para>Если этот PR одобрен, то коммиттеру нужно продолжить - остальную часть процедуры, которая <ulink - url="&url.articles.committers-guide;/article.html#PORTS"> - изложена в Руководстве Коммиттера</ulink>.</para> + остальную часть процедуры, которая <link xlink:href="&url.articles.committers-guide;/article.html#PORTS"> + изложена в Руководстве Коммиттера</link>.</para> </step> </procedure> @@ -2310,11 +2286,11 @@ PORTEPOCH= 1</programlisting> с вышеизложенным, но при этом затрагивать намного меньше, поскольку ни один из портов не будет перемещен в действительности. В этом случае единственными патчами, включенными в PR, будут - те, что добавляют новую категорию в <makevar>CATEGORIES</makevar> + те, что добавляют новую категорию в <varname>CATEGORIES</varname> каждого из затрагиваемых портов.</para> </sect2> - <sect2 id="proposing-reorg"> + <sect2 xml:id="proposing-reorg"> <title>Предложение реорганизации всех категорий</title> <para>Время от времени кто-нибудь предлагает произвести реорганизацию @@ -2329,7 +2305,7 @@ PORTEPOCH= 1</programlisting> </sect2> </sect1> - <sect1 id="makefile-distfiles"> + <sect1 xml:id="makefile-distfiles"> <title>Дистрибутивные файлы</title> <para>Во второй части <filename>Makefile</filename> задаётся, какие @@ -2337,27 +2313,27 @@ PORTEPOCH= 1</programlisting> порт.</para> <sect2> - <title><makevar>DISTVERSION/DISTNAME</makevar></title> + <title><varname>DISTVERSION/DISTNAME</varname></title> - <para>В переменной <makevar>DISTNAME</makevar> указывается имя порта + <para>В переменной <varname>DISTNAME</varname> указывается имя порта так, как назвали его создатели программного обеспечения. Значение - <makevar>DISTNAME</makevar> по умолчанию совпадает с + <varname>DISTNAME</varname> по умолчанию совпадает с <literal>${PORTNAME}-${PORTVERSION}</literal>, так что переопределяете её значение только в случае необходимости. - <makevar>DISTNAME</makevar> используется только в двух местах. + <varname>DISTNAME</varname> используется только в двух местах. Во-первых, список дистрибутивных файлов - (<makevar>DISTFILES</makevar>) по умолчанию состоит из - <makevar>${DISTNAME}</makevar><makevar>${EXTRACT_SUFX}</makevar>. И + (<varname>DISTFILES</varname>) по умолчанию состоит из + <varname>${DISTNAME}</varname><varname>${EXTRACT_SUFX}</varname>. И во-вторых, предполагается, что дистрибутивный файл будет распакован в - подкаталог с именем <makevar>WRKSRC</makevar>, значение которого по + подкаталог с именем <varname>WRKSRC</varname>, значение которого по умолчанию есть не что иное, как - <filename>work/<makevar>${DISTNAME}</makevar></filename>.</para> + <filename>work/${DISTNAME}</filename>.</para> <para>Названия некоторых дистрибутивов, которые не укладываются в <literal>${PORTNAME}-${PORTVERSION}</literal>-схему, могут быть автоматически обработаны посредством установки переменной - <makevar>DISTVERSION</makevar>. <makevar>PORTVERSION</makevar> и - <makevar>DISTNAME</makevar> будут унаследованы автоматически, но + <varname>DISTVERSION</varname>. <varname>PORTVERSION</varname> и + <varname>DISTNAME</varname> будут унаследованы автоматически, но конечно же могут быть переопределены. Следующая таблица демонстрирует некоторые примеры:</para> @@ -2365,8 +2341,8 @@ PORTEPOCH= 1</programlisting> <tgroup cols="2"> <thead> <row> - <entry><makevar>DISTVERSION</makevar></entry> - <entry><makevar>PORTVERSION</makevar></entry> + <entry><varname>DISTVERSION</varname></entry> + <entry><varname>PORTVERSION</varname></entry> </row> </thead> @@ -2395,31 +2371,31 @@ PORTEPOCH= 1</programlisting> </informaltable> <note> - <para>Значения переменных <makevar>PKGNAMEPREFIX</makevar> - и <makevar>PKGNAMESUFFIX</makevar> не влияют на значение - <makevar>DISTNAME</makevar>. Заметьте также, что если значение - <makevar>WRKSRC</makevar> равно - <filename>work/<makevar>${PORTNAME}-${PORTVERSION}</makevar></filename>, + <para>Значения переменных <varname>PKGNAMEPREFIX</varname> + и <varname>PKGNAMESUFFIX</varname> не влияют на значение + <varname>DISTNAME</varname>. Заметьте также, что если значение + <varname>WRKSRC</varname> равно + <filename>work/${PORTNAME}-${PORTVERSION}</filename>, и в случае, когда оригинальный архив называется по имени, отличном - от <makevar>${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}</makevar>, - скорее всего, вы должны оставить <makevar>DISTNAME</makevar> - как есть— лучше переопределить <makevar>DISTFILES</makevar>, + от <varname>${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX}</varname>, + скорее всего, вы должны оставить <varname>DISTNAME</varname> + как есть— лучше переопределить <varname>DISTFILES</varname>, чем задавать значения как - <makevar>DISTNAME</makevar>, так и <makevar>WRKSRC</makevar> - (и, возможно, ещё и <makevar>EXTRACT_SUFX</makevar>).</para> + <varname>DISTNAME</varname>, так и <varname>WRKSRC</varname> + (и, возможно, ещё и <varname>EXTRACT_SUFX</varname>).</para> </note> </sect2> <sect2> - <title><makevar>MASTER_SITES</makevar></title> + <title><varname>MASTER_SITES</varname></title> <para>Содержит часть с каталогом FTP/HTTP-URL, которая указывает на - оригинальный архив на сервере <makevar>MASTER_SITES</makevar>. Не + оригинальный архив на сервере <varname>MASTER_SITES</varname>. Не забудьте лидирующий слэш (<filename>/</filename>)!</para> <para>Макрос команды <command>make</command> будет пытаться воспользоваться этой переменной для получения дистрибутивного файла - с помощью программы <makevar>FETCH</makevar>, если он не будет найден + с помощью программы <varname>FETCH</varname>, если он не будет найден в системе.</para> <para>Рекомендуется помещать в список много сайтов, предпочтительно с @@ -2431,12 +2407,12 @@ PORTEPOCH= 1</programlisting> <para>Если оригинальный архив находится на одном из таких популярных серверов, как SourceForge, GNU или Perl CPAN, то указывайте эти сайты в простой форме при помощи - <makevar>MASTER_SITE_<replaceable>*</replaceable></makevar> - (к примеру, <makevar>MASTER_SITE_SOURCEFORGE</makevar>, - <makevar>MASTER_SITE_GNU</makevar> или - <makevar>MASTER_SITE_PERL_CPAN</makevar>. Просто укажите в переменной - <makevar>MASTER_SITES</makevar> одно из этих значений, а в - переменной <makevar>MASTER_SITE_SUBDIR</makevar> задайте путь к + <varname>MASTER_SITE_<replaceable>*</replaceable></varname> + (к примеру, <varname>MASTER_SITE_SOURCEFORGE</varname>, + <varname>MASTER_SITE_GNU</varname> или + <varname>MASTER_SITE_PERL_CPAN</varname>. Просто укажите в переменной + <varname>MASTER_SITES</varname> одно из этих значений, а в + переменной <varname>MASTER_SITE_SUBDIR</varname> задайте путь к архиву. Вот пример:</para> <programlisting>MASTER_SITES= ${MASTER_SITE_GNU} @@ -2470,7 +2446,7 @@ MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION}</programlisting> <table frame="none"> <title>Популярные магические макросы для - <makevar>MASTER_SITES</makevar></title> + <varname>MASTER_SITES</varname></title> <tgroup cols="2"> <thead> @@ -2483,75 +2459,75 @@ MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION}</programlisting> <tbody> <row> - <entry><makevar>BERLIOS</makevar></entry> + <entry><varname>BERLIOS</varname></entry> - <entry><makevar>/${PORTNAME:L}</makevar></entry> + <entry><varname>/${PORTNAME:L}</varname></entry> </row> <row> - <entry><makevar>CHEESESHOP</makevar></entry> + <entry><varname>CHEESESHOP</varname></entry> - <entry><makevar>/packages/source/source/${DISTNAME:C/(.).*/\1/}/${DISTNAME:C/(.*)-[0-9].*/\1/}</makevar></entry> + <entry><varname>/packages/source/source/${DISTNAME:C/(.).*/\1/}/${DISTNAME:C/(.*)-[0-9].*/\1/}</varname></entry> </row> <row> - <entry><makevar>DEBIAN</makevar></entry> + <entry><varname>DEBIAN</varname></entry> - <entry><makevar>/debian/pool/main/${PORTNAME:C/^((lib)?.).*$/\1/}/${PORTNAME}</makevar></entry> + <entry><varname>/debian/pool/main/${PORTNAME:C/^((lib)?.).*$/\1/}/${PORTNAME}</varname></entry> </row> <row> - <entry><makevar>GCC</makevar></entry> + <entry><varname>GCC</varname></entry> - <entry><makevar>/pub/gcc/releases/${DISTNAME}</makevar></entry> + <entry><varname>/pub/gcc/releases/${DISTNAME}</varname></entry> </row> <row> - <entry><makevar>GNOME</makevar></entry> + <entry><varname>GNOME</varname></entry> - <entry><makevar>/pub/GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}</makevar></entry> + <entry><varname>/pub/GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}</varname></entry> </row> <row> - <entry><makevar>GNU</makevar></entry> + <entry><varname>GNU</varname></entry> - <entry><makevar>/gnu/${PORTNAME}</makevar></entry> + <entry><varname>/gnu/${PORTNAME}</varname></entry> </row> <row> - <entry><makevar>MOZDEV</makevar></entry> + <entry><varname>MOZDEV</varname></entry> - <entry><makevar>/pub/mozdev/${PORTNAME:L}</makevar></entry> + <entry><varname>/pub/mozdev/${PORTNAME:L}</varname></entry> </row> <row> - <entry><makevar>PERL_CPAN</makevar></entry> + <entry><varname>PERL_CPAN</varname></entry> - <entry><makevar>/pub/CPAN/modules/by-module/${PORTNAME:C/-.*//}</makevar></entry> + <entry><varname>/pub/CPAN/modules/by-module/${PORTNAME:C/-.*//}</varname></entry> </row> <row> - <entry><makevar>PYTHON</makevar></entry> + <entry><varname>PYTHON</varname></entry> - <entry><makevar>/ftp/python/${PYTHON_PORTVERSION:C/rc[0-9]//}</makevar></entry> + <entry><varname>/ftp/python/${PYTHON_PORTVERSION:C/rc[0-9]//}</varname></entry> </row> <row> - <entry><makevar>RUBYFORGE</makevar></entry> + <entry><varname>RUBYFORGE</varname></entry> - <entry><makevar>/${PORTNAME:L}</makevar></entry> + <entry><varname>/${PORTNAME:L}</varname></entry> </row> <row> - <entry><makevar>SAVANNAH</makevar></entry> + <entry><varname>SAVANNAH</varname></entry> - <entry><makevar>/${PORTNAME:L}</makevar></entry> + <entry><varname>/${PORTNAME:L}</varname></entry> </row> <row> - <entry><makevar>SF</makevar></entry> + <entry><varname>SF</varname></entry> - <entry><makevar>/project/${PORTNAME:L}/${PORTNAME:L}/${PORTVERSION}</makevar></entry> + <entry><varname>/project/${PORTNAME:L}/${PORTNAME:L}/${PORTVERSION}</varname></entry> </row> </tbody> </tgroup> @@ -2559,11 +2535,11 @@ MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION}</programlisting> </sect2> <sect2> - <title><makevar>EXTRACT_SUFX</makevar></title> + <title><varname>EXTRACT_SUFX</varname></title> <para>Если у вас имеется один дистрибутивный файл, и в его имени используется странное окончание для указания типа сжатия, задайте - переменную <makevar>EXTRACT_SUFX</makevar>.</para> + переменную <varname>EXTRACT_SUFX</varname>.</para> <para>К примеру, если дистрибутивный файл носит имя <filename>foo.tgz</filename>, а не более привычное @@ -2572,23 +2548,23 @@ MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION}</programlisting> <programlisting>DISTNAME= foo EXTRACT_SUFX= .tgz</programlisting> - <para>Переменные <makevar>USE_BZIP2</makevar>, - <makevar>USE_XZ</makevar> и - <makevar>USE_ZIP</makevar> при необходимости автоматически - устанавливают значение <makevar>EXTRACT_SUFX</makevar> в + <para>Переменные <varname>USE_BZIP2</varname>, + <varname>USE_XZ</varname> и + <varname>USE_ZIP</varname> при необходимости автоматически + устанавливают значение <varname>EXTRACT_SUFX</varname> в <literal>.tar.bz2</literal>, <literal>.tar.xz</literal> или <literal>.zip</literal>. Если ни одна из этих - переменных не задана, то значение <makevar>EXTRACT_SUFX</makevar> + переменных не задана, то значение <varname>EXTRACT_SUFX</varname> по умолчанию устанавливается в <literal>.tar.gz</literal>.</para> <note> - <para>Вам не нужно задавать значения <makevar>EXTRACT_SUFX</makevar> - и <makevar>DISTFILES</makevar> одновременно.</para> + <para>Вам не нужно задавать значения <varname>EXTRACT_SUFX</varname> + и <varname>DISTFILES</varname> одновременно.</para> </note> </sect2> <sect2> - <title><makevar>DISTFILES</makevar></title> + <title><varname>DISTFILES</varname></title> <para>Иногда имена сгружаемых файлов не соответствуют имени порта. К примеру, файл может называться <filename>source.tar.gz</filename> или @@ -2597,49 +2573,49 @@ EXTRACT_SUFX= .tgz</programlisting> быть сгружены.</para> <para>Если это ваш случай, то задайте в переменной - <makevar>DISTFILES</makevar> список разделённых пробелами имён + <varname>DISTFILES</varname> список разделённых пробелами имён файлов, которые нужно сгрузить.</para> <programlisting>DISTFILES= source1.tar.gz source2.tar.gz</programlisting> - <para>Если переменная <makevar>DISTFILES</makevar> не задана явно, то + <para>Если переменная <varname>DISTFILES</varname> не задана явно, то её значением по умолчанию будет <literal>${DISTNAME}${EXTRACT_SUFX}</literal>.</para> </sect2> <sect2> - <title><makevar>EXTRACT_ONLY</makevar></title> + <title><varname>EXTRACT_ONLY</varname></title> - <para>Если только некоторые из <makevar>DISTFILES</makevar> должны быть + <para>Если только некоторые из <varname>DISTFILES</varname> должны быть распакованы—к примеру, часть из них является исходным кодом, а другие представляют собой неупакованную документацию—перечислите имена файлов, которые должны быть - распакованы, в <makevar>EXTRACT_ONLY</makevar>.</para> + распакованы, в <varname>EXTRACT_ONLY</varname>.</para> <programlisting>DISTFILES= source.tar.gz manual.html EXTRACT_ONLY= source.tar.gz</programlisting> - <para>Если <emphasis>ни один</emphasis> из <makevar>DISTFILES</makevar> + <para>Если <emphasis>ни один</emphasis> из <varname>DISTFILES</varname> не должен распаковываться, то установите пустое значение - переменной <makevar>EXTRACT_ONLY</makevar>.</para> + переменной <varname>EXTRACT_ONLY</varname>.</para> <programlisting>EXTRACT_ONLY=</programlisting> </sect2> - <sect2 id="porting-patchfiles"> - <title><makevar>PATCHFILES</makevar></title> + <sect2 xml:id="porting-patchfiles"> + <title><varname>PATCHFILES</varname></title> <para>Если вашему порту требуются некоторых дополнительные патчи, которые доступны по FTP или HTTP, задайте имена этих файлов в - переменной <makevar>PATCHFILES</makevar>, а в переменной - <makevar>PATCH_SITES</makevar> укажите URL того каталога, в котором + переменной <varname>PATCHFILES</varname>, а в переменной + <varname>PATCH_SITES</varname> укажите URL того каталога, в котором они содержатся (формат такой же, как - для <makevar>MASTER_SITES</makevar>).</para> + для <varname>MASTER_SITES</varname>).</para> <para>Если патч не относится к самому верху дерева исходных текстов - (то есть <makevar>WRKSRC</makevar>), потому что он содержит некоторые + (то есть <varname>WRKSRC</varname>), потому что он содержит некоторые дополнительные пути, установите соответственно значение переменной - <makevar>PATCH_DIST_STRIP</makevar>. В частности, если все имена + <varname>PATCH_DIST_STRIP</varname>. В частности, если все имена путей в патче имеют дополнительный путь <literal>foozolix-1.0/</literal> перед именем файла, то задайте <literal>PATCH_DIST_STRIP=-p1</literal>.</para> @@ -2651,13 +2627,13 @@ EXTRACT_ONLY= source.tar.gz</programlisting> <para>Если патч распространяется вместе с какими-то другими файлами, такими, как документация, в виде tar-архива <command>gzip</command>, вы не можете просто - использовать <makevar>PATCHFILES</makevar>. Если это ваш случай, + использовать <varname>PATCHFILES</varname>. Если это ваш случай, добавьте имя и местоположение архива с патчем к - <makevar>DISTFILES</makevar> и <makevar>MASTER_SITES</makevar>. - Затем воспользуйтесь переменной <makevar>EXTRA_PATCHES</makevar> для + <varname>DISTFILES</varname> и <varname>MASTER_SITES</varname>. + Затем воспользуйтесь переменной <varname>EXTRA_PATCHES</varname> для указания этих файлов, и <filename>bsd.port.mk</filename> автоматически применит эти патчи. В частности, <emphasis>не копируйте</emphasis> - файлы с патчами в каталог <makevar>PATCHDIR</makevar>—этот + файлы с патчами в каталог <varname>PATCHDIR</varname>—этот каталог может быть недоступным для записи.</para> <note> @@ -2668,11 +2644,11 @@ EXTRACT_ONLY= source.tar.gz</programlisting> приложите дополнительные усилия для того, чтобы не перезаписать что-либо, уже существующее в этом каталоге. Также не забудьте добавить команду для удаления скопированного патча в цели - <maketarget>pre-clean</maketarget>.</para> + <buildtarget>pre-clean</buildtarget>.</para> </note> </sect2> - <sect2 id="porting-master-sites-n"> + <sect2 xml:id="porting-master-sites-n"> <title>Несколько дистрибутивных файлов или патчей с различных серверов и подкаталогов (<literal>MASTER_SITES:n</literal>)</title> @@ -2686,8 +2662,8 @@ EXTRACT_ONLY= source.tar.gz</programlisting> механизм <literal>MASTER_SITES:n</literal>.</para> <para>Сначала немного общей информации. В OpenBSD имеется полезная - возможность, используемая в переменных <makevar>DISTFILES</makevar> и - <makevar>PATCHFILES</makevar>, которая позволяет закреплять после + возможность, используемая в переменных <varname>DISTFILES</varname> и + <varname>PATCHFILES</varname>, которая позволяет закреплять после имен файлов и патчей идентификаторы типа <literal>:n</literal>. Здесь <literal>n</literal> может быть из диапазона <literal>[0-9]</literal> и обозначать закреплённую группу. К примеру:</para> @@ -2695,25 +2671,25 @@ EXTRACT_ONLY= source.tar.gz</programlisting> <programlisting>DISTFILES= alpha:0 beta:1</programlisting> <para>В OpenBSD дистрибутивный файл <filename>alpha</filename> будет - связан с переменной <makevar>MASTER_SITES0</makevar>, но не с нашей - общей переменной <makevar>MASTER_SITES</makevar>, а файл + связан с переменной <varname>MASTER_SITES0</varname>, но не с нашей + общей переменной <varname>MASTER_SITES</varname>, а файл <filename>beta</filename> с переменной - <makevar>MASTER_SITES1</makevar>.</para> + <varname>MASTER_SITES1</varname>.</para> <para>Этот очень интересная возможность, которая может уменьшить этот бесконечный поиск работающего сайта для сгрузки.</para> - <para>Просто представьте себе 2 файла в <makevar>DISTFILES</makevar> и - 20 сайтов в <makevar>MASTER_SITES</makevar>; сайты очень медленные, + <para>Просто представьте себе 2 файла в <varname>DISTFILES</varname> и + 20 сайтов в <varname>MASTER_SITES</varname>; сайты очень медленные, причём <filename>beta</filename> находится на всех сайтах из - <makevar>MASTER_SITES</makevar>, а <filename>alpha</filename> + <varname>MASTER_SITES</varname>, а <filename>alpha</filename> может быть найден только на 20-м сайте. Будет неправильно проверять их все, если создатель знает об этом, не правда ли? Неподходящее начало для таких прекрасных выходных!</para> <para>Теперь, когда вы получили общее представление, просто представьте - ещё большее количество <makevar>DISTFILES</makevar> и - <makevar>MASTER_SITES</makevar>. Конечно, наш <quote>магистр + ещё большее количество <varname>DISTFILES</varname> и + <varname>MASTER_SITES</varname>. Конечно, наш <quote>магистр доступности дистрибутивов</quote> представляет масштабы нагрузки на сеть, которую это даёт.</para> @@ -2741,9 +2717,9 @@ EXTRACT_ONLY= source.tar.gz</programlisting> сайтов.</para> <para>Чтобы это поддерживать, за каждой записью в - <makevar>DISTFILES</makevar> может следовать символ двоеточия и + <varname>DISTFILES</varname> может следовать символ двоеточия и <quote>имя метки</quote>. За каждым сайтом, перечисленным в - <makevar>MASTER_SITES</makevar>, тоже следует двоеточие и метка, + <varname>MASTER_SITES</varname>, тоже следует двоеточие и метка, которая указывает, какие файлы дистрибутива должны быть сгружены с этого сайта.</para> @@ -2751,11 +2727,9 @@ EXTRACT_ONLY= source.tar.gz</programlisting> на две части, <filename>source1.tar.gz</filename> и <filename>source2.tar.gz</filename>, которые должны быть сгружены с двух различных источников. Файл <filename>Makefile</filename> - порта будет содержать строчки типа <xref - linkend="ports-master-sites-n-example-simple-use-one-file-per-site"/>.</para> + порта будет содержать строчки типа <xref linkend="ports-master-sites-n-example-simple-use-one-file-per-site"/>.</para> - <example - id="ports-master-sites-n-example-simple-use-one-file-per-site"> + <example xml:id="ports-master-sites-n-example-simple-use-one-file-per-site"> <title>Упрощённое использование <literal>MASTER_SITES:n</literal> с 1 файлом на каждом сайте</title> @@ -2769,12 +2743,10 @@ DISTFILES= source1.tar.gz:source1 \ <para>Несколько дистрибутивных файлов могут иметь одну и ту же метку. Продолжая предыдущий пример, положим, что имеется и третий дистрибутивный файл, <filename>source3.tar.gz</filename>, который - должен быть сгружен с <hostid>ftp.example2.com</hostid>. Тогда - файл <filename>Makefile</filename> будет написан как <xref - linkend="ports-master-sites-n-example-simple-use-more-than-one-file-per-site"/>.</para> + должен быть сгружен с <systemitem>ftp.example2.com</systemitem>. Тогда + файл <filename>Makefile</filename> будет написан как <xref linkend="ports-master-sites-n-example-simple-use-more-than-one-file-per-site"/>.</para> - <example - id="ports-master-sites-n-example-simple-use-more-than-one-file-per-site"> + <example xml:id="ports-master-sites-n-example-simple-use-more-than-one-file-per-site"> <title>Упрощённое использование <literal>MASTER_SITES:n</literal> с более чем 1 файлом на каждом сервере</title> @@ -2797,7 +2769,7 @@ DISTFILES= source1.tar.gz:source1 \ <orderedlist> <listitem> <para>За элементами могут следовать символы - <literal>:<replaceable>n</replaceable></literal>, где + <literal>:n</literal>, где <replaceable>n</replaceable> это <literal>[^:,]+</literal>, то есть <replaceable>n</replaceable> может теоретически быть любой алфавитно-цифровой строкой, но пока мы будем ограничивать @@ -2810,11 +2782,9 @@ DISTFILES= source1.tar.gz:source1 \ <para>Однако следующие слова не могут использоваться для этих нужд, так как они имеют особое значение: <literal>default</literal>, <literal>all</literal> и - <literal>ALL</literal> (они используются для своих нужд в <xref - linkend="porting-master-sites-n-what-changes-in-port-targets"/>). + <literal>ALL</literal> (они используются для своих нужд в <xref linkend="porting-master-sites-n-what-changes-in-port-targets"/>). Кроме того, <literal>DEFAULT</literal> является специальным - ключевым словом (посмотрите <xref - linkend="porting-master-sites-n-DEFAULT-group"/>).</para> + ключевым словом (посмотрите <xref linkend="porting-master-sites-n-DEFAULT-group"/>).</para> </listitem> <listitem> @@ -2824,15 +2794,14 @@ DISTFILES= source1.tar.gz:source1 \ так далее.</para> </listitem> - <listitem id="porting-master-sites-n-DEFAULT-group"> + <listitem xml:id="porting-master-sites-n-DEFAULT-group"> <para>Элементы без таких суффиксов не относятся ни к какой группе, то есть они принадлежат к особой группе <literal>DEFAULT</literal>. Если вы укажете суффиксом любого элемента <literal>DEFAULT</literal>, вы просто выполните излишнюю работу, если только вы не хотите отнесения элемента как к группе <literal>DEFAULT</literal>, так и какой-то другой - в одно и то же время (посмотрите на пункт <xref - linkend="porting-master-sites-n-comma-operator"/>).</para> + в одно и то же время (посмотрите на пункт <xref linkend="porting-master-sites-n-comma-operator"/>).</para> <para>Следующие примеры равнозначны, но первый более предпочтителен:</para> @@ -2850,7 +2819,7 @@ DISTFILES= source1.tar.gz:source1 \ будут являться просто повторяющимися элементами.</para> </listitem> - <listitem id="porting-master-sites-n-comma-operator"> + <listitem xml:id="porting-master-sites-n-comma-operator"> <para>Если в хотите, чтобы элемент принадлежал к нескольким группам одновременно, вы можете использовать запятую (<literal>,</literal>).</para> @@ -2875,30 +2844,30 @@ DISTFILES= source1.tar.gz:source1 \ <listitem> <para>Все серверы внутри определённой группы сортируются в - соответствии с <makevar>MASTER_SORT_AWK</makevar>. Все группы - в <makevar>MASTER_SITES</makevar> и - <makevar>PATCH_SITES</makevar> тоже сортируются.</para> + соответствии с <varname>MASTER_SORT_AWK</varname>. Все группы + в <varname>MASTER_SITES</varname> и + <varname>PATCH_SITES</varname> тоже сортируются.</para> </listitem> - <listitem id="porting-master-sites-n-group-semantics"> + <listitem xml:id="porting-master-sites-n-group-semantics"> <para>Семантика групп может использоваться в любой из следующих - переменных <makevar>MASTER_SITES</makevar>, - <makevar>PATCH_SITES</makevar>, - <makevar>MASTER_SITE_SUBDIR</makevar>, - <makevar>PATCH_SITE_SUBDIR</makevar>, - <makevar>DISTFILES</makevar> и - <makevar>PATCHFILES</makevar> в соответствии со следующим + переменных <varname>MASTER_SITES</varname>, + <varname>PATCH_SITES</varname>, + <varname>MASTER_SITE_SUBDIR</varname>, + <varname>PATCH_SITE_SUBDIR</varname>, + <varname>DISTFILES</varname> и + <varname>PATCHFILES</varname> в соответствии со следующим синтаксисом:</para> <orderedlist> <listitem> - <para>Все элементы <makevar>MASTER_SITES</makevar>, - <makevar>PATCH_SITES</makevar>, - <makevar>MASTER_SITE_SUBDIR</makevar> и - <makevar>PATCH_SITE_SUBDIR</makevar> должны заканчиваться + <para>Все элементы <varname>MASTER_SITES</varname>, + <varname>PATCH_SITES</varname>, + <varname>MASTER_SITE_SUBDIR</varname> и + <varname>PATCH_SITE_SUBDIR</varname> должны заканчиваться символом прямого слэша <literal>/</literal>. Если какие-то элементы принадлежат каким-то группам, постфикс группы - <literal>:<replaceable>n</replaceable></literal> должен + <literal>:n</literal> должен следовать сразу после завершающего символа <literal>/</literal>. Механизм <literal>MASTER_SITES:n</literal> опирается на наличие @@ -2909,21 +2878,19 @@ DISTFILES= source1.tar.gz:source1 \ <literal>n</literal>. Для целей совместимости, так как завершающий символ <literal>/</literal> ранее не требовался в элементах - <makevar>MASTER_SITE_SUBDIR</makevar> и - <makevar>PATCH_SITE_SUBDIR</makevar>, если символ, сразу + <varname>MASTER_SITE_SUBDIR</varname> и + <varname>PATCH_SITE_SUBDIR</varname>, если символ, сразу предшествующий постфиксу, не является символом <literal>/</literal>, то <literal>:n</literal> будет считаться корректной частью элемента, а не постфиксом группы, даже если за элементом следует - <literal>:n</literal>. Посмотрите <xref - linkend="ports-master-sites-n-example-detailed-use-master-site-subdir"/> - и <xref - linkend="ports-master-sites-n-example-detailed-use-complete-example-master-sites"/>.</para> + <literal>:n</literal>. Посмотрите <xref linkend="ports-master-sites-n-example-detailed-use-master-site-subdir"/> + и <xref linkend="ports-master-sites-n-example-detailed-use-complete-example-master-sites"/>.</para> - <example id="ports-master-sites-n-example-detailed-use-master-site-subdir"> + <example xml:id="ports-master-sites-n-example-detailed-use-master-site-subdir"> <title>Подробное использование <literal>MASTER_SITES:n</literal> в - <makevar>MASTER_SITE_SUBDIR</makevar></title> + <varname>MASTER_SITE_SUBDIR</varname></title> <programlisting>MASTER_SITE_SUBDIR= old:n new/:NEW</programlisting> @@ -2940,8 +2907,7 @@ DISTFILES= source1.tar.gz:source1 \ </itemizedlist> </example> - <example - id="ports-master-sites-n-example-detailed-use-complete-example-master-sites"> + <example xml:id="ports-master-sites-n-example-detailed-use-complete-example-master-sites"> <title>Подробное использование <literal>MASTER_SITES:n</literal> с запятыми, несколькими файлами, несколькими серверами и @@ -2971,7 +2937,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <itemizedlist> <listitem> - <para><makevar>MASTER_SITE_OVERRIDE</makevar></para> + <para><varname>MASTER_SITE_OVERRIDE</varname></para> </listitem> <listitem> @@ -2995,7 +2961,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ </listitem> <listitem> - <para><makevar>MASTER_SITE_BACKUP</makevar></para> + <para><varname>MASTER_SITE_BACKUP</varname></para> </listitem> </itemizedlist> </listitem> @@ -3007,7 +2973,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <itemizedlist> <listitem> - <para><makevar>MASTER_SITE_OVERRIDE</makevar></para> + <para><varname>MASTER_SITE_OVERRIDE</varname></para> </listitem> <listitem> @@ -3031,7 +2997,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ </listitem> <listitem> - <para><makevar>MASTER_SITE_BACKUP</makevar></para> + <para><varname>MASTER_SITE_BACKUP</varname></para> </listitem> </itemizedlist> </listitem> @@ -3041,7 +3007,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <itemizedlist> <listitem> - <para><makevar>MASTER_SITE_OVERRIDE</makevar></para> + <para><varname>MASTER_SITE_OVERRIDE</varname></para> </listitem> <listitem> @@ -3049,7 +3015,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ </listitem> <listitem> - <para><makevar>MASTER_SITE_BACKUP</makevar></para> + <para><varname>MASTER_SITE_BACKUP</varname></para> </listitem> </itemizedlist> </listitem> @@ -3060,7 +3026,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <itemizedlist> <listitem> - <para><makevar>MASTER_SITE_OVERRIDE</makevar></para> + <para><varname>MASTER_SITE_OVERRIDE</varname></para> </listitem> <listitem> @@ -3084,7 +3050,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ </listitem> <listitem> - <para><makevar>MASTER_SITE_BACKUP</makevar></para> + <para><varname>MASTER_SITE_BACKUP</varname></para> </listitem> </itemizedlist> </listitem> @@ -3094,11 +3060,11 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <itemizedlist> <listitem> - <para><makevar>MASTER_SITE_OVERRIDE</makevar></para> + <para><varname>MASTER_SITE_OVERRIDE</varname></para> </listitem> <listitem> - <para><makevar>MASTER_SITE_BACKUP</makevar></para> + <para><varname>MASTER_SITE_BACKUP</varname></para> </listitem> </itemizedlist> </listitem> @@ -3109,7 +3075,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <itemizedlist> <listitem> - <para><makevar>MASTER_SITE_OVERRIDE</makevar></para> + <para><varname>MASTER_SITE_OVERRIDE</varname></para> </listitem> <listitem> @@ -3117,7 +3083,7 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ </listitem> <listitem> - <para><makevar>MASTER_SITE_BACKUP</makevar></para> + <para><varname>MASTER_SITE_BACKUP</varname></para> </listitem> </itemizedlist> </listitem> @@ -3130,16 +3096,14 @@ MASTER_SITE_SUBDIR= directory-trial:1 directory-n/:groupn \ <listitem> <para>Как мне сгруппировать одну из специальных переменных из <filename>bsd.sites.mk</filename>, например, - <makevar>MASTER_SITE_SOURCEFORGE</makevar>?</para> + <varname>MASTER_SITE_SOURCEFORGE</varname>?</para> - <para>Посмотрите <xref - linkend="ports-master-sites-n-example-detailed-use-master-site-sourceforge"/>.</para> + <para>Посмотрите <xref linkend="ports-master-sites-n-example-detailed-use-master-site-sourceforge"/>.</para> - <example - id="ports-master-sites-n-example-detailed-use-master-site-sourceforge"> + <example xml:id="ports-master-sites-n-example-detailed-use-master-site-sourceforge"> <title>Подробное использование <literal>MASTER_SITES:n</literal> с - <makevar>MASTER_SITE_SOURCEFORGE</makevar></title> + <varname>MASTER_SITE_SOURCEFORGE</varname></title> <programlisting>MASTER_SITES= http://site1/ ${MASTER_SITE_SOURCEFORGE:S/$/:sourceforge,TEST/} DISTFILES= something.tar.gz:sourceforge</programlisting> @@ -3147,23 +3111,21 @@ DISTFILES= something.tar.gz:sourceforge</programlisting> <para><filename>something.tar.gz</filename> будет сгружаться со всех сайтов из - <makevar>MASTER_SITE_SOURCEFORGE</makevar>.</para> + <varname>MASTER_SITE_SOURCEFORGE</varname>.</para> </listitem> <listitem> <para>Как мне использовать это с переменными - <makevar>PATCH*</makevar>?</para> + <varname>PATCH*</varname>?</para> <para>Все примеры выполнялись с переменными - <makevar>MASTER*</makevar>, и они работают точно также и для - <makevar>PATCH*</makevar>, как это можно видеть в <xref - linkend="ports-master-sites-n-example-detailed-use-patch-sites"/>.</para> + <varname>MASTER*</varname>, и они работают точно также и для + <varname>PATCH*</varname>, как это можно видеть в <xref linkend="ports-master-sites-n-example-detailed-use-patch-sites"/>.</para> - <example - id="ports-master-sites-n-example-detailed-use-patch-sites"> + <example xml:id="ports-master-sites-n-example-detailed-use-patch-sites"> <title>Упрощённое использование <literal>MASTER_SITES:n</literal> с - <makevar>PATCH_SITES</makevar>.</title> + <varname>PATCH_SITES</varname>.</title> <programlisting>PATCH_SITES= http://site1/ http://site2/:test PATCHFILES= patch1:test</programlisting> @@ -3180,62 +3142,59 @@ PATCHFILES= patch1:test</programlisting> <para>Все имеющиеся порты остаются без изменений. Код для механизма <literal>MASTER_SITES:n</literal> активируется, если только есть элементы, которые заканчиваются на - <literal>:<replaceable>n</replaceable></literal>, как и + <literal>:n</literal>, как и элементы в соответствии с вышеописанным синтаксисом, особенно - как это показано в пункте <xref - linkend="porting-master-sites-n-group-semantics"/>.</para> + как это показано в пункте <xref linkend="porting-master-sites-n-group-semantics"/>.</para> </listitem> - <listitem id="porting-master-sites-n-what-changes-in-port-targets"> + <listitem xml:id="porting-master-sites-n-what-changes-in-port-targets"> <para>Цели порт остаются теми же самыми: - <maketarget>checksum</maketarget>, - <maketarget>makesum</maketarget>, - <maketarget>patch</maketarget>, - <maketarget>configure</maketarget>, - <maketarget>build</maketarget> и так далее. С обычными - исключениями для <maketarget>do-fetch</maketarget>, - <maketarget>fetch-list</maketarget>, - <maketarget>master-sites</maketarget> и - <maketarget>patch-sites</maketarget>.</para> + <buildtarget>checksum</buildtarget>, + <buildtarget>makesum</buildtarget>, + <buildtarget>patch</buildtarget>, + <buildtarget>configure</buildtarget>, + <buildtarget>build</buildtarget> и так далее. С обычными + исключениями для <buildtarget>do-fetch</buildtarget>, + <buildtarget>fetch-list</buildtarget>, + <buildtarget>master-sites</buildtarget> и + <buildtarget>patch-sites</buildtarget>.</para> <itemizedlist> <listitem> - <para><maketarget>do-fetch</maketarget>: использует новую - группировку с постфиксами в <makevar>DISTFILES</makevar> и - <makevar>PATCHFILES</makevar> с соответствующими элементами - групп в <makevar>MASTER_SITES</makevar> и - <makevar>PATCH_SITES</makevar>, которые используют группы - из <makevar>MASTER_SITE_SUBDIR</makevar> и - <makevar>PATCH_SITE_SUBDIR</makevar>. Посмотрите <xref - linkend="ports-master-sites-n-example-detailed-use-complete-example-master-sites"/>.</para> + <para><buildtarget>do-fetch</buildtarget>: использует новую + группировку с постфиксами в <varname>DISTFILES</varname> и + <varname>PATCHFILES</varname> с соответствующими элементами + групп в <varname>MASTER_SITES</varname> и + <varname>PATCH_SITES</varname>, которые используют группы + из <varname>MASTER_SITE_SUBDIR</varname> и + <varname>PATCH_SITE_SUBDIR</varname>. Посмотрите <xref linkend="ports-master-sites-n-example-detailed-use-complete-example-master-sites"/>.</para> </listitem> <listitem> - <para><maketarget>fetch-list</maketarget>: работает также, - как старая цель <maketarget>fetch-list</maketarget> с тем + <para><buildtarget>fetch-list</buildtarget>: работает также, + как старая цель <buildtarget>fetch-list</buildtarget> с тем исключением, что она группирует, как и - <maketarget>do-fetch</maketarget>.</para> + <buildtarget>do-fetch</buildtarget>.</para> </listitem> <listitem> - <para><maketarget>master-sites</maketarget> и - <maketarget>patch-sites</maketarget>: + <para><buildtarget>master-sites</buildtarget> и + <buildtarget>patch-sites</buildtarget>: (несовместимы со старыми версиями) только возвращают элементы группы <literal>DEFAULT</literal>; на самом деле они выполняют цели - <maketarget>master-sites-default</maketarget> и - <maketarget>patch-sites-default</maketarget> + <buildtarget>master-sites-default</buildtarget> и + <buildtarget>patch-sites-default</buildtarget> соответственно.</para> <para>Более того, использование целей - <maketarget>master-sites-all</maketarget> или - <maketarget>patch-sites-all</maketarget> предпочтительно + <buildtarget>master-sites-all</buildtarget> или + <buildtarget>patch-sites-all</buildtarget> предпочтительно для непосредственной проверки - <maketarget>MASTER_SITES</maketarget> или - <maketarget>PATCH_SITES</maketarget>. Также работа прямой + <buildtarget>MASTER_SITES</buildtarget> или + <buildtarget>PATCH_SITES</buildtarget>. Также работа прямой проверки в последующих версиях не гарантируется. - Посмотрите <xref - linkend="porting-master-sites-n-new-port-targets-master-sites-all"/> + Посмотрите <xref linkend="porting-master-sites-n-new-port-targets-master-sites-all"/> для получения более дополнительной информации об этих новых целях.</para> </listitem> @@ -3248,35 +3207,35 @@ PATCHFILES= patch1:test</programlisting> <orderedlist> <listitem> <para>Имеются цели - <maketarget>master-sites-<replaceable>n</replaceable></maketarget> + <buildtarget>master-sites-<replaceable>n</replaceable></buildtarget> и - <maketarget>patch-sites-<replaceable>n</replaceable></maketarget>, + <buildtarget>patch-sites-<replaceable>n</replaceable></buildtarget>, которые будут перечислять элементы соответствующей группы <replaceable>n</replaceable> из - <makevar>MASTER_SITES</makevar> и - <makevar>PATCH_SITES</makevar> соответственно. К примеру, - <maketarget>master-sites-DEFAULT</maketarget> и - <maketarget>patch-sites-DEFAULT</maketarget> обе будут + <varname>MASTER_SITES</varname> и + <varname>PATCH_SITES</varname> соответственно. К примеру, + <buildtarget>master-sites-DEFAULT</buildtarget> и + <buildtarget>patch-sites-DEFAULT</buildtarget> обе будут возвращать элементы группы <literal>DEFAULT</literal>, - <maketarget>master-sites-test</maketarget> и - <maketarget>patch-sites-test</maketarget> группы + <buildtarget>master-sites-test</buildtarget> и + <buildtarget>patch-sites-test</buildtarget> группы <literal>test</literal> и так далее.</para> </listitem> - <listitem id="porting-master-sites-n-new-port-targets-master-sites-all"> + <listitem xml:id="porting-master-sites-n-new-port-targets-master-sites-all"> <para>Имеются новые цели - <maketarget>master-sites-all</maketarget> и - <maketarget>patch-sites-all</maketarget>, которые выполняют - работу старых <maketarget>master-sites</maketarget> и - <maketarget>patch-sites</maketarget>. Они возвращают + <buildtarget>master-sites-all</buildtarget> и + <buildtarget>patch-sites-all</buildtarget>, которые выполняют + работу старых <buildtarget>master-sites</buildtarget> и + <buildtarget>patch-sites</buildtarget>. Они возвращают элементы всех групп, как если бы они все принадлежали одной и той же группе с тем, что она перечисляет ровно столько - <makevar>MASTER_SITE_BACKUP</makevar> и - <makevar>MASTER_SITE_OVERRIDE</makevar>, как и группы, - определённые в <makevar>DISTFILES</makevar> или - <makevar>PATCHFILES</makevar>; соответственно для - <maketarget>master-sites-all</maketarget> и - <maketarget>patch-sites-all</maketarget>.</para> + <varname>MASTER_SITE_BACKUP</varname> и + <varname>MASTER_SITE_OVERRIDE</varname>, как и группы, + определённые в <varname>DISTFILES</varname> или + <varname>PATCHFILES</varname>; соответственно для + <buildtarget>master-sites-all</buildtarget> и + <buildtarget>patch-sites-all</buildtarget>.</para> </listitem> </orderedlist> </listitem> @@ -3285,73 +3244,73 @@ PATCHFILES= patch1:test</programlisting> </sect2> <sect2> - <title><makevar>DIST_SUBDIR</makevar></title> + <title><varname>DIST_SUBDIR</varname></title> <para>Не позволяйте вашему порту засорять <filename>/usr/ports/distfiles</filename>. Если вашему порту требуется сгрузить много файлов, или он содержит имя файла, могущее вызвать конфликты с другими портами (например, <filename>Makefile</filename>), то укажите в переменной - <makevar>DIST_SUBDIR</makevar> имя порта (должны подойти + <varname>DIST_SUBDIR</varname> имя порта (должны подойти <literal>${PORTNAME}</literal> или <literal>${PKGNAMEPREFIX}${PORTNAME}</literal>). Это изменит - значение переменной <makevar>DISTDIR</makevar> со значения по + значение переменной <varname>DISTDIR</varname> со значения по умолчанию <filename>/usr/ports/distfiles</filename> к значению - <filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename>, + <filename>/usr/ports/distfiles/DIST_SUBDIR</filename>, и в результате всё, что требуется для порта, будет помещено в этот подкаталог.</para> <para>Он заглянет также в подкаталог с тем же именем на основном резервном сервере <filename>ftp.FreeBSD.org</filename>. - (Явное задание переменной <makevar>DISTDIR</makevar> в вашем файле - <makevar>Makefile</makevar> этого не сделает, так что, пожалуйста, - воспользуйтесь <makevar>DIST_SUBDIR</makevar>.)</para> + (Явное задание переменной <varname>DISTDIR</varname> в вашем файле + <varname>Makefile</varname> этого не сделает, так что, пожалуйста, + воспользуйтесь <varname>DIST_SUBDIR</varname>.)</para> <note> - <para>Это не коснётся тех сайтов <makevar>MASTER_SITES</makevar>, + <para>Это не коснётся тех сайтов <varname>MASTER_SITES</varname>, которые вы указали в вашем файле <filename>Makefile</filename>.</para> </note> </sect2> <sect2> - <title><makevar>ALWAYS_KEEP_DISTFILES</makevar></title> + <title><varname>ALWAYS_KEEP_DISTFILES</varname></title> <para>Если ваш порт использует двоичные дистрибутивные файлы и обладает лицензией, требующей, чтобы исходный код предоставлялся вместе с пакетами, распространяемыми в двоичной форме, например - GPL, то <makevar>ALWAYS_KEEP_DISTFILES</makevar> даст кластеру + GPL, то <varname>ALWAYS_KEEP_DISTFILES</varname> даст кластеру построения &os; указание сохранять копию файлов, указанных в - <makevar>DISTFILES</makevar>. Пользователям таких портов эти + <varname>DISTFILES</varname>. Пользователям таких портов эти файлы в основном не нужны, поэтому хорошей идеей является - добавление в <makevar>DISTFILES</makevar> исходных + добавление в <varname>DISTFILES</varname> исходных дистрибутивных файлов, только когда определена переменная - <makevar>PACKAGE_BUILDING</makevar>.</para> + <varname>PACKAGE_BUILDING</varname>.</para> - <example id="ports-master-sites-n-example-always-keep-distfiles"> - <title>Использование <makevar>ALWAYS_KEEP_DISTFILES</makevar>.</title> + <example xml:id="ports-master-sites-n-example-always-keep-distfiles"> + <title>Использование <varname>ALWAYS_KEEP_DISTFILES</varname>.</title> <programlisting>.if defined(PACKAGE_BUILDING) DISTFILES+= <replaceable>foo.tar.gz</replaceable> ALWAYS_KEEP_DISTFILES= yes .endif</programlisting> </example> - <para>При добавлении дополнительных файлов в <makevar>DISTFILES</makevar> + <para>При добавлении дополнительных файлов в <varname>DISTFILES</varname> убедитесь, что вы их также добавляете в <filename>distinfo</filename>. Кроме того, дополнительные файлы обычно распаковываются также в - <makevar>WRKDIR</makevar>, что для некоторых портов может вызывать + <varname>WRKDIR</varname>, что для некоторых портов может вызывать нежелательные подобные эффекты и требовать особую обработку.</para> </sect2> </sect1> - <sect1 id="makefile-maintainer"> - <title><makevar>MAINTAINER</makevar></title> + <sect1 xml:id="makefile-maintainer"> + <title><varname>MAINTAINER</varname></title> <para>Укажите здесь ваш адрес электронной почты. Пожалуйста. <!-- smiley --><emphasis>:-)</emphasis></para> <para>Заметьте, что в качестве значения для - <makevar>MAINTAINER</makevar> допустимо использование только одного + <varname>MAINTAINER</varname> допустимо использование только одного адреса без поля комментария. Должен использоваться формат <literal>user@hostname.domain</literal>. Пожалуйста, не включайте никакого описательного текста, например, вашего настоящего имени в @@ -3361,8 +3320,8 @@ ALWAYS_KEEP_DISTFILES= yes <para>Сопровождающий ответственен за поддержание порта в актуальном состоянии и обеспечение правильной работы порта. За подробным описанием обязанностей сопровождающего порт обращайтесь к главе - <ulink url="&url.articles.contributing-ports.en;/maintain-port.html">The - challenge for port maintainers</ulink>.</para> + <link xlink:href="&url.articles.contributing-ports.en;/maintain-port.html">The + challenge for port maintainers</link>.</para> <para>Перед фиксацией в репозитории изменения в порте будут отправлены сопровождающему для просмотра и одобрения. @@ -3390,8 +3349,8 @@ ALWAYS_KEEP_DISTFILES= yes по соображениям информационной безопасности.</para> </sect1> - <sect1 id="makefile-comment"> - <title><makevar>COMMENT</makevar></title> + <sect1 xml:id="makefile-comment"> + <title><varname>COMMENT</varname></title> <para>Содержит однострочное описание порта. Пожалуйста, соблюдайте следующие правила:</para> @@ -3443,20 +3402,20 @@ ALWAYS_KEEP_DISTFILES= yes следовать сразу за переменной MAINTAINER.</para> </sect1> - <sect1 id="makefile-portscout"> - <title><makevar>PORTSCOUT</makevar></title> + <sect1 xml:id="makefile-portscout"> + <title><varname>PORTSCOUT</varname></title> <para><application>Portscout</application> являет собой автоматизированное средство проверки доступности дистрибутивных файлов для Коллекции Портов &os;, подробное описание которого предоставляет <xref linkend="distfile-survey"/>.</para> - <para>Переменная <makevar>PORTSCOUT</makevar> задаёт специальные + <para>Переменная <varname>PORTSCOUT</varname> задаёт специальные условия, ограничивающие работу <application>Portscout</application> - сканера дистрибутивных файлов.</para> <para>Ситуации, при которых следует указывать переменную - <makevar>PORTSCOUT</makevar>:</para> + <varname>PORTSCOUT</varname>:</para> <itemizedlist> <listitem> @@ -3483,7 +3442,7 @@ ALWAYS_KEEP_DISTFILES= yes <para>Когда URL, в которых указаны доступные версии, отличаются от URL их загрузки. Например, чтобы привязать проверку новых версий дистрибутивных файлов к странице загрузки для порта - <filename role="package">databases/pgtune</filename>, + <package>databases/pgtune</package>, добавьте:</para> <programlisting>PORTSCOUT= site:http://pgfoundry.org/frs/?group_id=1000416</programlisting> @@ -3491,7 +3450,7 @@ ALWAYS_KEEP_DISTFILES= yes </itemizedlist> </sect1> - <sect1 id="makefile-depend"> + <sect1 xml:id="makefile-depend"> <title>Зависимости</title> <para>Многие порты зависят от других портов. Это очень удобная @@ -3506,7 +3465,7 @@ ALWAYS_KEEP_DISTFILES= yes зависимостей.</para> <sect2> - <title><makevar>LIB_DEPENDS</makevar></title> + <title><varname>LIB_DEPENDS</varname></title> <para>Эта переменная указывает, от каких совместно используемых библиотек зависит порт. Это список пар @@ -3523,19 +3482,19 @@ ALWAYS_KEEP_DISTFILES= yes отсутствует.</para> <para>Зависимость проверяется дважды, один раз внутри цели - <maketarget>extract</maketarget>, а затем из цели - <maketarget>install</maketarget>. Кроме того, имя зависимости + <buildtarget>extract</buildtarget>, а затем из цели + <buildtarget>install</buildtarget>. Кроме того, имя зависимости помещается в пакет, так что &man.pkg.add.1; будет автоматически её устанавливать, если её нет на пользовательской системе.</para> </sect2> <sect2> - <title><makevar>RUN_DEPENDS</makevar></title> + <title><varname>RUN_DEPENDS</varname></title> <para>В этой переменной перечисляются выполнимые файлы или файлы, от которых зависит работа порта. Это список пар вида - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> + <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional>:target</optional> где <replaceable>path</replaceable> - это имя программы или файла, а <replaceable>dir</replaceable> - каталог, в котором можно найти порт в случае, если его нет в системе, и @@ -3577,16 +3536,16 @@ ALWAYS_KEEP_DISTFILES= yes </note> <para>Зависимость проверяется внутри цели - <maketarget>install</maketarget>. Кроме того, имя зависимости + <buildtarget>install</buildtarget>. Кроме того, имя зависимости помещается в пакет, так что программа &man.pkg.add.1; будет автоматически его устанавливать, если он не будет найден в пользовательской системе. Часть <replaceable>target</replaceable> может быть опущена, если она - совпадает с <makevar>DEPENDS_TARGET</makevar>.</para> + совпадает с <varname>DEPENDS_TARGET</varname>.</para> <para>Довольно распространенной является ситуация, когда - <makevar>RUN_DEPENDS</makevar> буквально такая же как - <makevar>BUILD_DEPENDS</makevar>, особенно если переносимое + <varname>RUN_DEPENDS</varname> буквально такая же как + <varname>BUILD_DEPENDS</varname>, особенно если переносимое программное обеспечение написано на языке сценариев, или если оно требует такое же окружение для исполнения, как и используемое во время построения. В этом случае, очень заманчивым или довольно @@ -3596,16 +3555,16 @@ ALWAYS_KEEP_DISTFILES= yes <para>Тем не менее, подобные присвоения могут загрязнять зависимости времени исполнения содержимым, не заданным в - <makevar>BUILD_DEPENDS</makevar> исходного порта. + <varname>BUILD_DEPENDS</varname> исходного порта. Такое случается из-за ленивого вычисления в &man.make.1; присваиваемых переменных. Представьте <filename>Makefile</filename> - с переменными <makevar>USE_<replaceable>*</replaceable></makevar>, + с переменными <varname>USE_<replaceable>*</replaceable></varname>, которые обрабатываются в <filename>ports/Mk/bsd.*.mk</filename> для пополнения первоначальных зависимостей построения. Например, <literal>USES= gmake</literal> добавляет - <filename role="package">devel/gmake</filename> в - <makevar>BUILD_DEPENDS</makevar>. Для предотвращения загрязнения - <makevar>RUN_DEPENDS</makevar> подобными дополнительными + <package>devel/gmake</package> в + <varname>BUILD_DEPENDS</varname>. Для предотвращения загрязнения + <varname>RUN_DEPENDS</varname> подобными дополнительными зависимостями проявляйте осторожность с присвоением с раскрытием, т.е. с раскрытием значения перед его присвоением переменной:</para> @@ -3613,12 +3572,12 @@ ALWAYS_KEEP_DISTFILES= yes </sect2> <sect2> - <title><makevar>BUILD_DEPENDS</makevar></title> + <title><varname>BUILD_DEPENDS</varname></title> <para>В этой переменной перечисляются выполнимые или обычные файлы, которые требуются порту для его построения. Как и - <makevar>RUN_DEPENDS</makevar>, это список пар - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> + <varname>RUN_DEPENDS</varname>, это список пар + <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional>:target</optional> Например,</para> <programlisting>BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip</programlisting> @@ -3632,19 +3591,19 @@ ALWAYS_KEEP_DISTFILES= yes <note> <para>Под <quote>построением</quote> здесь понимается всё, от распаковки до компиляции. Зависимость проверяется из цели - <maketarget>extract</maketarget>. Часть + <buildtarget>extract</buildtarget>. Часть <replaceable>target</replaceable> может быть опущена, если она - совпадает с <makevar>DEPENDS_TARGET</makevar>.</para> + совпадает с <varname>DEPENDS_TARGET</varname>.</para> </note> </sect2> <sect2> - <title><makevar>FETCH_DEPENDS</makevar></title> + <title><varname>FETCH_DEPENDS</varname></title> <para>В этой переменной перечисляются выполняемые файлы или просто файлы, которые требуются порту для сгрузки. Как и предыдущие две переменные, это список пар - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> + <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional>:target</optional> Например,</para> <programlisting>FETCH_DEPENDS= ncftp2:${PORTSDIR}/net/ncftp2</programlisting> @@ -3656,18 +3615,18 @@ ALWAYS_KEEP_DISTFILES= yes найден.</para> <para>Зависимость проверяется при выполнении цели - <maketarget>fetch</maketarget>. Часть + <buildtarget>fetch</buildtarget>. Часть <replaceable>target</replaceable> может быть опущена, если она - совпадает с <makevar>DEPENDS_TARGET</makevar>.</para> + совпадает с <varname>DEPENDS_TARGET</varname>.</para> </sect2> <sect2> - <title><makevar>EXTRACT_DEPENDS</makevar></title> + <title><varname>EXTRACT_DEPENDS</varname></title> <para>В этой переменной указываются программы или файлы, которые требуются для распаковки порта. Как и в предыдущих случаях, это список пар вида - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>. + <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional>:target</optional>. Например,</para> <programlisting>EXTRACT_DEPENDS= unzip:${PORTSDIR}/archivers/unzip</programlisting> @@ -3679,26 +3638,26 @@ ALWAYS_KEEP_DISTFILES= yes найдено.</para> <para>Зависимость проверяется внутри цели - <maketarget>extract</maketarget>. Часть + <buildtarget>extract</buildtarget>. Часть <replaceable>target</replaceable> может быть опущена, если она - совпадает с <makevar>DEPENDS_TARGET</makevar>.</para> + совпадает с <varname>DEPENDS_TARGET</varname>.</para> <note> <para>Используйте эту переменную, только если распаковка не работает (по умолчанию предполагается использование <command>gzip</command>) и это не исправляется при помощи - <makevar>USE_ZIP</makevar> или <makevar>USE_BZIP2</makevar>, + <varname>USE_ZIP</varname> или <varname>USE_BZIP2</varname>, которые описаны в <xref linkend="use-vars"/>.</para> </note> </sect2> <sect2> - <title><makevar>PATCH_DEPENDS</makevar></title> + <title><varname>PATCH_DEPENDS</varname></title> <para>Эта переменная указывает на программы или файлы, которые нужны порту для применения патчей. Как и в предыдущих случаях, это список пар вида - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>. + <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional>:target</optional>. Например,</para> <programlisting>PATCH_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/java/jfc:extract</programlisting> @@ -3708,13 +3667,13 @@ ALWAYS_KEEP_DISTFILES= yes портов для распаковки.</para> <para>Зависимость проверяется внутри цели - <maketarget>patch</maketarget>. Часть + <buildtarget>patch</buildtarget>. Часть <replaceable>target</replaceable> может быть опущена, если она - совпадает с <makevar>DEPENDS_TARGET</makevar>.</para> + совпадает с <varname>DEPENDS_TARGET</varname>.</para> </sect2> - <sect2 id="uses"> - <title><makevar>USES</makevar></title> + <sect2 xml:id="uses"> + <title><varname>USES</varname></title> <para>Существует несколько параметров для определения различных видов характерных особенностей и зависимостей, которыми @@ -3724,31 +3683,30 @@ ALWAYS_KEEP_DISTFILES= yes <programlisting>USES= feature[:arguments]</programlisting> - <para>Для получения полного списка значений смотрите <xref - linkend="uses-values"/>.</para> + <para>Для получения полного списка значений смотрите <xref linkend="uses-values"/>.</para> <warning> - <para>Значение <makevar>USES</makevar> нельзя присваивать + <para>Значение <varname>USES</varname> нельзя присваивать после подключения <filename>bsd.port.pre.mk</filename>.</para> </warning> </sect2> - <sect2 id="use-vars"> - <title><makevar>USE_<replaceable>*</replaceable></makevar></title> + <sect2 xml:id="use-vars"> + <title><varname>USE_<replaceable>*</replaceable></varname></title> <para>Для определения общих зависимостей, совместно используемых многими портами, предназначено несколько переменных. Их использование является необязательным, но помогает упростить избыточность файлов <filename>Makefile</filename> порта. Каждый из них оформляется как - <makevar>USE_<replaceable>*</replaceable></makevar>. Эти + <varname>USE_<replaceable>*</replaceable></varname>. Эти переменные можно использовать только в <filename>Makefile</filename> порта и <filename>ports/Mk/bsd.*.mk</filename>. Они не предназначены для установки пользователями параметров — - используйте для этих целей <makevar>PORT_OPTIONS</makevar>.</para> + используйте для этих целей <varname>PORT_OPTIONS</varname>.</para> <note> - <para>Установка любых <makevar>USE_<replaceable>*</replaceable></makevar> + <para>Установка любых <varname>USE_<replaceable>*</replaceable></varname> в <filename>/etc/make.conf</filename> <emphasis>всегда</emphasis> является ошибочным действием. В частности, установка</para> @@ -3761,7 +3719,7 @@ ALWAYS_KEEP_DISTFILES= yes <table frame="none"> <title>Переменные - <makevar>USE_<replaceable>*</replaceable></makevar></title> + <varname>USE_<replaceable>*</replaceable></varname></title> <tgroup cols="2"> <thead> @@ -3774,21 +3732,21 @@ ALWAYS_KEEP_DISTFILES= yes <tbody> <row> - <entry><makevar>USE_BZIP2</makevar></entry> + <entry><varname>USE_BZIP2</varname></entry> <entry>tar-архивы порта упакованы при помощи <command>bzip2</command>.</entry> </row> <row> - <entry><makevar>USE_ZIP</makevar></entry> + <entry><varname>USE_ZIP</varname></entry> <entry>tar-архивы порта упакованы при помощи <command>zip</command>.</entry> </row> <row> - <entry><makevar>USE_GCC</makevar></entry> + <entry><varname>USE_GCC</varname></entry> <entry>Для сборки порта требуется GCC (<command>gcc</command> или <command>g++</command>). @@ -3810,7 +3768,7 @@ ALWAYS_KEEP_DISTFILES= yes его версия удовлетворяет запрошенной, иначе собирается подходящая версии компилятора из порта с соответствующей коррекцией переменных - <makevar>CC</makevar> и <makevar>CXX</makevar>. + <varname>CC</varname> и <varname>CXX</varname>. </entry> </row> @@ -3824,12 +3782,9 @@ ALWAYS_KEEP_DISTFILES= yes <application>automake</application> и <application>libtool</application> описаны в <xref linkend="using-autotools"/>. Переменные, связанные с - <application>Perl</application>, описаны в <xref - linkend="using-perl"/>. Переменные X11 перечислены в <xref - linkend="using-x11"/>. <xref linkend="using-gnome"/> + <application>Perl</application>, описаны в <xref linkend="using-perl"/>. Переменные X11 перечислены в <xref linkend="using-x11"/>. <xref linkend="using-gnome"/> работает с переменными GNOME и <xref linkend="using-kde"/> с KDE. - <xref linkend="using-java"/> описывает переменные Java, а <xref - linkend="using-php"/> содержит информацию об + <xref linkend="using-java"/> описывает переменные Java, а <xref linkend="using-php"/> содержит информацию об <application>Apache</application>, <application>PHP</application> и модулях PEAR. <application>Python</application> обсуждается в <xref linkend="using-python"/>, а <application>Ruby</application> @@ -3844,11 +3799,11 @@ ALWAYS_KEEP_DISTFILES= yes <title>Минимальная версия зависимости</title> <para>Минимальная версия зависимости может быть указана в любой - переменной <makevar>*_DEPENDS</makevar>, за исключением - <makevar>LIB_DEPENDS</makevar>, с использованием следующего + переменной <varname>*_DEPENDS</varname>, за исключением + <varname>LIB_DEPENDS</varname>, с использованием следующего синтаксиса:</para> - <programlisting>p5-Spiffy>=0.26:${PORTSDIR}/devel/p5-Spiffy</programlisting> + <programlisting>p5-Spiffy>=0.26:${PORTSDIR}/devel/p5-Spiffy</programlisting> <para>Первое поле содержит название зависимого пакета, которое обязано совпадать с записью в базе данные пакетов, знак сравнения @@ -3861,26 +3816,26 @@ ALWAYS_KEEP_DISTFILES= yes <para>Как уже отмечено выше, целью, которая вызывается по умолчанию в случае, когда это требует зависимость, является - <maketarget>DEPENDS_TARGET</maketarget>. Она по умолчанию есть + <buildtarget>DEPENDS_TARGET</buildtarget>. Она по умолчанию есть <literal>install</literal>. Это пользовательская переменная; она нигде не определена в файле <filename>Makefile</filename> порта. Если вашему порту требуется особый метод обработки зависимости, воспользуйтесь частью <literal>:target</literal> переменной - <makevar>*_DEPENDS</makevar> вместо того, чтобы переопределять - <makevar>DEPENDS_TARGET</makevar>.</para> + <varname>*_DEPENDS</varname> вместо того, чтобы переопределять + <varname>DEPENDS_TARGET</varname>.</para> <para>Когда вы набираете команду <command>make clean</command>, эта операция также выполняется и над зависимостями этого порта. Если вы не хотите, чтобы это случилось, определите переменную - <makevar>NOCLEANDEPENDS</makevar> в вашем окружении. + <varname>NOCLEANDEPENDS</varname> в вашем окружении. Это может быть особенно нужным, если порт имеет нечто, что занимает много времени на построение, в своём списке зависимостей, например, KDE, GNOME или Mozilla.</para> <para>Чтобы безусловно зависеть от другого порта, укажите переменную - <makevar>${NONEXISTENT}</makevar> в качестве первого поля - переменной <makevar>BUILD_DEPENDS</makevar> или - <makevar>RUN_DEPENDS</makevar>. Пользуйтесь этим, только когда вам + <varname>${NONEXISTENT}</varname> в качестве первого поля + переменной <varname>BUILD_DEPENDS</varname> или + <varname>RUN_DEPENDS</varname>. Пользуйтесь этим, только когда вам нужно иметь исходный код другого порта. Вы можете сэкономить время на компиляции, указав также и цель. Например,</para> @@ -3961,46 +3916,45 @@ LIB_DEPENDS= bar:${PORTSDIR}/foo/bar им пакетов.</para> </sect2> - <sect2 id="use-want"> - <title><makevar>USE_</makevar> и - <makevar>WANT_</makevar></title> + <sect2 xml:id="use-want"> + <title><varname>USE_</varname> и + <varname>WANT_</varname></title> - <para>Переменные <makevar>USE_</makevar> задаются мейнтейнером + <para>Переменные <varname>USE_</varname> задаются мейнтейнером порта для определения программного обеспечения, от которого этот порт зависит. Порт, для которого нужен Firefox, укажет</para> <programlisting>USE_FIREFOX= yes</programlisting> - <para>Некоторые переменные <makevar>USE_</makevar> могут + <para>Некоторые переменные <varname>USE_</varname> могут принимать номера версий или другие параметры. Например, порт, который требует Apache 2.2, укажет</para> <programlisting>USE_APACHE= 22</programlisting> <para>В некоторых случаях для большего контроля над - зависимостями используются переменные <makevar>WANT_</makevar>, + зависимостями используются переменные <varname>WANT_</varname>, которые позволяют указывать требования в более точной форме. - Например, взгляните на порт <filename - role="package">mail/squirrelmail</filename>. Этому порту + Например, взгляните на порт <package>mail/squirrelmail</package>. Этому порту нужны несколько модулей PHP, которые перечислены в переменной - <makevar>USE_PHP</makevar>:</para> + <varname>USE_PHP</varname>:</para> <programlisting>USE_PHP= session mhash gettext mbstring pcre openssl xml</programlisting> <para>Эти модули доступны в версиях CLI и web, поэтому версия - web выбрана с переменной <makevar>WANT_</makevar>:</para> + web выбрана с переменной <varname>WANT_</varname>:</para> <programlisting>WANT_PHP_WEB= yes</programlisting> - <para>Имеющиеся переменные <makevar>USE_</makevar> и - <makevar>WANT_</makevar> определены в файлах + <para>Имеющиеся переменные <varname>USE_</varname> и + <varname>WANT_</varname> определены в файлах <filename>/usr/ports/Mk</filename>.</para> </sect2> </sect1> - <sect1 id="makefile-masterdir"> - <title><makevar>MASTERDIR</makevar></title> + <sect1 xml:id="makefile-masterdir"> + <title><varname>MASTERDIR</varname></title> <para>Если вашему порту требуется построение довольно различающихся версий пакетов через переменную (задающую, например, разрешение, @@ -4011,10 +3965,9 @@ LIB_DEPENDS= bar:${PORTSDIR}/foo/bar потребуются только очень короткие файлы <filename>Makefile</filename> во всех каталогах, кроме одного, если вы будете использовать переменные с умом. В отдельных файлах <filename>Makefile</filename> вы можете - использовать переменную <makevar>MASTERDIR</makevar> для указания + использовать переменную <varname>MASTERDIR</varname> для указания каталога, в котором находятся все остальные файлы. Также используйте - переменную как часть <link - linkend="porting-pkgname"><makevar>PKGNAMESUFFIX</makevar></link>, чтобы + переменную как часть <link linkend="porting-pkgname"><varname>PKGNAMESUFFIX</varname></link>, чтобы пакеты имели разные имена.</para> <para>Продемонстрируем это на примере. Вот часть файла @@ -4036,7 +3989,7 @@ RESOLUTION?= 300 .endif </programlisting> - <para>Порт <filename role="package">japanese/xdvi300</filename> содержит + <para>Порт <package>japanese/xdvi300</package> содержит также все обычные патчи, файлы для пакета и так далее. Если вы введете здесь команду <command>make</command>, она возьмет в качестве разрешения значение по умолчанию (300) и построит порт обычным образом.</para> @@ -4051,9 +4004,9 @@ MASTERDIR= ${.CURDIR}/../xdvi300 <para>(<filename>xdvi240/Makefile</filename> и <filename>xdvi400/Makefile</filename> похожи). Задание - <makevar>MASTERDIR</makevar> говорит <filename>bsd.port.mk</filename>, - что обычный набор подкаталогов типа <makevar>FILESDIR</makevar> и - <makevar>SCRIPTDIR</makevar> находится в каталоге + <varname>MASTERDIR</varname> говорит <filename>bsd.port.mk</filename>, + что обычный набор подкаталогов типа <varname>FILESDIR</varname> и + <varname>SCRIPTDIR</varname> находится в каталоге <filename>xdvi300</filename>. Строчка <literal>RESOLUTION=118</literal> переопределят строку <literal>RESOLUTION=300</literal> в файле @@ -4061,10 +4014,10 @@ MASTERDIR= ${.CURDIR}/../xdvi300 разрешением 118.</para> </sect1> - <sect1 id="makefile-manpages"> + <sect1 xml:id="makefile-manpages"> <title>Страницы Справочника</title> - <para>Переменные <makevar>MAN[1-9LN]</makevar> автоматически добавят любые + <para>Переменные <varname>MAN[1-9LN]</varname> автоматически добавят любые страницы Справочника к файлу <filename>pkg-plist</filename> (это означает, что вам <emphasis>не нужно</emphasis> указывать страницы Справочника в файле <filename>pkg-plist</filename>—обратитесь к @@ -4072,12 +4025,12 @@ MASTERDIR= ${.CURDIR}/../xdvi300 получения более подробной информации). Это также позволяет на этапе установки автоматически упаковывать и распаковывать страницы Справочника в зависимости от значения переменной - <makevar>NO_MANCOMPRESS</makevar> в файле + <varname>NO_MANCOMPRESS</varname> в файле <filename>/etc/make.conf</filename>.</para> <para>Если ваш порт пытается задать несколько имен для страниц Справочника при помощи символических или жестких ссылок, то вы должны - использовать переменную <makevar>MLINKS</makevar>, чтобы указать на + использовать переменную <varname>MLINKS</varname>, чтобы указать на это. Ссылка, установленная вашим портом, будет уничтожена и создана заново сценарием <filename>bsd.port.mk</filename> для проверки того, что она указывает на правильный файл. Любые страницы Справочника, @@ -4086,31 +4039,31 @@ MASTERDIR= ${.CURDIR}/../xdvi300 <para>Для указания того, что страницы Справочника нужно сжимать во время установки, используйте переменную - <makevar>MANCOMPRESSED</makevar>. Эта переменная может принимать три + <varname>MANCOMPRESSED</varname>. Эта переменная может принимать три значения - <literal>yes</literal>, <literal>no</literal> и <literal>maybe</literal>. <literal>yes</literal> означает, что страницы Справочника устанавливаются уже сжатыми, <literal>no</literal> означает, что они не сжимаются и <literal>maybe</literal> означает, что программное обеспечение принимает во внимание значение переменной - <makevar>NO_MANCOMPRESS</makevar>, так что сценарию + <varname>NO_MANCOMPRESS</varname>, так что сценарию <filename>bsd.port.mk</filename> ничего дополнительно делать не нужно.</para> <para>Если ваш порт определяет корнем для файлов Справочника каталог, - отличный от <makevar>PREFIX</makevar>, вы можете использовать - переменную <makevar>MANPREFIX</makevar>, чтобы задать его явно. Кроме + отличный от <varname>PREFIX</varname>, вы можете использовать + переменную <varname>MANPREFIX</varname>, чтобы задать его явно. Кроме того, если страницы только некоторых разделов помещаются в нестандартное место, например, в случае портов модулей языка <literal>perl</literal> Perl, вы можете установить маршруты к справочным страницам индивидуально, при помощи - <makevar>MAN<replaceable>sect</replaceable>PREFIX</makevar> (где + <varname>MAN<replaceable>sect</replaceable>PREFIX</varname> (где <replaceable>sect</replaceable> принимает значения <literal>1-9</literal>, <literal>L</literal> или <literal>N</literal>).</para> <para>Если страницы Справочника помещаются в подкаталоги, соответствующие некоторому языку, то задайте название языка языка в переменной - <makevar>MANLANG</makevar>. Значение этой переменной по умолчанию + <varname>MANLANG</varname>. Значение этой переменной по умолчанию равно <literal>""</literal> (то есть только английский язык).</para> <para>Вот пример, в котором приводятся все случаи.</para> @@ -4142,7 +4095,7 @@ ${MANPREFIX}/man/ja/man4/baz.4.gz</programlisting> <para>Если переведена только часть страниц справочника, вы можете использовать некоторые переменные, созданные динамически из - содержимого <makevar>MANLANG</makevar>:</para> + содержимого <varname>MANLANG</varname>:</para> <programlisting>MANLANG= "" de ja MAN1= foo.1 @@ -4158,22 +4111,22 @@ ${MANPREFIX}/man/man1/bar.1.gz ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> </sect1> - <sect1 id="makefile-info"> + <sect1 xml:id="makefile-info"> <title>Файлы в формате info</title> <para>Если в вашем пакете нужна установка файлов GNU info, они должны - быть перечислены в переменной <makevar>INFO</makevar> (без окончания + быть перечислены в переменной <varname>INFO</varname> (без окончания <literal>.info</literal>), по записи на документ. Предполагается, что эти файлы устанавливаются в - <filename><makevar>PREFIX</makevar>/<makevar>INFO_PATH</makevar></filename>. - Вы можете изменить <makevar>INFO_PATH</makevar>, если ваш пакет + <filename>PREFIX/INFO_PATH</filename>. + Вы можете изменить <varname>INFO_PATH</varname>, если ваш пакет использует другое место для размещения. Однако, это не рекомендуется делать. Эти записи всего лишь содержат путь относительно - <filename><makevar>PREFIX</makevar>/<makevar>INFO_PATH</makevar></filename>. - Например, <filename role="package">lang/gcc34</filename> устанавливает + <filename>PREFIX/INFO_PATH</filename>. + Например, <package>lang/gcc34</package> устанавливает файлы info в - <filename><makevar>PREFIX</makevar>/<makevar>INFO_PATH</makevar>/gcc34</filename>, - и в <makevar>INFO</makevar> будет что-то вроде этого:</para> + <filename>PREFIX/INFO_PATH/gcc34</filename>, + и в <varname>INFO</varname> будет что-то вроде этого:</para> <programlisting>INFO= gcc34/cpp gcc34/cppinternals gcc34/g77 ...</programlisting> @@ -4181,7 +4134,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> автоматически добавлен во временный <filename>pkg-plist</filename>.</para> </sect1> - <sect1 id="makefile-options"> + <sect1 xml:id="makefile-options"> <title>Опции для Makefile</title> <para>Многие приложения могут быть построены в различных @@ -4199,24 +4152,24 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> <title>Knobs</title> <sect3> - <title><makevar>WITH_<replaceable>*</replaceable></makevar> + <title><varname>WITH_<replaceable>*</replaceable></varname> и - <makevar>WITHOUT_<replaceable>*</replaceable></makevar></title> + <varname>WITHOUT_<replaceable>*</replaceable></varname></title> <para>Эти переменные предназначены для установки системным администратором. Многие из них стандартизованы в файле - <ulink url="http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup"><filename>ports/KNOBS</filename></ulink>.</para> + <link xlink:href="http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup"><filename>ports/KNOBS</filename></link>.</para> <para>При создании порта не давайте имя для knob, специфичное для данного приложения. На примере порта Avahi, используйте - <makevar>WITHOUT_MDNS</makevar> вместо - <makevar>WITHOUT_AVAHI_MDNS</makevar>.</para> + <varname>WITHOUT_MDNS</varname> вместо + <varname>WITHOUT_AVAHI_MDNS</varname>.</para> <note> <para>Не стоит рассчитывать, что - <makevar>WITH_<replaceable>*</replaceable></makevar> + <varname>WITH_<replaceable>*</replaceable></varname> обязательно имеет соответствующую переменную - <makevar>WITHOUT_<replaceable>*</replaceable></makevar>, + <varname>WITHOUT_<replaceable>*</replaceable></varname>, и наоборот. В общем случае, предполагается значение по умолчанию.</para> </note> @@ -4229,8 +4182,8 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> <table frame="none"> <title>Основные переменные - <makevar>WITH_<replaceable>*</replaceable></makevar> - и <makevar>WITHOUT_<replaceable>*</replaceable></makevar></title> + <varname>WITH_<replaceable>*</replaceable></varname> + и <varname>WITHOUT_<replaceable>*</replaceable></varname></title> <tgroup cols="2"> <thead> @@ -4243,16 +4196,16 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> <tbody> <row> - <entry><makevar>WITH_OPENSSL_BASE</makevar></entry> + <entry><varname>WITH_OPENSSL_BASE</varname></entry> <entry>Использовать версию OpenSSL из базовой системы.</entry> </row> <row> - <entry><makevar>WITH_OPENSSL_PORT</makevar></entry> + <entry><varname>WITH_OPENSSL_PORT</varname></entry> <entry>Устанавливает версию OpenSSL из - <filename role="package">security/openssl</filename>, + <package>security/openssl</package>, даже если в базовой системе последняя версия.</entry> </row> </tbody> @@ -4266,43 +4219,42 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> <para>Портеры должны использовать так называемые knobs для помощи конечным пользователям и для поддержания количества наименований knobs в небольшом количестве. - Список популярных названий knobs можно найти в файле <ulink - url="http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup"><filename>KNOBS</filename></ulink> + Список популярных названий knobs можно найти в файле <link xlink:href="http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup"><filename>KNOBS</filename></link> </para> <para>Названия knobs должны отражать, что это такое и что выполняет. Если у порта имеется библиотечный префикс в - <makevar>PORTNAME</makevar>, то он должен присутствовать в + <varname>PORTNAME</varname>, то он должен присутствовать в названии knobs.</para> </sect3> </sect2> <sect2> - <title><makevar>OPTIONS</makevar></title> + <title><varname>OPTIONS</varname></title> <sect3> <title>Описание</title> - <para>При установке порта переменные <makevar>OPTIONS_*</makevar> + <para>При установке порта переменные <varname>OPTIONS_*</varname> предоставляют пользователю окно диалога с отображением доступных параметров, с записью выбранных параметров в файл - <filename>/var/db/ports/<makevar>${UNIQUENAME}</makevar>/options</filename>. + <filename>/var/db/ports/${UNIQUENAME}/options</filename>. Эти опции повторно используются при следующем построении порта.</para> <para>Когда пользователь запускает <command>make config</command> (или запускает впервые <command>make build</command>), инфраструктура выполняет проверку существования файла - <filename>/var/db/ports/<makevar>${UNIQUENAME}</makevar>/options</filename>. + <filename>/var/db/ports/${UNIQUENAME}/options</filename>. Если этот файл не существует, то используются значения - <makevar>OPTIONS_*</makevar> и отображается диалоговое окно, + <varname>OPTIONS_*</varname> и отображается диалоговое окно, в котором эти параметры можно включить или выключить. Затем сохраняется файл опций <filename>options</filename>, и выбранные переменные используются при построении порта.</para> <para>Если новая версия порта добавляет новые значения - <makevar>OPTIONS</makevar>, то пользователю будет представлено + <varname>OPTIONS</varname>, то пользователю будет представлено окно диалога с сохраненными заполненными значениями старых - <makevar>OPTIONS.</makevar></para> + <varname>OPTIONS.</varname></para> <para><command>make showconfig</command> отображает сохраненную конфигурацию. Для удаления @@ -4313,14 +4265,14 @@ ${MANPREFIX}/man/de/man3/baz.3.gz</programlisting> <sect3> <title>Синтаксис</title> - <para><makevar>OPTIONS_DEFINE</makevar> содержит список - используемых <makevar>OPTIONS</makevar>. Они независимы + <para><varname>OPTIONS_DEFINE</varname> содержит список + используемых <varname>OPTIONS</varname>. Они независимы друг от друга и не сгруппированы:</para> <programlisting>OPTIONS_DEFINE= OPT1 OPT2</programlisting> <para>Далее после определения следует описание - <makevar>OPTIONS</makevar> (не является обязательным, + <varname>OPTIONS</varname> (не является обязательным, но настоятельно рекомендуется):</para> <programlisting>OPT1_DESC= Describe OPT1 @@ -4333,7 +4285,7 @@ OPT6_DESC= Describe OPT6</programlisting> <tip> <para><filename>ports/Mk/bsd.options.desc.mk</filename> содержит описание множества наиболее используемых - <makevar>OPTIONS</makevar>; переопределять их, как + <varname>OPTIONS</varname>; переопределять их, как правило, не нужно.</para> </tip> @@ -4352,21 +4304,21 @@ OPT6_DESC= Describe OPT6</programlisting> вы поможете пользователю гораздо больше.</para> </tip> - <para><makevar>OPTIONS</makevar> можно группировать в виде + <para><varname>OPTIONS</varname> можно группировать в виде переключателей, для которых разрешен выбор единственного варианта в каждой группе:</para> <programlisting>OPTIONS_SINGLE= SG1 OPTIONS_SINGLE_SG1= OPT3 OPT4</programlisting> - <para><makevar>OPTIONS</makevar> можно группировать в виде + <para><varname>OPTIONS</varname> можно группировать в виде переключателей, для которых разрешен выбор единственного варианта (или ни одного) в каждой группе:</para> <programlisting>OPTIONS_RADIO= RG1 OPTIONS_RADIO_RG1= OPT7 OPT8</programlisting> - <para><makevar>OPTIONS</makevar> также можно группировать + <para><varname>OPTIONS</varname> также можно группировать в виде списков со множественным выбором, для которых обязан быть включен <emphasis>по крайней мере один</emphasis> из параметров:</para> @@ -4374,7 +4326,7 @@ OPTIONS_RADIO_RG1= OPT7 OPT8</programlisting> <programlisting>OPTIONS_MULTI= MG1 OPTIONS_MULTI_MG1= OPT5 OPT6</programlisting> - <para><makevar>OPTIONS</makevar> также можно группировать + <para><varname>OPTIONS</varname> также можно группировать в виде списков со множественным выбором, для которых могут быть включены любые параметры, включая отсутствие выбора:</para> @@ -4382,15 +4334,15 @@ OPTIONS_MULTI_MG1= OPT5 OPT6</programlisting> <programlisting>OPTIONS_GROUP= GG1 OPTIONS_GROUP_GG1= OPT9 OPT10</programlisting> - <para>По умолчанию <makevar>OPTIONS</makevar> находится в + <para>По умолчанию <varname>OPTIONS</varname> находится в выключенном положении, если при этом оно также отсутствует - в списке <makevar>OPTIONS_DEFAULT</makevar>:</para> + в списке <varname>OPTIONS_DEFAULT</varname>:</para> <programlisting>OPTIONS_DEFAULT= OPT1 OPT3 OPT6</programlisting> - <para>Определения <makevar>OPTIONS</makevar> обязаны появиться + <para>Определения <varname>OPTIONS</varname> обязаны появиться до подключения <filename>bsd.port.options.mk</filename>. - Переменные <makevar>PORT_OPTIONS</makevar> + Переменные <varname>PORT_OPTIONS</varname> могут быть проверены только после подключения <filename>bsd.port.options.mk</filename>. Вместо этого также можно использовать подключение @@ -4398,12 +4350,12 @@ OPTIONS_GROUP_GG1= OPT9 OPT10</programlisting> используется в портах, написанных до появления <filename>bsd.port.options.mk</filename>. Но имейте в виду, что некоторые переменные, обычно, это некоторые флаги - <makevar>USE_*</makevar>, + <varname>USE_*</varname>, после подключения <filename>bsd.port.pre.mk</filename> будут работать не так, как этого от них ожидают.</para> - <example id="ports-options-simple-use"> - <title>Простое использование <makevar>OPTIONS</makevar></title> + <example xml:id="ports-options-simple-use"> + <title>Простое использование <varname>OPTIONS</varname></title> <programlisting>OPTIONS_DEFINE= FOO BAR FOO_DESC= Enable option foo @@ -4424,18 +4376,18 @@ RUN_DEPENDS+= bar:${PORTSDIR}/bar/bar .include <bsd.port.mk></programlisting> </example> - <example id ="ports-options-check-unset"> + <example xml:id="ports-options-check-unset"> <title>Проверка незаданных значений - <makevar>OPTIONS</makevar></title> + <varname>OPTIONS</varname></title> <programlisting>.if ! ${PORT_OPTIONS:MEXAMPLES} CONFIGURE_ARGS+=--without-examples .endif</programlisting> </example> - <example id="ports-options-practical-use"> + <example xml:id="ports-options-practical-use"> <title>Пример реального использования - <makevar>OPTIONS</makevar></title> + <varname>OPTIONS</varname></title> <programlisting>OPTIONS_DEFINE= EXAMPLES @@ -4500,9 +4452,9 @@ CONFIGURE_ARGS+= --without-examples </itemizedlist> <note> <para>Нет необходимости добавлять эти параметры в - <makevar>OPTIONS_DEFAULT</makevar>. Тем не менее, чтобы + <varname>OPTIONS_DEFAULT</varname>. Тем не менее, чтобы отобразить их в окне диалога выбора параметров, они должны - быть добавлены в <makevar>OPTIONS_DEFINE</makevar>.</para> + быть добавлены в <varname>OPTIONS_DEFINE</varname>.</para> </note> </sect3> </sect2> @@ -4516,7 +4468,7 @@ CONFIGURE_ARGS+= --without-examples необязательные функции, которые вы не хотели бы использовать, через передачу соответствующих <literal>--without-xxx</literal> или <literal>--disable-xxx</literal> в переменной - <makevar>CONFIGURE_ARGS</makevar>.</para> + <varname>CONFIGURE_ARGS</varname>.</para> <example> <title>Неправильное управление опцией</title> @@ -4572,10 +4524,10 @@ CONFIGURE_ARGS+= --disable-foo значений, которые отличаются в зависимости от набора параметров.</para> - <para>Если переменная <makevar>OPTIONS_SUB</makevar> имеет + <para>Если переменная <varname>OPTIONS_SUB</varname> имеет значение <literal>yes</literal>, то каждый из указанных в - <makevar>OPTIONS_DEFINE</makevar> параметров будет добавлен - в <makevar>PLIST_SUB</makevar>. Следующая запись:</para> + <varname>OPTIONS_DEFINE</varname> параметров будет добавлен + в <varname>PLIST_SUB</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 OPTIONS_SUB= yes</programlisting> @@ -4592,11 +4544,11 @@ PLIST_SUB+= OPT1="" PLIST_SUB+= OPT1="@comment " .endif</programlisting> - <para><makevar>X_CONFIGURE_ENABLE</makevar> дописывает в - <makevar>CONFIGURE_ARGS</makevar> строку + <para><varname>X_CONFIGURE_ENABLE</varname> дописывает в + <varname>CONFIGURE_ARGS</varname> строку <literal>--enable-${X_CONFIGURE_ENABLE}</literal> или <literal>--disable-${X_CONFIGURE_ENABLE}</literal> в - соответствии с состоянием <makevar>X</makevar>. Следующая + соответствии с состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 @@ -4614,11 +4566,11 @@ CONFIGURE_ARGS+= --enable-test CONFIGURE_ARGS+= --disable-test .endif</programlisting> - <para><makevar>X_CONFIGURE_WITH</makevar> дописывает в - <makevar>CONFIGURE_ARGS</makevar> строку + <para><varname>X_CONFIGURE_WITH</varname> дописывает в + <varname>CONFIGURE_ARGS</varname> строку <literal>--with-${X_CONFIGURE_WITH}</literal> или <literal>--without-${X_CONFIGURE_WITH}</literal> в - соответствии с состоянием <makevar>X</makevar>. Следующая + соответствии с состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 @@ -4636,9 +4588,9 @@ CONFIGURE_ARGS+= --with-test CONFIGURE_ARGS+= --without-test .endif</programlisting> - <para>Значение переменной <makevar>X_CONFIGURE_ON</makevar> - будет дописано в <makevar>CONFIGURE_ARGS</makevar> в - соответствии с состоянием <makevar>X</makevar>. Следующая + <para>Значение переменной <varname>X_CONFIGURE_ON</varname> + будет дописано в <varname>CONFIGURE_ARGS</varname> в + соответствии с состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 @@ -4654,9 +4606,9 @@ OPT1_CONFIGURE_ON= --add-test</programlisting> CONFIGURE_ARGS+= --add-test .endif</programlisting> - <para>Значение переменной <makevar>X_CONFIGURE_OFF</makevar> - будет дописано в <makevar>CONFIGURE_ARGS</makevar> в - соответствии с состоянием <makevar>X</makevar>. Следующая + <para>Значение переменной <varname>X_CONFIGURE_OFF</varname> + будет дописано в <varname>CONFIGURE_ARGS</varname> в + соответствии с состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 @@ -4670,9 +4622,9 @@ OPT1_CONFIGURE_OFF= --no-test</programlisting> CONFIGURE_ARGS+= --no-test .endif</programlisting> - <para>Значение переменной <makevar>X_CMAKE_ON</makevar> будет - дописано в <makevar>CMAKE_ARGS</makevar> в соответствии с - состоянием <makevar>X</makevar>. Следующая запись:</para> + <para>Значение переменной <varname>X_CMAKE_ON</varname> будет + дописано в <varname>CMAKE_ARGS</varname> в соответствии с + состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 OPT1_CMAKE_ON= -DTEST:BOOL=true</programlisting> @@ -4687,9 +4639,9 @@ OPT1_CMAKE_ON= -DTEST:BOOL=true</programlisting> CMAKE_ARGS+= -DTEST:BOOL=true .endif</programlisting> - <para>Значение переменной <makevar>X_CMAKE_OFF</makevar> будет - дописано в <makevar>CMAKE_ARGS</makevar> в соответствии с - состоянием <makevar>X</makevar>. Следующая запись:</para> + <para>Значение переменной <varname>X_CMAKE_OFF</varname> будет + дописано в <varname>CMAKE_ARGS</varname> в соответствии с + состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 OPT1_CMAKE_OFF= -DTEST:BOOL=false</programlisting> @@ -4708,81 +4660,81 @@ CMAKE_ARGS+= -DTEST:BOOL=false <itemizedlist> <listitem> - <para><makevar>ALL_TARGET</makevar></para> + <para><varname>ALL_TARGET</varname></para> </listitem> <listitem> - <para><makevar>CATEGORIES</makevar></para> + <para><varname>CATEGORIES</varname></para> </listitem> <listitem> - <para><makevar>CFLAGS</makevar></para> + <para><varname>CFLAGS</varname></para> </listitem> <listitem> - <para><makevar>CPPFLAGS</makevar></para> + <para><varname>CPPFLAGS</varname></para> </listitem> <listitem> - <para><makevar>CXXFLAGS</makevar></para> + <para><varname>CXXFLAGS</varname></para> </listitem> <listitem> - <para><makevar>CONFIGURE_ENV</makevar></para> + <para><varname>CONFIGURE_ENV</varname></para> </listitem> <listitem> - <para><makevar>DISTFILES</makevar></para> + <para><varname>DISTFILES</varname></para> </listitem> <listitem> - <para><makevar>EXTRA_PATCHES</makevar></para> + <para><varname>EXTRA_PATCHES</varname></para> </listitem> <listitem> - <para><makevar>INSTALL_TARGET</makevar></para> + <para><varname>INSTALL_TARGET</varname></para> </listitem> <listitem> - <para><makevar>LDFLAGS</makevar></para> + <para><varname>LDFLAGS</varname></para> </listitem> <listitem> - <para><makevar>MAKE_ARGS</makevar></para> + <para><varname>MAKE_ARGS</varname></para> </listitem> <listitem> - <para><makevar>MAKE_ENV</makevar></para> + <para><varname>MAKE_ENV</varname></para> </listitem> <listitem> - <para><makevar>PATCH_SITES</makevar></para> + <para><varname>PATCH_SITES</varname></para> </listitem> <listitem> - <para><makevar>PATCHFILES</makevar></para> + <para><varname>PATCHFILES</varname></para> </listitem> <listitem> - <para><makevar>PLIST_FILES</makevar></para> + <para><varname>PLIST_FILES</varname></para> </listitem> <listitem> - <para><makevar>PLIST_DIRS</makevar></para> + <para><varname>PLIST_DIRS</varname></para> </listitem> <listitem> - <para><makevar>PLIST_DIRSTRY</makevar></para> + <para><varname>PLIST_DIRSTRY</varname></para> </listitem> <listitem> - <para><makevar>USES</makevar></para> + <para><varname>USES</varname></para> </listitem> </itemizedlist> - <para>Значение переменной <makevar>X_ABOVEVARIABLE</makevar> - будет дописано в <makevar>ABOVEVARIABLE</makevar> в - соответствии с состоянием <makevar>X</makevar>. Следующая + <para>Значение переменной <varname>X_ABOVEVARIABLE</varname> + будет дописано в <varname>ABOVEVARIABLE</varname> в + соответствии с состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 @@ -4804,37 +4756,37 @@ CFLAGS+= -DTEST <itemizedlist> <listitem> - <para><makevar>PKG_DEPENDS</makevar></para> + <para><varname>PKG_DEPENDS</varname></para> </listitem> <listitem> - <para><makevar>EXTRACT_DEPENDS</makevar></para> + <para><varname>EXTRACT_DEPENDS</varname></para> </listitem> <listitem> - <para><makevar>PATCH_DEPENDS</makevar></para> + <para><varname>PATCH_DEPENDS</varname></para> </listitem> <listitem> - <para><makevar>FETCH_DEPENDS</makevar></para> + <para><varname>FETCH_DEPENDS</varname></para> </listitem> <listitem> - <para><makevar>BUILD_DEPENDS</makevar></para> + <para><varname>BUILD_DEPENDS</varname></para> </listitem> <listitem> - <para><makevar>LIB_DEPENDS</makevar></para> + <para><varname>LIB_DEPENDS</varname></para> </listitem> <listitem> - <para><makevar>RUN_DEPENDS</makevar></para> + <para><varname>RUN_DEPENDS</varname></para> </listitem> </itemizedlist> - <para>Значение переменной <makevar>X_ABOVEVARIABLE</makevar> - будет дописано в <makevar>ABOVEVARIABLE</makevar> в - соответствии с состоянием <makevar>X</makevar>. Следующая + <para>Значение переменной <varname>X_ABOVEVARIABLE</varname> + будет дописано в <varname>ABOVEVARIABLE</varname> в + соответствии с состоянием <varname>X</varname>. Следующая запись:</para> <programlisting>OPTIONS_DEFINE= OPT1 @@ -4852,12 +4804,12 @@ LIB_DEPENDS+= liba.so:${PORTSDIR}/devel/a </sect2> </sect1> - <sect1 id="makefile-wrkdir"> + <sect1 xml:id="makefile-wrkdir"> <title>Задание рабочего каталога</title> <para>Каждый порт распаковывается в рабочий каталог, который должен быть доступным для записи. В системе портов по умолчанию - <makevar>DISTFILES</makevar> распаковываются в каталог с именем + <varname>DISTFILES</varname> распаковываются в каталог с именем <literal>${DISTNAME}</literal>. Другими словами, если вы задали:</para> @@ -4872,7 +4824,7 @@ PORTVERSION= 1.0</programlisting> вы можете переопределить.</para> <sect2> - <title><makevar>WRKSRC</makevar></title> + <title><varname>WRKSRC</varname></title> <para>Эта переменная задаёт имя каталога, который создаётся при распаковке исходных файлов приложения. В нашем предыдущем @@ -4888,58 +4840,58 @@ PORTVERSION= 1.0</programlisting> </sect2> <sect2> - <title><makevar>NO_WRKSUBDIR</makevar></title> + <title><varname>NO_WRKSUBDIR</varname></title> <para>Если порт вообще не распаковывается ни в какой каталог, то вы - должны задать переменную <makevar>NO_WRKSUBDIR</makevar> для указания + должны задать переменную <varname>NO_WRKSUBDIR</varname> для указания на этот факт.</para> <programlisting>NO_WRKSUBDIR= yes</programlisting> </sect2> </sect1> - <sect1 id="conflicts"> + <sect1 xml:id="conflicts"> <title>Разрешение конфликтов</title> <para>Для регистрации конфликта между пакетами и портами используются - три различные переменные: <makevar>CONFLICTS</makevar>, - <makevar>CONFLICTS_INSTALL</makevar> и - <makevar>CONFLICTS_BUILD</makevar>.</para> + три различные переменные: <varname>CONFLICTS</varname>, + <varname>CONFLICTS_INSTALL</varname> и + <varname>CONFLICTS_BUILD</varname>.</para> <note> <para>Переменные регистрации конфликта автоматически определяют - переменную <makevar>IGNORE</makevar>, которая более подробно + переменную <varname>IGNORE</varname>, которая более подробно описана в <xref linkend="dads-noinstall"/>.</para> </note> <para>При удалении одного из конфликтующих портов целесообразно - сохранить записи <makevar>CONFLICTS</makevar> в тех других портах + сохранить записи <varname>CONFLICTS</varname> в тех других портах в течении нескольких месяцев, чтобы позаботиться о тех пользователей, которые обновляются от случая к случаю.</para> <sect2> - <title><makevar>CONFLICTS_INSTALL</makevar></title> + <title><varname>CONFLICTS_INSTALL</varname></title> <para>Если ваш пакет не может существовать вместе с другими (из-за конфликта файлов, несовместимости времени выполнения и так далее), перечислите имена остальных пакетов в переменной - <makevar>CONFLICTS_INSTALL</makevar>. Здесь вы можете использовать + <varname>CONFLICTS_INSTALL</varname>. Здесь вы можете использовать шаблоны командного интерпретатора, такие как <literal>*</literal> и <literal>?</literal>. Имена пакетов должны выглядеть так же, как в <filename>/var/db/pkg</filename>. Пожалуйста, убедитесь, - что <makevar>CONFLICTS_INSTALL</makevar> не содержит пакет самого + что <varname>CONFLICTS_INSTALL</varname> не содержит пакет самого этого порта. В противном случае не будет работать установка с - использованием переменной <makevar>FORCE_PKG_REGISTER</makevar>. + использованием переменной <varname>FORCE_PKG_REGISTER</varname>. Проверка CONFLICTS_INSTALL выполняется после процесса сборки и до процесса установки.</para> </sect2> <sect2> - <title><makevar>CONFLICTS_BUILD</makevar></title> + <title><varname>CONFLICTS_BUILD</varname></title> <para>Если ваш порт не может быть собран, когда уже установлен другой, перечислите имена остальных портов в переменной - <makevar>CONFLICTS_BUILD</makevar>. Здесь вы можете использовать + <varname>CONFLICTS_BUILD</varname>. Здесь вы можете использовать шаблоны командного интерпретатора, такие как <literal>*</literal> и <literal>?</literal>. Имена пакетов должны выглядеть так же, как в <filename>/var/db/pkg</filename>. Проверка CONFLICTS_BUILD @@ -4948,64 +4900,64 @@ PORTVERSION= 1.0</programlisting> </sect2> <sect2> - <title><makevar>CONFLICTS</makevar></title> + <title><varname>CONFLICTS</varname></title> <para>Если ваш порт не может быть собран, когда уже установлен другой, а получаемый пакет не может существовать вместе с другими, перечислите имена остальных пакетов в переменной - <makevar>CONFLICTS</makevar>. Здесь вы можете использовать шаблоны + <varname>CONFLICTS</varname>. Здесь вы можете использовать шаблоны командного интерпретатора, такие как <literal>*</literal> и <literal>?</literal>. Имена пакетов должны выглядеть так же, как в <filename>/var/db/pkg</filename>. Пожалуйста, убедитесь, что - <makevar>CONFLICTS</makevar> не содержит пакет самого этого порта. + <varname>CONFLICTS</varname> не содержит пакет самого этого порта. В противном случае не будет работать установка с использованием - переменной <makevar>FORCE_PKG_REGISTER</makevar>. Проверка + переменной <varname>FORCE_PKG_REGISTER</varname>. Проверка CONFLICTS выполняется до процессов сборки и установки.</para> </sect2> </sect1> - <sect1 id="install"> + <sect1 xml:id="install"> <title>Установка файлов</title> - <sect2 id="install-macros"> + <sect2 xml:id="install-macros"> <title>Макросы INSTALL_*</title> <para>Используйте макросы, которые есть в файле <filename>bsd.port.mk</filename> для обеспечения правильных прав доступа и владения файлов в своих целях - <maketarget>*-install</maketarget>.</para> + <buildtarget>*-install</buildtarget>.</para> <itemizedlist> <listitem> - <para><makevar>INSTALL_PROGRAM</makevar> - это команда для + <para><varname>INSTALL_PROGRAM</varname> - это команда для установки бинарных выполнимых файлов.</para> </listitem> <listitem> - <para><makevar>INSTALL_SCRIPT</makevar> - это команда для установки + <para><varname>INSTALL_SCRIPT</varname> - это команда для установки выполнимых скриптов.</para> </listitem> <listitem> - <para><makevar>INSTALL_LIB</makevar> - это команда для установки + <para><varname>INSTALL_LIB</varname> - это команда для установки динамических библиотек.</para> </listitem> <listitem> - <para><makevar>INSTALL_KLD</makevar> - это команда для установки + <para><varname>INSTALL_KLD</varname> - это команда для установки загружаемых модулей ядра. Некоторые архитектуры предпочитают, чтобы для модулей сохранялись отладочные сведения, по этой причине используйте эту команду вместо - <makevar>INSTALL_PROGRAM</makevar>.</para> + <varname>INSTALL_PROGRAM</varname>.</para> </listitem> <listitem> - <para><makevar>INSTALL_DATA</makevar> - это команда для установки + <para><varname>INSTALL_DATA</varname> - это команда для установки совместно используемых файлов данных.</para> </listitem> <listitem> - <para><makevar>INSTALL_MAN</makevar> - это команда для установки + <para><varname>INSTALL_MAN</varname> - это команда для установки страниц Справочника и другой документации (никаких файлов она не сжимает).</para> </listitem> @@ -5016,22 +4968,22 @@ PORTVERSION= 1.0</programlisting> Смотрите пример их использования ниже.</para> </sect2> - <sect2 id="install-strip"> + <sect2 xml:id="install-strip"> <title>Удаление отладочной информации в бинарных файлах и динамических библиотеках</title> <para>Не удаляйте отладочную информацию из бинарных файлов вручную, если вы это делали. Во всех двоичных файлах отладочная информация - должна быть удалена, и макрос <makevar>INSTALL_PROGRAM</makevar> + должна быть удалена, и макрос <varname>INSTALL_PROGRAM</varname> выполнит установку и удаление отладочной информации одновременно (обратитесь к следующему разделу). Макрос - <makevar>INSTALL_LIB</makevar> делает то же самое для + <varname>INSTALL_LIB</varname> делает то же самое для динамических библиотек.</para> <para>Если вам нужно удалить отладочную информацию из файла без - использования макросов <makevar>INSTALL_PROGRAM</makevar> и - <makevar>INSTALL_LIB</makevar>, то это можно сделать при помощи - <makevar>${STRIP_CMD}</makevar>. Обычно это делается внутри цели + использования макросов <varname>INSTALL_PROGRAM</varname> и + <varname>INSTALL_LIB</varname>, то это можно сделать при помощи + <varname>${STRIP_CMD}</varname>. Обычно это делается внутри цели <literal>post-install</literal>. К примеру:</para> <programlisting>post-install: @@ -5045,24 +4997,24 @@ PORTVERSION= 1.0</programlisting> утилита просто завершит свою работу.</para> </sect2> - <sect2 id="install-copytree"> + <sect2 xml:id="install-copytree"> <title>Установка целого дерева файлов</title> <para>Иногда существует необходимость в установке большого количества файлов с сохранением их иерархической организации, т.е. в копировании - дерева каталогов целиком из <makevar>WRKSRC</makevar> в целевой - каталог внутри <makevar>PREFIX</makevar>.</para> + дерева каталогов целиком из <varname>WRKSRC</varname> в целевой + каталог внутри <varname>PREFIX</varname>.</para> <para>Для этой ситуации существует два макроса. Преимущество от использования этих макросов вместо команды <command>cp</command> в том, что они гарантируют установку правильного владельца и прав - на конечные файлы. Первый макрос, <makevar>COPYTREE_BIN</makevar>, + на конечные файлы. Первый макрос, <varname>COPYTREE_BIN</varname>, делает все устанавливаемые файлы исполняемыми, что подходит для - установки в <filename><makevar>PREFIX</makevar>/bin</filename>. - Второй макрос, <makevar>COPYTREE_SHARE</makevar>, не устанавливает + установки в <filename>PREFIX/bin</filename>. + Второй макрос, <varname>COPYTREE_SHARE</varname>, не устанавливает на файлы права исполнения, и, таким образом, подходит для установки файлов внутри каталога - <filename><makevar>PREFIX</makevar>/share</filename>.</para> + <filename>PREFIX/share</filename>.</para> <programlisting>post-install: ${MKDIR} ${EXAMPLESDIR} @@ -5078,10 +5030,10 @@ PORTVERSION= 1.0</programlisting> <para>А в этом примере будут установлены данные летних месяцев в подкаталог <filename>summer</filename> каталога - <filename><makevar>DATADIR</makevar></filename>.</para> + <filename>DATADIR</filename>.</para> <para>В качестве третьего параметра в макросе - <makevar>COPYTREE_*</makevar> можно передать дополнительные + <varname>COPYTREE_*</varname> можно передать дополнительные параметры <command>find</command>. Например, чтобы в первом примере установить все файлы кроме файлов Makefile, можно использовать следующую команду.</para> @@ -5097,23 +5049,23 @@ PORTVERSION= 1.0</programlisting> </sect2> - <sect2 id="install-documentation"> + <sect2 xml:id="install-documentation"> <title>Установка дополнительной документации</title> <para>Если с вашим программным обеспечением поставляется некоторая документация, отличающаяся от стандартных страниц Справочника и файлов info, которая, как вы думаете, будет полезна пользователям, установите ее в каталог - <filename><makevar>PREFIX</makevar>/share/doc</filename>. Это может + <filename>PREFIX/share/doc</filename>. Это может быть сделано, как и в предыдущем разделе, в цели - <maketarget>post-install</maketarget>.</para> + <buildtarget>post-install</buildtarget>.</para> <para>Создайте для вашего порта новый каталог. Имя каталога должно соответствовать тому, что представляет из себя порт. Обычно это - означает <makevar>PORTNAME</makevar>. Однако, если + означает <varname>PORTNAME</varname>. Однако, если вы думаете, что пользователь захочет иметь разные версии порта, установленные одновременно, то вы можете использовать полное имя - <makevar>PKGNAME</makevar>.</para> + <varname>PKGNAME</varname>.</para> <para>Сделайте установку документации зависящей от параметра <literal>DOCS</literal> для того, чтобы пользователи могли @@ -5131,50 +5083,50 @@ PORTVERSION= 1.0</programlisting> <itemizedlist> <listitem> - <para><makevar>DATADIR</makevar> преобразуется в - <filename><makevar>PREFIX</makevar>/share/<makevar>PORTNAME</makevar></filename>.</para> + <para><varname>DATADIR</varname> преобразуется в + <filename>PREFIX/share/PORTNAME</filename>.</para> </listitem> <listitem> - <para><makevar>DATADIR_REL</makevar> преобразуется в - <filename>share/<makevar>PORTNAME</makevar></filename>.</para> + <para><varname>DATADIR_REL</varname> преобразуется в + <filename>share/PORTNAME</filename>.</para> </listitem> <listitem> - <para><makevar>DOCSDIR</makevar> преобразуется в - <filename><makevar>PREFIX</makevar>/share/doc/<makevar>PORTNAME</makevar></filename>.</para> + <para><varname>DOCSDIR</varname> преобразуется в + <filename>PREFIX/share/doc/PORTNAME</filename>.</para> </listitem> <listitem> - <para><makevar>DOCSDIR_REL</makevar> преобразуется в - <filename>share/doc/<makevar>PORTNAME</makevar></filename>.</para> + <para><varname>DOCSDIR_REL</varname> преобразуется в + <filename>share/doc/PORTNAME</filename>.</para> </listitem> <listitem> - <para><makevar>EXAMPLESDIR</makevar> преобразуется в - <filename><makevar>PREFIX</makevar>/share/examples/<makevar>PORTNAME</makevar></filename>.</para> + <para><varname>EXAMPLESDIR</varname> преобразуется в + <filename>PREFIX/share/examples/PORTNAME</filename>.</para> </listitem> <listitem> - <para><makevar>EXAMPLESDIR_REL</makevar> преобразуется в - <filename>share/examples/<makevar>PORTNAME</makevar></filename>.</para> + <para><varname>EXAMPLESDIR_REL</varname> преобразуется в + <filename>share/examples/PORTNAME</filename>.</para> </listitem> </itemizedlist> <note> <para>Параметр <literal>DOCS</literal> управляет установкой - дополнительной документации в <makevar>DOCSDIR</makevar>. Это + дополнительной документации в <varname>DOCSDIR</varname>. Это не относится к стандартным страницам справочника и страницам info. - Все, что устанавливается в <makevar>DATADIR</makevar> и - <makevar>EXAMPLESDIR</makevar>, соответственно управляется + Все, что устанавливается в <varname>DATADIR</varname> и + <varname>EXAMPLESDIR</varname>, соответственно управляется через параметры <literal>DATA</literal> и <literal>EXAMPLES</literal>.</para> </note> - <para>Эти переменные экспортируются в <makevar>PLIST_SUB</makevar>. + <para>Эти переменные экспортируются в <varname>PLIST_SUB</varname>. Их значения появятся там в виде имён путей относительно - <filename><makevar>PREFIX</makevar></filename>, если это возможно. - То есть <filename>share/doc/<makevar>PORTNAME</makevar></filename> + <filename>PREFIX</filename>, если это возможно. + То есть <filename>share/doc/PORTNAME</filename> в списке сборки по умолчанию будет заменен на <literal>%%DOCSDIR%%</literal>, и так далее. (Дополнительную информацию о подстановке в <filename>pkg-plist</filename> можно @@ -5190,45 +5142,44 @@ PORTVERSION= 1.0</programlisting> <para>В качестве альтернативы перечислению файлов документации в файле <filename>pkg-plist</filename>, порт может указать в переменной - <makevar>PORTDOCS</makevar> список имён файлов и глобальных шаблонов + <varname>PORTDOCS</varname> список имён файлов и глобальных шаблонов командного процессора для добавления в окончательный список сборки. - Имена будут задаваться относительно <makevar>DOCSDIR</makevar>. - Таким образом, порт, использующий <makevar>PORTDOCS</makevar> и + Имена будут задаваться относительно <varname>DOCSDIR</varname>. + Таким образом, порт, использующий <varname>PORTDOCS</varname> и нестандартное местоположение документации, должен задавать - соответствующим образом и <makevar>DOCSDIR</makevar>. Если каталог - указан в <makevar>PORTDOCS</makevar> или соответствует шаблону для + соответствующим образом и <varname>DOCSDIR</varname>. Если каталог + указан в <varname>PORTDOCS</varname> или соответствует шаблону для этой переменной, то полное поддерево с входящими в него файлами и каталогами будет регистрироваться в окончательном списке сборки. Если параметр <literal>DOCS</literal> не задан, то файлы и каталоги, - перечисленные в <makevar>PORTDOCS</makevar>, не будут установлены и + перечисленные в <varname>PORTDOCS</varname>, не будут установлены и добавлены в список сборки порта. Установка документации в - <makevar>PORTDOCS</makevar>, как это показано выше, остаётся за + <varname>PORTDOCS</varname>, как это показано выше, остаётся за самим портом. Типичный пример использования - <makevar>PORTDOCS</makevar> выглядит следующим образом:</para> + <varname>PORTDOCS</varname> выглядит следующим образом:</para> <programlisting>PORTDOCS= README.* ChangeLog docs/*</programlisting> <note> - <para>Эквивалентами <makevar>PORTDOCS</makevar> для файлов, - устанавливаемых в <makevar>DATADIR</makevar> и - <makevar>EXAMPLESDIR</makevar> являются <makevar>PORTDATA</makevar> - и <makevar>PORTEXAMPLES</makevar> соответственно.</para> + <para>Эквивалентами <varname>PORTDOCS</varname> для файлов, + устанавливаемых в <varname>DATADIR</varname> и + <varname>EXAMPLESDIR</varname> являются <varname>PORTDATA</varname> + и <varname>PORTEXAMPLES</varname> соответственно.</para> <para>Кроме того, вы можете использовать файл <filename>pkg-message</filename> для вывода сообщений во - время установки. За подробной информацией обратитесь к <link - linkend="porting-message">разделу об использовании + время установки. За подробной информацией обратитесь к <link linkend="porting-message">разделу об использовании <filename>pkg-message</filename></link>. Файл <filename>pkg-message</filename> не нужно добавлять в <filename>pkg-plist</filename>.</para> </note> </sect2> - <sect2 id="install-subdirs"> + <sect2 xml:id="install-subdirs"> <title>Подкаталоги внутри PREFIX</title> <para>Попробуйте поместить все файлы порта в правильных подкаталогах - каталога <makevar>PREFIX</makevar>. Некоторые порты игнорируют все + каталога <varname>PREFIX</varname>. Некоторые порты игнорируют все установки и помещают все в подкаталог с именем порта, что неправильно. Также многие порты помещают все, кроме бинарных файлов, файлов заголовков и страниц Справочника, в подкаталог каталога @@ -5246,7 +5197,7 @@ PORTVERSION= 1.0</programlisting> также и к <filename>/usr/local</filename>. Исключением являются порты, имеющие дело с <quote>новостями</quote> USENET. Они могут использовать каталог - <filename><makevar>PREFIX</makevar>/news</filename> для установки + <filename>PREFIX/news</filename> для установки своих файлов.</para> </sect2> @@ -5254,23 +5205,23 @@ PORTVERSION= 1.0</programlisting> </chapter> - <chapter id="special"> + <chapter xml:id="special"> <title>Особые соглашения</title> <para>Имеется ещё несколько вещей, которые вы должны иметь в виду при создании порта. Этот раздел описывает наиболее часто встречающиеся из них.</para> - <sect1 id="porting-shlibs"> + <sect1 xml:id="porting-shlibs"> <title>Динамические библиотеки</title> <para>Если ваш порт устанавливает одну или несколько динамических - библиотек, определите переменную <makevar>USE_LDCONFIG</makevar>, + библиотек, определите переменную <varname>USE_LDCONFIG</varname>, которая приведёт к запуску из <filename>bsd.port.mk</filename> команды <literal>${LDCONFIG} -m</literal> относительно каталога, в который устанавливается новая библиотека (как правило, это - <filename><makevar>PREFIX</makevar>/lib</filename>), во время - выполнения цели <maketarget>post-install</maketarget> для её + <filename>PREFIX/lib</filename>), во время + выполнения цели <buildtarget>post-install</buildtarget> для её регистрации в кэше динамических библиотек. Эта переменная, если она определена, также приведёт к добавлению соответствующей пары команд <literal>@exec /sbin/ldconfig -m</literal> и @@ -5284,11 +5235,11 @@ PORTVERSION= 1.0</programlisting> <para>Если нужно, вы можете переопределить каталог по умолчанию, задав значение - <makevar>USE_LDCONFIG</makevar>, в котором должны быть перечислены + <varname>USE_LDCONFIG</varname>, в котором должны быть перечислены каталоги, в которые устанавливаются динамические библиотеки. Например, если ваш порт устанавливает динамические библиотеки в каталоги - <filename><makevar>PREFIX</makevar>/lib/foo</filename> и - <filename><makevar>PREFIX</makevar>/lib/bar</filename>, то вы можете в + <filename>PREFIX/lib/foo</filename> и + <filename>PREFIX/lib/bar</filename>, то вы можете в файле <filename>Makefile</filename> указать следующее:</para> <programlisting>USE_LDCONFIG= ${PREFIX}/lib/foo ${PREFIX}/lib/bar</programlisting> @@ -5297,13 +5248,13 @@ PORTVERSION= 1.0</programlisting> добры перепроверить, т.к. часто это вовсе не является необходимым и может быть решено иначе с помощью <literal>-rpath</literal> или установки <envar>LD_RUN_PATH</envar> во время компоновки (для - примера смотрите <filename role="package">lang/moscow_ml</filename>), + примера смотрите <package>lang/moscow_ml</package>), или с помощью сценария-обёртки, который выставляет - <makevar>LD_LIBRARY_PATH</makevar> перед запуском исполняемого файла - как это делает <filename role="package">www/seamonkey</filename>.</para> + <varname>LD_LIBRARY_PATH</varname> перед запуском исполняемого файла + как это делает <package>www/seamonkey</package>.</para> <para>При установке 32-разрядных библиотек на 64-разрядной системе - используйте вместо этого <makevar>USE_LDCONFIG32</makevar>.</para> + используйте вместо этого <varname>USE_LDCONFIG32</varname>.</para> <para>Постарайтесь сохранять номера версий динамических библиотек в формате <filename>libfoo.so.0</filename>. Наш компоновщик @@ -5311,12 +5262,12 @@ PORTVERSION= 1.0</programlisting> <para>Если при обновлении порта увеличивается старший номер версии библиотеки, то для всех портов, компонуемых с затронутой библиотекой, - следует увеличить значение <makevar>PORTREVISION</makevar> для + следует увеличить значение <varname>PORTREVISION</varname> для форсирования перекомпиляции с новой версией библиотеки.</para> </sect1> - <sect1 id="porting-restrictions"> + <sect1 xml:id="porting-restrictions"> <title>Порты с ограничениями на распространение</title> <para>Лицензии бывают разных видов, и некоторые накладывают ограничение @@ -5337,46 +5288,46 @@ PORTVERSION= 1.0</programlisting> последующих разделах.</para> <sect2> - <title><makevar>NO_PACKAGE</makevar></title> + <title><varname>NO_PACKAGE</varname></title> <para>Эта переменная указывает, что мы не можем создавать для приложения двоичный пакет. К примеру, лицензия не позволяет бинарное распространение или она может запрещать распространение пакетов, созданных из изменённых исходников.</para> - <para>Однако файлы <makevar>DISTFILES</makevar> могут свободно + <para>Однако файлы <varname>DISTFILES</varname> могут свободно зеркалироваться по FTP/HTTP. Они также могут распространяться, используя CD-ROM (или на похожих носителях), если не установлена - переменная <makevar>NO_CDROM</makevar>.</para> + переменная <varname>NO_CDROM</varname>.</para> - <para><makevar>NO_PACKAGE</makevar> должна также использоваться, если + <para><varname>NO_PACKAGE</varname> должна также использоваться, если двоичный пакет, как правило, бесполезен, а приложение должно всегда компилироваться из исходного кода. К примеру, если в приложение во время компиляции жёстко включается конфигурационная информация, привязанная к конкретной системе, то задайте переменную - <makevar>NO_PACKAGE</makevar>.</para> + <varname>NO_PACKAGE</varname>.</para> - <para>Значением переменной <makevar>NO_PACKAGE</makevar> должна быть + <para>Значением переменной <varname>NO_PACKAGE</varname> должна быть строка, описывающая причину, по которой пакет не должен создаваться.</para> </sect2> <sect2> - <title><makevar>NO_CDROM</makevar></title> + <title><varname>NO_CDROM</varname></title> <para>Эта переменная указывает на то, что, хотя мы имеем право создавать бинарные пакеты, мы не можем помещать эти пакеты или - файлы <makevar>DISTFILES</makevar> порта на CD-ROM (или на похожие носители) для + файлы <varname>DISTFILES</varname> порта на CD-ROM (или на похожие носители) для перепродажи. Однако бинарные пакеты и файлы - <makevar>DISTFILES</makevar> порта будут оставаться + <varname>DISTFILES</varname> порта будут оставаться доступными посредством FTP/HTTP.</para> <para>Если эта переменная устанавливается вместе с - <makevar>NO_PACKAGE</makevar>, то только файлы порта - <makevar>DISTFILES</makevar> будут доступны, и только посредством + <varname>NO_PACKAGE</varname>, то только файлы порта + <varname>DISTFILES</varname> будут доступны, и только посредством FTP/HTTP.</para> - <para>В качестве значения <makevar>NO_CDROM</makevar> должна + <para>В качестве значения <varname>NO_CDROM</varname> должна указываться строка, описывающая причины, по которым порт не может распространяться на CD-ROM. К примеру, это применяется, если лицензионное соглашение приложения предполагает только его @@ -5384,42 +5335,42 @@ PORTVERSION= 1.0</programlisting> </sect2> <sect2> - <title><makevar>NOFETCHFILES</makevar></title> + <title><varname>NOFETCHFILES</varname></title> - <para>Файлы, определенные в переменной <makevar>NOFETCHFILES</makevar>, - не будут извлекаться ни из одного из <makevar>MASTER_SITES</makevar>. + <para>Файлы, определенные в переменной <varname>NOFETCHFILES</varname>, + не будут извлекаться ни из одного из <varname>MASTER_SITES</varname>. Примером такого файла является файл, поставляемый на CD-ROM.</para> <para>Инструменты, проверяющие доступность этих файлов на - <makevar>MASTER_SITES</makevar>, должны игнорировать эти файлы и + <varname>MASTER_SITES</varname>, должны игнорировать эти файлы и не сообщать о них.</para> </sect2> <sect2> - <title><makevar>RESTRICTED</makevar></title> + <title><varname>RESTRICTED</varname></title> <para>Задайте эту переменную, если лицензия на приложение не позволяет - ни зеркалировать файлы <makevar>DISTFILES</makevar>, ни распространять + ни зеркалировать файлы <varname>DISTFILES</varname>, ни распространять бинарный пакет через FTP/HTTP или на CD-ROM.</para> - <para>Ни <makevar>NO_CDROM</makevar>, ни <makevar>NO_PACKAGE</makevar> - не стоит устанавливать вместе с <makevar>RESTRICTED</makevar>, так + <para>Ни <varname>NO_CDROM</varname>, ни <varname>NO_PACKAGE</varname> + не стоит устанавливать вместе с <varname>RESTRICTED</varname>, так как последняя переменная подразумевает первые две.</para> - <para>В качестве значения <makevar>RESTRICTED</makevar> должна + <para>В качестве значения <varname>RESTRICTED</varname> должна указываться строка, описывающая причины, по которым порт нельзя распространять. Обычно это означает, что порт использует закрытое программное обеспечение, а пользователь должен вручную сгрузить файлы - <makevar>DISTFILES</makevar>, возможно, после заполнения + <varname>DISTFILES</varname>, возможно, после заполнения регистрационной формы или подтверждения соглашения с условиями <acronym>EULA</acronym>.</para> </sect2> <sect2> - <title><makevar>RESTRICTED_FILES</makevar></title> + <title><varname>RESTRICTED_FILES</varname></title> - <para>Если заданы <makevar>RESTRICTED</makevar> или - <makevar>NO_CDROM</makevar>, то значение этой переменной по умолчанию + <para>Если заданы <varname>RESTRICTED</varname> или + <varname>NO_CDROM</varname>, то значение этой переменной по умолчанию соответствует <literal>${DISTFILES} ${PATCHFILES}</literal>, в противном случае она пуста. Если ограничены в распространении лишь некоторые из дистрибутивных файлов, то в этой переменной задаётся их @@ -5451,10 +5402,10 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi </sect2> </sect1> - <sect1 id="building"> + <sect1 xml:id="building"> <title>Механизмы построения</title> - <sect2 id="parallel-builds"> + <sect2 xml:id="parallel-builds"> <title>Параллельное построение портов</title> <para>Инфраструктура портов &os; поддерживает параллельное @@ -5464,7 +5415,7 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi <acronym>CPU</acronym>, тем самым делая построение портов более быстрым и эффективным.</para> - <para>Это достигается путем передачи флага <makevar>-jX</makevar> + <para>Это достигается путем передачи флага <varname>-jX</varname> команде &man.make.1;. К сожалению, не все порты поддерживают параллельную сборку достаточно хорошо. Поэтому требуется включать этот механизм явным образом путем добавления строки @@ -5472,15 +5423,15 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi где-нибудь после раздела с объявлениями зависимостей.</para> <para>Другой опцией управления этим механизмом с точки зрения - сопровождающего является <makevar>MAKE_JOBS_UNSAFE=yes</makevar>. + сопровождающего является <varname>MAKE_JOBS_UNSAFE=yes</varname>. Эта переменная используется в случае, когда известно, что порт - ломается с <makevar>-jX</makevar>, и пользователь форсирует + ломается с <varname>-jX</varname>, и пользователь форсирует использование многопроцессорной компиляции для всех портов с переменной <literal>FORCE_MAKE_JOBS=yes</literal> в <filename>/etc/make.conf</filename>.</para> </sect2> - <sect2 id="using-make"> + <sect2 xml:id="using-make"> <title><command>make</command>, <command>gmake</command> и <command>imake</command></title> @@ -5502,14 +5453,14 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi <tbody> <row> - <entry><makevar>USES= gmake</makevar></entry> + <entry><varname>USES= gmake</varname></entry> <entry>Для сборки порта требуется <command>gmake</command>.</entry> </row> <row> - <entry><makevar>GMAKE</makevar></entry> + <entry><varname>GMAKE</varname></entry> <entry>Полный путь к команде <command>gmake</command>, если отсутствует в <envar>PATH</envar>.</entry> @@ -5526,19 +5477,19 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi Если флаг <option>-a</option> представляет для вашего порта проблему, то установите <literal>XMKMF=xmkmf</literal>. Если порт использует <application>imake</application>, но не понимает - цель <maketarget>install.man</maketarget>, то следует установить + цель <buildtarget>install.man</buildtarget>, то следует установить <literal>NO_INSTALL_MANPAGES=yes</literal>.</para> <para>Если исходный <filename>Makefile</filename> вашего порта - имеет что-нибудь помимо <maketarget>all</maketarget> в качестве + имеет что-нибудь помимо <buildtarget>all</buildtarget> в качестве основной цели построения, то задайте соответствующее значение - <makevar>ALL_TARGET</makevar>. То же касается - <maketarget>install</maketarget> и - <makevar>INSTALL_TARGET</makevar>.</para> + <varname>ALL_TARGET</varname>. То же касается + <buildtarget>install</buildtarget> и + <varname>INSTALL_TARGET</varname>.</para> </sect2> - <sect2 id="using-configure"> + <sect2 xml:id="using-configure"> <title>Сценарий <command>configure</command></title> <para>Если ваш порт использует сценарий <command>configure</command> @@ -5550,9 +5501,9 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi --infodir=${PREFIX}/${INFO_PATH} --mandir=${MANPREFIX}/man --build=${CONFIGURE_TARGET}</literal>), установите эти параметры - в <makevar>CONFIGURE_ARGS</makevar>. Дополнительные переменные + в <varname>CONFIGURE_ARGS</varname>. Дополнительные переменные окружения можно передать, используя переменную - <makevar>CONFIGURE_ENV</makevar>.</para> + <varname>CONFIGURE_ENV</varname>.</para> <table frame="none"> <title>Переменные для портов, использующих @@ -5569,36 +5520,36 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi <tbody> <row> - <entry><makevar>GNU_CONFIGURE</makevar></entry> + <entry><varname>GNU_CONFIGURE</varname></entry> <entry>Порт использует сценарий <command>configure</command> для подготовки построения.</entry> </row> <row> - <entry><makevar>HAS_CONFIGURE</makevar></entry> + <entry><varname>HAS_CONFIGURE</varname></entry> - <entry>То же, что и <makevar>GNU_CONFIGURE</makevar>, кроме + <entry>То же, что и <varname>GNU_CONFIGURE</varname>, кроме того, что цель configure по умолчанию не добавляется в - <makevar>CONFIGURE_ARGS</makevar>.</entry> + <varname>CONFIGURE_ARGS</varname>.</entry> </row> <row> - <entry><makevar>CONFIGURE_ARGS</makevar></entry> + <entry><varname>CONFIGURE_ARGS</varname></entry> <entry>Дополнительные параметры, передаваемые сценарию <command>configure</command>.</entry> </row> <row> - <entry><makevar>CONFIGURE_ENV</makevar></entry> + <entry><varname>CONFIGURE_ENV</varname></entry> <entry>Дополнительные переменные окружения, задаваемые для запуска сценария <command>configure</command>.</entry> </row> <row> - <entry><makevar>CONFIGURE_TARGET</makevar></entry> + <entry><varname>CONFIGURE_TARGET</varname></entry> <entry>Переопределить цель configure по умолчанию. Значением по умолчанию является @@ -5609,7 +5560,7 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi </table> </sect2> - <sect2 id="using-cmake"> + <sect2 xml:id="using-cmake"> <title>Использование <command>cmake</command></title> <para>Если ваш порт использует <application>CMake</application>, @@ -5631,30 +5582,30 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi <tbody> <row> - <entry><makevar>CMAKE_ARGS</makevar></entry> + <entry><varname>CMAKE_ARGS</varname></entry> <entry>Специфичные для порта флаги <application>CMake</application>, передаваемые <command>cmake</command>.</entry> </row> <row> - <entry><makevar>CMAKE_BUILD_TYPE</makevar></entry> + <entry><varname>CMAKE_BUILD_TYPE</varname></entry> <entry>Тип построения (предопределённые профили построения <application>CMake</application>). По умолчанию <literal>Release</literal>, <literal>Debug</literal> при использовании - <makevar>WITH_DEBUG</makevar>.</entry> + <varname>WITH_DEBUG</varname>.</entry> </row> <row> - <entry><makevar>CMAKE_ENV</makevar></entry> + <entry><varname>CMAKE_ENV</varname></entry> <entry>Переменные окружения для передачи <command>cmake</command>. По умолчанию <literal>${CONFIGURE_ENV}</literal>.</entry> </row> <row> - <entry><makevar>CMAKE_SOURCE_PATH</makevar></entry> + <entry><varname>CMAKE_SOURCE_PATH</varname></entry> <entry>Путь к каталогу с исходным кодом. По умолчанию <literal>${WRKSRC}</literal>.</entry> </row> @@ -5671,20 +5622,19 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi учитывают системные флаги <literal>*FLAGS</literal>; <literal>RelWithDebInfo</literal> и <literal>MinSizeRel</literal> соответственно определяют - <makevar>CFLAGS</makevar> со значением + <varname>CFLAGS</varname> со значением <literal>-O2 -g</literal> и <literal>-Os -DNDEBUG</literal>. - Значение <makevar>CMAKE_BUILD_TYPE</makevar> экспортируется - в нижнем регистре в <makevar>PLIST_SUB</makevar> и должно + Значение <varname>CMAKE_BUILD_TYPE</varname> экспортируется + в нижнем регистре в <varname>PLIST_SUB</varname> и должно использоваться, если порт устанавливает файлы <literal>*.cmake</literal> в зависимости от типа построения - (для примера посмотрите на <filename - role="package">deskutils/strigi</filename>). Следует + (для примера посмотрите на <package>deskutils/strigi</package>). Следует учитывать, что некоторые проекты могут определять собственные профили построения и/или форсировать конкретный тип построения через установку <literal>CMAKE_BUILD_TYPE</literal> в файлах <filename>CMakeLists.txt </filename> . Для того чтобы порт - для такого проекта учитывал <makevar>CFLAGS</makevar> и - <makevar>WITH_DEBUG</makevar>, из этих файлов должны быть + для такого проекта учитывал <varname>CFLAGS</varname> и + <varname>WITH_DEBUG</varname>, из этих файлов должны быть удалены значения <literal>CMAKE_BUILD_TYPE</literal>.</para> <para>Большинство проектов, основанных на @@ -5692,21 +5642,21 @@ IGNORE= may not be redistributed because of licensing reasons. Please vi (out-of-source) построения. Для порта внешнее построение можно запросить с использованием суффикса <literal>:outsource</literal>. В этом случае - <makevar>CONFIGURE_WRKSRC</makevar>, - <makevar>BUILD_WRKSRC</makevar> и - <makevar>INSTALL_WRKSRC</makevar> будут иметь значение + <varname>CONFIGURE_WRKSRC</varname>, + <varname>BUILD_WRKSRC</varname> и + <varname>INSTALL_WRKSRC</varname> будут иметь значение <literal>${WRKDIR}/.build</literal> для каталога, содержащего файлы, получаемые на этапах конфигурации и построения; при этом каталог с исходным кодом будет оставаться без изменений.</para> - <example id="using-cmake-example"> + <example xml:id="using-cmake-example"> <title>Пример использования <literal>USES= cmake</literal></title> <para>Следующий отрывок демонстрирует использование <application>CMake</application> для порта. - <makevar>CMAKE_SOURCE_PATH</makevar> обычно не требуется, + <varname>CMAKE_SOURCE_PATH</varname> обычно не требуется, но может быть установлен, когда исходный код не находится в верхнем каталоге или если порт используется для построения части проекта.</para> @@ -5716,7 +5666,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> </example> </sect2> - <sect2 id="using-scons"> + <sect2 xml:id="using-scons"> <title>Использование <command>scons</command></title> <para>Если ваш порт использует <application>SCons</application>, @@ -5737,29 +5687,29 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <tbody> <row> - <entry><makevar>SCONS_ARGS</makevar></entry> + <entry><varname>SCONS_ARGS</varname></entry> <entry>Специфичные для порта флаги SCons, передаваемые окружению SCons.</entry> </row> <row> - <entry><makevar>SCONS_BUILDENV</makevar></entry> + <entry><varname>SCONS_BUILDENV</varname></entry> <entry>Переменные для установки в системном окружении.</entry> </row> <row> - <entry><makevar>SCONS_ENV</makevar></entry> + <entry><varname>SCONS_ENV</varname></entry> <entry>Переменные для установки в окружении SCons.</entry> </row> <row> - <entry><makevar>SCONS_TARGET</makevar></entry> + <entry><varname>SCONS_TARGET</varname></entry> <entry>Последний параметр для передачи SCons, похожий на - <makevar>MAKE_TARGET</makevar>.</entry> + <varname>MAKE_TARGET</varname>.</entry> </row> </tbody> </tgroup> @@ -5767,8 +5717,8 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <para>Для того, чтобы сторонний <filename>SConstruct</filename> соответствовал всему, что передается SCons в переменной - <makevar>SCONS_ENV</makevar> (самое главное, это - <makevar>CC/CXX/CFLAGS/CXXFLAGS</makevar>), примените патч к + <varname>SCONS_ENV</varname> (самое главное, это + <varname>CC/CXX/CFLAGS/CXXFLAGS</varname>), примените патч к <filename>SConstruct</filename>, так чтобы переменная построения <literal>Environment</literal> выглядела следующим образом:</para> @@ -5779,10 +5729,10 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> </sect2> </sect1> - <sect1 id="using-autotools"> + <sect1 xml:id="using-autotools"> <title>Использование GNU autotools</title> - <sect2 id="using-autotools-introduction"> + <sect2 xml:id="using-autotools-introduction"> <title>Введение</title> <para>Различные инструменты GNU autotools предоставляют механизм @@ -5819,7 +5769,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> </sect2> - <sect2 id="using-libtool"> + <sect2 xml:id="using-libtool"> <title><command>libtool</command></title> <para>Динамические библиотеки, использующие инфраструктуру @@ -5834,11 +5784,11 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <programlisting>USE_AUTOTOOLS= libtool:<replaceable>version</replaceable>[:env]</programlisting> <para>При отсутствии дополнительных операций, - <literal>libtool:<replaceable>version</replaceable></literal> + <literal>libtool:version</literal> сообщает инфраструктуре построения о применении патча к сценарию configure с установленной в системе копией <command>libtool</command>. Подразумевается использование - The <makevar>GNU_CONFIGURE</makevar> + The <varname>GNU_CONFIGURE</varname> Более того, некоторые переменные make и оболочки shell будут назначены для дальнейшего использования этим портом. Подробности смотрите в <filename>bsd.autotools.mk</filename>.</para> @@ -5846,8 +5796,8 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <para>При использовании операции <literal>:env</literal> будет настроено только окружение.</para> - <para>Наконец, <makevar>LIBTOOLFLAGS</makevar> и - <makevar>LIBTOOLFILES</makevar> можно установить по желанию, + <para>Наконец, <varname>LIBTOOLFLAGS</varname> и + <varname>LIBTOOLFILES</varname> можно установить по желанию, чтобы переопределить наиболее вероятные аргументы для <command>libtool</command> и файлы, предназначенные для изменения. Большинству портов это скорее всего не понадобится. @@ -5855,7 +5805,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <filename>bsd.autotools.mk</filename>.</para> </sect2> - <sect2 id="using-libltdl"> + <sect2 xml:id="using-libltdl"> <title><command>libltdl</command></title> <para>Некоторые порты задействуют пакет с библиотекой @@ -5868,15 +5818,15 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <programlisting>USE_AUTOTOOLS= libltdl:<replaceable>version</replaceable></programlisting> <para>Всё, что в настоящее время она делает, это добавление - <makevar>LIB_DEPENDS</makevar> для подходящего порта + <varname>LIB_DEPENDS</varname> для подходящего порта <command>libltdl</command>, потому она предоставляется как удобная функция для помощи в устранении всяких зависимостей от - портов autotools вне инфраструктуры <makevar>USE_AUTOTOOLS</makevar>. + портов autotools вне инфраструктуры <varname>USE_AUTOTOOLS</varname>. Для этого инструмента не существует необязательных операций.</para> </sect2> - <sect2 id="using-autoconf"> + <sect2 xml:id="using-autoconf"> <title><command>autoconf</command> и <command>autoheader</command></title> @@ -5894,7 +5844,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <programlisting>USE_AUTOTOOLS= autoheader:<replaceable>version</replaceable></programlisting> <para>которые также подразумевают использование - <literal>autoconf:<replaceable>version</replaceable></literal>.</para> + <literal>autoconf:version</literal>.</para> <para>Аналогично команде <command>libtool</command>, подключение необязательной операции <literal>:env</literal> всего лишь @@ -5902,14 +5852,14 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> выполняется наложение патчей и переконфигурирование порта.</para> <para>Дополнительные необязательные переменные - <makevar>AUTOCONF_ARGS</makevar> и <makevar>AUTOHEADER_ARGS</makevar> + <varname>AUTOCONF_ARGS</varname> и <varname>AUTOHEADER_ARGS</varname> можно переопределить в <filename>Makefile</filename> порта, если указано явным образом. Как и с эквивалентами <command>libtool</command>, большинству портов это вряд ли понадобится.</para> </sect2> - <sect2 id="using-automake"> + <sect2 xml:id="using-automake"> <title><command>automake</command> и <command>aclocal</command></title> @@ -5940,7 +5890,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <programlisting>USE_AUTOTOOLS= aclocal:<replaceable>version</replaceable></programlisting> <para>которые также подразумевают использование - <literal>automake:<replaceable>version</replaceable></literal>.</para> + <literal>automake:version</literal>.</para> <para>Также как и для <command>libtool</command> и <command>autoconf</command>, подключение необязательной @@ -5951,15 +5901,15 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <para>Как и в случае с <command>autoconf</command> и <command>autoheader</command>, обе <command>automake</command> и <command>aclocal</command> имеют - необязательные переменные <makevar>AUTOMAKE_ARGS</makevar> и - <makevar>ACLOCAL_ARGS</makevar>, соответственно, которые при + необязательные переменные <varname>AUTOMAKE_ARGS</varname> и + <varname>ACLOCAL_ARGS</varname>, соответственно, которые при необходимости можно переопределить в <filename>Makefile</filename> порта.</para> </sect2> </sect1> - <sect1 id="using-gettext"> + <sect1 xml:id="using-gettext"> <title>Использование GNU <literal>gettext</literal></title> <sect2> @@ -5967,8 +5917,7 @@ CMAKE_SOURCE_PATH= ${WRKSRC}/subproject</programlisting> <para>Если для вашего порта требуется <literal>gettext</literal>, добавьте <literal>USES= gettext</literal>, и ваш порт - унаследует зависимость от <filename - role="package">devel/gettext</filename>. + унаследует зависимость от <package>devel/gettext</package>. <xref linkend="uses-values"/> содержит перечень других значений для использования <literal>gettext</literal>.</para> @@ -6001,7 +5950,7 @@ GNU_CONFIGURE= yes</programlisting> к примеру через передачу параметра <option>--disable-nls</option> сценарию <command>configure</command>. В этом случае ваш порт должен использовать <literal>gettext</literal>, в зависимости - от значения <makevar>NLS</makevar>. + от значения <varname>NLS</varname>. Для портов небольшой или средней сложности вы можете полагаться на следующую идиому:</para> @@ -6038,8 +5987,7 @@ PLIST_SUB+= NLS="@comment " %%NLS%%share/locale/no/LC_MESSAGES/foobar.mo</programlisting> <para>В особо сложных случаях вам понадобиться использовать более - продвинутые техники, чем данный рецепт, такие как <link - linkend="plist-dynamic">динамические списки упаковки</link>.</para> + продвинутые техники, чем данный рецепт, такие как <link linkend="plist-dynamic">динамические списки упаковки</link>.</para> </sect2> <sect2> @@ -6048,36 +5996,34 @@ PLIST_SUB+= NLS="@comment " <para>Существует момент, который следует учитывать при установке файлов каталогов сообщений. Целевые каталоги для размещения, расположенные под - <filename><makevar>LOCALBASE</makevar>/share/locale</filename>, + <filename>LOCALBASE/share/locale</filename>, редко когда должны создаваться и удаляться портом. Для наиболее популярных языков имеются собственные каталоги, перечисленные в - <filename><makevar>PORTSDIR</makevar>/Templates/BSD.local.dist</filename>. + <filename>PORTSDIR/Templates/BSD.local.dist</filename>. Каталоги для - множества других языков управляются с помощью порта <filename - role="package">devel/gettext</filename>. Обратите внимание + множества других языков управляются с помощью порта <package>devel/gettext</package>. Обратите внимание на его <filename>pkg-plist</filename> и посмотрите, куда данный порт собирается установить файлы каталогов сообщений для единственного в своем роде языка.</para> </sect2> </sect1> - <sect1 id="using-perl"> + <sect1 xml:id="using-perl"> <title>Использование <application>Perl</application></title> - <para>Если <makevar>MASTER_SITES</makevar> установлена в значение - <makevar>MASTER_SITE_PERL_CPAN</makevar>, то предпочтительным - значением <makevar>MASTER_SITE_SUBDIR</makevar> является имя + <para>Если <varname>MASTER_SITES</varname> установлена в значение + <varname>MASTER_SITE_PERL_CPAN</varname>, то предпочтительным + значением <varname>MASTER_SITE_SUBDIR</varname> является имя иерархии верхнего уровня. Например, рекомендуемым значением для <literal>p5-Module-Name</literal> является <literal>Module</literal>. - Иерархию верхнего уровня можно посмотреть на сайте <ulink - url="http://cpan.org/modules/by-module/">cpan.org</ulink>. Это + Иерархию верхнего уровня можно посмотреть на сайте <link xlink:href="http://cpan.org/modules/by-module/">cpan.org</link>. Это поддерживает порт в рабочем состоянии при изменении модуля автором.</para> <para>Исключением этого правила является отсутствие соответствующего каталога или файла с дистрибутивом в этом каталоге. В этом случае - в качестве <makevar>MASTER_SITE_SUBDIR</makevar> разрешается + в качестве <varname>MASTER_SITE_SUBDIR</varname> разрешается использовать id автора.</para> <para>Все из настраиваемых knobs ниже принимают либо <literal>YES</literal>, @@ -6106,25 +6052,25 @@ PLIST_SUB+= NLS="@comment " <tbody> <row> - <entry><makevar>USE_PERL5</makevar></entry> + <entry><varname>USE_PERL5</varname></entry> <entry>Perl 5 используется для построения и работы.</entry> </row> <row> - <entry><makevar>USE_PERL5_BUILD</makevar></entry> + <entry><varname>USE_PERL5_BUILD</varname></entry> <entry>Perl 5 используется для построения.</entry> </row> <row> - <entry><makevar>USE_PERL5_RUN</makevar></entry> + <entry><varname>USE_PERL5_RUN</varname></entry> <entry>Perl 5 используется во время работы.</entry> </row> <row> - <entry><makevar>PERL</makevar></entry> + <entry><varname>PERL</varname></entry> <entry>Полный путь к интерпретатору Perl 5, либо в системе, либо установленному из портов, но без номера версии. @@ -6133,17 +6079,17 @@ PLIST_SUB+= NLS="@comment " </row> <row> - <entry><makevar>PERL_CONFIGURE</makevar></entry> + <entry><varname>PERL_CONFIGURE</varname></entry> <entry>Конфигурация при помощи MakeMaker языка Perl. Влечёт - <makevar>USE_PERL5</makevar>.</entry> + <varname>USE_PERL5</varname>.</entry> </row> <row> - <entry><makevar>PERL_MODBUILD</makevar></entry> + <entry><varname>PERL_MODBUILD</varname></entry> <entry>Конфигурация, построение и установка с использованием - Module::Build. Влечёт <makevar>PERL_CONFIGURE</makevar>. + Module::Build. Влечёт <varname>PERL_CONFIGURE</varname>. </entry> </row> </tbody> @@ -6160,14 +6106,14 @@ PLIST_SUB+= NLS="@comment " <tbody> <row> - <entry><makevar>PERL_VERSION</makevar></entry> + <entry><varname>PERL_VERSION</varname></entry> <entry>Полная версия установленного Perl (например, <literal>5.8.9</literal>).</entry> </row> <row> - <entry><makevar>PERL_LEVEL</makevar></entry> + <entry><varname>PERL_LEVEL</varname></entry> <entry>Установленная версия Perl в форме целого числа вида <literal>MNNNPP</literal> (например, @@ -6175,7 +6121,7 @@ PLIST_SUB+= NLS="@comment " </row> <row> - <entry><makevar>PERL_ARCH</makevar></entry> + <entry><varname>PERL_ARCH</varname></entry> <entry>Место, в котором Perl хранит архитектурно-зависимые библиотеки. По умолчанию @@ -6183,18 +6129,18 @@ PLIST_SUB+= NLS="@comment " </row> <row> - <entry><makevar>PERL_PORT</makevar></entry> + <entry><varname>PERL_PORT</varname></entry> <entry>Название установленного порта Perl, (к примеру, <literal>perl5</literal>).</entry> </row> <row> - <entry><makevar>SITE_PERL</makevar></entry> + <entry><varname>SITE_PERL</varname></entry> <entry>Имя каталога, куда помещаются специфичные для сайта пакеты Perl. Это значение добавляется к - <makevar>PLIST_SUB</makevar>.</entry> + <varname>PLIST_SUB</varname>.</entry> </row> </tbody> </tgroup> @@ -6202,7 +6148,7 @@ PLIST_SUB+= NLS="@comment " <note> <para>Порты для модулей Perl, которые не имеют официального вебсайта, - должны указывать <hostid>cpan.org</hostid> в строке WWW в файле + должны указывать <systemitem>cpan.org</systemitem> в строке WWW в файле <filename>pkg-descr</filename>. Предпочтительная форма URL <literal>http://search.cpan.org/dist/Module-Name/</literal> (включая завершающий слэш).</para> @@ -6219,22 +6165,22 @@ PLIST_SUB+= NLS="@comment " ниже.</para> </note> - <example id="use-perl-dependency-example"> + <example xml:id="use-perl-dependency-example"> <title>Пример зависимости Perl</title> <programlisting>p5-IO-Tee>=0.64:${PORTSDIR}/devel/p5-IO-Tee</programlisting> </example> </sect1> - <sect1 id="using-x11"> + <sect1 xml:id="using-x11"> <title>Использование X11</title> - <sect2 id="x11-variables"> + <sect2 xml:id="x11-variables"> <title>Компоненты X.Org</title> <para>X.Org является реализацией X11, доступной в Коллекции Портов. Если ваше приложение зависит от компонентов X, установите в - переменную <makevar>USE_XORG</makevar> в перечень требуемых + переменную <varname>USE_XORG</varname> в перечень требуемых компонентов. К настоящему времени доступными компонентами являются:</para> @@ -6257,12 +6203,12 @@ PLIST_SUB+= NLS="@comment " <para>Проект Mesa является попыткой обеспечить свободную реализацию OpenGL. Вы можете указать зависимость от различных компонентов - этого проекта при помощи переменной <makevar>USE_GL</makevar>. + этого проекта при помощи переменной <varname>USE_GL</varname>. Действительные опции: <literal>glut, glu, glw, glew, gl</literal> и <literal>linux</literal>. Для обратной совместимости значение <literal>yes</literal> соответствует <literal>glu</literal>.</para> - <example id="use-xorg-example"> + <example xml:id="use-xorg-example"> <title>Пример для USE_XORG</title> <programlisting>USE_XORG= xrender xft xkbfile xt xaw USE_GL= glu</programlisting> @@ -6274,13 +6220,13 @@ USE_GL= glu</programlisting> <tgroup cols="2"> <tbody> <row> - <entry><makevar>USES= imake</makevar></entry> + <entry><varname>USES= imake</varname></entry> <entry>Порт использует <command>imake</command>.</entry> </row> <row> - <entry><makevar>XMKMF</makevar></entry> + <entry><varname>XMKMF</varname></entry> <entry>Задаётся маршрут до <command>xmkmf</command>, если он отсутствует в переменной окружения <envar>PATH</envar>. По @@ -6290,7 +6236,7 @@ USE_GL= glu</programlisting> </tgroup> </table> - <example id="using-x11-vars"> + <example xml:id="using-x11-vars"> <title>Использование переменных X11 в порте</title> <programlisting># Использовать некоторые библиотеки X11 @@ -6298,18 +6244,18 @@ USE_XORG= x11 xpm</programlisting> </example> </sect2> - <sect2 id="porting-motif"> + <sect2 xml:id="porting-motif"> <title>Порты, которым требуется Motif</title> <para>Если вашему порту требуется Motif, задайте переменную - <makevar>USES= motif</makevar> в файле <filename>Makefile</filename>. + <varname>USES= motif</varname> в файле <filename>Makefile</filename>. Реализация Motif, используемая по умолчанию, находится в - <filename role="package">x11-toolkits/open-motif</filename>. + <package>x11-toolkits/open-motif</package>. Пользователи вместо этого могут выбрать - <filename role="package">x11-toolkits/lesstif</filename> через - установку переменной <makevar>WANT_LESSTIF</makevar>.</para> + <package>x11-toolkits/lesstif</package> через + установку переменной <varname>WANT_LESSTIF</varname>.</para> - <para>Переменная <makevar>MOTIFLIB</makevar> будет установлена в + <para>Переменная <varname>MOTIFLIB</varname> будет установлена в <filename>bsd.port.mk</filename>, чтобы ссылаться на соответствующую библиотеку Motif. Пожалуйста, измените исходные тексты вашего порта на использование @@ -6336,7 +6282,7 @@ USE_XORG= x11 xpm</programlisting> </listitem> </itemizedlist> - <para>Заметьте, что переменная <makevar>MOTIFLIB</makevar> (как + <para>Заметьте, что переменная <varname>MOTIFLIB</varname> (как правило) раскрывается в <literal>-L/usr/local/lib -lXm</literal> или <literal>/usr/local/lib/libXm.a</literal>, так что нет нужды впереди добавлять <literal>-L</literal> или <literal>-l</literal>.</para> @@ -6348,7 +6294,7 @@ USE_XORG= x11 xpm</programlisting> <para>Если ваш порт устанавливает шрифты для X Window System, поместите их в каталог - <filename><makevar>LOCALBASE</makevar>/lib/X11/fonts/local</filename>. + <filename>LOCALBASE/lib/X11/fonts/local</filename>. </para> </sect2> @@ -6367,12 +6313,11 @@ USE_XORG= x11 xpm</programlisting> <programlisting>USES= display</programlisting> </sect2> - <sect2 id="desktop-entries"> + <sect2 xml:id="desktop-entries"> <title>Элементы рабочего стола</title> - <para>Элементы рабочего стола (<ulink - url="http://standards.freedesktop.org/desktop-entry-spec/latest/">стандарта - Freedesktop</ulink>) предоставляют способ автоматической настройки + <para>Элементы рабочего стола (<link xlink:href="http://standards.freedesktop.org/desktop-entry-spec/latest/">стандарта + Freedesktop</link>) предоставляют способ автоматической настройки функций рабочего стола при установке новой программы, не требуя вмешательства пользователя. Например, новые программы автоматически отображаются в меню приложений совместимых окружений рабочего стола. @@ -6391,38 +6336,36 @@ USE_XORG= x11 xpm</programlisting> <para>Порты, включающие предопределенные файлы <filename>*.desktop</filename>, должны включать эти файлы в <filename>pkg-plist</filename> и устанавливать их в каталог - <filename><makevar>$LOCALBASE</makevar>/share/applications</filename>. - Для установки этих файлов используется <link - linkend="install-macros">макрос <makevar>INSTALL_DATA</makevar></link>.</para> + <filename>$LOCALBASE/share/applications</filename>. + Для установки этих файлов используется <link linkend="install-macros">макрос <varname>INSTALL_DATA</varname></link>.</para> </sect3> - <sect3 id="updating-desktop-database"> + <sect3 xml:id="updating-desktop-database"> <title>Обновление базы данных рабочего стола</title> <para>Если в файле порта - <filename><replaceable>portname</replaceable>.desktop</filename> + <filename>portname.desktop</filename> имеется запись MimeType, то база данных рабочего стола должна быть обновлена после установки и удаления. Для этого укажите - <makevar>USES</makevar>= desktop-file-utils.</para> + <varname>USES</varname>= desktop-file-utils.</para> </sect3> - <sect3 id="desktop-entries-macro"> + <sect3 xml:id="desktop-entries-macro"> <title>Создание элементов рабочего стола с использованием - <makevar>DESKTOP_ENTRIES</makevar></title> + <varname>DESKTOP_ENTRIES</varname></title> <para>Элементы рабочего стола можно легко создавать для приложений, - используя переменную <makevar>DESKTOP_ENTRIES</makevar>. + используя переменную <varname>DESKTOP_ENTRIES</varname>. Будет автоматически создан, установлен и добавлен в <filename>pkg-plist</filename> файл с названием - <filename><replaceable>name</replaceable>.desktop</filename>. + <filename>name.desktop</filename>. Синтаксис:</para> <programlisting>DESKTOP_ENTRIES= "NAME" "COMMENT" "ICON" "COMMAND" "CATEGORY" StartupNotify</programlisting> - <para>Перечень возможных категорий доступен на <ulink - url="http://standards.freedesktop.org/menu-spec/latest/apa.html"> - вебсайте Freedesktop</ulink>. <makevar>StartupNotify</makevar> + <para>Перечень возможных категорий доступен на <link xlink:href="http://standards.freedesktop.org/menu-spec/latest/apa.html"> + вебсайте Freedesktop</link>. <varname>StartupNotify</varname> отобразит, поддерживает ли приложение <emphasis>уведомления о запуске</emphasis>. Как правило, это графический индикатор часы вместо указателя мыши, меню или панель, которые уведомляют @@ -6431,7 +6374,7 @@ USE_XORG= x11 xpm</programlisting> Программы, несовместимые с уведомлениями о запуске, не будут очищать индикатор (возможно, вызывая путаницу и приводя пользователей в бешенство), и поэтому должны иметь - <makevar>StartupNotify</makevar> в выключенном состоянии + <varname>StartupNotify</varname> в выключенном состоянии <literal>false</literal>; тогда индикатор не будет отображаться совсем.</para> @@ -6445,21 +6388,21 @@ USE_XORG= x11 xpm</programlisting> </sect2> </sect1> - <sect1 id="using-gnome"> + <sect1 xml:id="using-gnome"> <title>Использование GNOME</title> <para>Для задания того, какие компоненты GNOME использует конкретный порт, проект FreeBSD/GNOME использует собственный набор переменных. На странице проекта FreeBSD/GNOME - размещён <ulink url="http://www.FreeBSD.org/gnome/docs/porting.html"> - исчерпывающий список этих переменных</ulink>.</para> + размещён <link xlink:href="http://www.FreeBSD.org/gnome/docs/porting.html"> + исчерпывающий список этих переменных</link>.</para> </sect1> - <sect1 id="using-qt"> + <sect1 xml:id="using-qt"> <title>Использование Qt</title> - <sect2 id="qt-common"> + <sect2 xml:id="qt-common"> <title>Порты, для которых требуется Qt</title> <table frame="none"> @@ -6468,7 +6411,7 @@ USE_XORG= x11 xpm</programlisting> <tgroup cols="2"> <tbody> <row> - <entry><makevar>USE_QT_VER</makevar></entry> + <entry><varname>USE_QT_VER</varname></entry> <entry>Порт использует инструментальный пакет Qt. Единственным возможным значением является @@ -6478,58 +6421,57 @@ USE_XORG= x11 xpm</programlisting> </row> <row> - <entry><makevar>USE_QT4</makevar></entry> + <entry><varname>USE_QT4</varname></entry> <entry>Указывает инструменты и библиотеки в качестве зависимостей для портов, которые используют Qt 4. - Для получения подробностей смотрите <link - linkend="qt4-components">выбор компонентов Qt + Для получения подробностей смотрите <link linkend="qt4-components">выбор компонентов Qt 4</link>.</entry> </row> <row> - <entry><makevar>QT_PREFIX</makevar></entry> + <entry><varname>QT_PREFIX</varname></entry> <entry>Устанавливается в значение, содержащее путь к установленному Qt (переменная только для чтения).</entry> </row> <row> - <entry><makevar>MOC</makevar></entry> + <entry><varname>MOC</varname></entry> <entry>Устанавливается в значение, содержащее путь к <command>moc</command> (переменная только для чтения). По умолчанию устанавливается в соответствии со значением - <makevar>USE_QT_VER</makevar>.</entry> + <varname>USE_QT_VER</varname>.</entry> </row> <row> - <entry><makevar>QTCPPFLAGS</makevar></entry> + <entry><varname>QTCPPFLAGS</varname></entry> <entry>Дополнительные флаги компилятора для инструментального пакета Qt, передаваемые через переменную - <makevar>CONFIGURE_ENV</makevar>. По умолчанию + <varname>CONFIGURE_ENV</varname>. По умолчанию устанавливается в соответствии со значением - <makevar>USE_QT_VER</makevar>.</entry> + <varname>USE_QT_VER</varname>.</entry> </row> <row> - <entry><makevar>QTCFGLIBS</makevar></entry> + <entry><varname>QTCFGLIBS</varname></entry> <entry>Дополнительные флаги компоновки для инструментального пакета Qt, передаваемые через переменную - <makevar>CONFIGURE_ENV</makevar>. По умолчанию + <varname>CONFIGURE_ENV</varname>. По умолчанию устанавливается в соответствии со значением - <makevar>USE_QT_VER</makevar>.</entry> + <varname>USE_QT_VER</varname>.</entry> </row> <row> - <entry><makevar>QTNONSTANDARD</makevar></entry> + <entry><varname>QTNONSTANDARD</varname></entry> - <entry>Подавляет изменение <makevar>CONFIGURE_ENV</makevar>, - <makevar>CONFIGURE_ARGS</makevar>, - <makevar>CPPFLAGS</makevar> и - <makevar>MAKE_ENV</makevar>.</entry> + <entry>Подавляет изменение <varname>CONFIGURE_ENV</varname>, + <varname>CONFIGURE_ARGS</varname>, + <varname>CPPFLAGS</varname> и + <varname>MAKE_ENV</varname>.</entry> </row> </tbody> @@ -6543,49 +6485,49 @@ USE_XORG= x11 xpm</programlisting> <tgroup cols="2"> <tbody> <row> - <entry><makevar>UIC</makevar></entry> + <entry><varname>UIC</varname></entry> <entry>Устанавливает путь к <command>uic</command> (переменная только для чтения).</entry> </row> <row> - <entry><makevar>QMAKE</makevar></entry> + <entry><varname>QMAKE</varname></entry> <entry>Устанавливает путь к <command>qmake</command> (переменная только для чтения).</entry> </row> <row> - <entry><makevar>QMAKESPEC</makevar></entry> + <entry><varname>QMAKESPEC</varname></entry> <entry>Устанавливает путь к конфигурационному файлу для <command>qmake</command> (переменная только для чтения).</entry> </row> <row> - <entry><makevar>QMAKEFLAGS</makevar></entry> + <entry><varname>QMAKEFLAGS</varname></entry> <entry>Дополнительные флаги для <command>qmake</command>.</entry> </row> <row> - <entry><makevar>QT_INCDIR</makevar></entry> + <entry><varname>QT_INCDIR</varname></entry> <entry>Устанавливает каталоги для заголовков Qt 4 (переменная только для чтения).</entry> </row> <row> - <entry><makevar>QT_LIBDIR</makevar></entry> + <entry><varname>QT_LIBDIR</varname></entry> <entry>Устанавливает путь к библиотекам Qt 4 (переменная только для чтения).</entry> </row> <row> - <entry><makevar>QT_PLUGINDIRC</makevar></entry> + <entry><varname>QT_PLUGINDIRC</varname></entry> <entry>Устанавливает путь к плагинам Qt 4 (переменная только для чтения).</entry> @@ -6594,7 +6536,7 @@ USE_XORG= x11 xpm</programlisting> </tgroup> </table> - <para>Когда переменная <makevar>USE_QT_VER</makevar> определена + <para>Когда переменная <varname>USE_QT_VER</varname> определена со значением <literal>3</literal>, сценарию <command>configure</command> можно передавать некоторые полезные настройки:</para> @@ -6607,7 +6549,7 @@ CONFIGURE_ENV+= MOC="${MOC}" LIBS="${QTCFGLIBS}" \ QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}" CPPFLAGS+= ${QTCPPFLAGS}</programlisting> - <para>При заданной переменной <makevar>USE_QT4</makevar> + <para>При заданной переменной <varname>USE_QT4</varname> применяются следующие настройки:</para> <programlisting>CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \ @@ -6623,10 +6565,10 @@ PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ QT_PLUGINDIR_REL=${QT_PLUGINDIR_REL}</programlisting> </sect2> - <sect2 id="qt4-components"> + <sect2 xml:id="qt4-components"> <title>Выбор компонентов (только для Qt 4.x)</title> - <para>В переменной <makevar>USE_QT4</makevar> должны указываться + <para>В переменной <varname>USE_QT4</varname> должны указываться зависимости от отдельных инструментов и библиотек Qt 4. К каждому компоненту можно добавить суффикс, <literal>_build</literal> или <literal>_run</literal>, отражающий, когда должна быть применена @@ -6637,7 +6579,7 @@ PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ суффиксом <literal>_build</literal>, а компоненты плагинов - с суффиксом <literal>_run</literal>. Наиболее общие используемые компоненты перечислены ниже (все доступные компоненты перечислены - в <makevar>_USE_QT4_ALL</makevar> в файле + в <varname>_USE_QT4_ALL</varname> в файле <filename>/usr/ports/Mk/bsd.qt.mk</filename>):</para> <table frame="none"> @@ -6777,7 +6719,7 @@ PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ </tgroup> </table> - <example id="qt4-components-example"> + <example xml:id="qt4-components-example"> <title>Выбор компонентов Qt 4</title> <para>В этом примере портированное приложение использует библиотеку @@ -6795,7 +6737,7 @@ PLIST_SUB+= QT_INCDIR_REL=${QT_INCDIR_REL} \ </example> </sect2> - <sect2 id="qt-additional"> + <sect2 xml:id="qt-additional"> <title>Прочие соображения</title> <para>Если вместе с приложением вместо <filename>configure</filename> @@ -6810,12 +6752,12 @@ do-configure: <para>Обратите внимание на сходство со строкой <command>qmake</command> из прилагаемого сценария <filename>BUILD.sh</filename>. Передача - <makevar>CONFIGURE_ENV</makevar> обеспечивает видимость переменной - <makevar>QMAKESPEC</makevar> для <command>qmake</command>, без + <varname>CONFIGURE_ENV</varname> обеспечивает видимость переменной + <varname>QMAKESPEC</varname> для <command>qmake</command>, без которой команда не может работать. <command>qmake</command> порождает стандартные Makefile, и, таким образом, отпадает необходимость в написании своих собственных целей - <maketarget>build</maketarget>.</para> + <buildtarget>build</buildtarget>.</para> <para>Приложения Qt часто пишутся в кроссплатформенной манере, и X11/Unix часто не является для них платформой разработки, что в @@ -6841,7 +6783,7 @@ do-configure: Иногда данные, такие как иконки и файлы .desktop, устанавливаются по умолчанию в каталоги, которые не просматриваются XDG-совместимыми приложениями. Примером - является <filename role="package">editors/texmaker</filename> - + является <package>editors/texmaker</package> - взгляните на <filename>patch-texmaker.pro</filename> из каталога <filename>files</filename> этого порта, который можно взять в качестве шаблона исправления этого непосредственно в файле @@ -6853,14 +6795,14 @@ do-configure: </sect1> - <sect1 id="using-kde"> + <sect1 xml:id="using-kde"> <title>Использование KDE</title> - <sect2 id="kde4-variables"> + <sect2 xml:id="kde4-variables"> <title>Задание переменных KDE 4</title> <para>Если ваше приложение зависит от KDE 4.x, присвойте - <makevar>USE_KDE4</makevar> список требуемых компонентов. + <varname>USE_KDE4</varname> список требуемых компонентов. Для переопределения типа зависимости компонента могут быть использованы суффиксы <literal>_build</literal> и <literal>_run</literal> (например, <literal>baseapps_run</literal>). @@ -7009,7 +6951,7 @@ do-configure: </row> <row> - <entry>smokekde<literal></literal></entry> + <entry>smokekde<literal/></entry> <entry>Библиотеки KDE SMOKE</entry> </row> @@ -7018,29 +6960,29 @@ do-configure: </table> <para>Порты KDE 4.x - устанавливаются в <makevar>KDE4_PREFIX</makevar>, что в + устанавливаются в <varname>KDE4_PREFIX</varname>, что в настоящее время соответствует <filename>/usr/local/kde4</filename>. Это достигается путем указания компонента <literal>kdeprefix</literal>, - который определяет значение по умолчанию для <makevar>PREFIX</makevar>. - Тем не менее, порты учитывают любые <makevar>PREFIX</makevar>, + который определяет значение по умолчанию для <varname>PREFIX</varname>. + Тем не менее, порты учитывают любые <varname>PREFIX</varname>, установленные через переменную окружения <envar>MAKEFLAGS</envar> и/или параметры <command>make</command>.</para> - <example id="kde4-components-example"> - <title>Пример <makevar>USE_KDE4</makevar></title> + <example xml:id="kde4-components-example"> + <title>Пример <varname>USE_KDE4</varname></title> <para>Это простой пример для порта KDE 4. <literal>USES= cmake:outsource</literal> указывает порту использовать <application>CMake</application>, конфигурационный инструмент, широко применяемый в проектах KDE 4 (подробное описание даёт <xref linkend="using-cmake"/>). - <makevar>USE_KDE4</makevar> добавляет зависимость от библиотек KDE + <varname>USE_KDE4</varname> добавляет зависимость от библиотек KDE и заставляет порты использовать <command>automoc4</command> во время сборки. Требуемые компоненты KDE и другие зависимости - можно определить в журнале configure. <makevar>USE_KDE4</makevar> - не подразумевает <makevar>USE_QT4</makevar>. Если порт требует + можно определить в журнале configure. <varname>USE_KDE4</varname> + не подразумевает <varname>USE_QT4</varname>. Если порт требует какой-либо из компонентов Qt 4, их следует указать в - <makevar>USE_QT4</makevar>.</para> + <varname>USE_QT4</varname>.</para> <programlisting>USES= cmake:outsource USE_KDE4= kdelibs kdeprefix automoc4 @@ -7050,22 +6992,21 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </sect1> - <sect1 id="using-java"> + <sect1 xml:id="using-java"> <title>Использование Java</title> - <sect2 id="java-variables"> + <sect2 xml:id="java-variables"> <title>Задание переменных</title> <para>Если вашему порту необходимо наличие Java™ Development Kit (JDK™) для построения, работы или даже распаковки дистрибутивного файла, то в нём должна быть задана переменная - <makevar>USE_JAVA</makevar>.</para> + <varname>USE_JAVA</varname>.</para> <para>В Коллекции Портов присутствуют несколько JDK различных разработчиков и разных версий. Если ваш порт должен использовать одну из этих версий, то вы должны указать, какую именно. Самой - последней версией и версией по умолчанию является <filename - role="package">java/openjdk6</filename>.</para> + последней версией и версией по умолчанию является <package>java/openjdk6</package>.</para> <table frame="none"> <title>Переменные, которые которые могут задаваться портами, @@ -7082,14 +7023,14 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <tbody> <row> - <entry><makevar>USE_JAVA</makevar></entry> + <entry><varname>USE_JAVA</varname></entry> <entry>Должна быть определена для того, что последующие переменные вступили в действие.</entry> </row> <row> - <entry><makevar>JAVA_VERSION</makevar></entry> + <entry><varname>JAVA_VERSION</varname></entry> <entry>Список версий Java, перечисленных через пробел, подходящих для порта. Опциональный знак <literal>"+"</literal> позволяет вам указать диапазон @@ -7099,14 +7040,14 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </row> <row> - <entry><makevar>JAVA_OS</makevar></entry> + <entry><varname>JAVA_OS</varname></entry> <entry>Список операционных систем, перечисленных через пробел, порты JDK для которых подходят для порта (возможные значения: <literal>native linux</literal>).</entry> </row> <row> - <entry><makevar>JAVA_VENDOR</makevar></entry> + <entry><varname>JAVA_VENDOR</varname></entry> <entry>Список разработчиков портов JDK, перечисленных через пробел, которые подходят для порта (возможные значения: <literal>freebsd bsdjava sun @@ -7114,20 +7055,20 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </row> <row> - <entry><makevar>JAVA_BUILD</makevar></entry> + <entry><varname>JAVA_BUILD</varname></entry> <entry>Если задана, то означает, что выбранный порт JDK должен быть добавлен к зависимостям порта для его построения.</entry> </row> <row> - <entry><makevar>JAVA_RUN</makevar></entry> + <entry><varname>JAVA_RUN</varname></entry> <entry>Если задана, то означает, что выбранный порт JDK должен быть добавлен в зависимостям порта для его работы.</entry> </row> <row> - <entry><makevar>JAVA_EXTRACT</makevar></entry> + <entry><varname>JAVA_EXTRACT</varname></entry> <entry>Если задана, то означает, что выбранный порт JDK должен быть добавлен в зависимостям порта для распаковки его дистрибутивных файлов.</entry> @@ -7137,7 +7078,7 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </table> <para>Ниже перечисляются все значения, которые принимают переменные - после задания переменной <makevar>USE_JAVA</makevar>:</para> + после задания переменной <varname>USE_JAVA</varname>:</para> <table frame="none"> <title>Переменные, доступные в портах, использующих Java</title> @@ -7153,65 +7094,65 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <tbody> <row> - <entry><makevar>JAVA_PORT</makevar></entry> + <entry><varname>JAVA_PORT</varname></entry> <entry>Название порта JDK (к примеру, <literal>'java/openjdk6'</literal>).</entry> </row> <row> - <entry><makevar>JAVA_PORT_VERSION</makevar></entry> + <entry><varname>JAVA_PORT_VERSION</varname></entry> <entry>Полное наименовании версии порта JDK (к примеру, <literal>'1.6.0'</literal>). Если вам нужны только первые две цифры номера версии, используйте конструкцию - <makevar>${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/}</makevar>.</entry> + <varname>${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/}</varname>.</entry> </row> <row> - <entry><makevar>JAVA_PORT_OS</makevar></entry> + <entry><varname>JAVA_PORT_OS</varname></entry> <entry>Операционная система, используемая портом JDK (к примеру, <literal>'native'</literal>).</entry> </row> <row> - <entry><makevar>JAVA_PORT_VENDOR</makevar></entry> + <entry><varname>JAVA_PORT_VENDOR</varname></entry> <entry>Разработчик порта JDK (к примеру, <literal>'openjdk'</literal>).</entry> </row> <row> - <entry><makevar>JAVA_PORT_OS_DESCRIPTION</makevar></entry> + <entry><varname>JAVA_PORT_OS_DESCRIPTION</varname></entry> <entry>Описание операционной системы, используемой портом JDK (к примеру, <literal>'Native'</literal>).</entry> </row> <row> - <entry><makevar>JAVA_PORT_VENDOR_DESCRIPTION</makevar></entry> + <entry><varname>JAVA_PORT_VENDOR_DESCRIPTION</varname></entry> <entry>Описание разработчика порта JDK (к примеру, <literal>'OpenJDK BSD Porting Team'</literal>).</entry> </row> <row> - <entry><makevar>JAVA_HOME</makevar></entry> + <entry><varname>JAVA_HOME</varname></entry> <entry>Маршрут к установочному каталогу JDK (к примеру, <filename>'/usr/local/openjdk6'</filename>).</entry> </row> <row> - <entry><makevar>JAVAC</makevar></entry> + <entry><varname>JAVAC</varname></entry> <entry>Маршрут к используемому компилятору Java (к примеру, <filename>'/usr/local/openjdk6/bin/javac'</filename>. </entry> </row> <row> - <entry><makevar>JAR</makevar></entry> + <entry><varname>JAR</varname></entry> <entry>Маршрут к используемой утилите <command>jar</command> (к примеру, <filename>'/usr/local/openjdk6/bin/jar'</filename> или <filename>'/usr/local/bin/fastjar'</filename>).</entry> </row> <row> - <entry><makevar>APPLETVIEWER</makevar></entry> + <entry><varname>APPLETVIEWER</varname></entry> <entry>Маршрут к утилите <command>appletviewer</command> (к примеру, <filename>'/usr/local/openjdk6/bin/appletviewer'</filename>). @@ -7219,71 +7160,71 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </row> <row> - <entry><makevar>JAVA</makevar></entry> + <entry><varname>JAVA</varname></entry> <entry>Маршрут к выполняемому файлу <command>java</command>. Используйте его для запуска Java-программ (к примеру, <filename>'/usr/local/openjdk6/bin/java'</filename>).</entry> </row> <row> - <entry><makevar>JAVADOC</makevar></entry> + <entry><varname>JAVADOC</varname></entry> <entry>Маршрут к вспомогательной программе <command>javadoc</command>.</entry> </row> <row> - <entry><makevar>JAVAH</makevar></entry> + <entry><varname>JAVAH</varname></entry> <entry>Маршрут к программе <command>javah</command>.</entry> </row> <row> - <entry><makevar>JAVAP</makevar></entry> + <entry><varname>JAVAP</varname></entry> <entry>Маршрут к программе <command>javap</command>.</entry> </row> <row> - <entry><makevar>JAVA_KEYTOOL</makevar></entry> + <entry><varname>JAVA_KEYTOOL</varname></entry> <entry>Маршрут к вспомогательной программе <command>keytool</command>.</entry> </row> <row> - <entry><makevar>JAVA_N2A</makevar></entry> + <entry><varname>JAVA_N2A</varname></entry> <entry>Маршрут к утилите <command>native2ascii</command>.</entry> </row> <row> - <entry><makevar>JAVA_POLICYTOOL</makevar></entry> + <entry><varname>JAVA_POLICYTOOL</varname></entry> <entry>Маршрут к программе <command>policytool</command>.</entry> </row> <row> - <entry><makevar>JAVA_SERIALVER</makevar></entry> + <entry><varname>JAVA_SERIALVER</varname></entry> <entry>Маршрут к вспомогательной программе <command>serialver</command>.</entry> </row> <row> - <entry><makevar>RMIC</makevar></entry> + <entry><varname>RMIC</varname></entry> <entry>Маршрут к генератору каркаса программ RMI, утилите <command>rmic</command>.</entry> </row> <row> - <entry><makevar>RMIREGISTRY</makevar></entry> + <entry><varname>RMIREGISTRY</varname></entry> <entry>Маршрут к программе регистрации RMI, <command>rmiregistry</command>.</entry> </row> <row> - <entry><makevar>RMID</makevar></entry> + <entry><varname>RMID</varname></entry> <entry>Маршрут к программе-даемону RMI <command>rmid</command>.</entry> </row> <row> - <entry><makevar>JAVA_CLASSES</makevar></entry> + <entry><varname>JAVA_CLASSES</varname></entry> <entry>Маршрут к архиву, который содержит файлы классов JDK, <filename>${JAVA_HOME}/jre/lib/rt.jar</filename>.</entry> </row> @@ -7313,21 +7254,21 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <tbody> <row> - <entry><makevar>JAVASHAREDIR</makevar></entry> + <entry><varname>JAVASHAREDIR</varname></entry> <entry>Корневой каталог для всего, что связано с Java. По умолчанию: <filename>${PREFIX}/share/java</filename>. </entry> </row> <row> - <entry><makevar>JAVAJARDIR</makevar></entry> + <entry><varname>JAVAJARDIR</varname></entry> <entry>Каталог, в который должны устанавливаться JAR-файлы. По умолчанию: <filename>${JAVASHAREDIR}/classes</filename>.</entry> </row> <row> - <entry><makevar>JAVALIBDIR</makevar></entry> + <entry><varname>JAVALIBDIR</varname></entry> <entry>Каталог, в который устанавливаются JAR-файлы из других портов. По умолчанию: <filename>${LOCALBASE}/share/java/classes</filename>.</entry> @@ -7337,27 +7278,26 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </table> <para>Соответствующие записи определяются в обоих переменных - <makevar>PLIST_SUB</makevar> (описана в <xref - linkend="plist-sub"/>) и <makevar>SUB_LIST</makevar>.</para> + <varname>PLIST_SUB</varname> (описана в <xref linkend="plist-sub"/>) и <varname>SUB_LIST</varname>.</para> </sect2> - <sect2 id="java-building-with-ant"> + <sect2 xml:id="java-building-with-ant"> <title>Построение с Ant</title> <para>Если построение порта производится с использованием Apache Ant, - то необходимо определить <makevar>USE_ANT</makevar>. Таким образом + то необходимо определить <varname>USE_ANT</varname>. Таким образом Ant становится подкомандой make. Если в порте не определена цель <literal>do-build</literal>, то будет установлена цель по умолчанию, которая просто запускает Ant в соответствии со значением - <makevar>MAKE_ENV</makevar>, <makevar>MAKE_ARGS</makevar> и - <makevar>ALL_TARGET</makevar>. Это похоже на механизм - <makevar>USES= gmake</makevar>, который описан в + <varname>MAKE_ENV</varname>, <varname>MAKE_ARGS</varname> и + <varname>ALL_TARGET</varname>. Это похоже на механизм + <varname>USES= gmake</varname>, который описан в <xref linkend="building"/>.</para> </sect2> - <sect2 id="java-best-practices"> + <sect2 xml:id="java-best-practices"> <title>Практические рекомендации</title> <para>При портировании Java-библиотеки ваш порт должен @@ -7390,37 +7330,34 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> JDK, таким образом становится проблематичным определить список файлов для упаковки (<filename>pkg-plist</filename>). Это одна из причин, по которой создателям портов настоятельно рекомендуется использовать - макрос <makevar>PORTDOCS</makevar>. Более того, даже если вы сможете + макрос <varname>PORTDOCS</varname>. Более того, даже если вы сможете угадать набор файлов, который будет сгенерирован утилитой <command>javadoc</command>, размер получающегося файла <filename>pkg-plist</filename> голосует за использование - <makevar>PORTDOCS</makevar>.</para> + <varname>PORTDOCS</varname>.</para> - <para>Значением по умолчанию для переменной <makevar>DATADIR</makevar> + <para>Значением по умолчанию для переменной <varname>DATADIR</varname> является <filename>${PREFIX}/share/${PORTNAME}</filename>. Хорошей идеей является переопределение для Java-портов значения - <makevar>DATADIR</makevar> как + <varname>DATADIR</varname> как <filename>${JAVASHAREDIR}/${PORTNAME}</filename>. На самом деле - <makevar>DATADIR</makevar> автоматически добавляется к - <makevar>PLIST_SUB</makevar> (это описано в <xref - linkend="plist-sub"/>), так что вы сможете + <varname>DATADIR</varname> автоматически добавляется к + <varname>PLIST_SUB</varname> (это описано в <xref linkend="plist-sub"/>), так что вы сможете использовать <literal>%%DATADIR%%</literal> непосредственно в <filename>pkg-plist</filename>.</para> <para>Что касается выбора между построением портов Java из исходных текстов или их прямой установкой из бинарных дистрибутивов, то на момент создания этого текста определённой политики на этот счёт не - существует. Однако участники <ulink - url="http://www.freebsd.org/java/">Проекта &os; Java</ulink> + существует. Однако участники <link xlink:href="http://www.freebsd.org/java/">Проекта &os; Java</link> рекомендуют создателям портов строить их из исходных текстов, если эта задача является несложной.</para> <para>Все возможности, которые были описаны в этом разделе, реализованы в файле <filename>bsd.java.mk</filename>. Если вы предположите, что вашему порту требуется менее тривиальная поддержка Java, пожалуйста, - взгляните сначала на <ulink - url="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.java.mk?view=markup">журнал - изменений bsd.java.mk в SVN</ulink>, так как для + взгляните сначала на <link xlink:href="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.java.mk?view=markup">журнал + изменений bsd.java.mk в SVN</link>, так как для документирования последних изменений требуется какое-то время. Затем, если вы думаете, что не хватающая вам поддержка окажется полезной для многих других портов Java, обсудите ваш вопрос в @@ -7434,16 +7371,16 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> к реализации JDK, ни к <filename>bsd.java.mk</filename>.</para> <para>Похожим образом определена политика по отношению к - <makevar>CATEGORIES</makevar> порта Java, которая подробно описана + <varname>CATEGORIES</varname> порта Java, которая подробно описана в <xref linkend="makefile-categories"/>.</para> </sect2> </sect1> - <sect1 id="using-php"> + <sect1 xml:id="using-php"> <title>Веб-приложения, Apache и PHP</title> - <sect2 id="using-apache"> + <sect2 xml:id="using-apache"> <title>Apache</title> <table frame="none"> @@ -7453,7 +7390,7 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <tbody> <row> - <entry><makevar>USE_APACHE</makevar></entry> + <entry><varname>USE_APACHE</varname></entry> <entry>Порт требует Apache. Возможные значения: <literal>yes</literal> (берёт любую версию), @@ -7463,26 +7400,26 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <literal>22</literal>. Более подробная информация содержится в файле <filename>ports/Mk/bsd.apache.mk</filename> и на - странице <ulink url="http://wiki.freebsd.org/Apache/"> - wiki.freebsd.org/Apache/</ulink>.</entry> + странице <link xlink:href="http://wiki.freebsd.org/Apache/"> + wiki.freebsd.org/Apache/</link>.</entry> </row> <row> - <entry><makevar>APXS</makevar></entry> + <entry><varname>APXS</varname></entry> <entry>Полный путь к исполняемому файлу <command>apxs</command>. Может быть переопределен в вашем порту.</entry> </row> <row> - <entry><makevar>HTTPD</makevar></entry> + <entry><varname>HTTPD</varname></entry> <entry>Полный путь к исполняемому файлу <command>httpd</command>. Может быть переопределен в вашем порту.</entry> </row> <row> - <entry><makevar>APACHE_VERSION</makevar></entry> + <entry><varname>APACHE_VERSION</varname></entry> <entry>Версия установленного Apache (переменная только для чтения). Эта переменная доступна только после подключения @@ -7491,21 +7428,21 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </row> <row> - <entry><makevar>APACHEMODDIR</makevar></entry> + <entry><varname>APACHEMODDIR</varname></entry> <entry>Каталог для модулей Apache. Значение переменной автоматически подставляется в <filename>pkg-plist</filename>.</entry> </row> <row> - <entry><makevar>APACHEINCLUDEDIR</makevar></entry> + <entry><varname>APACHEINCLUDEDIR</varname></entry> <entry>Каталог для заголовков Apache. Значение переменной автоматически подставляется в <filename>pkg-plist</filename>.</entry> </row> <row> - <entry><makevar>APACHEETCDIR</makevar></entry> + <entry><varname>APACHEETCDIR</varname></entry> <entry>Каталог для конфигурационных файлов Apache. Значение переменной автоматически подставляется в @@ -7524,51 +7461,51 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <tbody> <row> - <entry><makevar>MODULENAME</makevar></entry> + <entry><varname>MODULENAME</varname></entry> <entry>Название модуля. Значением по умолчанию является - <makevar>PORTNAME</makevar>. Пример: + <varname>PORTNAME</varname>. Пример: <literal>mod_hello</literal></entry> </row> <row> - <entry><makevar>SHORTMODNAME</makevar></entry> + <entry><varname>SHORTMODNAME</varname></entry> <entry>Краткое название модуля. Наследуется автоматически - от <makevar>MODULENAME</makevar>, но может быть + от <varname>MODULENAME</varname>, но может быть переопределено. Пример: <literal>hello</literal></entry> </row> <row> - <entry><makevar>AP_FAST_BUILD</makevar></entry> + <entry><varname>AP_FAST_BUILD</varname></entry> <entry>Использовать <command>apxs</command> для компиляции и установки модуля.</entry> </row> <row> - <entry><makevar>AP_GENPLIST</makevar></entry> + <entry><varname>AP_GENPLIST</varname></entry> <entry>Также автоматически создает <filename>pkg-plist</filename>.</entry> </row> <row> - <entry><makevar>AP_INC</makevar></entry> + <entry><varname>AP_INC</varname></entry> <entry>Добавляет каталог к пути поиска заголовков во время компиляции.</entry> </row> <row> - <entry><makevar>AP_LIB</makevar></entry> + <entry><varname>AP_LIB</varname></entry> <entry>Добавляет каталог к пути поиска библиотек во время компиляции.</entry> </row> <row> - <entry><makevar>AP_EXTRAS</makevar></entry> + <entry><varname>AP_EXTRAS</varname></entry> <entry>Дополнительные флаги, передаваемые <command>apxs</command>.</entry> @@ -7579,19 +7516,19 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </table> </sect2> - <sect2 id="web-apps"> + <sect2 xml:id="web-apps"> <title>Веб-приложения</title> <para>Веб-приложения следует устанавливать в - <filename><makevar>PREFIX</makevar>/www/<replaceable>appname</replaceable></filename>. + <filename>PREFIX/www/appname</filename>. Для вашего удобства этот путь одинаково доступен в <filename>Makefile</filename> и <filename>pkg-plist</filename> - как переменная <makevar>WWWDIR</makevar>, а путь относительно - <makevar>PREFIX</makevar> доступен в <filename>Makefile</filename> - как <makevar>WWWDIR_REL</makevar>.</para> + как переменная <varname>WWWDIR</varname>, а путь относительно + <varname>PREFIX</varname> доступен в <filename>Makefile</filename> + как <varname>WWWDIR_REL</varname>.</para> <para>Пользователь и группа процесса веб-сервера доступны как - <makevar>WWWOWN</makevar> и <makevar>WWWGRP</makevar>, в случае + <varname>WWWOWN</varname> и <varname>WWWGRP</varname>, в случае если вам нужно изменить владельца для некоторых файлов. Значением по умолчанию и для владельца, и для группы является <literal>www</literal>. Если вы хотите использовать в вашем @@ -7606,7 +7543,7 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </sect2> - <sect2 id="php-variables"> + <sect2 xml:id="php-variables"> <title>PHP</title> <table frame="none"> @@ -7615,7 +7552,7 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <tgroup cols="2"> <tbody> <row> - <entry><makevar>USE_PHP</makevar></entry> + <entry><varname>USE_PHP</varname></entry> <entry>Порт требует PHP. Значение <literal>yes</literal> добавляет зависимость от PHP. Вместо этого может быть @@ -7624,7 +7561,7 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </row> <row> - <entry><makevar>DEFAULT_PHP_VER</makevar></entry> + <entry><varname>DEFAULT_PHP_VER</varname></entry> <entry>Выбирает старший номер версии, с которым будет установлен PHP как зависимость в случае, когда PHP еще @@ -7634,57 +7571,57 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> </row> <row> - <entry><makevar>IGNORE_WITH_PHP</makevar></entry> + <entry><varname>IGNORE_WITH_PHP</varname></entry> <entry>Порт не работает с PHP данной версии. Возможные значения: <literal>4</literal>, <literal>5</literal></entry> </row> <row> - <entry><makevar>USE_PHPIZE</makevar></entry> + <entry><varname>USE_PHPIZE</varname></entry> <entry>Порт будет построен как расширение PHP.</entry> </row> <row> - <entry><makevar>USE_PHPEXT</makevar></entry> + <entry><varname>USE_PHPEXT</varname></entry> <entry>Порт будет считаться расширением PHP, включая установку и регистрацию в реестре расширений.</entry> </row> <row> - <entry><makevar>USE_PHP_BUILD</makevar></entry> + <entry><varname>USE_PHP_BUILD</varname></entry> <entry>Установить PHP как зависимость времени построения.</entry> </row> <row> - <entry><makevar>WANT_PHP_CLI</makevar></entry> + <entry><varname>WANT_PHP_CLI</varname></entry> <entry>Хочет CLI (командная строка) версию PHP.</entry> </row> <row> - <entry><makevar>WANT_PHP_CGI</makevar></entry> + <entry><varname>WANT_PHP_CGI</varname></entry> <entry>Хочет CGI версию PHP.</entry> </row> <row> - <entry><makevar>WANT_PHP_MOD</makevar></entry> + <entry><varname>WANT_PHP_MOD</varname></entry> <entry>Хочет PHP как модуль Apache.</entry> </row> <row> - <entry><makevar>WANT_PHP_SCR</makevar></entry> + <entry><varname>WANT_PHP_SCR</varname></entry> <entry>Хочет CLI или CGI версию PHP.</entry> </row> <row> - <entry><makevar>WANT_PHP_WEB</makevar></entry> + <entry><varname>WANT_PHP_WEB</varname></entry> <entry>Хочет модуль Apache или CGI версию PHP.</entry> </row> @@ -7700,10 +7637,10 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <para>Портирование модулей PEAR является очень простым процессом.</para> - <para>Используйте переменные <makevar>FILES</makevar>, - <makevar>TESTS</makevar>, <makevar>DATA</makevar>, - <makevar>SQLS</makevar>, <makevar>SCRIPTFILES</makevar>, - <makevar>DOCS</makevar> and <makevar>EXAMPLES</makevar> для + <para>Используйте переменные <varname>FILES</varname>, + <varname>TESTS</varname>, <varname>DATA</varname>, + <varname>SQLS</varname>, <varname>SCRIPTFILES</varname>, + <varname>DOCS</varname> and <varname>EXAMPLES</varname> для перечисления файлов, которые вы хотите установить. Все перечисленные файлы будут автоматически установлены в подходящие места и добавлены в <filename>pkg-plist</filename>.</para> @@ -7712,7 +7649,7 @@ USE_QT4= moc_build qmake_build rcc_build uic_build</programlisting> <filename>${PORTSDIR}/devel/pear/bsd.pear.mk</filename> на последней строке <filename>Makefile</filename>.</para> - <example id="pear-makefile"> + <example xml:id="pear-makefile"> <title>Пример Makefile для классов PEAR</title> <programlisting>PORTNAME= Date PORTVERSION= 1.4.3 @@ -7745,19 +7682,19 @@ _DOCSDIR= . </sect1> - <sect1 id="using-python"> + <sect1 xml:id="using-python"> <title>Использование Python</title> <para>Коллекция Портов поддерживает параллельную установку множества версий Python. Следует убедиться, что в портах используется правильный интерпретатор <command>python</command> в соответствии - с переменной <makevar>PYTHON_VERSION</makevar>, установленной + с переменной <varname>PYTHON_VERSION</varname>, установленной пользователем. По большей части это означает замену пути к исполняемому файлу <command>python</command> в сценариях на - значение переменной <makevar>PYTHON_CMD</makevar>.</para> + значение переменной <varname>PYTHON_CMD</varname>.</para> <para>Порты, устанавливающие файлы под каталог - <makevar>PYTHON_SITELIBDIR</makevar>, должны использовать префикс + <varname>PYTHON_SITELIBDIR</varname>, должны использовать префикс вида <literal>pyXY-</literal>, таким образом названия пакетов будут включать в себя версию Python, с которой они установлены.</para> @@ -7769,7 +7706,7 @@ _DOCSDIR= . <tgroup cols="2"> <tbody> <row> - <entry><makevar>USE_PYTHON</makevar></entry> + <entry><varname>USE_PYTHON</varname></entry> <entry>Для этого порта нужен Python. Минимальная требуемая версия может быть указана с таким значением как @@ -7779,36 +7716,36 @@ _DOCSDIR= . </row> <row> - <entry><makevar>USE_PYDISTUTILS</makevar></entry> + <entry><varname>USE_PYDISTUTILS</varname></entry> <entry>Использовать дистрибутивные утилиты (distutils) Python для конфигурации, компиляции и установки. Необходимо, если порт использует <filename>setup.py</filename>. - Переопределяет цели <maketarget>do-build</maketarget> и - <maketarget>do-install</maketarget> и также может - переопределять <maketarget>do-configure</maketarget>, если - не определена <makevar>GNU_CONFIGURE</makevar>.</entry> + Переопределяет цели <buildtarget>do-build</buildtarget> и + <buildtarget>do-install</buildtarget> и также может + переопределять <buildtarget>do-configure</buildtarget>, если + не определена <varname>GNU_CONFIGURE</varname>.</entry> </row> <row> - <entry><makevar>PYTHON_PKGNAMEPREFIX</makevar></entry> + <entry><varname>PYTHON_PKGNAMEPREFIX</varname></entry> - <entry>Используется как <makevar>PKGNAMEPREFIX</makevar> для + <entry>Используется как <varname>PKGNAMEPREFIX</varname> для отличия пакетов, использующих разные версии Python. Пример: <literal>py24-</literal></entry> </row> <row> - <entry><makevar>PYTHON_SITELIBDIR</makevar></entry> + <entry><varname>PYTHON_SITELIBDIR</varname></entry> <entry>Местонахождение дерева site-packages, которое содержит - путь установки Python (обычно, <makevar>LOCALBASE</makevar>). - Переменная <makevar>PYTHON_SITELIBDIR</makevar> может быть + путь установки Python (обычно, <varname>LOCALBASE</varname>). + Переменная <varname>PYTHON_SITELIBDIR</varname> может быть очень полезной при установке модулей Python.</entry> </row> <row> - <entry><makevar>PYTHONPREFIX_SITELIBDIR</makevar></entry> + <entry><varname>PYTHONPREFIX_SITELIBDIR</varname></entry> <entry>Вариант PYTHON_SITELIBDIR без PREFIX. По возможности всегда используйте @@ -7820,27 +7757,27 @@ _DOCSDIR= . </row> <row> - <entry><makevar>PYTHON_CMD</makevar></entry> + <entry><varname>PYTHON_CMD</varname></entry> <entry>Командная строка интерпретатора Python, включая номер версии.</entry> </row> <row> - <entry><makevar>PYNUMERIC</makevar></entry> + <entry><varname>PYNUMERIC</varname></entry> <entry>Строка зависимости для расширения numeric.</entry> </row> <row> - <entry><makevar>PYNUMPY</makevar></entry> + <entry><varname>PYNUMPY</varname></entry> <entry>Строка зависимости для нового расширения numeric, numpy (PYNUMERIC объявлен устаревшим вышестоящим производителем).</entry> </row> <row> - <entry><makevar>PYXML</makevar></entry> + <entry><varname>PYXML</varname></entry> <entry>Строка зависимости для расширения XML (не нужно для Python 2.0 и выше, т.к. включено в основной дистрибутив). @@ -7848,7 +7785,7 @@ _DOCSDIR= . </row> <row> - <entry><makevar>USE_TWISTED</makevar></entry> + <entry><varname>USE_TWISTED</varname></entry> <entry>Добавить зависимость от twistedCore. Перечень требуемых компонентов может быть указан как значение этой переменной. @@ -7856,11 +7793,11 @@ _DOCSDIR= . </row> <row> - <entry><makevar>USE_ZOPE</makevar></entry> + <entry><varname>USE_ZOPE</varname></entry> <entry>Добавить зависимость от Zope, платформы веб приложений. Изменяет зависимость от Python на Python 2.7. Переменная - <makevar>ZOPEBASEDIR</makevar> содержит директорию с + <varname>ZOPEBASEDIR</varname> содержит директорию с установленным Zope.</entry> </row> @@ -7873,16 +7810,16 @@ _DOCSDIR= . </sect1> - <sect1 id="using-tcl"> + <sect1 xml:id="using-tcl"> <title>Использование <application>Tcl/Tk</application></title> <para>В Коллекции Портов поддерживается одновременная установка множественных версий <application>Tcl/Tk</application>. Порты должны пытаться поддерживать по крайней мере версию <application>Tcl/Tk</application>, используемую по умолчанию, и - выше с помощью переменных <makevar>USE_TCL</makevar> и - <makevar>USE_TK</makevar>. Желаемую версию <command>tcl</command> - можно указать в переменной <makevar>WITH_TCL_VER</makevar>.</para> + выше с помощью переменных <varname>USE_TCL</varname> и + <varname>USE_TK</varname>. Желаемую версию <command>tcl</command> + можно указать в переменной <varname>WITH_TCL_VER</varname>.</para> <table frame="none"> <title>Наиболее востребованные переменные для портов, которые @@ -7891,25 +7828,25 @@ _DOCSDIR= . <tgroup cols="2"> <tbody> <row> - <entry><makevar>USE_TCL</makevar></entry> + <entry><varname>USE_TCL</varname></entry> <entry>Порт зависит от библиотеки <application>Tcl</application> (не оболочки). Минимальную требуемую версию можно указать с использованием таких значений, как 84+. Отдельные неподдерживаемые версии указываются в переменной - <makevar>INVALID_TCL_VER</makevar>.</entry> + <varname>INVALID_TCL_VER</varname>.</entry> </row> <row> - <entry><makevar>USE_TCL_BUILD</makevar></entry> + <entry><varname>USE_TCL_BUILD</varname></entry> <entry><application>Tcl</application> нужен для порта только на время сборки.</entry> </row> <row> - <entry><makevar>USE_TCL_WRAPPER</makevar></entry> + <entry><varname>USE_TCL_WRAPPER</varname></entry> <entry>Эту новую переменную следует использовать для портов, для которых требуется оболочка <application>Tcl</application> @@ -7920,7 +7857,7 @@ _DOCSDIR= . </row> <row> - <entry><makevar>WITH_TCL_VER</makevar></entry> + <entry><varname>WITH_TCL_VER</varname></entry> <entry>Определяемые пользователем переменные, которые устанавливают желаемую версию @@ -7928,46 +7865,46 @@ _DOCSDIR= . </row> <row> - <entry><makevar><replaceable>UNIQUENAME</replaceable>_WITH_TCL_VER</makevar></entry> + <entry><varname><replaceable>UNIQUENAME</replaceable>_WITH_TCL_VER</varname></entry> - <entry>Подобно <makevar>WITH_TCL_VER</makevar>, но для + <entry>Подобно <varname>WITH_TCL_VER</varname>, но для каждого порта.</entry> </row> <row> - <entry><makevar>USE_TCL_THREADS</makevar></entry> + <entry><varname>USE_TCL_THREADS</varname></entry> <entry>Требует многопоточную сборку <application>Tcl/Tk</application>.</entry> </row> <row> - <entry><makevar>USE_TK</makevar></entry> + <entry><varname>USE_TK</varname></entry> <entry>Порт зависит от библиотеки <application>Tk</application> (не от предпочитаемой оболочки). Подразумевает - <makevar>USE_TCL</makevar> с тем же значением. Для + <varname>USE_TCL</varname> с тем же значением. Для большей информации смотрите описание переменной - <makevar>USE_TCL</makevar>.</entry> + <varname>USE_TCL</varname>.</entry> </row> <row> - <entry><makevar>USE_TK_BUILD</makevar></entry> + <entry><varname>USE_TK_BUILD</varname></entry> - <entry>Аналогично <makevar>USE_TCL_BUILD</makevar>.</entry> + <entry>Аналогично <varname>USE_TCL_BUILD</varname>.</entry> </row> <row> - <entry><makevar>USE_TK_WRAPPER</makevar></entry> + <entry><varname>USE_TK_WRAPPER</varname></entry> - <entry>Аналогично <makevar>USE_TCL_WRAPPER</makevar>.</entry> + <entry>Аналогично <varname>USE_TCL_WRAPPER</varname>.</entry> </row> <row> - <entry><makevar>WITH_TK_VER</makevar></entry> + <entry><varname>WITH_TK_VER</varname></entry> - <entry>Аналогично <makevar>WITH_TCL_VER</makevar>, - подразумевает <makevar>WITH_TCL_VER</makevar> той же + <entry>Аналогично <varname>WITH_TCL_VER</varname>, + подразумевает <varname>WITH_TCL_VER</varname> той же версии.</entry> </row> </tbody> @@ -7978,13 +7915,13 @@ _DOCSDIR= . <filename>/usr/ports/Mk/bsd.tcl.mk</filename>.</para> </sect1> - <sect1 id="using-emacs"> + <sect1 xml:id="using-emacs"> <title>Использование Emacs</title> <para>Этот раздел ещё предстоит написать.</para> </sect1> - <sect1 id="using-ruby"> + <sect1 xml:id="using-ruby"> <title>Использование Ruby</title> <table frame="none"> @@ -7999,27 +7936,27 @@ _DOCSDIR= . </thead> <tbody> <row> - <entry><makevar>USE_RUBY</makevar></entry> + <entry><varname>USE_RUBY</varname></entry> <entry>Порт требует Ruby.</entry> </row> <row> - <entry><makevar>USE_RUBY_EXTCONF</makevar></entry> + <entry><varname>USE_RUBY_EXTCONF</varname></entry> <entry>Порт использует для конфигурации <filename>extconf.rb</filename>.</entry> </row> <row> - <entry><makevar>USE_RUBY_SETUP</makevar></entry> + <entry><varname>USE_RUBY_SETUP</varname></entry> <entry>Порт использует для конфигурации <filename>setup.rb</filename>.</entry> </row> <row> - <entry><makevar>RUBY_SETUP</makevar></entry> + <entry><varname>RUBY_SETUP</varname></entry> <entry>Устанавливает альтернативное имя для <filename>setup.rb</filename>. Распространенным значением @@ -8051,16 +7988,16 @@ _DOCSDIR= . <tbody> <row> - <entry><makevar>RUBY_PKGNAMEPREFIX</makevar></entry> + <entry><varname>RUBY_PKGNAMEPREFIX</varname></entry> - <entry>Используется как <makevar>PKGNAMEPREFIX</makevar> + <entry>Используется как <varname>PKGNAMEPREFIX</varname> для различия пакетов от разных версий Ruby.</entry> <entry><literal>ruby18-</literal></entry> </row> <row> - <entry><makevar>RUBY_VERSION</makevar></entry> + <entry><varname>RUBY_VERSION</varname></entry> <entry>Полная версия Ruby в форме <literal>x.y.z</literal>.</entry> @@ -8068,7 +8005,7 @@ _DOCSDIR= . </row> <row> - <entry><makevar>RUBY_SITELIBDIR</makevar></entry> + <entry><varname>RUBY_SITELIBDIR</varname></entry> <entry>Путь для установки архитектуронезависимых библиотек.</entry> @@ -8076,7 +8013,7 @@ _DOCSDIR= . </row> <row> - <entry><makevar>RUBY_SITEARCHLIBDIR</makevar></entry> + <entry><varname>RUBY_SITEARCHLIBDIR</varname></entry> <entry>Путь для установки архитектурозависимых библиотек.</entry> @@ -8084,7 +8021,7 @@ _DOCSDIR= . </row> <row> - <entry><makevar>RUBY_MODDOCDIR</makevar></entry> + <entry><varname>RUBY_MODDOCDIR</varname></entry> <entry>Путь для установки документации модуля.</entry> @@ -8092,7 +8029,7 @@ _DOCSDIR= . </row> <row> - <entry><makevar>RUBY_MODEXAMPLESDIR</makevar></entry> + <entry><varname>RUBY_MODEXAMPLESDIR</varname></entry> <entry>Путь для установки примеров модуля.</entry> @@ -8108,102 +8045,92 @@ _DOCSDIR= . </sect1> - <sect1 id="using-sdl"> + <sect1 xml:id="using-sdl"> <title>Использование SDL</title> - <para>Переменная <makevar>USE_SDL</makevar> используется для + <para>Переменная <varname>USE_SDL</varname> используется для автоматической настройки зависимостей для портов, использующих библиотеки на основе SDL, такие как - <filename role="package">devel/sdl12</filename> или - <filename role="package">x11-toolkits/sdl_gui</filename>.</para> + <package>devel/sdl12</package> или + <package>x11-toolkits/sdl_gui</package>.</para> <para>На данный момент распознаются следующие SDL-библиотеки:</para> <itemizedlist> <listitem> - <para>sdl: <filename role="package">devel/sdl12</filename></para> + <para>sdl: <package>devel/sdl12</package></para> </listitem> <listitem> - <para>gfx: <filename - role="package">graphics/sdl_gfx</filename></para> + <para>gfx: <package>graphics/sdl_gfx</package></para> </listitem> <listitem> - <para>gui: <filename - role="package">x11-toolkits/sdl_gui</filename></para> + <para>gui: <package>x11-toolkits/sdl_gui</package></para> </listitem> <listitem> - <para>image: <filename - role="package">graphics/sdl_image</filename></para> + <para>image: <package>graphics/sdl_image</package></para> </listitem> <listitem> - <para>ldbad: <filename - role="package">devel/sdl_ldbad</filename></para> + <para>ldbad: <package>devel/sdl_ldbad</package></para> </listitem> <listitem> - <para>mixer: <filename - role="package">audio/sdl_mixer</filename></para> + <para>mixer: <package>audio/sdl_mixer</package></para> </listitem> <listitem> - <para>mm: <filename role="package">devel/sdlmm</filename></para> + <para>mm: <package>devel/sdlmm</package></para> </listitem> <listitem> - <para>net: <filename role="package">net/sdl_net</filename></para> + <para>net: <package>net/sdl_net</package></para> </listitem> <listitem> - <para>sound: <filename - role="package">audio/sdl_sound</filename></para> + <para>sound: <package>audio/sdl_sound</package></para> </listitem> <listitem> - <para>ttf: <filename - role="package">graphics/sdl_ttf</filename></para> + <para>ttf: <package>graphics/sdl_ttf</package></para> </listitem> </itemizedlist> <para>Таким образом, если порт имеет зависимость от - <filename role="package">net/sdl_net</filename> и - <filename role="package">audio/sdl_mixer</filename>, то строка будет + <package>net/sdl_net</package> и + <package>audio/sdl_mixer</package>, то строка будет следующей:</para> <programlisting>USE_SDL= net mixer</programlisting> - <para>Зависимость от порта <filename - role="package">devel/sdl12</filename>, который требуется для <filename - role="package">net/sdl_net</filename> и <filename - role="package">audio/sdl_mixer</filename> будет также автоматически + <para>Зависимость от порта <package>devel/sdl12</package>, который требуется для <package>net/sdl_net</package> и <package>audio/sdl_mixer</package> будет также автоматически добавлен.</para> - <para>Если вы используете <makevar>USE_SDL</makevar>, то + <para>Если вы используете <varname>USE_SDL</varname>, то он автоматически:</para> <itemizedlist> <listitem> <para>Добавляет зависимость от <application>sdl12-config</application> - к <makevar>BUILD_DEPENDS</makevar></para> + к <varname>BUILD_DEPENDS</varname></para> </listitem> <listitem> - <para>Добавляет переменную <makevar>SDL_CONFIG</makevar> к - <makevar>CONFIGURE_ENV</makevar></para> + <para>Добавляет переменную <varname>SDL_CONFIG</varname> к + <varname>CONFIGURE_ENV</varname></para> </listitem> <listitem> <para>Добавляет зависимости от указанных библиотек к - <makevar>LIB_DEPENDS</makevar></para> + <varname>LIB_DEPENDS</varname></para> </listitem> </itemizedlist> <para>Для проверки наличия библиотеки SDL вы можете делать это при - помощи переменной <makevar>WANT_SDL</makevar>:</para> + помощи переменной <varname>WANT_SDL</varname>:</para> <programlisting>WANT_SDL=yes @@ -8216,14 +8143,14 @@ USE_SDL+= mixer .include <bsd.port.post.mk></programlisting> </sect1> - <sect1 id="using-wx"> + <sect1 xml:id="using-wx"> <title>Использование <application>wxWidgets</application></title> <para>Эта глава описывает статус библиотек <application>wxWidgets</application> в дереве портов и их интеграцию с системой портов.</para> - <sect2 id="wx-introduction"> + <sect2 xml:id="wx-introduction"> <title>Введение</title> <para>Существует множество версий библиотек @@ -8244,7 +8171,7 @@ USE_SDL+= mixer приходится накладывать патч.</para> </sect2> - <sect2 id="wx-version"> + <sect2 xml:id="wx-version"> <title>Выбор версии</title> <para>Для того, чтобы заставить ваш порт использовать конкретную @@ -8252,7 +8179,7 @@ USE_SDL+= mixer доступные для определения переменные (если определена только одна, то вторая примет значение по умолчанию):</para> - <table id="wx-ver-sel-table" frame="none"> + <table xml:id="wx-ver-sel-table" frame="none"> <title>Переменные для выбора версии <application>wxWidgets</application></title> @@ -8269,7 +8196,7 @@ USE_SDL+= mixer <tbody> <row> - <entry><makevar>USE_WX</makevar></entry> + <entry><varname>USE_WX</varname></entry> <entry>Перечень версий, которые порт может использовать</entry> @@ -8277,7 +8204,7 @@ USE_SDL+= mixer </row> <row> - <entry><makevar>USE_WX_NOT</makevar></entry> + <entry><varname>USE_WX_NOT</varname></entry> <entry>Перечень версий, которые порт не может использовать</entry> @@ -8306,22 +8233,19 @@ USE_SDL+= mixer <row> <entry><literal>2.4</literal></entry> - <entry><filename - role="package">x11-toolkits/wxgtk24</filename></entry> + <entry><package>x11-toolkits/wxgtk24</package></entry> </row> <row> <entry><literal>2.6</literal></entry> - <entry><filename - role="package">x11-toolkits/wxgtk26</filename></entry> + <entry><package>x11-toolkits/wxgtk26</package></entry> </row> <row> <entry><literal>2.8</literal></entry> - <entry><filename - role="package">x11-toolkits/wxgtk28</filename></entry> + <entry><package>x11-toolkits/wxgtk28</package></entry> </row> </tbody> </tgroup> @@ -8331,8 +8255,7 @@ USE_SDL+= mixer <para>Версии начиная с <literal>2.5</literal> также поставляются с Unicode и устанавливается подчиненным портом с названием как как у обычного, но с суффиксом <literal>-unicode</literal>, но - этим можно управлять при помощи переменных (смотрите <xref - linkend="wx-unicode"/>).</para> + этим можно управлять при помощи переменных (смотрите <xref linkend="wx-unicode"/>).</para> </note> <para>Переменные в <xref linkend="wx-ver-sel-table"/> можно установить @@ -8399,13 +8322,13 @@ USE_SDL+= mixer <tbody> <row> - <entry><makevar>WANT_WX_VER</makevar></entry> + <entry><varname>WANT_WX_VER</varname></entry> <entry>порт</entry> </row> <row> - <entry><makevar>WITH_WX_VER</makevar></entry> + <entry><varname>WITH_WX_VER</varname></entry> <entry>пользователь</entry> </row> @@ -8414,13 +8337,13 @@ USE_SDL+= mixer </table> </sect2> - <sect2 id="wx-components"> + <sect2 xml:id="wx-components"> <title>Выбор компонентов</title> <para>Существуют другие приложения, которые, хотя и не являются библиотеками <application>wxWidgets</application>, но в тоже время относятся к ним. Эти приложения можно указать в переменной - <makevar>WX_COMPS</makevar>. Доступны следующие компоненты:</para> + <varname>WX_COMPS</varname>. Доступны следующие компоненты:</para> <table frame="none"> <title>Доступные компоненты <application>wxWidgets</application></title> @@ -8505,21 +8428,21 @@ USE_SDL+= mixer <entry><literal>build</literal></entry> <entry>Компонент требуется для построения, эквивалентен - <makevar>BUILD_DEPENDS</makevar></entry> + <varname>BUILD_DEPENDS</varname></entry> </row> <row> <entry><literal>run</literal></entry> <entry>Компонент требуется для запуска, эквивалентен - <makevar>RUN_DEPENDS</makevar></entry> + <varname>RUN_DEPENDS</varname></entry> </row> <row> <entry><literal>lib</literal></entry> <entry>Компонент требуется для построения и запуска, - эквивалентен <makevar>LIB_DEPENDS</makevar></entry> + эквивалентен <varname>LIB_DEPENDS</varname></entry> </row> </tbody> </tgroup> @@ -8528,7 +8451,7 @@ USE_SDL+= mixer <para>Значения по умолчанию для компонентов подробно рассматриваются в следующей таблице:</para> - <table id="wx-def-dep-types" frame="none"> + <table xml:id="wx-def-dep-types" frame="none"> <title>Типы зависимости <application>wxWidgets</application>, используемые по умолчанию</title> @@ -8575,7 +8498,7 @@ USE_SDL+= mixer </tgroup> </table> - <example id="wx-components-example"> + <example xml:id="wx-components-example"> <title>Выбор компонентов <application>wxWidgets</application></title> @@ -8587,7 +8510,7 @@ USE_SDL+= mixer WX_COMPS= wx contrib</programlisting> </example> </sect2> - <sect2 id="wx-unicode"> + <sect2 xml:id="wx-unicode"> <title>Unicode</title> <para>Библиотека <application>wxWidgets</application> поддерживает @@ -8595,7 +8518,7 @@ WX_COMPS= wx contrib</programlisting> доступны обе версии и могут быть выбраны с использованием следующих переменных:</para> - <table id="wx-unicode-var-table" frame="none"> + <table xml:id="wx-unicode-var-table" frame="none"> <title>Переменные для выбора версии <application>wxWidgets</application> с Unicode</title> @@ -8612,7 +8535,7 @@ WX_COMPS= wx contrib</programlisting> <tbody> <row> - <entry><makevar>WX_UNICODE</makevar></entry> + <entry><varname>WX_UNICODE</varname></entry> <entry>Порт работает <emphasis>только</emphasis> с версией Unicode</entry> @@ -8621,7 +8544,7 @@ WX_COMPS= wx contrib</programlisting> </row> <row> - <entry><makevar>WANT_UNICODE</makevar></entry> + <entry><varname>WANT_UNICODE</varname></entry> <entry>Порт работает с обеими версиями, но предпочитает версию с Unicode</entry> @@ -8629,17 +8552,17 @@ WX_COMPS= wx contrib</programlisting> <entry>порт</entry> </row> <row> - <entry><makevar>WITH_UNICODE</makevar></entry> + <entry><varname>WITH_UNICODE</varname></entry> <entry>Порт будет использовать версию Unicode</entry> <entry>пользователь</entry> </row> <row> - <entry><makevar>WITHOUT_UNICODE</makevar></entry> + <entry><varname>WITHOUT_UNICODE</varname></entry> <entry>Порт будет использовать обычную версию, если это - поддерживается (когда <makevar>WX_UNICODE</makevar> + поддерживается (когда <varname>WX_UNICODE</varname> не определена)</entry> <entry>пользователь</entry> @@ -8649,23 +8572,23 @@ WX_COMPS= wx contrib</programlisting> </table> <warning> - <para>Не используйте <makevar>WX_UNICODE</makevar> для портов, + <para>Не используйте <varname>WX_UNICODE</varname> для портов, которые могут использовать обе версии. Если вы хотите, чтобы порт по умолчанию использовал Unicode, определите вместо этого - <makevar>WANT_UNICODE</makevar>.</para> + <varname>WANT_UNICODE</varname>.</para> </warning> </sect2> - <sect2 id="wx-version-detection"> + <sect2 xml:id="wx-version-detection"> <title>Обнаружение установленных версий</title> <para>Для обнаружения установленной версии вам необходимо задать - переменную <makevar>WANT_WX</makevar>. Если вы не присвоите ей + переменную <varname>WANT_WX</varname>. Если вы не присвоите ей определенную версию, то компоненты получат суффикс версии. - Переменная <makevar>HAVE_WX</makevar> будет заполнена после + Переменная <varname>HAVE_WX</varname> будет заполнена после обнаружения.</para> - <example id="wx-ver-det-example"> + <example xml:id="wx-ver-det-example"> <title>Обнаружение установленных версий и компонентов <application>wxWidgets</application></title> @@ -8701,7 +8624,7 @@ CONFIGURE_ARGS+=--enable-wxpython </example> </sect2> - <sect2 id="wx-defined-variables"> + <sect2 xml:id="wx-defined-variables"> <title>Переменные для определения</title> <para>Следующие переменные доступны в порту (после определения одной @@ -8722,21 +8645,21 @@ CONFIGURE_ARGS+=--enable-wxpython <tbody> <row> - <entry><makevar>WX_CONFIG</makevar></entry> + <entry><varname>WX_CONFIG</varname></entry> <entry>Путь к сценарию <application>wxWidgets</application> <command>wx-config</command> (с другим именем)</entry> </row> <row> - <entry><makevar>WXRC_CMD</makevar></entry> + <entry><varname>WXRC_CMD</varname></entry> <entry>Путь к программе <application>wxWidgets</application> <command>wxrc</command> (с другим именем)</entry> </row> <row> - <entry><makevar>WX_VERSION</makevar></entry> + <entry><varname>WX_VERSION</varname></entry> <entry>Версия <application>wxWidgets</application>, которая будет использоваться (например, @@ -8744,7 +8667,7 @@ CONFIGURE_ARGS+=--enable-wxpython </row> <row> - <entry><makevar>WX_UNICODE</makevar></entry> + <entry><varname>WX_UNICODE</varname></entry> <entry>Если не определена, но Unicode будет использоваться, то она будет определена</entry> @@ -8754,27 +8677,27 @@ CONFIGURE_ARGS+=--enable-wxpython </table> </sect2> - <sect2 id="wx-premk"> + <sect2 xml:id="wx-premk"> <title>Обработка в <filename>bsd.port.pre.mk</filename></title> <para>Если вам нужно использовать переменные для запуска команд сразу после подключения <filename>bsd.port.pre.mk</filename>, то - вам нужно определить <makevar>WX_PREMK</makevar>.</para> + вам нужно определить <varname>WX_PREMK</varname>.</para> <important> - <para>Если вы определите <makevar>WX_PREMK</makevar>, то версия, + <para>Если вы определите <varname>WX_PREMK</varname>, то версия, зависимости, компоненты и заданные переменные не изменяться, в случае вы изменили переменные порта <application>wxWidgets</application> <emphasis>после</emphasis> подключения <filename>bsd.port.pre.mk</filename>.</para> </important> - <example id="wx-premk-example"> + <example xml:id="wx-premk-example"> <title>Использование переменных <application>wxWidgets</application> в командах</title> <para>Следующий фрагмент иллюстрирует использование переменной - <makevar>WX_PREMK</makevar> посредством запуска сценария + <varname>WX_PREMK</varname> посредством запуска сценария <command>wx-config</command> для получения строки с полной версией с присвоением ее переменной и передачей в программу.</para> @@ -8793,21 +8716,21 @@ PLIST_SUB+= VERSION="${VER_STR}" <note> <para>Переменные <application>wxWidgets</application> можно безопасно использовать в командах внутри целей без необходимости - в использовании <makevar>WX_PREMK</makevar>.</para> + в использовании <varname>WX_PREMK</varname>.</para> </note> </sect2> - <sect2 id="wx-additional-config-args"> + <sect2 xml:id="wx-additional-config-args"> <title>Дополнительные параметры <command>configure</command></title> <para>Некоторые сценарии GNU <command>configure</command> не могут найти <application>wxWidgets</application> только с установленной переменной окружения <literal>WX_CONFIG</literal>, требуя дополнительные параметры. Для их передачи можно использовать - переменную <makevar>WX_CONF_ARGS</makevar>.</para> + переменную <varname>WX_CONF_ARGS</varname>.</para> <table frame="none"> - <title>Допустимые значения <makevar>WX_CONF_ARGS</makevar></title> + <title>Допустимые значения <varname>WX_CONF_ARGS</varname></title> <tgroup cols="2"> <thead> @@ -8837,13 +8760,13 @@ PLIST_SUB+= VERSION="${VER_STR}" </sect2> </sect1> - <sect1 id="using-lua"> + <sect1 xml:id="using-lua"> <title>Использование <application>Lua</application></title> <para>Эта глава описывает статус библиотек <application>Lua</application> в дереве портов и их интеграцию в систему портов.</para> - <sect2 id="lua-introduction"> + <sect2 xml:id="lua-introduction"> <title>Введение</title> <para>Существует множество версий библиотек @@ -8859,7 +8782,7 @@ PLIST_SUB+= VERSION="${VER_STR}" компоновщика.</para> </sect2> - <sect2 id="lua-version"> + <sect2 xml:id="lua-version"> <title>Выбор версии</title> <para>Для того, чтобы заставить ваш порт использовать конкретную @@ -8867,7 +8790,7 @@ PLIST_SUB+= VERSION="${VER_STR}" для определения переменные (если определена только одна, то вторая примет значение по умолчанию):</para> - <table id="lua-ver-sel-table" frame="none"> + <table xml:id="lua-ver-sel-table" frame="none"> <title>Переменные для выбора версии <application>Lua</application></title> @@ -8884,7 +8807,7 @@ PLIST_SUB+= VERSION="${VER_STR}" <tbody> <row> - <entry><makevar>USE_LUA</makevar></entry> + <entry><varname>USE_LUA</varname></entry> <entry>Перечень версий, которые порт может использовать</entry> @@ -8892,7 +8815,7 @@ PLIST_SUB+= VERSION="${VER_STR}" </row> <row> - <entry><makevar>USE_LUA_NOT</makevar></entry> + <entry><varname>USE_LUA_NOT</varname></entry> <entry>Перечень версий, которые порт не может использовать</entry> @@ -8922,19 +8845,19 @@ PLIST_SUB+= VERSION="${VER_STR}" <row> <entry><literal>4.0</literal></entry> - <entry><filename role="package">lang/lua4</filename></entry> + <entry><package>lang/lua4</package></entry> </row> <row> <entry><literal>5.0</literal></entry> - <entry><filename role="package">lang/lua50</filename></entry> + <entry><package>lang/lua50</package></entry> </row> <row> <entry><literal>5.1</literal></entry> - <entry><filename role="package">lang/lua</filename></entry> + <entry><package>lang/lua</package></entry> </row> </tbody> </tgroup> @@ -9005,13 +8928,13 @@ PLIST_SUB+= VERSION="${VER_STR}" <tbody> <row> - <entry><makevar>WANT_LUA_VER</makevar></entry> + <entry><varname>WANT_LUA_VER</varname></entry> <entry>порт</entry> </row> <row> - <entry><makevar>WITH_LUA_VER</makevar></entry> + <entry><varname>WITH_LUA_VER</varname></entry> <entry>пользователь</entry> </row> @@ -9019,27 +8942,27 @@ PLIST_SUB+= VERSION="${VER_STR}" </tgroup> </table> - <example id="lua-version-example"> + <example xml:id="lua-version-example"> <title>Выбор версии <application>Lua</application></title> <para>Следующий фрагмент взят из порта, который использует <application>Lua</application> версий <literal>5.0</literal> или <literal>5.1</literal>, по умолчанию <literal>5.0</literal>. Значение может быть переопределено пользователем с использованием - переменной <makevar>WITH_LUA_VER</makevar>.</para> + переменной <varname>WITH_LUA_VER</varname>.</para> <programlisting>USE_LUA= 5.0-5.1 WANT_LUA_VER= 5.0</programlisting> </example> </sect2> - <sect2 id="lua-components"> + <sect2 xml:id="lua-components"> <title>Выбор компонентов</title> <para>Существуют другие приложения, которые хотя и не являются библиотеками <application>Lua</application>, но относятся к ним. Эти приложения можно указать в переменной - <makevar>LUA_COMPS</makevar>. Доступны следующие компоненты:</para> + <varname>LUA_COMPS</varname>. Доступны следующие компоненты:</para> <table frame="none"> <title>Доступные компоненты <application>Lua</application></title> @@ -9114,21 +9037,21 @@ WANT_LUA_VER= 5.0</programlisting> <entry><literal>build</literal></entry> <entry>Компонент требуется для построения, эквивалентен - <makevar>BUILD_DEPENDS</makevar></entry> + <varname>BUILD_DEPENDS</varname></entry> </row> <row> <entry><literal>run</literal></entry> <entry>Компонент требуется для запуска, эквивалентен - <makevar>RUN_DEPENDS</makevar></entry> + <varname>RUN_DEPENDS</varname></entry> </row> <row> <entry><literal>lib</literal></entry> <entry>Компонент требуется для построения и запуска, - эквивалентен <makevar>LIB_DEPENDS</makevar></entry> + эквивалентен <varname>LIB_DEPENDS</varname></entry> </row> </tbody> </tgroup> @@ -9137,7 +9060,7 @@ WANT_LUA_VER= 5.0</programlisting> <para>Значения по умолчанию для компонентов подробно рассматриваются в следующей таблице:</para> - <table id="lua-def-dep-types" frame="none"> + <table xml:id="lua-def-dep-types" frame="none"> <title>Типы зависимости <application>Lua</application>, используемые по умолчанию</title> @@ -9174,7 +9097,7 @@ WANT_LUA_VER= 5.0</programlisting> </tgroup> </table> - <example id="lua-components-example"> + <example xml:id="lua-components-example"> <title>Выбор компонентов <application>Lua</application></title> <para>Следующий фрагмент соответствует порту, использующему @@ -9186,16 +9109,16 @@ LUA_COMPS= lua ruby</programlisting> </example> </sect2> - <sect2 id="lua-version-detection"> + <sect2 xml:id="lua-version-detection"> <title>Обнаружение установленных версий</title> <para>Для обнаружения установленной версии вам необходимо задать - переменную <makevar>WANT_LUA</makevar>. Если вы не присвоите ей + переменную <varname>WANT_LUA</varname>. Если вы не присвоите ей определенную версию, то компоненты получат суффикс версии. - Переменная <makevar>HAVE_LUA</makevar> будет заполнена после + Переменная <varname>HAVE_LUA</varname> будет заполнена после обнаружения.</para> - <example id="lua-ver-det-example"> + <example xml:id="lua-ver-det-example"> <title>Обнаружение установленных версий и компонентов <application>Lua</application></title> @@ -9231,7 +9154,7 @@ CONFIGURE_ARGS+=--enable-tolua </example> </sect2> - <sect2 id="lua-defined-variables"> + <sect2 xml:id="lua-defined-variables"> <title>Переменные для определения</title> <para>Следующие переменные доступны в порту (после определения одной @@ -9252,14 +9175,14 @@ CONFIGURE_ARGS+=--enable-tolua <tbody> <row> - <entry><makevar>LUA_VER</makevar></entry> + <entry><varname>LUA_VER</varname></entry> <entry>Версия <application>Lua</application>, которая будет использоваться (например, <literal>5.1</literal>)</entry> </row> <row> - <entry><makevar>LUA_VER_SH</makevar></entry> + <entry><varname>LUA_VER_SH</varname></entry> <entry>Старший номер версии динамической библиотеки <application>Lua</application> (например, @@ -9267,21 +9190,21 @@ CONFIGURE_ARGS+=--enable-tolua </row> <row> - <entry><makevar>LUA_VER_STR</makevar></entry> + <entry><varname>LUA_VER_STR</varname></entry> <entry>Версия <application>Lua</application> без точки (например, <literal>51</literal>)</entry> </row> <row> - <entry><makevar>LUA_PREFIX</makevar></entry> + <entry><varname>LUA_PREFIX</varname></entry> <entry>Префикс, в который установлена <application>Lua</application> (и компоненты)</entry> </row> <row> - <entry><makevar>LUA_SUBDIR</makevar></entry> + <entry><varname>LUA_SUBDIR</varname></entry> <entry>Каталог под <filename>${PREFIX}/bin</filename>, <filename>${PREFIX}/share</filename> и @@ -9290,7 +9213,7 @@ CONFIGURE_ARGS+=--enable-tolua </row> <row> - <entry><makevar>LUA_INCDIR</makevar></entry> + <entry><varname>LUA_INCDIR</varname></entry> <entry>Каталог, в который установлены заголовочные файлы <application>Lua</application> и @@ -9298,7 +9221,7 @@ CONFIGURE_ARGS+=--enable-tolua </row> <row> - <entry><makevar>LUA_LIBDIR</makevar></entry> + <entry><varname>LUA_LIBDIR</varname></entry> <entry>Каталог, в который установлены библиотеки <application>Lua</application> и @@ -9306,7 +9229,7 @@ CONFIGURE_ARGS+=--enable-tolua </row> <row> - <entry><makevar>LUA_MODLIBDIR</makevar></entry> + <entry><varname>LUA_MODLIBDIR</varname></entry> <entry>Каталог, в который установлены модули библиотеки <application>Lua</application> @@ -9314,7 +9237,7 @@ CONFIGURE_ARGS+=--enable-tolua </row> <row> - <entry><makevar>LUA_MODSHAREDIR</makevar></entry> + <entry><varname>LUA_MODSHAREDIR</varname></entry> <entry>Каталог, в который установлены модули <application>Lua</application> @@ -9322,28 +9245,28 @@ CONFIGURE_ARGS+=--enable-tolua </row> <row> - <entry><makevar>LUA_PKGNAMEPREFIX</makevar></entry> + <entry><varname>LUA_PKGNAMEPREFIX</varname></entry> <entry>Префикс с именем пакета, используемый модулями <application>Lua</application></entry> </row> <row> - <entry><makevar>LUA_CMD</makevar></entry> + <entry><varname>LUA_CMD</varname></entry> <entry>Путь к интерпретатору <application>Lua</application></entry> </row> <row> - <entry><makevar>LUAC_CMD</makevar></entry> + <entry><varname>LUAC_CMD</varname></entry> <entry>Путь к компилятору <application>Lua</application></entry> </row> <row> - <entry><makevar>TOLUA_CMD</makevar></entry> + <entry><varname>TOLUA_CMD</varname></entry> <entry>Путь к программе <application>tolua</application></entry> @@ -9352,7 +9275,7 @@ CONFIGURE_ARGS+=--enable-tolua </tgroup> </table> - <example id="lua-variables-example"> + <example xml:id="lua-variables-example"> <title>Указание для порта, где искать <application>Lua</application></title> @@ -9367,27 +9290,27 @@ CONFIGURE_ENV= CPPFLAGS="-I${LUA_INCDIR}" LDFLAGS="-L${LUA_LIBDIR}"</programlis </example> </sect2> - <sect2 id="lua-premk"> + <sect2 xml:id="lua-premk"> <title>Обработка в <filename>bsd.port.pre.mk</filename></title> <para>Если вам нужно использовать переменные для запуска команд сразу после подключения <filename>bsd.port.pre.mk</filename>, для этого - вам нужно определить переменную <makevar>LUA_PREMK</makevar>.</para> + вам нужно определить переменную <varname>LUA_PREMK</varname>.</para> <important> - <para>Если вы задаете <makevar>LUA_PREMK</makevar>, то версия, + <para>Если вы задаете <varname>LUA_PREMK</varname>, то версия, зависимости, компоненты и уже заданные переменные не будут изменены, в случае если вы изменили переменные порта <application>Lua</application> <emphasis>после</emphasis> подключения <filename>bsd.port.pre.mk</filename>.</para> </important> - <example id="lua-premk-example"> + <example xml:id="lua-premk-example"> <title>Использование переменных <application>Lua</application> в командах</title> <para>Следующий фрагмент иллюстрирует использование - <makevar>LUA_PREMK</makevar> посредством запуска + <varname>LUA_PREMK</varname> посредством запуска интерпретатора <application>Lua</application> для того, чтобы получить строку с полной версией, сохранить ее в переменную и передать программе.</para> @@ -9407,58 +9330,58 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <note> <para>Переменные <application>Lua</application> можно безопасно использовать в командах внутри целей без необходимости в - использовании <makevar>LUA_PREMK</makevar>.</para> + использовании <varname>LUA_PREMK</varname>.</para> </note> </sect2> </sect1> - <sect1 id="using-xfce"> + <sect1 xml:id="using-xfce"> <title>Использование Xfce</title> - <para>Переменная <makevar>USE_XFCE</makevar> используется для + <para>Переменная <varname>USE_XFCE</varname> используется для автоматической конфигурации зависимостей для портов, использующих библиотеки или приложения на основе Xfce, такие как - <filename role="package">x11-toolkits/libxfce4gui</filename> и - <filename role="package">x11-wm/xfce4-panel</filename>.</para> + <package>x11-toolkits/libxfce4gui</package> и + <package>x11-wm/xfce4-panel</package>.</para> <para>В настоящее время распознаются следующие библиотеки и приложения Xfce:</para> <itemizedlist> <listitem> - <para>libexo: <filename role="package">x11/libexo</filename></para> + <para>libexo: <package>x11/libexo</package></para> </listitem> <listitem> - <para>libgui: <filename role="package">x11-toolkits/libxfce4gui</filename></para> + <para>libgui: <package>x11-toolkits/libxfce4gui</package></para> </listitem> <listitem> - <para>libutil: <filename role="package">x11/libxfce4util</filename></para> + <para>libutil: <package>x11/libxfce4util</package></para> </listitem> <listitem> - <para>libmcs: <filename role="package">x11/libxfce4mcs</filename></para> + <para>libmcs: <package>x11/libxfce4mcs</package></para> </listitem> <listitem> - <para>mcsmanager: <filename role="package">sysutils/xfce4-mcs-manager</filename></para> + <para>mcsmanager: <package>sysutils/xfce4-mcs-manager</package></para> </listitem> <listitem> - <para>panel: <filename role="package">x11-wm/xfce4-panel</filename></para> + <para>panel: <package>x11-wm/xfce4-panel</package></para> </listitem> <listitem> - <para>thunar: <filename role="package">x11-fm/thunar</filename></para> + <para>thunar: <package>x11-fm/thunar</package></para> </listitem> <listitem> - <para>wm: <filename role="package">x11-wm/xfce4-wm</filename></para> + <para>wm: <package>x11-wm/xfce4-wm</package></para> </listitem> <listitem> - <para>xfdev: <filename role="package">dev/xfce4-dev-tools</filename></para> + <para>xfdev: <package>dev/xfce4-dev-tools</package></para> </listitem> </itemizedlist> @@ -9468,24 +9391,24 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <itemizedlist> <listitem> <para>configenv: Используйте, если ваш порт требует специально - измененного значения <makevar>CONFIGURE_ENV</makevar> для поиска + измененного значения <varname>CONFIGURE_ENV</varname> для поиска требуемых для порта библиотек.</para> <programlisting>-I${LOCALBASE}/include -L${LOCALBASE}/lib</programlisting> - <para>добавляется в CPPFLAGS к <makevar>CONFIGURE_ENV</makevar>.</para> + <para>добавляется в CPPFLAGS к <varname>CONFIGURE_ENV</varname>.</para> </listitem> </itemizedlist> <para>Следовательно, если у порта имеется зависимость от - <filename role="package">sysutils/xfce4-mcs-manager</filename>, и + <package>sysutils/xfce4-mcs-manager</package>, и порт требует специальных CPPFLAGS в своем окружении configure, то синтаксис будет следующим:</para> <programlisting>USE_XFCE= mcsmanager configenv</programlisting> </sect1> - <sect1 id="using-mozilla"> + <sect1 xml:id="using-mozilla"> <title>Использование Mozilla</title> <table frame="none"> @@ -9495,7 +9418,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <tbody> <row> - <entry><makevar>USE_GECKO</makevar></entry> + <entry><varname>USE_GECKO</varname></entry> <entry>Один из бэкэндов Gecko, с которым может работать порт. Возможные значения: @@ -9504,7 +9427,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" устаревший, больше не должен использоваться).</entry> </row> <row> - <entry><makevar>USE_FIREFOX</makevar></entry> + <entry><varname>USE_FIREFOX</varname></entry> <entry>Для запуска порта требуется Firefox. Возможные значения: @@ -9515,7 +9438,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <literal>40</literal>.</entry> </row> <row> - <entry><makevar>USE_FIREFOX_BUILD</makevar></entry> + <entry><varname>USE_FIREFOX_BUILD</varname></entry> <entry>Для построения порта требуется Firefox. Возможные значения: смотрите USE_FIREFOX. @@ -9523,7 +9446,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" того же значения.</entry> </row> <row> - <entry><makevar>USE_SEAMONKEY</makevar></entry> + <entry><varname>USE_SEAMONKEY</varname></entry> <entry>Для запуска порта требуется SeaMonkey. Возможные значения: @@ -9534,7 +9457,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <literal>20</literal>.</entry> </row> <row> - <entry><makevar>USE_SEAMONKEY_BUILD</makevar></entry> + <entry><varname>USE_SEAMONKEY_BUILD</varname></entry> <entry>Для построения порта требуется SeaMonkey. Возможные значения: смотрите USE_SEAMONKEY. @@ -9542,7 +9465,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" того же значения.</entry> </row> <row> - <entry><makevar>USE_THUNDERBIRD</makevar></entry> + <entry><varname>USE_THUNDERBIRD</varname></entry> <entry>Для запуска порта требуется Thunderbird. Возможные значения: @@ -9553,7 +9476,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <literal>31</literal>.</entry> </row> <row> - <entry><makevar>USE_THUNDERBIRD_BUILD</makevar></entry> + <entry><varname>USE_THUNDERBIRD_BUILD</varname></entry> <entry>Для построения порта требуется Thunderbird. Возможные значения: смотрите USE_THUNDERBIRD. @@ -9568,7 +9491,7 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <filename>/usr/ports/Mk/bsd.gecko.mk</filename>.</para> </sect1> - <sect1 id="using-databases"> + <sect1 xml:id="using-databases"> <title>Использование баз данных</title> <table frame="none"> @@ -9585,72 +9508,67 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <tbody> <row> - <entry><makevar>USE_BDB</makevar></entry> + <entry><varname>USE_BDB</varname></entry> <entry>Если переменная установлена в <literal>yes</literal>, добавляет зависимость от порта - <filename role="package">databases/db41</filename>. + <package>databases/db41</package>. Также переменной можно присвоить значения: 2, 3, 40, 41, 42, 43, 44, 46, 47, 48 или 51. Вы можете объявить диапазон - принимаемых значений, <makevar>USE_BDB</makevar>=42+ + принимаемых значений, <varname>USE_BDB</varname>=42+ будет искать установленную версию с наибольшим номером, и, если ничего не установлено, вернется к 42.</entry> </row> <row> - <entry><makevar>USE_MYSQL</makevar></entry> + <entry><varname>USE_MYSQL</varname></entry> <entry>Если переменная установлена в <literal>yes</literal>, добавляет зависимость от порта - <filename role="package">databases/mysql55-client</filename>. + <package>databases/mysql55-client</package>. Как связанная переменная, - <makevar>WANT_MYSQL_VER</makevar> может быть установлена + <varname>WANT_MYSQL_VER</varname> может быть установлена в значение 323, 40, 41, 50, 51, 52, 55 или 60.</entry> </row> <row> - <entry><makevar>USE_PGSQL</makevar></entry> + <entry><varname>USE_PGSQL</varname></entry> <entry>Если установлена в <literal>yes</literal>, добавляет - зависимость от порта <filename - role="package">databases/postgresql90-client</filename>. + зависимость от порта <package>databases/postgresql90-client</package>. Как связанная переменная, - <makevar>WANT_PGSQL_VER</makevar> может быть установлена + <varname>WANT_PGSQL_VER</varname> может быть установлена в значение 83, 84, 90, 91 или 92. Вы можете указать максимальное и минимальное значения; - <makevar>WANT_PGSQL_VER</makevar>= + <varname>WANT_PGSQL_VER</varname>= <literal> 90+</literal> сделает порт зависимым от минимальной версии 9.0.</entry> </row> <row> - <entry><makevar>USE_SQLITE</makevar></entry> + <entry><varname>USE_SQLITE</varname></entry> <entry>Если переменная имеет значение <literal>yes</literal>, - добавляет зависимость от порта <filename - role="package">databases/sqlite3</filename>. + добавляет зависимость от порта <package>databases/sqlite3</package>. Переменная может принимать значения: 3, 2.</entry> </row> </tbody> </tgroup> </table> - <para>Подробнее смотрите в <ulink - url="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.database.mk?view=markup">bsd.database.mk</ulink>.</para> + <para>Подробнее смотрите в <link xlink:href="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.database.mk?view=markup">bsd.database.mk</link>.</para> </sect1> - <sect1 id="rc-scripts"> + <sect1 xml:id="rc-scripts"> <title>Запуск и остановка служб (сценарии <literal>rc</literal>)</title> <para>Сценарии <filename>rc.d</filename> используются для запуска служб при запуске системы и дают администратору стандартный способ остановки, запуска и перезапуска службы. Порты интегрируются в системную инфраструктуру <filename>rc.d</filename>. Подробности - по её использованию можно найти в <ulink - url="&url.books.handbook;/configtuning-rcd.html">главе rc.d - Руководства</ulink>. Подробное объяснение доступных команд - находится в &man.rc.8; и &man.rc.subr.8;. Наконец, есть <ulink - url="&url.articles.rc-scripting;">статья</ulink>о практических + по её использованию можно найти в <link xlink:href="&url.books.handbook;/configtuning-rcd.html">главе rc.d + Руководства</link>. Подробное объяснение доступных команд + находится в &man.rc.8; и &man.rc.subr.8;. Наконец, есть <link xlink:href="&url.articles.rc-scripting;">статья</link>о практических аспектах написания сценариев <filename>rc.d</filename>.</para> <para>Установить можно один или более сценариев @@ -9661,15 +9579,14 @@ CFLAGS+= -DLUA_VERSION_STRING="${VER_STR}" <para>Сценарии обязаны размещаться в подкаталоге <filename>files</filename> с обязательным добавлением суффикса <literal>.in</literal> к имени файла. Для этого файла будут - использоваться стандартные расширения <makevar>SUB_LIST</makevar>. + использоваться стандартные расширения <varname>SUB_LIST</varname>. Также особенно приветствуется использование расширений <literal>%%PREFIX%%</literal> и <literal>%%LOCALBASE%%</literal>. - Подробнее о <makevar>SUB_LIST</makevar> в <link - linkend="using-sub-files">соответствующей главе</link>.</para> + Подробнее о <varname>SUB_LIST</varname> в <link linkend="using-sub-files">соответствующей главе</link>.</para> <para>До &os; 6.1-RELEASE интеграция с &man.rcorder.8; доступна - через использование <makevar>USE_RCORDER</makevar> вместо - <makevar>USE_RC_SUBR</makevar>. Однако, использовать этот метод + через использование <varname>USE_RCORDER</varname> вместо + <varname>USE_RC_SUBR</varname>. Однако, использовать этот метод не нужно, если ваш порт не включает опцию по своей установке в основную систему или службе не нужно запускаться до выполнения сценария <filename>FILESYSTEMS</filename> из <filename>rc.d</filename> @@ -9829,7 +9746,7 @@ run_rc_command "$1"</programlisting> <varname>command_interpreter</varname> установлено должным образом. В противном случае</para> - <screen>&prompt.root; <userinput>service <replaceable>name</replaceable> stop</userinput></screen> + <screen>&prompt.root; <userinput>service name stop</userinput></screen> <para>возможно будет работать неправильно. Смотрите &man.service.8; для получения дополнительной информации.</para> @@ -9907,7 +9824,7 @@ run_rc_command "$1"</programlisting> </sect2> </sect1> - <sect1 id="users-and-groups"> + <sect1 xml:id="users-and-groups"> <title>Добавление пользователей и групп</title> <para>Некоторые порты требуют в установленной системе наличие @@ -9922,7 +9839,7 @@ run_rc_command "$1"</programlisting> вашего порта.</para> <para>Затем вы сможете использовать в вашем <filename>Makefile</filename> - переменные <makevar>USERS</makevar> и <makevar>GROUPS</makevar>, + переменные <varname>USERS</varname> и <varname>GROUPS</varname>, и пользователь автоматические создастся при установке порта.</para> <para>Текущий перечень зарезервированных UID и GID находится в @@ -9931,7 +9848,7 @@ run_rc_command "$1"</programlisting> </sect1> - <sect1 id="requiring-kernel-sources"> + <sect1 xml:id="requiring-kernel-sources"> <title>Порты, требующие наличия исходных текстов ядра</title> <para>Некоторым портам (таким как загружаемые модули ядра) для @@ -9945,9 +9862,9 @@ IGNORE= requires kernel sources to be installed </chapter> - <chapter id="plist"> + <chapter xml:id="plist"> <title>Продвинутые практики <filename>pkg-plist</filename></title> - <sect1 id="plist-sub"> + <sect1 xml:id="plist-sub"> <title>Изменение содержимого <filename>pkg-plist</filename> в зависимости от make-переменных</title> @@ -9964,14 +9881,13 @@ IGNORE= requires kernel sources to be installed <literal>%%PERL_VERSION%%</literal> и <literal>%%PERL_VER%%</literal> обозначают полный номер версии <command>perl</command> (например, <literal>5.8.9</literal>). Некоторые - другие <literal>%%<replaceable>VARS</replaceable>%%</literal>, имеющие - отношение к файлам документации порта, описаны в <link - linkend="install-documentation">соответствующем разделе</link>.</para> + другие <literal>%%VARS%%</literal>, имеющие + отношение к файлам документации порта, описаны в <link linkend="install-documentation">соответствующем разделе</link>.</para> <para>Если вам нужно сделать другие подстановки, вы можете указать в - переменной <makevar>PLIST_SUB</makevar> список пар - <literal><replaceable>VAR</replaceable>=<replaceable>VALUE</replaceable></literal>, - и все вхождения <literal>%%<replaceable>VAR</replaceable>%%</literal> + переменной <varname>PLIST_SUB</varname> список пар + <literal>VAR=VALUE</literal>, + и все вхождения <literal>%%VAR%%</literal> в файле <filename>pkg-plist</filename> будут заменяться на значение <replaceable>VALUE</replaceable>.</para> @@ -9992,7 +9908,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting> в порту опциями, то обычным способом управления является добавление префиксов <literal>%%TAG%%</literal> для строк <filename>pkg-plist</filename> с добавлением этого - <literal>TAG</literal> в переменную <makevar>PLIST_SUB</makevar> + <literal>TAG</literal> в переменную <varname>PLIST_SUB</varname> внутри <filename>Makefile</filename> со специальным значением <literal>@comment</literal>, которое указывает пакетным инструментам игнорировать эти строки:</para> @@ -10007,48 +9923,47 @@ PLIST_SUB+= X11="@comment " <programlisting>%%X11%%bin/foo-gui</programlisting> - <para>Эта подстановка (также, как и добавление любых <link - linkend="makefile-manpages">справочных страниц</link>) будет сделана - между выполнением целей <maketarget>pre-install</maketarget> и - <maketarget>do-install</maketarget>, посредством чтения файла - <filename><makevar>PLIST</makevar></filename> и записью в файл - <filename><makevar>TMPPLIST</makevar></filename> + <para>Эта подстановка (также, как и добавление любых <link linkend="makefile-manpages">справочных страниц</link>) будет сделана + между выполнением целей <buildtarget>pre-install</buildtarget> и + <buildtarget>do-install</buildtarget>, посредством чтения файла + <filename>PLIST</filename> и записью в файл + <filename>TMPPLIST</filename> (по умолчанию это файл - <filename><makevar>WRKDIR</makevar>/.PLIST.mktmp</filename>). Так - что если ваш порт строит <filename><makevar>PLIST</makevar></filename> на лету, делайте + <filename>WRKDIR/.PLIST.mktmp</filename>). Так + что если ваш порт строит <filename>PLIST</filename> на лету, делайте это во время или до выполнения цели - <maketarget>pre-install</maketarget>. Кроме того, если вашему порту + <buildtarget>pre-install</buildtarget>. Кроме того, если вашему порту требуется отредактировать получающийся файл, делайте это в цели - <maketarget>post-install</maketarget> изменением файла - <filename><makevar>TMPPLIST</makevar></filename>.</para> + <buildtarget>post-install</buildtarget> изменением файла + <filename>TMPPLIST</filename>.</para> <para>Другой способ изменения списка сборки порта основан на - определении значений переменных <makevar>PLIST_FILES</makevar>, - <makevar>PLIST_DIRS</makevar> и <makevar>PLIST_DIRSTRY</makevar>. + определении значений переменных <varname>PLIST_FILES</varname>, + <varname>PLIST_DIRS</varname> и <varname>PLIST_DIRSTRY</varname>. Каждое из них рассматривается как перечень путей для записи в - <filename><makevar>TMPPLIST</makevar></filename> содержимого - <filename><makevar>PLIST</makevar></filename>. Имена, перечисленные - в <makevar>PLIST_FILES</makevar>, <makevar>PLIST_DIRS</makevar> - и <makevar>PLIST_DIRSTRY</makevar> подвергаются подстановке - <literal>%%<replaceable>VAR</replaceable>%%</literal>, как описано - выше. За исключением этого, имена из <makevar>PLIST_FILES</makevar> + <filename>TMPPLIST</filename> содержимого + <filename>PLIST</filename>. Имена, перечисленные + в <varname>PLIST_FILES</varname>, <varname>PLIST_DIRS</varname> + и <varname>PLIST_DIRSTRY</varname> подвергаются подстановке + <literal>%%VAR%%</literal>, как описано + выше. За исключением этого, имена из <varname>PLIST_FILES</varname> будут появляться в окончательном варианте перечня сборки без изменений, тогда как <literal>@dirrm</literal> и <literal>@dirrmtry</literal> будут соответственно предшествовать - именам из <makevar>PLIST_DIRS</makevar> и - <makevar>PLIST_DIRSTRY</makevar>. Для того чтобы изменения - вступили в силу, <makevar>PLIST_FILES</makevar>, - <makevar>PLIST_DIRS</makevar> и <makevar>PLIST_DIRSTRY</makevar> + именам из <varname>PLIST_DIRS</varname> и + <varname>PLIST_DIRSTRY</varname>. Для того чтобы изменения + вступили в силу, <varname>PLIST_FILES</varname>, + <varname>PLIST_DIRS</varname> и <varname>PLIST_DIRSTRY</varname> должны задаваться до того, как будет - записываться <filename><makevar>TMPPLIST</makevar></filename>, то - есть в цели <maketarget>pre-install</maketarget> или ещё + записываться <filename>TMPPLIST</filename>, то + есть в цели <buildtarget>pre-install</buildtarget> или ещё раньше.</para> </sect1> - <sect1 id="plist-cleaning"> + <sect1 xml:id="plist-cleaning"> <title>Пустые каталоги</title> - <sect2 id="plist-dir-cleaning"> + <sect2 xml:id="plist-dir-cleaning"> <title>Очистка пустых каталогов</title> <para>Заставьте ваш порты удалять пустые каталоги при удалении. Обычно это @@ -10076,12 +9991,12 @@ lib/X11/oneko/sounds/cat.au <para>Эта команда не выведет никаких сообщений об ошибках и не вызовет аварийного завершения работы &man.pkg.delete.1;, даже если - каталог <filename><makevar>${PREFIX}</makevar>/share/doc/gimp</filename> + каталог <filename>${PREFIX}/share/doc/gimp</filename> не пуст из-за того, что другие порты установили сюда какие-то файлы.</para> </sect2> - <sect2 id="plist-dir-empty"> + <sect2 xml:id="plist-dir-empty"> <title>Создание пустых каталогов</title> <para>Пустым каталогам, создаваемым во время установки порта, нужно @@ -10097,11 +10012,11 @@ lib/X11/oneko/sounds/cat.au </sect1> - <sect1 id="plist-config"> + <sect1 xml:id="plist-config"> <title>Конфигурационные файлы</title> <para>Если ваш порт устанавливает конфигурационные файлы в каталог - <filename><makevar>PREFIX</makevar>/etc</filename> (или куда-то еще), + <filename>PREFIX/etc</filename> (или куда-то еще), <emphasis>не</emphasis> делайте их простого перечисления в файле <filename>pkg-plist</filename>. Это приведёт к тому, что по команде &man.pkg.delete.1; или при новой установке файлы, @@ -10109,7 +10024,7 @@ lib/X11/oneko/sounds/cat.au уничтожены.</para> <para>Вместо этого установите файл(ы) с примерами с расширением - <filename><replaceable>filename</replaceable>.sample</filename>. + <filename>filename.sample</filename>. Затем скопируйте файл с примером на место настоящего файла конфигурации, если таковой ещё не существует. При деинсталляции удаляйте файл конфигурации только в том случае, если он идентичен @@ -10161,15 +10076,15 @@ etc/orbit.conf.sample начнёт работать.</para> </sect1> - <sect1 id="plist-dynamic"> + <sect1 xml:id="plist-dynamic"> <title>Динамический или статический список упаковки</title> <para><emphasis>Статический список упаковки</emphasis> — это список упаковки, который доступен в Коллекции Портов или как файл <filename>pkg-plist</filename> (с подстановкой переменных или без неё), или как встроенный в <filename>Makefile</filename> посредством - <makevar>PLIST_FILES</makevar>, <makevar>PLIST_DIRS</makevar> - и <makevar>PLIST_DIRSTRY</makevar>. + <varname>PLIST_FILES</varname>, <varname>PLIST_DIRS</varname> + и <varname>PLIST_DIRSTRY</varname>. Даже если содержимое является автоматически порождаемым при помощи инструмента или в результате выполнения цели в Makefile <emphasis>до</emphasis> включения в Коллекцию Портов коммиттером, @@ -10204,7 +10119,7 @@ etc/orbit.conf.sample </sect1> - <sect1 id="plist-autoplist"> + <sect1 xml:id="plist-autoplist"> <title>Автоматическое создание списка упаковки</title> <para>Первым делом убедитесь, что ваш порт практически полностью @@ -10225,7 +10140,7 @@ etc/orbit.conf.sample <screen>&prompt.root; <userinput>:>pkg-plist</userinput></screen> - <para>Если ваш порт принимает во внимание <makevar>PREFIX</makevar> (а он + <para>Если ваш порт принимает во внимание <varname>PREFIX</varname> (а он должен это делать), то тогда вы можете установить порт и создать список упаковки.</para> @@ -10241,17 +10156,15 @@ etc/orbit.conf.sample создание автоматизировано <emphasis>не полностью</emphasis>. Страницы справочной системы должны быть перечислены в файле <filename>Makefile</filename> порта в переменных - <makevar>MAN<replaceable>n</replaceable></makevar>, а не в списке + <varname>MAN<replaceable>n</replaceable></varname>, а не в списке упаковки. Пользовательские конфигурационные файлы должны быть удалены или быть установлены как - <filename><replaceable>filename</replaceable>.sample</filename>. + <filename>filename.sample</filename>. Файл <filename>info/dir</filename> включать в список не нужно, но должны быть добавлены соответствующие строчки - <filename>install-info</filename>, так, как это описано в разделе о <link - linkend="makefile-info">файлах в формате info</link>. Все + <filename>install-info</filename>, так, как это описано в разделе о <link linkend="makefile-info">файлах в формате info</link>. Все библиотеки, устанавливаемые портом, должны быть перечислены так, как - это описано в разделе о <link - linkend="porting-shlibs">динамических библиотеках</link>.</para> + это описано в разделе о <link linkend="porting-shlibs">динамических библиотеках</link>.</para> <para>Как альтернативу, можно использовать скрипт <command>plist</command> из <filename>/usr/ports/Tools/scripts/</filename> для автоматического @@ -10276,22 +10189,21 @@ etc/orbit.conf.sample выше.</para> <para>Для первоначального создания <filename>pkg-plist</filename> можно - использовать другой инструмент <filename - role="package">ports-mgmt/genplist</filename>. Как и с прочими + использовать другой инструмент <package>ports-mgmt/genplist</package>. Как и с прочими автоматизированными инструментами, получаемый <filename>pkg-plist</filename> следует проверить и при необходимости отредактировать вручную.</para> </sect1> </chapter> - <chapter id="pkg-files"> - <title>Файлы <filename>pkg-<replaceable>*</replaceable></filename></title> + <chapter xml:id="pkg-files"> + <title>Файлы <filename>pkg-*</filename></title> <para>Есть несколько приёмов работы с файлами - <filename>pkg-<replaceable>*</replaceable></filename>, которые мы ещё не + <filename>pkg-*</filename>, которые мы ещё не описали, но они иногда могут быть очень кстати.</para> - <sect1 id="porting-message"> + <sect1 xml:id="porting-message"> <title><filename>pkg-message</filename></title> <para>Если вам нужно вывести сообщение для человека, устанавливающего @@ -10302,10 +10214,10 @@ etc/orbit.conf.sample для вывода информации о лицензировании.</para> <para>Если должны выводиться некоторые строки о knobs времени построения - или предупреждения, используйте <makevar>ECHO_MSG</makevar>. Файл + или предупреждения, используйте <varname>ECHO_MSG</varname>. Файл <filename>pkg-message</filename> только для послеустановочных шагов. - Также следует иметь в виду различие между <makevar>ECHO_MSG</makevar> - и <makevar>ECHO_CMD</makevar>. Первое предназначено для вывода на + Также следует иметь в виду различие между <varname>ECHO_MSG</varname> + и <varname>ECHO_CMD</varname>. Первое предназначено для вывода на экран информационного текста, а второе для конвейера команд:</para> <programlisting>update-etc-shells: @@ -10320,11 +10232,11 @@ etc/orbit.conf.sample <filename>pkg-plist</filename>. И он не будет автоматически выводиться, если пользователь использует порт, а не пакет, так что вы должны будете сами выводить его при выполнении цели - <maketarget>post-install</maketarget>.</para> + <buildtarget>post-install</buildtarget>.</para> </note> </sect1> - <sect1 id="pkg-install"> + <sect1 xml:id="pkg-install"> <title><filename>pkg-install</filename></title> <para>Если при установке бинарного пакета по команде @@ -10353,7 +10265,7 @@ etc/orbit.conf.sample </note> </sect1> - <sect1 id="pkg-deinstall"> + <sect1 xml:id="pkg-deinstall"> <title><filename>pkg-deinstall</filename></title> <para>Этот скрипт вызывается при удалении пакета.</para> @@ -10365,7 +10277,7 @@ etc/orbit.conf.sample POST-DEINSTALL</literal>.</para> </sect1> - <sect1 id="pkg-req"> + <sect1 xml:id="pkg-req"> <title><filename>pkg-req</filename></title> <para>Если вашему порту нужно определять, должен ли он устанавливаться @@ -10382,26 +10294,25 @@ etc/orbit.conf.sample </sect1> - <sect1 id="pkg-names"> - <title id="porting-pkgfiles">Изменение имён файлов - <filename>pkg-<replaceable>*</replaceable></filename></title> + <sect1 xml:id="pkg-names"> + <title xml:id="porting-pkgfiles">Изменение имён файлов + <filename>pkg-*</filename></title> <para>Все имена файлов - <filename>pkg-<replaceable>*</replaceable></filename> + <filename>pkg-*</filename> определяются с помощью переменных, так что вы можете изменить их, если это нужно, в вашем файле <filename>Makefile</filename>. Это особенно полезно, если вы используете одни и те же файлы - <filename>pkg-<replaceable>*</replaceable></filename> + <filename>pkg-*</filename> совместно между несколькими портами или - пишете в один из вышеперечисленных файлов (в главе о <link - linkend="porting-wrkdir">записи в каталоги, отличные от - <makevar>WRKDIR</makevar></link> объяснено, почему не рекомендуется + пишете в один из вышеперечисленных файлов (в главе о <link linkend="porting-wrkdir">записи в каталоги, отличные от + <varname>WRKDIR</varname></link> объяснено, почему не рекомендуется осуществлять запись непосредственно в файлы - <filename>pkg-<replaceable>*</replaceable></filename>.</para> + <filename>pkg-*</filename>.</para> <para>Вот список имён переменных и их значений по умолчанию. (Значение - <makevar>PKGDIR</makevar> по умолчанию равно - <makevar>${MASTERDIR}</makevar>.)</para> + <varname>PKGDIR</varname> по умолчанию равно + <varname>${MASTERDIR}</varname>.)</para> <informaltable frame="none" pgwide="0"> <tgroup cols="2"> @@ -10415,27 +10326,27 @@ etc/orbit.conf.sample <tbody> <row> - <entry><makevar>DESCR</makevar></entry> + <entry><varname>DESCR</varname></entry> <entry><literal>${PKGDIR}/pkg-descr</literal></entry> </row> <row> - <entry><makevar>PLIST</makevar></entry> + <entry><varname>PLIST</varname></entry> <entry><literal>${PKGDIR}/pkg-plist</literal></entry> </row> <row> - <entry><makevar>PKGINSTALL</makevar></entry> + <entry><varname>PKGINSTALL</varname></entry> <entry><literal>${PKGDIR}/pkg-install</literal></entry> </row> <row> - <entry><makevar>PKGREQ</makevar></entry> + <entry><varname>PKGREQ</varname></entry> <entry><literal>${PKGDIR}/pkg-req</literal></entry> </row> <row> - <entry><makevar>PKGMESSAGE</makevar></entry> + <entry><varname>PKGMESSAGE</varname></entry> <entry><literal>${PKGDIR}/pkg-message</literal></entry> </row> </tbody> @@ -10443,45 +10354,45 @@ etc/orbit.conf.sample </informaltable> <para>Пожалуйста, изменяйте значения этих переменных, а не - переопределяйте <makevar>PKG_ARGS</makevar>. Если вы измените - значение переменных <makevar>PKG_ARGS</makevar>, то эти файлы при + переопределяйте <varname>PKG_ARGS</varname>. Если вы измените + значение переменных <varname>PKG_ARGS</varname>, то эти файлы при установке из порта будут установлены в каталог <filename>/var/db/pkg</filename> некорректно.</para> </sect1> - <sect1 id="using-sub-files"> - <title>Использование <makevar>SUB_FILES</makevar> и - <makevar>SUB_LIST</makevar></title> + <sect1 xml:id="using-sub-files"> + <title>Использование <varname>SUB_FILES</varname> и + <varname>SUB_LIST</varname></title> - <para>Переменные <makevar>SUB_FILES</makevar> и - <makevar>SUB_LIST</makevar> подходят для задания в файлах порта - динамических значений, таких как <makevar>PREFIX</makevar> установки + <para>Переменные <varname>SUB_FILES</varname> и + <varname>SUB_LIST</varname> подходят для задания в файлах порта + динамических значений, таких как <varname>PREFIX</varname> установки в <filename>pkg-message</filename>.</para> - <para>В переменной <makevar>SUB_FILES</makevar> указывается перечень + <para>В переменной <varname>SUB_FILES</varname> указывается перечень файлов для автоматического изменения. Каждый - <replaceable>file</replaceable> из перечня <makevar>SUB_FILES</makevar> + <replaceable>file</replaceable> из перечня <varname>SUB_FILES</varname> обязан иметь соответствующий - <filename><replaceable>file</replaceable>.in</filename>, - присутствующий в <makevar>FILESDIR</makevar>. Измененная версия - будет создана в <makevar>WRKDIR</makevar>. Файлы, определенные в - качестве значения <makevar>USE_RC_SUBR</makevar> (или устаревшего - <makevar>USE_RCORDER</makevar>), автоматически добавляются в - <makevar>SUB_FILES</makevar>. Для файлов + <filename>file.in</filename>, + присутствующий в <varname>FILESDIR</varname>. Измененная версия + будет создана в <varname>WRKDIR</varname>. Файлы, определенные в + качестве значения <varname>USE_RC_SUBR</varname> (или устаревшего + <varname>USE_RCORDER</varname>), автоматически добавляются в + <varname>SUB_FILES</varname>. Для файлов <filename>pkg-message</filename>, <filename>pkg-install</filename>, <filename>pkg-deinstall</filename> и <filename>pkg-req</filename> устанавливается соответствующая переменная Makefile, указывающая на обработанную версию.</para> - <para>Переменная <makevar>SUB_LIST</makevar> содержит перечень пар + <para>Переменная <varname>SUB_LIST</varname> содержит перечень пар <literal>VAR=VALUE</literal>. В каждом файле из - <makevar>SUB_FILES</makevar> для каждой пары будет произведена + <varname>SUB_FILES</varname> для каждой пары будет произведена замена <literal>%%VAR%%</literal> на <literal>VALUE</literal>. Некоторые общие пары определяются автоматически: - <makevar>PREFIX</makevar>, <makevar>LOCALBASE</makevar>, - <makevar>DATADIR</makevar>, - <makevar>DOCSDIR</makevar>, <makevar>EXAMPLESDIR</makevar>, - <makevar>WWWDIR</makevar> и <makevar>ETCDIR</makevar>. + <varname>PREFIX</varname>, <varname>LOCALBASE</varname>, + <varname>DATADIR</varname>, + <varname>DOCSDIR</varname>, <varname>EXAMPLESDIR</varname>, + <varname>WWWDIR</varname> и <varname>ETCDIR</varname>. Любая строка, начинающаяся с <literal>@comment</literal>, будет удалена из конечного файла после подстановки переменной.</para> @@ -10492,7 +10403,7 @@ etc/orbit.conf.sample <programlisting>SUB_FILES= pkg-message SUB_LIST= ARCH=${ARCH}</programlisting> - <para>Обратите внимание, что в этом примере в <makevar>FILESDIR</makevar> + <para>Обратите внимание, что в этом примере в <varname>FILESDIR</varname> обязательно существование файла <filename>pkg-message.in</filename>. </para> @@ -10505,10 +10416,10 @@ as .putsy.conf and edit it.</programlisting> </sect1> </chapter> - <chapter id="testing"> + <chapter xml:id="testing"> <title>Тестирование вашего порта</title> - <sect1 id="make-describe"> + <sect1 xml:id="make-describe"> <title>Запуск <command>make describe</command></title> <para>Некоторые утилиты &os; для сопровождения портов, например, @@ -10545,11 +10456,10 @@ as .putsy.conf and edit it.</programlisting> <command>make describe</command>.</para> </sect1> - <sect1 id="testing-portlint"> + <sect1 xml:id="testing-portlint"> <title>Portlint</title> - <para>Проверьте свою работу командой <link - linkend="porting-portlint"><command>portlint</command></link> + <para>Проверьте свою работу командой <link linkend="porting-portlint"><command>portlint</command></link> перед тем, как её отослать или перенести в дерево портов. <command>portlint</command> предупреждает вас о многих распространённых ошибках, как функциональных, так и стилистических. @@ -10566,50 +10476,49 @@ as .putsy.conf and edit it.</programlisting> спросить в &a.ports;.</para> </sect1> - <sect1 id="testing-porttools"> + <sect1 xml:id="testing-porttools"> <title>Port Tools</title> - <para>Программа <filename role="package">ports-mgmt/porttools</filename> + <para>Программа <package>ports-mgmt/porttools</package> входит в состав Коллекции Портов.</para> <para><command>port</command> является сценарием переднего плана, который может упростить вам задачу тестирования. Если вы хотите проверить новый порт или обновить существующий, то вы можете использовать <command>port test</command> для проверки вашего порта, - включая проверку <link - linkend="testing-portlint"><command>portlint</command></link>. Эта + включая проверку <link linkend="testing-portlint"><command>portlint</command></link>. Эта команда также находит и отображает любые файлы, которые невключенные в <filename>pkg-plist</filename>. Смотрите следующий пример:</para> <screen>&prompt.root; <userinput>port test /usr/ports/net/csup</userinput></screen> </sect1> - <sect1 id="porting-prefix"> - <title><makevar>PREFIX</makevar> и <makevar>DESTDIR</makevar></title> + <sect1 xml:id="porting-prefix"> + <title><varname>PREFIX</varname> и <varname>DESTDIR</varname></title> - <para>Переменная <makevar>PREFIX</makevar> определяет, куда будет + <para>Переменная <varname>PREFIX</varname> определяет, куда будет установлен порт. По умолчанию это <filename>/usr/local</filename>, но может меняться пользователем на собственный путь, такой как <filename>/opt</filename>. В вашем порту значение этой переменной должно учитываться.</para> - <para>Если пользователь установил переменную <makevar>DESTDIR</makevar>, + <para>Если пользователь установил переменную <varname>DESTDIR</varname>, то она определяет полное альтернативное окружение, обычно, это jail или установленная система, смонтированная в месте, отличном от <filename>/</filename>. На самом деле порт устанавливается в - <filename><makevar>DESTDIR</makevar>/<makevar>PREFIX</makevar></filename> + <filename>DESTDIR/PREFIX</filename> и регистрируется в базе данных пакетов в - <filename><makevar>DESTDIR</makevar>/var/db/pkg</filename>. - Поскольку управление <makevar>DESTDIR</makevar> производится + <filename>DESTDIR/var/db/pkg</filename>. + Поскольку управление <varname>DESTDIR</varname> производится автоматически инфраструктурой портов с помощью &man.chroot.8;, вам не нужны никакие изменения или проявление особой осторожности - при написании <makevar>DESTDIR</makevar>-совместимых портов.</para> + при написании <varname>DESTDIR</varname>-совместимых портов.</para> - <para>Значение переменной <makevar>PREFIX</makevar> будет установлено - в <makevar>LOCALBASE</makevar> (по умолчанию + <para>Значение переменной <varname>PREFIX</varname> будет установлено + в <varname>LOCALBASE</varname> (по умолчанию <filename>/usr/local</filename>). Если - задана переменная <makevar>USE_LINUX_PREFIX</makevar>, то - <makevar>PREFIX</makevar> примет значение <makevar>LINUXBASE</makevar> + задана переменная <varname>USE_LINUX_PREFIX</varname>, то + <varname>PREFIX</varname> примет значение <varname>LINUXBASE</varname> (по умолчанию <filename>/compat/linux</filename>).</para> <para>Избегание явно прописываемых путей <filename>/usr/local</filename> @@ -10623,25 +10532,25 @@ as .putsy.conf and edit it.</programlisting> <para>Проверьте, что ваше приложение не устанавливает чего-либо в каталог <filename>/usr/local</filename> вместо - <makevar>PREFIX</makevar>. Наличие явно указанных путей можно быстро + <varname>PREFIX</varname>. Наличие явно указанных путей можно быстро проверить следующим образом:</para> <screen>&prompt.root; <userinput>make clean; make package PREFIX=/var/tmp/`make -V PORTNAME`</userinput></screen> <para>Если что-то было установлено за пределами - <makevar>PREFIX</makevar>, то процесс создания пакета сообщит об + <varname>PREFIX</varname>, то процесс создания пакета сообщит об отсутствии файлов.</para> <para>Этот тест не найдет явно указанных путей внутри файлов порта - и не проверит корректность использования <makevar>LOCALBASE</makevar> + и не проверит корректность использования <varname>LOCALBASE</varname> в качестве ссылки на файлы из других портов. Порт, временно установленный в <filename>/var/tmp/`make -V PORTNAME`</filename>, следует проверять на работоспособность, чтобы убедиться в отсутствии проблем с путями.</para> - <para>Переменная <makevar>PREFIX</makevar> не должна задаваться явно в + <para>Переменная <varname>PREFIX</varname> не должна задаваться явно в файле <filename>Makefile</filename> порта. Пользователи при установке - порта могут задать в <makevar>PREFIX</makevar> свое собственное + порта могут задать в <varname>PREFIX</varname> свое собственное место, и порт должен учитывать это значение.</para> <para>Обратитесь к программам/файлам из других портов с @@ -10653,13 +10562,13 @@ as .putsy.conf and edit it.</programlisting> <programlisting>-DPAGER=\"${LOCALBASE}/bin/less\"</programlisting> - <para>Путь с использованием <makevar>LOCALBASE</makevar> имеет больше + <para>Путь с использованием <varname>LOCALBASE</varname> имеет больше шансов оставаться работоспособным, если системный администратор переместил всё дерево <filename>/usr/local</filename> куда-то в другое место.</para> </sect1> - <sect1 id="testing-tinderbox"> + <sect1 xml:id="testing-tinderbox"> <title>Tinderbox</title> <para>Если вы алчный контрибутор портов, то вы можете захотеть @@ -10667,17 +10576,16 @@ as .putsy.conf and edit it.</programlisting> система построения и тестирования портов, основанная на сценариях, используемых в <link linkend="build-cluster">Pointyhat</link>. <application>Tinderbox</application> можно установить, используя - порт <filename role="package">ports-mgmt/tinderbox</filename>. + порт <package>ports-mgmt/tinderbox</package>. Обязательно прочитайте поставляемую документацию, поскольку конфигурация не является тривиальной.</para> - <para>Для получения подробностей посетите <ulink - url="http://tinderbox.marcuscom.com/">вебсайт Tinderbox</ulink>.</para> + <para>Для получения подробностей посетите <link xlink:href="http://tinderbox.marcuscom.com/">вебсайт Tinderbox</link>.</para> </sect1> </chapter> - <chapter id="port-upgrading"> + <chapter xml:id="port-upgrading"> <title>Обновление отдельного порта</title> <para>Если вы заметите, что ваш порт устарел по сравнению с последней @@ -10688,15 +10596,14 @@ as .putsy.conf and edit it.</programlisting> наверное, будет проще использовать <application>Subversion</application> или &man.portsnap.8; для поддержания всей коллекции портов в актуальном состоянии, как это - описано в <ulink url="&url.books.handbook;/ports-using.html"> - Руководстве</ulink>. К тому же это даст возможность отслеживать все + описано в <link xlink:href="&url.books.handbook;/ports-using.html"> + Руководстве</link>. К тому же это даст возможность отслеживать все зависимости портов.</para> <para>На следующем шаге необходимо выяснить, нет ожидает ли уже это обновление своей очереди. Для этого у вас есть две возможности. - Существует интерфейс к <ulink - url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">базе - данных сообщений о проблемах FreeBSD (PR)</ulink> (известной также как + Существует интерфейс к <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">базе + данных сообщений о проблемах FreeBSD (PR)</link> (известной также как <literal>GNATS</literal>) с поисковыми возможностями. Выберите из выпадающего списка <literal>ports</literal> и введите название порта.</para> @@ -10707,9 +10614,8 @@ as .putsy.conf and edit it.</programlisting> FreeBSD</link> (которая известна также как <literal>portsmon</literal>). В рамках этой системы делается попытка классифицировать PR, касающиеся портов, по имени порта. Для поиска - PR, относящихся к определённому порту, используйте механизм <ulink - url="http://portsmon.FreeBSD.org/portoverview.py">Просмотра - по одному порту</ulink>.</para> + PR, относящихся к определённому порту, используйте механизм <link xlink:href="http://portsmon.FreeBSD.org/portoverview.py">Просмотра + по одному порту</link>.</para> <para>Если таких отложенных PR не существует, то на следующем этапе следует послать сообщение электронной почты человеку, поддерживающему @@ -10734,7 +10640,7 @@ as .putsy.conf and edit it.</programlisting> <replaceable>something</replaceable>, а затем создайте ваше патч:</para> <informalexample> - <screen>&prompt.user; <userinput>diff -u something.orig something > something.diff</userinput></screen> + <screen>&prompt.user; <userinput>diff -u something.orig something > something.diff</userinput></screen> </informalexample> <para>В противном случае, вам следует воспользоваться методом @@ -10765,9 +10671,8 @@ as .putsy.conf and edit it.</programlisting> пожалуйста, подумайте над тем, чтобы добровольно стать его сопровождающим. Во &os; имеется более 4000 портов без поддержки, и это как раз та область, где всегда нужны добровольцы. (Детальное описание - обязанностей сопровождающего можно найти в разделе в <ulink - url="&url.books.developers-handbook;/policies.html#POLICIES-MAINTAINER"> - Руководстве Разработчика</ulink>.)</para> + обязанностей сопровождающего можно найти в разделе в <link xlink:href="&url.books.developers-handbook;/policies.html#POLICIES-MAINTAINER"> + Руководстве Разработчика</link>.)</para> <para>Лучше всего послать нам diff-файл, включив его в посылку по команде &man.send-pr.1; (категория <literal>ports</literal>). Если вы @@ -10784,8 +10689,8 @@ as .putsy.conf and edit it.</programlisting> в PR.</para> <para>Прежде чем пользоваться &man.send-pr.1; вы должны просмотреть раздел - о <ulink url="&url.articles.problem-reports;/pr-writing.html">Написании - сообщений о проблемах</ulink> в статье о Сообщениях об ошибках; он + о <link xlink:href="&url.articles.problem-reports;/pr-writing.html">Написании + сообщений о проблемах</link> в статье о Сообщениях об ошибках; он содержит гораздо больше информации о том, как писать полезные сообщения о проблемах.</para> @@ -10806,10 +10711,9 @@ as .putsy.conf and edit it.</programlisting> </note> <para>Теперь, когда вы проделали всё это, вам может понадобиться - прочесть о том, как поддерживать актуальное состояние, в <xref - linkend="keeping-up"/>.</para> + прочесть о том, как поддерживать актуальное состояние, в <xref linkend="keeping-up"/>.</para> - <sect1 id="svn-diff"> + <sect1 xml:id="svn-diff"> <title>Использование <literal>SVN</literal> для создания патчей</title> <para>По возможности присылайте исправления в формате &man.svn.1; diff; @@ -10820,25 +10724,23 @@ as .putsy.conf and edit it.</programlisting> не отправите ваши изменения, либо если коммиттер попросит вас исправить что-то еще.</para> - <screen>&prompt.user; <userinput>cd ~/my_wrkdir</userinput> <co id="my-wrkdir"/> -&prompt.user; <userinput>svn co <replaceable>https://svn0.us-west.FreeBSD.org</replaceable>/ports/head/dns/pdnsd</userinput> <co id="svn-FreeBSD-org"/> + <screen>&prompt.user; <userinput>cd ~/my_wrkdir</userinput> <co xml:id="my-wrkdir"/> +&prompt.user; <userinput>svn co https://svn0.us-west.FreeBSD.org/ports/head/dns/pdnsd</userinput> <co xml:id="svn-FreeBSD-org"/> &prompt.user; <userinput>cd ~/my_wrkdir/pdnsd</userinput></screen> <calloutlist> <callout arearefs="my-wrkdir"> <para>Это может быть где угодно; место, в котором производится построение портов, не привязано к - <filename class="directory">/usr/ports/</filename>.</para> + <filename>/usr/ports/</filename>.</para> </callout> <callout arearefs="svn-FreeBSD-org"> - <para><ulink - url="https://svn0.us-west.FreeBSD.org/">svn0.us-west.FreeBSD.org</ulink> + <para><link xlink:href="https://svn0.us-west.FreeBSD.org/">svn0.us-west.FreeBSD.org</link> — это общедоступный <literal>SVN</literal> сервер. Выберите ближайшее зеркало и проверьте сертификат - зеркалирующего сервера на наличие в перечне <ulink - url="&url.books.handbook;/svn-mirrors.html">зеркалирующих - сайтов Subversion</ulink>.</para> + зеркалирующего сервера на наличие в перечне <link xlink:href="&url.books.handbook;/svn-mirrors.html">зеркалирующих + сайтов Subversion</link>.</para> </callout> </calloutlist> @@ -10855,7 +10757,7 @@ as .putsy.conf and edit it.</programlisting> <xref linkend="porting-portlint"/>.</para> <screen>&prompt.user; <userinput>svn status</userinput> -&prompt.user; <userinput>svn update</userinput> <co id="svn-update"/></screen> +&prompt.user; <userinput>svn update</userinput> <co xml:id="svn-update"/></screen> <calloutlist> <callout arearefs="svn-update"> @@ -10867,7 +10769,7 @@ as .putsy.conf and edit it.</programlisting> </callout> </calloutlist> - <table pgwide="1" frame="none" id="table-svn-up"> + <table pgwide="1" frame="none" xml:id="table-svn-up"> <title>Префиксы файлов для <literal>SVN</literal> update</title> <tgroup cols="2"> @@ -10926,7 +10828,7 @@ as .putsy.conf and edit it.</programlisting> <xref linkend="port-upgrading"/>.</para> </sect1> - <sect1 id="moved-and-updating-files"> + <sect1 xml:id="moved-and-updating-files"> <title>Файлы <filename>UPDATING</filename> и <filename>MOVED</filename></title> @@ -10969,10 +10871,10 @@ as .putsy.conf and edit it.</programlisting> </sect1> </chapter> - <chapter id="security"> + <chapter xml:id="security"> <title>Безопасность портов</title> - <sect1 id="security-intro"> + <sect1 xml:id="security-intro"> <title>Почему безопасность так важна</title> <para>Ошибки в программном обеспечении появляются случайно. Возможно, @@ -11009,7 +10911,7 @@ as .putsy.conf and edit it.</programlisting> предпринять подходящие меры.</para> </sect1> - <sect1 id="security-fix"> + <sect1 xml:id="security-fix"> <title>Исправление уязвимостей безопасности</title> <para>Что касается портов и пакетов, уязвимость безопасности @@ -11019,7 +10921,7 @@ as .putsy.conf and edit it.</programlisting> и вам лишь понадобится сразу обновить порт в соответствии с исправлением автора. Если исправление по какой-то причине задерживается, вам следует либо <link linkend="dads-noinstall">пометить - порт как <makevar>FORBIDDEN</makevar></link>, либо добавить в порт + порт как <varname>FORBIDDEN</varname></link>, либо добавить в порт ваш собственный патч. В случае уязвимости порта просто исправьте этот порт как можно скорее. В любом случае нужно следовать <link linkend="port-upgrading">стандартной процедуре отправки вашего @@ -11038,21 +10940,21 @@ as .putsy.conf and edit it.</programlisting> запустить обновление. Кроме того, новый пакет будет собран и распространен через FTP и WWW зеркала, замещая уязвимый. Если в процессе исправления уязвимости не было изменено значение - <makevar>PORTVERSION</makevar>, то должно быть увеличено значение - <makevar>PORTREVISION</makevar>. Вам следует увеличить значение - <makevar>PORTREVISION</makevar> после добавления в порт файла с + <varname>PORTVERSION</varname>, то должно быть увеличено значение + <varname>PORTREVISION</varname>. Вам следует увеличить значение + <varname>PORTREVISION</varname> после добавления в порт файла с патчем, но не когда вы обновили порт до последней версии программного обеспечения, попутно затронув при этом - <makevar>PORTVERSION</makevar>. За дальнейшей информацией + <varname>PORTVERSION</varname>. За дальнейшей информацией обращайтесь к <link linkend="makefile-naming-revepoch">соответствующему разделу</link>.</para> </sect1> - <sect1 id="security-notify"> + <sect1 xml:id="security-notify"> <title>Обеспечение сообщества информацией</title> - <sect2 id="security-notify-vuxml-db"> + <sect2 xml:id="security-notify-vuxml-db"> <title>База данных VuXML</title> <para>Очень важным и первостепенным шагом при действии как можно @@ -11071,8 +10973,7 @@ as .putsy.conf and edit it.</programlisting> каждому случаю выпускать бюллетень безопасности без создания флуда и потери внимания сообщества к моменту появления действительно серьезных причин. Поэтому уязвимости безопасности, - обнаруженные в портах, записываются в <ulink - url="http://vuxml.freebsd.org/">базу данных FreeBSD VuXML</ulink>. + обнаруженные в портах, записываются в <link xlink:href="http://vuxml.freebsd.org/">базу данных FreeBSD VuXML</link>. Члены Команды Офицеров Безопасности также отслеживают её на предмет появления вопросов, требующих их вмешательства.</para> @@ -11082,16 +10983,14 @@ as .putsy.conf and edit it.</programlisting> менее, если вы не являетесь коммиттером или верите, что нашли исключительно серьезную уязвимость, то не задумываясь свяжитесь с Командой Офицеров Безопасности напрямую - как это описано на странице <ulink - url="http://www.freebsd.org/security/#how">информационной - безопасности FreeBSD</ulink>.</para> + как это описано на странице <link xlink:href="http://www.freebsd.org/security/#how">информационной + безопасности FreeBSD</link>.</para> <para>База данных VuXML является документом XML. Его исходный файл <filename>vuln.xml</filename> - содержится прямо внутри порта <filename - role="package">security/vuxml</filename>. Поэтому полное имя + содержится прямо внутри порта <package>security/vuxml</package>. Поэтому полное имя пути к файлу будет - <filename><envar>PORTSDIR</envar>/security/vuxml/vuln.xml</filename>. + <filename>PORTSDIR/security/vuxml/vuln.xml</filename>. Каждый раз, при обнаружении вами в порте уязвимости безопасности добавьте об этом запись в этот файл. Пока вы не знакомы с VuXML, лучшее, что вы можете сделать, это найти существующую запись, @@ -11099,7 +10998,7 @@ as .putsy.conf and edit it.</programlisting> в качестве шаблона.</para> </sect2> - <sect2 id="security-notify-vuxml-intro"> + <sect2 xml:id="security-notify-vuxml-intro"> <title>Короткое вступление в VuXML</title> <para>В совокупности XML является очень сложным форматом, и его @@ -11118,26 +11017,26 @@ as .putsy.conf and edit it.</programlisting> <para>Теперь рассмотрим настоящую запись VuXML:</para> - <programlisting><vuln vid="f4bc80f4-da62-11d8-90ea-0004ac98a7b9"> <co id="co-vx-vid"/> - <topic>Several vulnerabilities found in Foo</topic> <co id="co-vx-top"/> + <programlisting><vuln vid="f4bc80f4-da62-11d8-90ea-0004ac98a7b9"> <co xml:id="co-vx-vid"/> + <topic>Several vulnerabilities found in Foo</topic> <co xml:id="co-vx-top"/> <affects> <package> - <name>foo</name> <co id="co-vx-nam"/> + <name>foo</name> <co xml:id="co-vx-nam"/> <name>foo-devel</name> <name>ja-foo</name> - <range><ge>1.6</ge><lt>1.9</lt></range> <co id="co-vx-rng"/> + <range><ge>1.6</ge><lt>1.9</lt></range> <co xml:id="co-vx-rng"/> <range><ge>2.*</ge><lt>2.4_1</lt></range> <range><eq>3.0b1</eq></range> </package> <package> - <name>openfoo</name> <co id="co-vx-nm2"/> - <range><lt>1.10_7</lt></range> <co id="co-vx-epo"/> + <name>openfoo</name> <co xml:id="co-vx-nm2"/> + <range><lt>1.10_7</lt></range> <co xml:id="co-vx-epo"/> <range><ge>1.2,1</ge><lt>1.3_1,1</lt></range> </package> </affects> <description> <body xmlns="http://www.w3.org/1999/xhtml"> - <p>J. Random Hacker reports:</p> <co id="co-vx-bdy"/> + <p>J. Random Hacker reports:</p> <co xml:id="co-vx-bdy"/> <blockquote cite="http://j.r.hacker.com/advisories/1"> <p>Several issues in the Foo software may be exploited @@ -11147,23 +11046,23 @@ as .putsy.conf and edit it.</programlisting> </blockquote> </body> </description> - <references> <co id="co-vx-ref"/> - <freebsdsa>SA-10:75.foo</freebsdsa> <co id="co-vx-fsa"/> - <freebsdpr>ports/987654</freebsdpr> <co id="co-vx-fpr"/> - <cvename>CAN-2010-0201</cvename> <co id="co-vx-cve"/> + <references> <co xml:id="co-vx-ref"/> + <freebsdsa>SA-10:75.foo</freebsdsa> <co xml:id="co-vx-fsa"/> + <freebsdpr>ports/987654</freebsdpr> <co xml:id="co-vx-fpr"/> + <cvename>CAN-2010-0201</cvename> <co xml:id="co-vx-cve"/> <cvename>CAN-2010-0466</cvename> - <bid>96298</bid> <co id="co-vx-bid"/> - <certsa>CA-2010-99</certsa> <co id="co-vx-cts"/> - <certvu>740169</certvu> <co id="co-vx-ctv"/> - <uscertsa>SA10-99A</uscertsa> <co id="co-vx-ucs"/> - <uscertta>SA10-99A</uscertta> <co id="co-vx-uct"/> - <mlist msgid="201075606@hacker.com">http://marc.theaimsgroup.com/?l=bugtraq&amp;m=203886607825605</mlist> <co id="co-vx-mls"/> - <url>http://j.r.hacker.com/advisories/1</url> <co id="co-vx-url"/> + <bid>96298</bid> <co xml:id="co-vx-bid"/> + <certsa>CA-2010-99</certsa> <co xml:id="co-vx-cts"/> + <certvu>740169</certvu> <co xml:id="co-vx-ctv"/> + <uscertsa>SA10-99A</uscertsa> <co xml:id="co-vx-ucs"/> + <uscertta>SA10-99A</uscertta> <co xml:id="co-vx-uct"/> + <mlist msgid="201075606@hacker.com">http://marc.theaimsgroup.com/?l=bugtraq&amp;m=203886607825605</mlist> <co xml:id="co-vx-mls"/> + <url>http://j.r.hacker.com/advisories/1</url> <co xml:id="co-vx-url"/> </references> <dates> - <discovery>2010-05-25</discovery> <co id="co-vx-dsc"/> - <entry>2010-07-13</entry> <co id="co-vx-ent"/> - <modified>2010-09-17</modified> <co id="co-vx-mod"/> + <discovery>2010-05-25</discovery> <co xml:id="co-vx-dsc"/> + <entry>2010-07-13</entry> <co xml:id="co-vx-ent"/> + <modified>2010-09-17</modified> <co xml:id="co-vx-mod"/> </dates> </vuln></programlisting> @@ -11263,11 +11162,11 @@ as .putsy.conf and edit it.</programlisting> <callout arearefs="co-vx-epo"> <para>Диапазоны версий должны учитывать - <makevar>PORTEPOCH</makevar> и <makevar>PORTREVISION</makevar>, + <varname>PORTEPOCH</varname> и <varname>PORTREVISION</varname>, если это применимо. Пожалуйста, помните, что в соответствии с правилами сравнения строк версия с ненулевым значением - <makevar>PORTEPOCH</makevar> выше, чем любая версия без - <makevar>PORTEPOCH</makevar>, например, <literal>3.0,1</literal> + <varname>PORTEPOCH</varname> выше, чем любая версия без + <varname>PORTEPOCH</varname>, например, <literal>3.0,1</literal> выше, чем <literal>3.1</literal> или даже <literal>8.9</literal>. </para> </callout> @@ -11288,46 +11187,46 @@ as .putsy.conf and edit it.</programlisting> <callout arearefs="co-vx-fsa"> <para>Это - <ulink url="http://www.freebsd.org/security/#adv">бюллетень - безопасности FreeBSD</ulink>.</para> + <link xlink:href="http://www.freebsd.org/security/#adv">бюллетень + безопасности FreeBSD</link>.</para> </callout> <callout arearefs="co-vx-fpr"> <para>Это - <ulink url="http://www.freebsd.org/support.html#gnats">сообщение - об ошибке FreeBSD</ulink>.</para> + <link xlink:href="http://www.freebsd.org/support.html#gnats">сообщение + об ошибке FreeBSD</link>.</para> </callout> <callout arearefs="co-vx-cve"> <para>Идентификатор - <ulink url="http://www.cve.mitre.org/">MITRE - CVE</ulink>.</para> + <link xlink:href="http://www.cve.mitre.org/">MITRE + CVE</link>.</para> </callout> <callout arearefs="co-vx-bid"> <para>Это - <ulink url="http://www.securityfocus.com/bid">SecurityFocus - Bug ID</ulink>.</para> + <link xlink:href="http://www.securityfocus.com/bid">SecurityFocus + Bug ID</link>.</para> </callout> <callout arearefs="co-vx-cts"> <para>Бюллетень безопасности - <ulink url="http://www.cert.org/">US-CERT</ulink>.</para> + <link xlink:href="http://www.cert.org/">US-CERT</link>.</para> </callout> <callout arearefs="co-vx-ctv"> <para>Примечание к уязвимости - <ulink url="http://www.cert.org/">US-CERT</ulink>.</para> + <link xlink:href="http://www.cert.org/">US-CERT</link>.</para> </callout> <callout arearefs="co-vx-ucs"> <para>Уведомление системы Cyber Security Alert - <ulink url="http://www.cert.org/">US-CERT</ulink>.</para> + <link xlink:href="http://www.cert.org/">US-CERT</link>.</para> </callout> <callout arearefs="co-vx-uct"> <para>Уведомление системы Technical Cyber Security Alert - <ulink url="http://www.cert.org/">US-CERT</ulink>.</para> + <link xlink:href="http://www.cert.org/">US-CERT</link>.</para> </callout> <callout arearefs="co-vx-mls"> @@ -11350,7 +11249,7 @@ as .putsy.conf and edit it.</programlisting> </calloutlist> </sect2> - <sect2 id="security-notify-vuxml-testing"> + <sect2 xml:id="security-notify-vuxml-testing"> <title>Тестирование ваших изменений в базе данных VuXML</title> <para>Предположим, что вы только что написали или заполнили запись @@ -11359,24 +11258,24 @@ as .putsy.conf and edit it.</programlisting> <para>Прежде всего, вам нужно <emphasis>установить</emphasis> последние версии портов - <filename role="package">ports-mgmt/portaudit</filename>, - <filename role="package">ports-mgmt/portaudit-db</filename> и - <filename role="package">security/vuxml</filename>.</para> + <package>ports-mgmt/portaudit</package>, + <package>ports-mgmt/portaudit-db</package> и + <package>security/vuxml</package>.</para> <note> <para>Для запуска <command>packaudit</command> вы должны обладать правами на запись в - <filename><makevar>DATABASEDIR</makevar></filename>; как правило, + <filename>DATABASEDIR</filename>; как правило, это <filename>/var/db/portaudit</filename>.</para> <para>Для использования другого каталога присвойте переменной - окружения <filename><makevar>DATABASEDIR</makevar></filename> + окружения <filename>DATABASEDIR</filename> другой путь.</para> <para>Если вы работаете в каталоге, отличном от <filename>${PORTSDIR}/security/vuxml</filename>, присвойте переменной окружения - <filename><makevar>VUXMLDIR</makevar></filename> путь к каталогу, + <filename>VUXMLDIR</filename> путь к каталогу, в котором находится <filename>vuln.xml</filename>.</para> </note> @@ -11399,8 +11298,8 @@ as .putsy.conf and edit it.</programlisting> <note> <para>Вам понадобится установить по крайней мере один из следующих - пакетов: <filename role="package">textproc/libxml2</filename>, - <filename role="package">textproc/jade</filename>.</para> + пакетов: <package>textproc/libxml2</package>, + <package>textproc/jade</package>.</para> </note> <para>Теперь выполните перепостроение базы данных @@ -11412,7 +11311,7 @@ as .putsy.conf and edit it.</programlisting> в вашей записи совпадает с правильными пакетами, выполните следующую команду:</para> - <screen>&prompt.user; <userinput>portaudit -f /usr/ports/INDEX -r <replaceable>uuid</replaceable></userinput></screen> + <screen>&prompt.user; <userinput>portaudit -f /usr/ports/INDEX -r uuid</userinput></screen> <note> <para>Для лучшего понимания синтаксиса этой команды обращайтесь @@ -11445,59 +11344,56 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 </sect1> </chapter> - <chapter id="porting-dads"> + <chapter xml:id="porting-dads"> <title>Что делать нужно, и что делать нельзя</title> - <sect1 id="dads-intro"> + <sect1 xml:id="dads-intro"> <title>Введение</title> <para>Вот список часто встречающихся действий, которые нужно и которые нельзя делать во время процесса портирования. Вы должны проверять ваш - порт по этому списку, и вы также можете проверять порты в <ulink - url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">базе - сообщений PR</ulink>, которые присланы другими людьми. Присылайте + порт по этому списку, и вы также можете проверять порты в <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">базе + сообщений PR</link>, которые присланы другими людьми. Присылайте любые комментарии о портах, которые вы проверили, так, как это описано - в статье о <ulink - url="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL"> - Сообщениях об ошибках и общих замечаниях</ulink>. Проверка портов в + в статье о <link xlink:href="&url.articles.contributing;/contrib-how.html#CONTRIB-GENERAL"> + Сообщениях об ошибках и общих замечаниях</link>. Проверка портов в базе сообщений PR позволит нам быстрее коммиттить их и удостовериться, что вы знаете, что делаете.</para> </sect1> - <sect1 id="porting-wrkdir"> - <title><makevar>WRKDIR</makevar></title> + <sect1 xml:id="porting-wrkdir"> + <title><varname>WRKDIR</varname></title> - <para>Не пишите ничего в файлы вне каталога <makevar>WRKDIR</makevar>. - Каталог <makevar>WRKDIR</makevar> является единственным местом, + <para>Не пишите ничего в файлы вне каталога <varname>WRKDIR</varname>. + Каталог <varname>WRKDIR</varname> является единственным местом, которое гарантированно будет доступно для записи во время построения - порта (обратитесь к главе о <ulink - url="&url.books.handbook;/ports-using.html#PORTS-CD">установке портов с - CDROM</ulink> за + порта (обратитесь к главе о <link xlink:href="&url.books.handbook;/ports-using.html#PORTS-CD">установке портов с + CDROM</link> за примером построения портов из дерева, доступного только для чтения). Если вам нужно изменить какой-либо из файлов - <filename>pkg-<replaceable>*</replaceable></filename>, сделайте это, + <filename>pkg-*</filename>, сделайте это, <link linkend="porting-pkgfiles">переопределив переменную</link>, но не перезаписывая их.</para> </sect1> - <sect1 id="porting-wrkdirprefix"> - <title><makevar>WRKDIRPREFIX</makevar></title> + <sect1 xml:id="porting-wrkdirprefix"> + <title><varname>WRKDIRPREFIX</varname></title> <para>Добейтесь того, чтобы ваш порт принимал во внимание значение - переменной <makevar>WRKDIRPREFIX</makevar>. Большинство портов об + переменной <varname>WRKDIRPREFIX</varname>. Большинство портов об этом не заботятся. В частности, если вы обращаетесь к каталогу - <makevar>WRKDIR</makevar> другого порта, заметьте, что его правильным + <varname>WRKDIR</varname> другого порта, заметьте, что его правильным местоположением является - <filename><makevar>WRKDIRPREFIX</makevar><makevar>PORTSDIR</makevar>/<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> not <filename><makevar>PORTSDIR</makevar>/<replaceable>subdir</replaceable>/work</filename> - или <filename><makevar>.CURDIR</makevar>/../../<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> + <filename>WRKDIRPREFIXPORTSDIR/subdir/name/work</filename> not <filename>PORTSDIR/subdir/work</filename> + или <filename>.CURDIR/../../subdir/name/work</filename> или что-то подобное.</para> - <para>Кроме того, если вы сами задаете <makevar>WRKDIR</makevar>, то + <para>Кроме того, если вы сами задаете <varname>WRKDIR</varname>, то должны поставить перед ним знак <literal>${WRKDIRPREFIX}${.CURDIR}</literal>.</para> </sect1> - <sect1 id="porting-versions"> + <sect1 xml:id="porting-versions"> <title>Различение операционных систем и версий ОС</title> <para>Вы можете встретиться с кодом, который требует модификаций @@ -11505,8 +11401,7 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 Unix он работает. Предпочтительным способом отделения кода для версий &os; является использование макросов <literal>__FreeBSD_version</literal> и - <literal>__FreeBSD__</literal>, определённых в файле <ulink - url="http://svnweb.freebsd.org/base/head/sys/sys/param.h?view=markup">sys/param.h</ulink>. + <literal>__FreeBSD__</literal>, определённых в файле <link xlink:href="http://svnweb.freebsd.org/base/head/sys/sys/param.h?view=markup">sys/param.h</link>. Если этот файл не подключен, добавьте код</para> <programlisting>#include <sys/param.h></programlisting> @@ -11526,7 +11421,7 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 </para> </sect1> - <sect1 id="dads-after-port-mk"> + <sect1 xml:id="dads-after-port-mk"> <title>Написание чего-либо после <filename>bsd.port.mk</filename></title> @@ -11565,44 +11460,42 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 <tbody> <row> - <entry><makevar>ARCH</makevar></entry> + <entry><varname>ARCH</varname></entry> <entry>Архитектура машины в виде, получаемом по команде <command>uname -m</command> (например, <literal>i386</literal>)</entry> </row> <row> - <entry><makevar>OPSYS</makevar></entry> + <entry><varname>OPSYS</varname></entry> <entry>Тип операционной системы, получаемый по команде <command>uname -s</command> (например, <literal>FreeBSD</literal>)</entry> </row> <row> - <entry><makevar>OSREL</makevar></entry> + <entry><varname>OSREL</varname></entry> <entry>Версия релиза операционной системы (например, <literal>2.1.5</literal> или <literal>2.2.7</literal>)</entry> </row> <row> - <entry><makevar>OSVERSION</makevar></entry> + <entry><varname>OSVERSION</varname></entry> - <entry>Версия операционной системы в виде числа, та же, что и <link - linkend="freebsd-versions"> + <entry>Версия операционной системы в виде числа, та же, что и <link linkend="freebsd-versions"> <literal>__FreeBSD_version</literal></link>.</entry> </row> <row> - <entry><makevar>LOCALBASE</makevar></entry> + <entry><varname>LOCALBASE</varname></entry> <entry>Корень дерева <quote>local</quote> (например, <literal>/usr/local</literal>)</entry> </row> <row> - <entry><makevar>PREFIX</makevar></entry> - <entry>Куда, собственно, устанавливается порт (обратитесь к <link - linkend="porting-prefix"> - подробной информации о <makevar>PREFIX</makevar></link>).</entry> + <entry><varname>PREFIX</varname></entry> + <entry>Куда, собственно, устанавливается порт (обратитесь к <link linkend="porting-prefix"> + подробной информации о <varname>PREFIX</varname></link>).</entry> </row> </tbody> </tgroup> @@ -11610,7 +11503,7 @@ Reference: <http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00 <note> <para>Если вы задаете переменную - <makevar>MASTERDIR</makevar>, делайте это до + <varname>MASTERDIR</varname>, делайте это до подключения <filename>bsd.port.pre.mk</filename>.</para> </note> @@ -11627,7 +11520,7 @@ BROKEN= perl is in system не так ли? <!-- улыбка -->:-).</para> </sect1> - <sect1 id="dads-sh-exec"> + <sect1 xml:id="dads-sh-exec"> <title>Использование выражения <function>exec</function> в сценариях обёртках</title> @@ -11647,7 +11540,7 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting> </sect1> - <sect1 id="dads-rational"> + <sect1 xml:id="dads-rational"> <title>Поступайте разумно</title> <para>Файл <filename>Makefile</filename> должен выполнять действия @@ -11656,9 +11549,9 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting> можно привести использование конструкций <literal>.if</literal> утилиты make вместо соответствующей конструкции <literal>if</literal> командного процессора, ненужность переопределения цели - <maketarget>do-extract</maketarget> при возможности переопределения - <makevar>EXTRACT*</makevar> и использование - <makevar>GNU_CONFIGURE</makevar> вместо + <buildtarget>do-extract</buildtarget> при возможности переопределения + <varname>EXTRACT*</varname> и использование + <varname>GNU_CONFIGURE</varname> вместо <literal>CONFIGURE_ARGS+= --prefix=${PREFIX}</literal>.</para> <para>Если вы обнаружите, что для выполнения чего-то приходится писать @@ -11669,12 +11562,12 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting> <filename>bsd.port.mk</filename> уже содержит быстрое решение.</para> </sect1> - <sect1 id="dads-cc"> - <title>Работа как с <makevar>CC</makevar>, так и - <makevar>CXX</makevar></title> + <sect1 xml:id="dads-cc"> + <title>Работа как с <varname>CC</varname>, так и + <varname>CXX</varname></title> <para>Порт должен принимать во внимание как переменную - <makevar>CC</makevar>, так и <makevar>CXX</makevar>. + <varname>CC</varname>, так и <varname>CXX</varname>. Под этим мы подразумеваем, что порт ни в коем случае не должен устанавливать значения этих переменных, переопределяя имеющиеся значения; вместо этого можно добавлять нужные значения к уже @@ -11686,22 +11579,22 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting> в файл <filename>Makefile</filename>.</para> <para>Далее следует пример файла <filename>Makefile</filename>, - использующего как переменную <makevar>CC</makevar>, так и - <makevar>CXX</makevar>. Обратите внимание на использование символов - <makevar>?=</makevar>:</para> + использующего как переменную <varname>CC</varname>, так и + <varname>CXX</varname>. Обратите внимание на использование символов + <varname>?=</varname>:</para> <programlisting>CC?= gcc</programlisting> <programlisting>CXX?= g++</programlisting> <para>Вот пример, в котором не принимаются во внимание ни переменная - <makevar>CC</makevar>, ни <makevar>CXX</makevar>:</para> + <varname>CC</varname>, ни <varname>CXX</varname>:</para> <programlisting>CC= gcc</programlisting> <programlisting>CXX= g++</programlisting> - <para>Обе переменные <makevar>CC</makevar> и <makevar>CXX</makevar> + <para>Обе переменные <varname>CC</varname> и <varname>CXX</varname> могут быть определены в системах FreeBSD в файле <filename>/etc/make.conf</filename>. В первом примере задаётся значение, если оно ранее не было определено в @@ -11710,11 +11603,11 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting> что было задано ранее.</para> </sect1> - <sect1 id="dads-cflags"> - <title>Использование <makevar>CFLAGS</makevar></title> + <sect1 xml:id="dads-cflags"> + <title>Использование <varname>CFLAGS</varname></title> <para>Порт должен принимать во внимание переменную - <makevar>CFLAGS</makevar>. + <varname>CFLAGS</varname>. Под этим мы подразумеваем, что порт ни в коем случае не должен устанавливать значения этих переменных, переопределяя имеющиеся значения; вместо этого можно добавлять нужные значения к уже @@ -11726,29 +11619,29 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting> <filename>Makefile</filename>.</para> <para>Далее следует пример файла <filename>Makefile</filename>, - использующего переменную <makevar>CFLAGS</makevar>. Обратите - внимание на использование символов <makevar>+=</makevar>:</para> + использующего переменную <varname>CFLAGS</varname>. Обратите + внимание на использование символов <varname>+=</varname>:</para> <programlisting> CFLAGS+= -Wall -Werror </programlisting> <para>А вот пример, в котором не учитывается значение переменной - <makevar>CFLAGS</makevar>:</para> + <varname>CFLAGS</varname>:</para> <programlisting> CFLAGS= -Wall -Werror </programlisting> - <para>В системе FreeBSD переменная <makevar>CFLAGS</makevar> определена + <para>В системе FreeBSD переменная <varname>CFLAGS</varname> определена в файле <filename>/etc/make.conf</filename>. В первом примере к - переменной <makevar>CFLAGS</makevar> добавляются дополнительные флаги, + переменной <varname>CFLAGS</varname> добавляются дополнительные флаги, при этом сохраняются все определения, данные ранее на уровне системы. Во втором примере всё, что было задано ранее, игнорируется.</para> <para>Из сторонних файлов <filename>Makefile</filename> следует удалить флаги оптимизации. Общесистемные флаги оптимизации находятся в - системной переменной <makevar>CFLAGS</makevar>. Пример из + системной переменной <varname>CFLAGS</varname>. Пример из немодифицированного <filename>Makefile</filename>:</para> <programlisting>CFLAGS= -O3 -funroll-loops -DHAVE_SOUND</programlisting> @@ -11760,7 +11653,7 @@ CFLAGS= -Wall -Werror </sect1> - <sect1 id="dads-pthread"> + <sect1 xml:id="dads-pthread"> <title>Библиотеки потоков</title> <para>Во &os; библиотека потоков обязана быть скомпонована с @@ -11775,14 +11668,14 @@ CFLAGS= -Wall -Werror <literal>unrecognized option '-pthread'</literal>, то может быть желательно использование <command>cc</command> в качестве компоновщика через установку - <makevar>CONFIGURE_ENV</makevar> в <literal>LD=${CC}</literal>. + <varname>CONFIGURE_ENV</varname> в <literal>LD=${CC}</literal>. Параметр <literal>-pthread</literal> напрямую командой <command>ld</command> не поддерживается.</para> </note> </sect1> - <sect1 id="dads-freedback"> + <sect1 xml:id="dads-freedback"> <title>Пожелания</title> <para>Посылайте подходящие изменения/патчи авторам/сопровождающему @@ -11790,7 +11683,7 @@ CFLAGS= -Wall -Werror гораздо легче при выходе следующего релиза.</para> </sect1> - <sect1 id="dads-readme"> + <sect1 xml:id="dads-readme"> <title><filename>README.html</filename></title> <para>Не включайте сюда файл <filename>README.html</filename>. Этот файл @@ -11799,14 +11692,14 @@ CFLAGS= -Wall -Werror <note> <para>Если не удается выполнить <command>make readme</command>, - убедитесь, что значение по умолчанию <makevar>ECHO_MSG</makevar> + убедитесь, что значение по умолчанию <varname>ECHO_MSG</varname> не было изменено внутри порта.</para> </note> </sect1> - <sect1 id="dads-noinstall"> - <title>Пометка неустанавливаемого порта как <makevar>BROKEN</makevar>, - <makevar>FORBIDDEN</makevar> или <makevar>IGNORE</makevar></title> + <sect1 xml:id="dads-noinstall"> + <title>Пометка неустанавливаемого порта как <varname>BROKEN</varname>, + <varname>FORBIDDEN</varname> или <varname>IGNORE</varname></title> <para>В некоторых случаях пользователи не должны допускаться к установке порта. Для того, чтобы сообщить пользователю, что порт @@ -11823,12 +11716,12 @@ CFLAGS= -Wall -Werror <link linkend="freshports">FreshPorts</link> и <link linkend="portsmon">portsmon</link>.</para> - <sect2 id="dads-noinstall-variables"> + <sect2 xml:id="dads-noinstall-variables"> <title>Переменные</title> <itemizedlist> <listitem> - <para><makevar>BROKEN</makevar> предназначена для портов, которые + <para><varname>BROKEN</varname> предназначена для портов, которые в настоящее время не компилируются, не устанавливаются или не удаляются правильно. Следует использовать для портов, когда проблема считается временной.</para> @@ -11839,7 +11732,7 @@ CFLAGS= -Wall -Werror запускается без этой возможности.)</para> <para>В частности, используйте - <makevar>BROKEN</makevar>, когда порт:</para> + <varname>BROKEN</varname>, когда порт:</para> <itemizedlist> <listitem> @@ -11867,13 +11760,13 @@ CFLAGS= -Wall -Werror </listitem> <listitem> - <para><makevar>FORBIDDEN</makevar> используется для портов, которые + <para><varname>FORBIDDEN</varname> используется для портов, которые содержат уязвимости в информационной безопасности или являются потенциально вредными в плане обеспечения информационной безопасности системы FreeBSD при установке данного порта (например: заведомо небезопасная программа или программа, которая предоставляет легко взламываемые сервисы). Порты должны - помечаться как <makevar>FORBIDDEN</makevar>, как только в + помечаться как <varname>FORBIDDEN</varname>, как только в конкретном программном обеспечении обнаружилась уязвимость, но обновление выпущено не было. В идеальном случае порты должны обновляться максимально быстро после обнаружения уязвимости, @@ -11881,18 +11774,18 @@ CFLAGS= -Wall -Werror репутацию безопасной системы), однако иногда случается значительный временной разрыв между обнаружением уязвимости и выходом обновлённого релиза уязвимого программного обеспечения. - Не помечайте порт как <makevar>FORBIDDEN</makevar>, если причина + Не помечайте порт как <varname>FORBIDDEN</varname>, если причина не вызвана соображениями информационной безопасности.</para> </listitem> <listitem> - <para><makevar>IGNORE</makevar> предназначена для портов, которые + <para><varname>IGNORE</varname> предназначена для портов, которые не должны строиться по какой-либо другой причине. Следует использовать для портов, в случае когда проблема считает конструктивной. Кластер построения ни при каких условиях не будет строить порты, помеченные как - <makevar>IGNORE</makevar>. В частности, используйте - <makevar>IGNORE</makevar>, когда порт:</para> + <varname>IGNORE</varname>. В частности, используйте + <varname>IGNORE</varname>, когда порт:</para> <itemizedlist> <listitem> @@ -11915,9 +11808,8 @@ CFLAGS= -Wall -Werror <listitem> <para>не работает с каким-либо другим портом, установленным - в настоящее время (например, порт зависит от <filename - role="package">www/apache20</filename>, но установлен - <filename role="package">www/apache22</filename>) + в настоящее время (например, порт зависит от <package>www/apache20</package>, но установлен + <package>www/apache22</package>) </para> </listitem> </itemizedlist> @@ -11927,46 +11819,46 @@ CFLAGS= -Wall -Werror (например, если они устанавливают файл в то же место, но с иным функциональным назначением), то <link linkend="conflicts">используйте - вместо этого <makevar>CONFLICTS</makevar></link>. - <makevar>CONFLICTS</makevar> сам установит значение - <makevar>IGNORE</makevar>.</para> + вместо этого <varname>CONFLICTS</varname></link>. + <varname>CONFLICTS</varname> сам установит значение + <varname>IGNORE</varname>.</para> </note> </listitem> <listitem> - <para>Если порт нужно пометить как <makevar>IGNORE</makevar> + <para>Если порт нужно пометить как <varname>IGNORE</varname> только на некоторых архитектурах, для этого есть две другие удобные переменные, которые автоматически установят для вас - значения: <makevar>ONLY_FOR_ARCHS</makevar> и - <makevar>NOT_FOR_ARCHS</makevar>. Примеры:</para> + значения: <varname>ONLY_FOR_ARCHS</varname> и + <varname>NOT_FOR_ARCHS</varname>. Примеры:</para> <programlisting>ONLY_FOR_ARCHS= i386 amd64</programlisting> <programlisting>NOT_FOR_ARCHS= ia64 sparc64</programlisting> - <para>Собственное сообщение <makevar>IGNORE</makevar> можно задать - с использованием <makevar>ONLY_FOR_ARCHS_REASON</makevar> и - <makevar>NOT_FOR_ARCHS_REASON</makevar>. Отдельно для каждой + <para>Собственное сообщение <varname>IGNORE</varname> можно задать + с использованием <varname>ONLY_FOR_ARCHS_REASON</varname> и + <varname>NOT_FOR_ARCHS_REASON</varname>. Отдельно для каждой архитектуры это возможно с использованием - <makevar>ONLY_FOR_ARCHS_REASON_<replaceable>ARCH</replaceable></makevar> + <varname>ONLY_FOR_ARCHS_REASON_<replaceable>ARCH</replaceable></varname> и - <makevar>NOT_FOR_ARCHS_REASON_<replaceable>ARCH</replaceable></makevar>.</para> + <varname>NOT_FOR_ARCHS_REASON_<replaceable>ARCH</replaceable></varname>.</para> </listitem> <listitem> <para>Если порт загружает и устанавливает исполняемые файлы i386, - то следует установить <makevar>IA32_BINARY_PORT</makevar>. + то следует установить <varname>IA32_BINARY_PORT</varname>. Если эта переменная установлена, будет выполнена проверка доступности каталога <filename>/usr/lib32</filename> для библиотек версии IA32 и поддержки IA32 в ядре. При невыполнении любого из этих условий будет автоматически установлена - переменная <makevar>IGNORE</makevar>.</para> + переменная <varname>IGNORE</varname>.</para> </listitem> </itemizedlist> </sect2> - <sect2 id="dads-noinstall-notes"> + <sect2 xml:id="dads-noinstall-notes"> <title>Замечания по реализации</title> <para>Строки не следует брать в кавычки. @@ -11986,24 +11878,24 @@ CFLAGS= -Wall -Werror </sect2> </sect1> - <sect1 id="dads-deprecated"> - <title>Пометка порта на удаление с <makevar>DEPRECATED</makevar> - или <makevar>EXPIRATION_DATE</makevar></title> + <sect1 xml:id="dads-deprecated"> + <title>Пометка порта на удаление с <varname>DEPRECATED</varname> + или <varname>EXPIRATION_DATE</varname></title> - <para>Помните, что <makevar>BROKEN</makevar> и - <makevar>FORBIDDEN</makevar> будут использованы как временное + <para>Помните, что <varname>BROKEN</varname> и + <varname>FORBIDDEN</varname> будут использованы как временное средство, если порт не является работающим. Постоянно неработоспособные порты должны полностью удаляться из дерева.</para> <para>В подходящих ситуациях пользователи могут быть оповещены о - предстоящем удалении через переменные <makevar>DEPRECATED</makevar> - и <makevar>EXPIRATION_DATE</makevar>. Первое - это просто строка, + предстоящем удалении через переменные <varname>DEPRECATED</varname> + и <varname>EXPIRATION_DATE</varname>. Первое - это просто строка, сообщающая причину запланированного удаления порта; вторая является строкой в формате ISO 8601 (YYYY-MM-DD). Обе будут показаны пользователю.</para> - <para>Переменную <makevar>DEPRECATED</makevar> можно установить без - использования <makevar>EXPIRATION_DATE</makevar> (в частности, при + <para>Переменную <varname>DEPRECATED</varname> можно установить без + использования <varname>EXPIRATION_DATE</varname> (в частности, при рекомендации новой версии порта), но обратный порядок не имеет никакого смысла.</para> @@ -12014,7 +11906,7 @@ CFLAGS= -Wall -Werror коммиттерам.</para> </sect1> - <sect1 id="dads-dot-error"> + <sect1 xml:id="dads-dot-error"> <title>Избегайте использования конструкции <literal>.error</literal></title> @@ -12022,19 +11914,18 @@ CFLAGS= -Wall -Werror о том, что порт не может быть установлен из-за какого-то внешнего фактора (например, пользователь указал недопустимую комбинацию опций построения), является установка непустого значения для - <makevar>IGNORE</makevar>. Это значение будет сформатировано и + <varname>IGNORE</varname>. Это значение будет сформатировано и показано пользователю во время <command>make install</command>.</para> <para>Использование для этих целей <literal>.error</literal> является распространенной ошибкой. Проблема в том, что в этой ситуации будут повреждены многие инструменты автоматизации, работающие с деревом портов. Наибольшим образом это распространено при попытке - построить <filename>/usr/ports/INDEX</filename> (смотрите <xref - linkend="make-describe"/>). Тем не менее, даже более простые команды, + построить <filename>/usr/ports/INDEX</filename> (смотрите <xref linkend="make-describe"/>). Тем не менее, даже более простые команды, такие как <command>make maintainer</command>, в этом случае также вернут ошибку. Это не является приемлемым.</para> - <example id="dot-error-breaks-index"> + <example xml:id="dot-error-breaks-index"> <title>Как избегать использование <literal>.error</literal></title> <para>Предположим, что кто-то поместил строку</para> @@ -12055,7 +11946,7 @@ IGNORE=POINTYHAT is not supported </sect1> - <sect1 id="dads-sysctl"> + <sect1 xml:id="dads-sysctl"> <title>Использование <filename>sysctl</filename></title> <para>Использование <filename>sysctl</filename> не рекомендуется, @@ -12065,11 +11956,11 @@ IGNORE=POINTYHAT is not supported команды, еще больше замедляет весь процесс.</para> <para>&man.sysctl.8; следует всегда использовать через переменную - <makevar>SYSCTL</makevar>, поскольку она содержит полностью заданный + <varname>SYSCTL</varname>, поскольку она содержит полностью заданный путь, и при необходимости может быть переопределена.</para> </sect1> - <sect1 id="dads-rerolling-distfiles"> + <sect1 xml:id="dads-rerolling-distfiles"> <title>Меняющиеся дистрибутивные файлы</title> <para>Иногда авторы программного обеспечения меняют содержимое @@ -12090,7 +11981,7 @@ IGNORE=POINTYHAT is not supported обеспечения для подтверждения изменений.</para> </sect1> - <sect1 id="dads-avoiding-linuxisms"> + <sect1 xml:id="dads-avoiding-linuxisms"> <title>Избегание линуксизмов</title> <para>Не используйте <filename>/proc</filename>, если доступны @@ -12132,9 +12023,8 @@ IGNORE=POINTYHAT is not supported конфигурации, и если требуемое поведение не найдено, прекращайте выполнение.</para> - <para>Используйте <ulink - url="http://www.freebsd.org/cgi/man.cgi">страницы - справочника</ulink> для проверки, относится ли функция к + <para>Используйте <link xlink:href="http://www.freebsd.org/cgi/man.cgi">страницы + справочника</link> для проверки, относится ли функция к интерфейсу <acronym>POSIX</acronym> (ищите раздел <quote>STANDARDS</quote> на странице справочника).</para> @@ -12145,11 +12035,10 @@ IGNORE=POINTYHAT is not supported <acronym>POSIX</acronym>-совместимой оболочке.</para> <para>Список основных <application>bash</application>-измов - расположен <ulink - url="https://wiki.ubuntu.com/DashAsBinSh">здесь</ulink>.</para> + расположен <link xlink:href="https://wiki.ubuntu.com/DashAsBinSh">здесь</link>.</para> <para>Не используйте <literal>#include - <filename><stdint.h></filename></literal>, если + <stdint.h></literal>, если достаточно подключить <filename>inttypes.h</filename>. Это позволит убедиться, что программное обеспечение собирается на более старых версиях &os;.</para> @@ -12165,7 +12054,7 @@ IGNORE=POINTYHAT is not supported как-либо ещё.</para> </sect1> - <sect1 id="dads-misc"> + <sect1 xml:id="dads-misc"> <title>Разное</title> <para>Файлы <filename>pkg-descr</filename> и @@ -12182,7 +12071,7 @@ IGNORE=POINTYHAT is not supported </chapter> - <chapter id="porting-samplem"> + <chapter xml:id="porting-samplem"> <title>Примерный <filename>Makefile</filename></title> <para>Вот примерный <filename>Makefile</filename>, который можно @@ -12192,8 +12081,7 @@ IGNORE=POINTYHAT is not supported <para>Вам рекомендуется следовать этому формату (соблюдая порядок следования переменных, пустые строки между разделами, и так далее). Этот формат разработан для того, чтобы важная информация была легко - найдена. Мы рекомендуем вам воспользоваться утилитой <link - linkend="porting-portlint">portlint</link> для проверки файла + найдена. Мы рекомендуем вам воспользоваться утилитой <link linkend="porting-portlint">portlint</link> для проверки файла <filename>Makefile</filename>.</para> <programlisting>[заголовок...просто чтобы нам было легче идентифицировать порт.] @@ -12283,19 +12171,19 @@ pre-install: </chapter> - <chapter id="keeping-up"> + <chapter xml:id="keeping-up"> <title>Актуализация</title> <para>Коллекция Портов &os; постоянно изменяется. Здесь находится некоторая информация о том, как поддерживать её в актуальном состоянии.</para> - <sect1 id="freshports"> + <sect1 xml:id="freshports"> <title>FreshPorts</title> <para>Самым простым способом отслеживать уже произошедшие обновления - является подписка на <ulink url="http://www.FreshPorts.org/"> - FreshPorts</ulink>. Для мониторинга вы можете выбрать несколько + является подписка на <link xlink:href="http://www.FreshPorts.org/"> + FreshPorts</link>. Для мониторинга вы можете выбрать несколько портов. Мейнтейнерам настоятельно рекомендуется подписаться здесь, потому что они будут получать уведомления не только о собственных изменениях, но и об изменениях, сделанных любым другим коммиттером @@ -12323,23 +12211,20 @@ pre-install: внесённых вами изменений.</para> </sect1> - <sect1 id="svnweb"> + <sect1 xml:id="svnweb"> <title>Web-интерфейс к хранилищу исходных текстов</title> <para>Файлы в хранилище исходных текстов можно просматривать при помощи Web-интерфейса. Изменения, которые касаются в целом всей системы - портов, теперь документируются в файле <ulink - url="http://svnweb.FreeBSD.org/ports/head/CHANGES">CHANGES</ulink>. + портов, теперь документируются в файле <link xlink:href="http://svnweb.FreeBSD.org/ports/head/CHANGES">CHANGES</link>. Изменения, касающиеся отдельных портов, отражаются теперь в - файле <ulink - url="http://svnweb.FreeBSD.org/ports/head/UPDATING">UPDATING</ulink>. + файле <link xlink:href="http://svnweb.FreeBSD.org/ports/head/UPDATING">UPDATING</link>. Однако однозначный ответ на любой вопрос можно найти, только - прочитав исходных код <ulink - url="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.port.mk">bsd.port.mk</ulink> + прочитав исходных код <link xlink:href="http://svnweb.FreeBSD.org/ports/head/Mk/bsd.port.mk">bsd.port.mk</link> и связанных с ним файлов.</para> </sect1> - <sect1 id="ports-mailling-list"> + <sect1 xml:id="ports-mailling-list"> <title>Список рассылки &os;, посвящённый портам</title> <para>Если вы поддерживаете порты, то должны следить за &a.ports;. @@ -12351,34 +12236,33 @@ pre-install: и не является местом для дискуссий.</para> </sect1> - <sect1 id="build-cluster"> + <sect1 xml:id="build-cluster"> <title>Кластер построения портов &os; на - <hostid role="hostname">pointyhat.FreeBSD.org</hostid></title> + <systemitem class="fqdomainname">pointyhat.FreeBSD.org</systemitem></title> <para>Одной из наименее известных сильных сторон &os; является тот факт, что для непрерывного построения Коллекции Портов для каждого из основных релизов ОС для каждой архитектуры уровня поддержки Tier-1 выделен целый кластер машин. Вы можете увидеть результаты - этих построений в <ulink url="http://pointyhat.FreeBSD.org/">протоколах - построения пакетов и обнаруженных ошибок</ulink>.</para> + этих построений в <link xlink:href="http://pointyhat.FreeBSD.org/">протоколах + построения пакетов и обнаруженных ошибок</link>.</para> <para>Отдельные порты собираются, если они специально не помечены как - <makevar>IGNORE</makevar>. Для портов, помеченных как - <makevar>BROKEN</makevar>, попытки будут продолжены для того, + <varname>IGNORE</varname>. Для портов, помеченных как + <varname>BROKEN</varname>, попытки будут продолжены для того, чтобы увидеть, если основная проблема была решена. (Это сделано - через использование переменной <makevar>TRYBROKEN</makevar> для + через использование переменной <varname>TRYBROKEN</varname> для <filename>Makefile</filename> порта.)</para> </sect1> - <sect1 id="distfile-survey"> + <sect1 xml:id="distfile-survey"> <title>Portscout: сканер дистрибутивных файлов портов &os;</title> <para>Кластер построения выделен для выполнения самого последнего релиза каждого из портов, дистрибутивные файлы которых уже были сгружены. Однако из-за постоянных изменений в Internet - дистрибутивные файлы могут быстро исчезать. <ulink - url="http://portscout.FreeBSD.org">Portscout</ulink>, средство + дистрибутивные файлы могут быстро исчезать. <link xlink:href="http://portscout.FreeBSD.org">Portscout</link>, средство сканирования дистрибутивных файлов &os; пытается опросить каждый из сайтов, доступных для сгрузки каждого из портов, для определения того, доступны ли ещё дистрибутивные файлы. @@ -12404,15 +12288,14 @@ pre-install: пользователю выполнять поиск конкретного порта.</para> <para>По щелчку на название порта в списке отображается информация - о порте <ulink url="http://freshports.org">FreshPorts</ulink>.</para> + о порте <link xlink:href="http://freshports.org">FreshPorts</link>.</para> </sect1> - <sect1 id="portsmon"> + <sect1 xml:id="portsmon"> <title>Система мониторинга портов &os;</title> - <para>Другим полезным ресурсом является <ulink - url="http://portsmon.FreeBSD.org">Система мониторинга портов - FreeBSD</ulink> (известная также как <literal>portsmon</literal>). + <para>Другим полезным ресурсом является <link xlink:href="http://portsmon.FreeBSD.org">Система мониторинга портов + FreeBSD</link> (известная также как <literal>portsmon</literal>). Система представляет собой базу данных, обрабатывающую информацию из нескольких источников и позволяющую просматривать их при помощи Web-интерфейса. На данный момент задействованы база сообщений об @@ -12421,9 +12304,8 @@ pre-install: проверки дистрибутивных файлов и другие ресурсы.</para> <para>Для начала вы можете просмотреть всю информацию о некотором порте - при помощи средства <ulink - url="http://portsmon.FreeBSD.org/portoverview.py">Обзор - отдельного порта</ulink>.</para> + при помощи средства <link xlink:href="http://portsmon.FreeBSD.org/portoverview.py">Обзор + отдельного порта</link>.</para> <para>На момент написания это единственный доступный ресурс, который для имени порта ставит в соответствие записи PR GNATS. @@ -12436,14 +12318,14 @@ pre-install: </sect1> </chapter> - <chapter id="appendices"> + <chapter xml:id="appendices"> <title>Приложения</title> - <sect1 id="uses-values"> - <title>Значения <makevar>USES</makevar></title> + <sect1 xml:id="uses-values"> + <title>Значения <varname>USES</varname></title> <table frame="none"> - <title>Значения <makevar>USES</makevar></title> + <title>Значения <varname>USES</varname></title> <tgroup cols="3"> <thead> @@ -12460,13 +12342,12 @@ pre-install: </table> </sect1> - <sect1 id="freebsd-versions"> + <sect1 xml:id="freebsd-versions"> <title>Значения <literal>__FreeBSD_version</literal></title> <para>Ниже для справки приводится перечень значений <literal>__FreeBSD_version</literal> в виде, который определён в - <ulink - url="http://svnweb.FreeBSD.org/base/head/sys/sys/param.h?view=markup">sys/param.h</ulink>:</para> + <link xlink:href="http://svnweb.FreeBSD.org/base/head/sys/sys/param.h?view=markup">sys/param.h</link>:</para> <table frame="none"> <title>Значения <literal>__FreeBSD_version</literal></title> |