From owner-svn-doc-all@FreeBSD.ORG Tue Jul 24 09:13:54 2012 Return-Path: Delivered-To: svn-doc-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9F1E106564A; Tue, 24 Jul 2012 09:13:54 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C30288FC0A; Tue, 24 Jul 2012 09:13:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6O9DsOl010133; Tue, 24 Jul 2012 09:13:54 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6O9Ds66010131; Tue, 24 Jul 2012 09:13:54 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201207240913.q6O9Ds66010131@svn.freebsd.org> From: Sergey Kandaurov Date: Tue, 24 Jul 2012 09:13:54 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r39258 - head/ru_RU.KOI8-R/books/porters-handbook X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jul 2012 09:13:54 -0000 Author: pluknet Date: Tue Jul 24 09:13:54 2012 New Revision: 39258 URL: http://svn.freebsd.org/changeset/doc/39258 Log: MFen r38283 -> r39245 PR: docs/169710 (MFen r38759 part) Submitted by: ohauer Modified: head/ru_RU.KOI8-R/books/porters-handbook/book.sgml Modified: head/ru_RU.KOI8-R/books/porters-handbook/book.sgml ============================================================================== --- head/ru_RU.KOI8-R/books/porters-handbook/book.sgml Tue Jul 24 09:11:44 2012 (r39257) +++ head/ru_RU.KOI8-R/books/porters-handbook/book.sgml Tue Jul 24 09:13:54 2012 (r39258) @@ -4,7 +4,7 @@ $FreeBSD$ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml,v 1.136 2006/10/20 09:25:00 marck Exp $ - Original revision: r38283 + Original revision: r39245 --> Посмотрим, сможете ли вы его понять. Не обращайте внимание на содержимое строчки $FreeBSD$, она - будет заполнена автоматически системой CVS, когда порт будет + будет заполнена автоматически системой SVN, когда порт будет импортирован в наше дерево портов. Вы можете найти более подробный пример в разделе пример Makefile. @@ -198,8 +198,8 @@ WWW: http://www.oneko.org/списком для упаковки, потому что пакет генерируется упаковкой файлов, которые здесь указаны. Имена путей указываются относительно установочного префикса - (обычно /usr/local или - /usr/X11R6). Если вы используете переменные + (обычно /usr/local). + Если вы используете переменные MANn (а вы должны это делать), то указывать страницы справочника здесь не нужно. Если порт во время установки создает каталоги, убедитесь, @@ -346,6 +346,10 @@ PLIST_DIRS= lib/X11/oneko make package + + + make readme + Проверьте, что ни на шаге package, ни на @@ -573,7 +577,9 @@ PLIST_DIRS= lib/X11/onekodo-extract, но никогда не меняйте способ - работы extract! + работы extract! Кроме того, цель + post-deinstall является недействительной + и не выполняется инфраструктурой портов. Теперь вы представляете, что происходит, когда пользователь @@ -587,7 +593,7 @@ PLIST_DIRS= lib/X11/onekoПолучите оригинальные исходные тексты (обычно) в виде упакованного tar-архива (foo.tar.gz или - foo.tar.Z) + foo.tar.bz2) и скопируйте его в каталог DISTDIR. Всегда используйте исходные тексты основной ветки разработки везде, где это возможно. @@ -708,7 +714,7 @@ PLIST_DIRS= lib/X11/oneko - Не помещайте строки RCS в патчи. CVS будет изменять их при + Не помещайте строки RCS в патчи. SVN будет изменять их при помещении файлов в дерево портов, и когда мы будем их оттуда извлекать, они будут уже другие, поэтому применение патчей окончится неудачей. Строчки RCS предваряются знаком доллара @@ -739,7 +745,7 @@ PLIST_DIRS= lib/X11/oneko Если вам нужно удалить файл, то вы можете сделать это при @@ -846,11 +852,8 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h)EXTRACT_BEFORE_ARGS, EXTRACT_AFTER_ARGS, EXTRACT_SUFX или DISTFILES в - зависимости от того, насколько необычен формат дистрибутивного файла. - (Самый распространённый случай - это - EXTRACT_SUFX=.tar.Z, когда tar-файл упакован - обычной утилитой compress, а не архиватором - gzip.) + зависимости от того, насколько необычен формат дистрибутивного + файла. В худшем случае вы можете просто определить свою собственную цель do-extract для переопределения действий по @@ -1706,8 +1709,8 @@ PORTEPOCH= 1 java Программное обеспечение, связанное с языком Java™. - Категория java не должна быть - единственной для порта. Оставьте для портов, + Категория java ни в коем случае + не должна быть единственной для порта. Оставьте для портов, непосредственно имеющих отношение к языку Java, портерам также рекомендуется не использовать java как основную категорию @@ -1716,8 +1719,8 @@ PORTEPOCH= 1 kde* - Порты проекта K Desktop - Environment (KDE). + Порты проекта + KDE. @@ -2405,11 +2408,15 @@ MASTER_SITE_SUBDIR= makeMASTER_SITES= SF - Если попытка угадать не удалась, что это может быть переписано + Если попытка угадать не удалась, то это может быть переписано следующим образом. - MASTER_SITES= SF/stardict/WyabdcRealPeopleTTS/${PORTVE -RSION} + MASTER_SITES= SF/stardict/WyabdcRealPeopleTTS/${PORTVERSION} + + Что также можно записать в таком виде: + + MASTER_SITES= SF +MASTER_SITE_SUBDIR= stardict/WyabdcRealPeopleTTS/${PORTVERSION} Популярные магические макросы для @@ -2515,11 +2522,12 @@ RSION}</programlisting> <programlisting>DISTNAME= foo EXTRACT_SUFX= .tgz</programlisting> - <para>Переменные <makevar>USE_BZIP2</makevar> и + <para>Переменные <makevar>USE_BZIP2</makevar>, + <makevar>USE_XZ</makevar> и <makevar>USE_ZIP</makevar> при необходимости автоматически устанавливают значение <makevar>EXTRACT_SUFX</makevar> в - <literal>.tar.bz2</literal> или <literal>.zip</literal>. - Если ни одна из этих + <literal>.tar.bz2</literal>, <literal>.tar.xz</literal> или + <literal>.zip</literal>. Если ни одна из этих переменных не задана, то значение <makevar>EXTRACT_SUFX</makevar> по умолчанию устанавливается в <literal>.tar.gz</literal>.</para> @@ -3376,9 +3384,9 @@ ALWAYS_KEEP_DISTFILES= yes <replaceable>target</replaceable> - это цель, которую нужно вызвать в этом каталоге. Например,</para> - <programlisting>LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg</programlisting> + <programlisting>LIB_DEPENDS= jpeg:${PORTSDIR}/graphics/jpeg</programlisting> - <para>проверит наличие библиотеки jpeg со старшим номером версии 9 и + <para>проверит наличие библиотеки jpeg с любым номером версии и перейдет в подкаталог <filename>graphics/jpeg</filename> вашего дерева портов для ее построения и установки, если библиотека отсутствует. Часть <replaceable>target</replaceable> может быть @@ -3389,11 +3397,11 @@ ALWAYS_KEEP_DISTFILES= yes <para>Часть <replaceable>lib</replaceable> является регулярным выражением, которое вызывается для вывода, полученного из <command>ldconfig -r</command>. Разрешаются такие значения, как - <literal>intl.[5-7]</literal> и <literal>intl</literal>. - Первые шаблон, <literal>intl.[5-7]</literal>, совпадет с любым - из: <literal>intl.5</literal>, <literal>intl.6</literal> или - <literal>intl.7</literal>. Второй шаблон, <literal>intl</literal>, - совпадет с любой версией библиотеки <literal>intl</literal>.</para> + <literal>intl.9</literal> и <literal>intl.[5-7]</literal>. + Первый шаблон, <literal>intl.9</literal>, совпадает только с + intl версии 9, в то время как <literal>intl.[5-7]</literal> + совпадает с любым из: <literal>intl.5</literal>, + <literal>intl.6</literal> и <literal>intl.7</literal>.</para> </note> <para>Зависимость проверяется дважды, один раз внутри цели @@ -3423,14 +3431,15 @@ ALWAYS_KEEP_DISTFILES= yes <para>Например,</para> - <programlisting>RUN_DEPENDS= ${LOCALBASE}/etc/innd:${PORTSDIR}/news/inn \ + <programlisting>RUN_DEPENDS= ${LOCALBASE}/news/bin/innd:${PORTSDIR}/news/inn \ xmlcatmgr:${PORTSDIR}/textproc/xmlcatmgr</programlisting> - <para>проверит, существует ли файл или каталог - <filename>/usr/local/etc/innd</filename> и построит и установит его - из подкаталога <filename>news/inn</filename> дерева портов, если он - не будет найден. Он также проверит, имеется ли выполнимый файл с - именем <command>xmlcatmgr</command> в пути поиска, и перейдет в + <para>проверит существование файла или каталога + <filename>/usr/local/news/bin/innd</filename>, и если ничего + не будет найдено, то построит и установит порт из подкаталога + <filename>news/inn</filename> дерева портов. Также будет + выполнена проверка, присутствует ли в пути поиска исполняемый + файл с именем <command>xmlcatmgr</command>, и перейдет в подкаталог <filename>textproc/xmlcatmgr</filename> вашего дерева портов для его построения и установки, если он не будет найден.</para> @@ -3446,7 +3455,7 @@ ALWAYS_KEEP_DISTFILES= yes <para>Официальным значением переменной поиска <envar>PATH</envar>, используемым в кластере построения портов является</para> - <programlisting>/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin</programlisting> + <programlisting>/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin</programlisting> </note> <para>Зависимость проверяется внутри цели @@ -3589,16 +3598,16 @@ ALWAYS_KEEP_DISTFILES= yes <sect2 id="use-vars"> <title><makevar>USE_<replaceable>*</replaceable></makevar> - Для объединения нескольких зависимостей, которые есть во многих - портах, предназначено несколько переменных. Хотя их использование - является необязательным, они могут упростить избыточность файлов - Makefile порта. Каждый из них оформляется как - USE_*. Использование - этих переменных ограничено Makefile'ом порта - и ports/Mk/bsd.*.mk и не рассчитано на - вложенность указываемых пользователями опция — используйте - для этих целей WITH_* - и WITHOUT_*. + Для определения общих зависимостей, совместно используемых + многими портами, предназначено несколько переменных. Их + использование является необязательным, но помогает упростить + избыточность файлов Makefile порта. + Каждый из них оформляется как + USE_*. Эти + переменные можно использовать только в Makefile + порта и ports/Mk/bsd.*.mk. Они не + предназначены для установки пользователями параметров — + используйте для этих целей PORT_OPTIONS. Установка любых USE_* @@ -3766,7 +3775,95 @@ ALWAYS_KEEP_DISTFILES= yes людей—включая себя—от грядущих бед. - + + Автоматические зависимости и проблемы, которые они + вызывают + + Зависимости должны быть указаны либо явно, либо с + использованием фреймворка + OPTIONS. Использование прочих методов, таких как + автоматическое обнаружение зависимостей, усложняет индексирование, + что вызывает проблемы в управлении портами и пакетами. + + + Некорректное объявление необязательной зависимости + + .include <bsd.port.pre.mk> + +.if exists(${LOCALBASE}/bin/foo) +LIB_DEPENDS= bar:${PORTSDIR}/foo/bar +.endif + + + Проблема автоматического добавления зависимостей + заключается в том, что файлы и настройки за пределами порта + могут произвольно меняться. Пример: после построения + индекса устанавливается набор портов. При этом один из + них устанавливает проверяемый файл. На этом этапе индекс + будет неправильным, потому что установленный порт неожиданно + получит новую зависимость. Индекс может быть по прежнему + неправильным даже после его перестроения, в случае если + другие порты также определят дополнительные зависимости, + основываясь на существовании других файлов. + + + Корректное объявление необязательной зависимости + + OPTIONS_DEFINE= BAR +BAR_DESC= Enable bar support + +.include <bsd.port.options.mk> + +.if ${PORTOPTIONS:MBAR} +LIB_DEPENDS= bar:${PORTSDIR}/foo/bar +.endif + + + Правильным способом является проверка переменных параметров. + Этот способ не приводит к несоответствиям в индексе набора + портов, поскольку параметры определены до построения индекса. + При этом можно использовать простые скрипты для автоматизации + построения, установки и обновления этих портов и соответствующих + им пакетов. + + + + <makevar>USE_</makevar> и + <makevar>WANT_</makevar> + + Переменные USE_ задаются мейнтейнером + порта для определения программного обеспечения, от которого + этот порт зависит. Порт, для которого нужен Firefox, + укажет + + USE_FIREFOX= yes + + Некоторые переменные USE_ могут + принимать номера версий или другие параметры. Например, + порт, который требует Apache 2.2, укажет + + USE_APACHE= 22 + + В некоторых случаях для большего контроля над + зависимостями используются переменные WANT_, + которые позволяют указывать требования в более точной форме. + Например, взгляните на порт mail/squirrelmail. Этому порту + нужны несколько модулей PHP, которые перечислены в переменной + USE_PHP: + + USE_PHP= session mhash gettext mbstring pcre openssl xml + + Эти модули доступны в версиях CLI и web, поэтому версия + web выбрана с переменной WANT_: + + WANT_PHP_WEB= yes + + Имеющиеся переменные USE_ и + WANT_ определены в файлах + /usr/ports/Mk. + + <makevar>MASTERDIR</makevar> @@ -3960,27 +4057,28 @@ ${MANPREFIX}/man/de/man3/baz.3.gz Опции для Makefile - Некоторые большие приложения могут быть построены в различных - конфигурациях, с дополнительной функциональностью, зависящей от - наличия в системе определённых библиотек или приложений. Например, + Многие приложения могут быть построены в различных + конфигурациях и с дополнительной функциональностью. Например, выбор естественного (человеческого) языка, GUI против командной - строки или типа используемой базы данных. Так как не - всем пользователям требуются эти библиотеки или приложения, то в - системе портов предусмотрен механизм, позволяющий автору порта - принимать решение о конфигурации, которая будет строиться. Полная - поддержка этого механизма облегчает пользователям жизнь и даёт два - или более порта ценой создания одного. + строки или типа используемой базы данных. Пользователи могут + нуждаться в различных конфигурациях, отличных от используемой по + умолчанию, поэтому в системе портов предусмотрен механизм, + позволяющий автору порта управлять сборкой того или иного + варианта конфигурации. + Правильная поддержка этих необязательных параметров облегчает + пользователям жизнь и даёт два или более порта по цене одного. - Knobs + Knobs - <makevar>WITH_<replaceable>*</replaceable></makevar> и + <title><makevar>WITH_<replaceable>*</replaceable></makevar> + и <makevar>WITHOUT_<replaceable>*</replaceable></makevar> Эти переменные предназначены для установки системным администратором. Многие из них стандартизованы в файле - ports/KNOBS. + ports/KNOBS. При создании порта не давайте имя для knob, специфичное для данного приложения. На примере порта Avahi, используйте @@ -3998,7 +4096,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gz Если обратное не указано, то проверяется только факт - установки самих переменных, но не их значение типа + установки самих переменных, но не их конкретное значение типа YES или NO. @@ -4042,10 +4140,10 @@ ${MANPREFIX}/man/de/man3/baz.3.gzWITHOUT_X11 - Если порт может быть собран с поддержкой или без - поддержки X, то, как правило, обычно порт собирается - с поддержкой X. Если эта переменная определена, то - будет собрана версия без поддержки X. + Порты, которые могут быть собраны с поддержкой + или без поддержки X, обычно собираются с поддержкой + X. Если эта переменная определена, то будет собрана + версия без поддержки X. @@ -4055,11 +4153,11 @@ ${MANPREFIX}/man/de/man3/baz.3.gzНаименование KNOBS - Рекомендуется, чтобы портеры использовали так называемые + Портеры должны использовать так называемые knobs для помощи конечным пользователям и для поддержания количества наименований knobs в небольшом количестве. Список популярных названий knobs можно найти в файле KNOBS + url="http://svn.FreeBSD.org/ports/head/KNOBS?view=markup">KNOBS Названия knobs должны отражать, что это такое и что @@ -4074,81 +4172,188 @@ ${MANPREFIX}/man/de/man3/baz.3.gz Описание - При установке порта переменная OPTIONS - предоставляет пользователю окно диалога с доступными - параметрами и сохраняет их в файл - /var/db/ports/portname/options. - Эти опции будут повторно использованы при следующем - перестроении порта. Вам больше никогда не понадобится - запоминать все двадцать опций - WITH_* и - WITHOUT_*, - используемых вами при построении этого порта! + При установке порта переменные OPTIONS_* + предоставляют пользователю окно диалога с отображением + доступных параметров, с записью выбранных параметров в файл + /var/db/ports/${UNIQUENAME}/options. + Эти опции повторно используются при следующем построении + порта. Когда пользователь запускает make config (или запускает впервые make build), - инфраструктура выполнит проверку существования файла - /var/db/ports/portname - /options. Если этот файл не существует, то при - создании диалогового окна будут использованы значения - OPTIONS, в котором их можно переключить. - Затем сохраняется файл опций, и выбранные переменные - используются при построении порта. + инфраструктура выполняет проверку существования файла + /var/db/ports/${UNIQUENAME}/options. + Если этот файл не существует, то используются значения + OPTIONS_* и отображается диалоговое окно, + в котором эти параметры можно включить или выключить. + Затем сохраняется файл опций options, + и выбранные переменные используются при построении порта. Если новая версия порта добавляет новые значения OPTIONS, то пользователю будет представлено окно диалога с сохраненными заполненными значениями старых OPTIONS. - Для просмотра сохраненной конфигурации используйте - make showconfig. Для удаления + make showconfig отображает + сохраненную конфигурацию. Для удаления сохраненной конфигурации используйте make rmconfig. Синтаксис - Синтаксис переменной OPTIONS: - OPTIONS= OPTION "descriptive text" default ... + OPTIONS_DEFINE содержит список + используемых OPTIONS. Они независимы + друг от друга и не сгруппированы: + + OPTIONS_DEFINE= OPT1 OPT2 + + Далее после определения следует описание + OPTIONS (не является обязательным, + но настоятельно рекомендуется): + + OPT1_DESC= Describe OPT1 +OPT2_DESC= Describe OPT2 +OPT3_DESC= Describe OPT3 +OPT4_DESC= Describe OPT4 +OPT5_DESC= Describe OPT5 +OPT6_DESC= Describe OPT6 + + + ports/Mk/bsd.options.desc.mk + содержит описание множества наиболее используемых + OPTIONS; переопределять их, как + правило, не нужно. + + + + При описании параметров старайтесь представить себя + на месте пользователя: Что это делает? + и Для чего бы я захотел включить это? + Не делайте простое повторение названия. Например, + описание параметра NLS как + include NLS support (включить + поддержку NLS) не поможет пользователю, который + уже видит название параметра, но может не знать, что + это означает. Описав его как Native Language + Support via gettext utilities (Поддержка + национального языка через утилиты gettext), + вы поможете пользователю гораздо больше. + + + OPTIONS можно группировать в виде + переключателей, для которых разрешен выбор единственного + варианта в каждой группе: + + OPTIONS_SINGLE= SG1 +OPTIONS_SINGLE_SG1= OPT3 OPT4 + + OPTIONS также можно группировать + в виде списков со множественным выбором, для которых + обязан быть включен по крайней мере + один из параметров: + + OPTIONS_MULTI= MG1 +OPTIONS_MULTI_MG1= OPT5 OPT6 + + OPTIONS_MULTI и + OPTIONS_SINGLE также допускают + отсутствие выбора путём включения группы в + OPTIONS_DEFINE: + + OPTIONS_DEFINE= MG1 +OPTIONS_MULTI= MG1 +OPTIONS_MULTI_MG1= OPT5 OPT6 + + После этого группа требует по крайней мере один + OPTION из MG1, + только если выбран новый MG1 + OPTION. Рекомендуется + поэкспериментировать, чтобы улучшить понимание. + + По умолчанию OPTIONS находится в + выключенном положении, если при этом оно также отсутствует + в списке OPTIONS_DEFAULT: - Значением по умолчанию является или ON, - или OFF. Разрешаются множественные - повторы всех трех полей. + OPTIONS_DEFAULT= OPT1 OPT3 OPT6 - Определение OPTIONS обязано появиться + Определения OPTIONS обязаны появиться до подключения bsd.port.options.mk. - Переменные WITH_* и - WITHOUT_* могут быть проверены только после + Переменные PORT_OPTIONS + могут быть проверены только после подключения bsd.port.options.mk. Вместо этого также можно использовать подключение bsd.port.pre.mk, что все еще широко используется в портах, написанных до появления bsd.port.options.mk. Но имейте в виду, - что некоторые переменные, обычно флаги USE_*, + что некоторые переменные, обычно, это некоторые флаги + USE_*, после подключения bsd.port.pre.mk будут - работать не так, как это от них ожидается. + работать не так, как этого от них ожидают. Простое использование <makevar>OPTIONS</makevar> - OPTIONS= FOO "Enable option foo" On \ - BAR "Support feature bar" Off + + OPTIONS_DEFINE= FOO BAR +FOO_DESC= Enable option foo +BAR_DESC= Support feature bar .include <bsd.port.options.mk> -.if defined(WITHOUT_FOO) -CONFIGURE_ARGS+= --without-foo +.if ${PORT_OPTIONS:MFOO} +CONFIGURE_ARGS+=--with-foo .else -CONFIGURE_ARGS+= --witht-foo +CONFIGURE_ARGS+=--without-foo .endif -.if defined(WITH_BAR) +.if ${PORT_OPTIONS:MBAR} RUN_DEPENDS+= bar:${PORTSDIR}/bar/bar .endif .include <bsd.port.mk> + + Пример реального использования + <makevar>OPTIONS</makevar> + + OPTIONS_DEFINE= EXAMPLES + +OPTIONS_SINGLE= BACKEND +OPTIONS_SINGLE_BACKEND= MYSQL PGSQL BDB + +OPTIONS_MULTI= AUTH +OPTIONS_MULTI_AUTH= LDAP PAM SSL + +EXAMPLES_DESC= Install extra examples +MYSQL_DESC= Use MySQL as backend +PGSQL_DESC= Use PostgreSQL as backend +BDB_DESC= Use Berkeley DB as backend +LDAP_DESC= Build with LDAP authentication support +PAM_DESC= Build with PAM support +SSL_DESC= Build with OpenSSL support + +OPTIONS_DEFAULT= PGSQL LDAP SSL + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MPGSQL} +USE_PGSQL= yes +CONFIGURE_ARGS+= --with-postgres +.else +CONFIGURE_ARGS+= --without-postgres +.endif + +.if ${PORT_OPTIONS:MICU} +LIB_DEPENDS+= icuuc:${PORTSDIR}/devel/icu +.endif + +# Check other OPTIONS + +.include <bsd.port.mk> + + Использование <makevar>OPTIONS</makevar> в старом стиле @@ -4164,6 +4369,12 @@ CONFIGURE_ARGS+= --with-foo .include <bsd.port.post.mk> + + + Такой способ использования OPTIONS + является устаревшим, и в будущем его поддержка будет + удалёна. Не используйте этот способ для новых портов. + @@ -4180,8 +4391,9 @@ CONFIGURE_ARGS+= --with-foo Неправильное управление опцией - .if defined(WITH_FOO) -LIB_DEPENDS+= foo.0:${PORTSDIR}/devel/foo + + .if ${PORT_OPTIONS:MFOO} +LIB_DEPENDS+= foo:${PORTSDIR}/devel/foo CONFIGURE_ARGS+= --enable-foo .endif @@ -4198,8 +4410,9 @@ CONFIGURE_ARGS+= --enable-foo Правильное управление опцией - .if defined(WITH_FOO) -LIB_DEPENDS+= foo.0:${PORTSDIR}/devel/foo + + .if ${PORT_OPTIONS:MFOO} +LIB_DEPENDS+= foo:${PORTSDIR}/devel/foo CONFIGURE_ARGS+= --enable-foo .else CONFIGURE_ARGS+= --disable-foo @@ -5317,7 +5530,7 @@ PLIST_SUB+= NLS="@comment " - Использование <literal>perl</literal> + Использование <application>Perl</application> Если MASTER_SITES установлена в значение MASTER_SITE_PERL_CPAN, то предпочтительным @@ -5334,12 +5547,12 @@ PLIST_SUB+= NLS="@comment " в качестве MASTER_SITE_SUBDIR разрешается использовать id автора. - Все из настраиваемых knobs ниже принимают и YES, - и строку с версией, вида 5.8.0+. Использование + Все из настраиваемых knobs ниже принимают либо YES, + либо строку с версией вида 5.8.0+. YES означает, что данный порт можно использовать - со всеми поддерживаемыми версиями Perl. + с любой из поддерживаемых версий Perl. Если порт работает только с некоторыми версиями - Perl, то это можно обозначить при помощи + Perl, то это можно обозначить при помощи строки с версией, указывающей на минимальную версию (пример: 5.7.3+), максимальную версию (пример: 5.8.0-) или точную версию (пример: @@ -5347,14 +5560,14 @@ PLIST_SUB+= NLS="@comment "
Переменные для портов, использующих - <literal>perl</literal> + Perl Переменная - Смысл + Значение @@ -5362,29 +5575,26 @@ PLIST_SUB+= NLS="@comment " USE_PERL5 - Указывает на то, что порт использует perl - 5 для своего построения и работы. + Perl 5 используется для построения и работы. USE_PERL5_BUILD - Указывает на то, что для построения порт - использует perl 5. + Perl 5 используется для построения. USE_PERL5_RUN - Указывает на то, что для работы порт использует - perl 5. + Perl 5 используется во время работы. PERL - Полный маршрут к perl 5, либо в - системе, либо установленного из портов, но без номера версии. + Полный путь к интерпретатору Perl 5, либо в + системе, либо установленному из портов, но без номера версии. Используйте это, если вам нужно заменить строки #! в скриптах. @@ -5417,14 +5627,14 @@ PLIST_SUB+= NLS="@comment " PERL_VERSION - Полная версия установленного perl + Полная версия установленного Perl (например, 5.8.9). PERL_LEVEL - Версия установленного perl в форме + Установленная версия Perl в форме целого числа вида MNNNPP (например, 500809). @@ -5432,7 +5642,7 @@ PLIST_SUB+= NLS="@comment " PERL_ARCH - Место, где perl хранит + Место, в котором Perl хранит архитектурно-зависимые библиотеки. По умолчанию это ${ARCH}-freebsd. @@ -5440,7 +5650,7 @@ PLIST_SUB+= NLS="@comment " PERL_PORT - Название установленного порта perl, + Название установленного порта Perl, (к примеру, perl5). @@ -5448,8 +5658,8 @@ PLIST_SUB+= NLS="@comment " SITE_PERLИмя каталога, куда помещаются специфичные для сайта - пакеты perl. Это значение добавляется к - PLIST_SUB. + пакеты Perl. Это значение добавляется к + PLIST_SUB. @@ -5462,6 +5672,23 @@ PLIST_SUB+= NLS="@comment " http://search.cpan.org/dist/Module-Name/ (включая завершающий слэш). + + + Не используйте ${SITE_PERL} в объявлении + зависимостей. Использование этой конструкции подразумевает + наличие подключенного bsd.perl.mk, что + не всегда так. Порты, зависимые от этого порта, получат + неправильные зависимости, если файлы этого порта будут + перемещены при последующем обновлении. Правильный способ + объявления зависимостей для модулей Perl показан в примере + ниже. + + + + Пример зависимости Perl + + p5-IO-Tee>=0.64:${PORTSDIR}/devel/p5-IO-Tee + @@ -5476,17 +5703,19 @@ PLIST_SUB+= NLS="@comment " компонентов. К настоящему времени доступными компонентами являются: - bigreqsproto compositeproto damageproto dmx dmxproto - evieproto fixesproto fontcacheproto fontenc fontsproto fontutil - glproto ice inputproto kbproto libfs oldx printproto randrproto - recordproto renderproto resourceproto scrnsaverproto sm trapproto - videoproto x11 xau xaw xaw6 xaw7 xaw8 xbitmaps xcmiscproto xcomposite - xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto - xf86dgaproto xf86driproto xf86miscproto xf86rushproto - xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama - xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil - xprintutil xpr oto xproxymngproto xrandr xrender xres xscrnsaver xt - xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm. + bigreqsproto compositeproto damageproto dmx + dmxproto dri2proto evieproto fixesproto fontcacheproto + fontenc fontsproto fontutil glproto ice inputproto kbproto + libfs oldx pciaccess pixman printproto randrproto + recordproto renderproto resourceproto scrnsaverproto sm + trapproto videoproto x11 xau xaw xaw6 xaw7 xbitmaps + xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext + xextproto xf86bigfontproto xf86dgaproto xf86driproto + xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont + xfontcache xft xi xinerama xineramaproto xkbfile xkbui + xmu xmuu xorg-server xp xpm xprintapputil xprintutil + xproto xproxymngproto xrandr xrender xres xscrnsaver xt + xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm. Всегда актуальный перечень можно найти в /usr/ports/Mk/bsd.xorg.mk. @@ -5504,7 +5733,7 @@ PLIST_SUB+= NLS="@comment " USE_GL= glu - Многие порты определяют USE_XLIB, которая + Некоторые порты определяют USE_XLIB, которая делает порт зависимым ото всех 50 или около того библиотек. Эта переменная существует для обратной совместимости, т.к. предшествует модульному X.Org, и не должна использоваться в новых портах. @@ -5529,14 +5758,6 @@ USE_GL= glu - USE_X_PREFIX - - Является устаревшим. Сейчас это эквивалентно - USE_XLIB и может быть свободно им - заменено. - - - XMKMF Задаётся маршрут до xmkmf, если он @@ -5706,8 +5927,8 @@ USE_XORG= x11 xpm Заметьте, что переменная MOTIFLIB (как - правило) раскрывается в -L/usr/X11R6/lib -lXm или - /usr/X11R6/lib/libXm.a, так что нет нужды впереди + правило) раскрывается в -L/usr/local/lib -lXm или + /usr/local/lib/libXm.a, так что нет нужды впереди добавлять -L или -l. @@ -5877,7 +6098,8 @@ USE_XORG= x11 xpm QTNONSTANDARD Подавляет изменение CONFIGURE_ENV, - CONFIGURE_ARGS и + CONFIGURE_ARGS, + CPPFLAGS и MAKE_ENV. @@ -5895,36 +6117,29 @@ USE_XORG= x11 xpm QT_COMPONENTS Указывает инструменты и библиотеки в качестве - зависимостей для Qt4. Смотрите подробнее ниже. + зависимостей для Qt 4. Смотрите подробнее ниже. UIC Устанавливает путь к uic - (переменная только для чтения). По умолчанию - устанавливается в соответствии с переменной - USE_QT_VER. + (переменная только для чтения). QMAKE Устанавливает путь к qmake - (переменная только для чтения). По умолчанию - устанавливается в соответствии с переменной - USE_QT_VER. + (переменная только для чтения). QMAKESPEC Устанавливает путь к конфигурационному файлу для - qmake (переменная только для чтения). - По умолчанию устанавливается в соответствии с переменной - USE_QT_VER. + qmake (переменная только для чтения). -
@@ -5937,8 +6152,9 @@ USE_XORG= x11 xpm --with-qt-libraries=${QT_PREFIX}/lib \ --with-extra-libs=${LOCALBASE}/lib \ --with-extra-includes=${LOCALBASE}/include -CONFIGURE_ENV+= MOC="${MOC}" CPPFLAGS="${CPPFLAGS} ${QTCPPFLAGS}" LIBS="${QTCFGLIBS}" \ - QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}" +CONFIGURE_ENV+= MOC="${MOC}" LIBS="${QTCFGLIBS}" \ + QTDIR="${QT_PREFIX}" KDEDIR="${KDE_PREFIX}" +CPPFLAGS+= ${QTCPPFLAGS} Если переменная USE_QT_VER установлена в значение 4, то также разворачиваются следующие @@ -5952,9 +6168,10 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" Выбор компонентов (только для Qt 4.x) - Если USE_QT_VER установлена в 4, то в + Если USE_QT_VER установлена в + значение 4, то в переменной QT_COMPONENTS можно указать - зависимость от отдельных инструментов и библиотек Qt4. К каждому + зависимость от отдельных инструментов и библиотек Qt 4. К каждому компоненту можно добавить суффикс, _build или _run, отражающий, когда должна быть применена зависимость, во время сборки или выполнения, соответственно. Если @@ -5968,7 +6185,7 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" /usr/ports/Mk/bsd.qt.mk): - Доступные библиотечные компоненты Qt4 + Доступные библиотечные компоненты Qt 4 @@ -6003,7 +6220,7 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" qt3support - библиотека совместимости с Qt3 + библиотека совместимости с Qt 3 @@ -6035,7 +6252,7 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" после успешной компиляции.
- Доступные компоненты инструментов Qt4 + Доступные компоненты инструментов Qt 4 @@ -6077,7 +6294,7 @@ MAKE_ENV+= QMAKESPEC="${QMAKESPEC}"
- Доступные компоненты плагинов Qt4 + Доступные компоненты плагинов Qt 4 *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***