From owner-svn-doc-head@FreeBSD.ORG Wed Oct 23 21:02:21 2013 Return-Path: Delivered-To: svn-doc-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 53112C3; Wed, 23 Oct 2013 21:02:21 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3EAE020A5; Wed, 23 Oct 2013 21:02:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9NL2LVd046465; Wed, 23 Oct 2013 21:02:21 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9NL2KLD046460; Wed, 23 Oct 2013 21:02:20 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201310232102.r9NL2KLD046460@svn.freebsd.org> From: Sergey Kandaurov Date: Wed, 23 Oct 2013 21:02:20 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r43032 - head/ru_RU.KOI8-R/books/porters-handbook X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the doc tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Oct 2013 21:02:21 -0000 Author: pluknet Date: Wed Oct 23 21:02:20 2013 New Revision: 43032 URL: http://svnweb.freebsd.org/changeset/doc/43032 Log: MFen r39245 -> r42833. Set proper svn properties. Added: head/ru_RU.KOI8-R/books/porters-handbook/uses.xml (contents, props changed) head/ru_RU.KOI8-R/books/porters-handbook/versions.xml (contents, props changed) Modified: head/ru_RU.KOI8-R/books/porters-handbook/Makefile head/ru_RU.KOI8-R/books/porters-handbook/book.xml (contents, props changed) Modified: head/ru_RU.KOI8-R/books/porters-handbook/Makefile ============================================================================== --- head/ru_RU.KOI8-R/books/porters-handbook/Makefile Wed Oct 23 17:44:01 2013 (r43031) +++ head/ru_RU.KOI8-R/books/porters-handbook/Makefile Wed Oct 23 21:02:20 2013 (r43032) @@ -27,6 +27,8 @@ INSTALL_ONLY_COMPRESSED?= # XML content SRCS= book.xml +SRCS+= uses.xml +SRCS+= versions.xml # Entities #SRCS+= ../../../en_US.ISO8859-1/books/handbook/authors.ent Modified: head/ru_RU.KOI8-R/books/porters-handbook/book.xml ============================================================================== --- head/ru_RU.KOI8-R/books/porters-handbook/book.xml Wed Oct 23 17:44:01 2013 (r43031) +++ head/ru_RU.KOI8-R/books/porters-handbook/book.xml Wed Oct 23 21:02:20 2013 (r43032) @@ -1,6 +1,9 @@ + "../../../share/xml/freebsd45.dtd" [ + + +]> @@ -19,7 +22,7 @@ The FreeBSD Documentation Project - Апрель 2000 + $FreeBSD$ 2000 @@ -35,6 +38,7 @@ 2010 2011 2012 + 2013 The FreeBSD Documentation Project @@ -124,12 +128,7 @@ Минимальный Makefile будет выглядеть примерно так: - # New ports collection makefile for: oneko -# Date created: 5 December 1994 -# Whom: asami -# -# $FreeBSD$ -# + # $FreeBSD$ PORTNAME= oneko PORTVERSION= 1.1b @@ -137,13 +136,21 @@ CATEGORIES= games MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ MAINTAINER= asami@FreeBSD.org +COMMENT= Cat chasing a mouse all over the screen MAN1= oneko.1 MANCOMPRESSED= yes -USE_IMAKE= yes .include <bsd.port.mk> + + В некоторых случаях в заголовке Makefile + существующего порта могут содержаться дополнительные строки, + такие как название порта и дата его создания. + Эта дополнительная информация была объявлена устаревшей + и находится в процессе удаления. + + Посмотрим, сможете ли вы его понять. Не обращайте внимание на содержимое строчки $FreeBSD$, она будет заполнена автоматически системой SVN, когда порт будет @@ -174,12 +181,33 @@ USE_IMAKE= yes из README или страниц справочника; слишком часто они не являются кратким описанием порта или имеют неудобный формат (например, страницы - справочника выровнены пробелами). Если портируемое приложение - имеет официальную страничку Интернет, укажите ее здесь. - Перед одним из сайтов добавьте слово - WWW: для того, чтобы вспомогательные утилиты - работали правильно. - + справочника выровнены пробелами, поскольку это выглядит в + особенности плохо с моноширинными шрифтами). + + + Хорошо составленный pkg-descr + описывает порт достаточно полно, чтобы пользователю не + приходилось сверяться с документацией или посещать вебсайт + для понимания того, что делает данное программное обеспечение, + чем оно может быть полезно или какие хорошие функции у него + имеются. Упоминание про определённые требования, такие как + используемый графический инструментарий, тяжёлые зависимости, + окружение для запуска или используемый язык программирования + помогут пользователям определиться, будет ли этот порт для + них работать. + + Включите сюда URL официальной домашней страницы Интернет. + Перед одним из сайтов (выберите основной) + добавьте WWW: (с последующим единичным + пробелом) для того, чтобы вспомогательные утилиты работали + правильно. Если URI является корнем сайта или каталогом, + то значение должно быть дополнено косой чертой. + + + Если указанная для порта веб-страница не доступна, + попытайтесь сперва поискать, был ли официальный сайт + перемещён, переименован или размещён в другом месте. + Следующий пример показывает, как должен выглядеть ваш pkg-descr: @@ -255,6 +283,18 @@ PLIST_DIRS= lib/X11/onekoКонечно, переменная PLIST_DIRS не должна задаваться, если порт не устанавливает никаких каталогов. + + Несколько портов могут совместно использовать общий + каталог. В этом случае PLIST_DIRS + следует заменить на PLIST_DIRSTRY, так + чтобы каталог удалялся только если он пуст, а иначе + игнорировался. Использование PLIST_DIRS + и PLIST_DIRSTRY аналогично + @dirrm и @dirrmtry + в pkg-plist, описание которых + входит в . + + Обратной стороной такого способа перечисления файлов и каталогов порта является невозможность использования последовательностей команд, описанных в &man.pkg.create.1;. @@ -435,10 +475,11 @@ PLIST_DIRS= lib/X11/oneko Мы рассмотрим ваш порт, при необходимости вернём его обратно, а - затем включим порт в наше дерево. Ваше имя также появится в списке - - Дополнительных контрибуторов проекта FreeBSD и других - файлах. Разве это не великолепно?!? :-) + затем включим порт в наше дерево. Ваше имя также будет добавлено + в список + Дополнительных контрибуторов проекта FreeBSD и другие + файлы. @@ -521,12 +562,6 @@ PLIST_DIRS= lib/X11/onekoWRKSRC/configure. - - - Если задана переменная USE_IMAKE, - то запускается команда XMKMF (по умолчанию - это xmkmf -a). - @@ -534,7 +569,7 @@ PLIST_DIRS= lib/X11/onekoВыполняется цель build. Она отвечает за переход в собственный рабочий каталог порта (WRKSRC) и его построение. Если задана - переменная USE_GMAKE, будет использоваться + переменная USES= gmake, будет использоваться GNU-версия утилиты make, в противном случае будет использована системная утилита make. @@ -759,8 +794,7 @@ PLIST_DIRS= lib/X11/oneko post-patch: - @${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README - @${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|' ${WRKSRC}/configure + @${REINPLACE_CMD} -e 's|for Linux|for FreeBSD|g' ${WRKSRC}/README Довольно часто бывают ситуации, когда портируемое программное обеспечение, особенно если основной платформой разработки является @@ -993,6 +1027,26 @@ DOS2UNIX_REGEX= .*\.(c|cpp|h) + + Результат сравнения номера версии не всегда очевиден. + Для выполнения сравнения двух строк с номером версии можно + использовать &man.pkg.version.1;. Эквивалентом в + pkgng является + pkg version -t. Например: + + &prompt.user; pkg_version -t 0.031 0.29 +> + + Для пользователей pkgng: + + &prompt.user; pkg version -t 0.031 0.29 +> + + Строка > в выводе команды означает, + что версия 0.031 считается выше, чем версия 0.29, что может + быть не очевидно для того, кто выполняет портирование. + + В ситуациях, подобных этой, должно быть увеличено значение PORTEPOCH. Если значение PORTEPOCH не равно нулю, то оно добавляется к @@ -2003,11 +2057,7 @@ PORTEPOCH= 1 поддерживает саму оконную систему. Не помещайте сюда обычные приложения для X: большинство из них должны быть перенесены в другие категории x11-* - (смотрите ниже). Если ваш порт является - приложением для X, задайте USE_XLIB (что - подразумевается при использовании - USE_IMAKE) и укажите подходящую - категорию. + (смотрите ниже). @@ -3343,19 +3393,102 @@ ALWAYS_KEEP_DISTFILES= yes <makevar>COMMENT</makevar> - Это однострочное описание порта. Пожалуйста, - не включайте сюда название пакета (или номер версии программного - обеспечения). Комментарий должен начинаться с заглавной буквы и не - заканчиваться точкой. Вот пример: + Содержит однострочное описание порта. Пожалуйста, соблюдайте + следующие правила: + + + + Старайтесь делать строку COMMENT длиной не больше, чем 70 + символов, так как эта строка будет использована программой + &man.pkg.info.1; для отображения однострочного описания + порта; + + + + Не включайте сюда название пакета + (или номер версии программного обеспечения); + + + + Комментарий должен начинаться с заглавной буквы и не + заканчиваться точкой; + + + + Не начинайте комментарий с неопределённого артикля (A + или An); + + + + Имена пишутся с заглавной буквы (например, Apache, + JavaScript. Perl); + + + + Для перечислений используйте английскую Оксфордскую + запятую (англ. Oxford comma) (например, green, + red, and blue); + + + + Используйте программу проверки орфографии. + + + + Вот пример: - A cat chasing a mouse all over the screen + Cat chasing a mouse all over the screen В файле Makefile переменная COMMENT должна следовать сразу за переменной MAINTAINER. + + + + <makevar>PORTSCOUT</makevar> + + Portscout являет собой + автоматизированное средство проверки доступности дистрибутивных + файлов для Коллекции Портов &os;, подробное описание которого + предоставляет . + + Переменная PORTSCOUT задаёт специальные + условия, ограничивающие работу Portscout + - сканера дистрибутивных файлов. + + Ситуации, при которых следует указывать переменную + PORTSCOUT: + + + + Когда должны игнорироваться дистрибутивные файлы для + конкретных версий или младших ревизий. Например, чтобы + исключить из проверок новых версий дистрибутивных файлов + версию 8.2 по причине того, что + она является поломанной, добавьте следующее: + + PORTSCOUT= ignore:8.2 + + + + Когда должны проверяться конкретные версии или старшие + и младшие ревизии дистрибутивных файлов. Например, если + следует ограничиться проверкой версии + 0.6.4, потому что более новые + версии имеют проблемы совместимости с &os;, добавьте: + + PORTSCOUT= limit:^0\.6\.4 + + + + Когда URL, в которых указаны доступные версии, отличаются + от URL их загрузки. Например, чтобы привязать проверку новых + версий дистрибутивных файлов к странице загрузки для порта + databases/pgtune, + добавьте: - Пожалуйста, постарайтесь делать строку COMMENT длиной не больше, - чем 70 символов, так как эта строка будет использована программой - &man.pkg.info.1; для отображения однострочного описания порта. + PORTSCOUT= site:http://pgfoundry.org/frs/?group_id=1000416 + + @@ -3377,38 +3510,23 @@ ALWAYS_KEEP_DISTFILES= yes Эта переменная указывает, от каких совместно используемых библиотек зависит порт. Это список пар - lib:dir:target + lib:dir где lib - это имя библиотеки, dir - это каталог, в котором можно ее - найти в случае, если ее нет на машине, и - target - это цель, которую нужно вызвать - в этом каталоге. Например, + найти в случае, если ее нет на машине. Например, - LIB_DEPENDS= jpeg:${PORTSDIR}/graphics/jpeg + LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg проверит наличие библиотеки jpeg с любым номером версии и перейдет в подкаталог graphics/jpeg вашего дерева портов для ее построения и установки, если библиотека - отсутствует. Часть target может быть - опущена, если она равна DEPENDS_TARGET - (по умолчанию install). - - - Часть lib является регулярным - выражением, которое вызывается для вывода, полученного из - ldconfig -r. Разрешаются такие значения, как - intl.9 и intl.[5-7]. - Первый шаблон, intl.9, совпадает только с - intl версии 9, в то время как intl.[5-7] - совпадает с любым из: intl.5, - intl.6 и intl.7. - + отсутствует. Зависимость проверяется дважды, один раз внутри цели extract, а затем из цели install. Кроме того, имя зависимости помещается в пакет, так что &man.pkg.add.1; будет - автоматически его устанавливать, если его нет на пользовательской + автоматически её устанавливать, если её нет на пользовательской системе. @@ -3484,7 +3602,7 @@ ALWAYS_KEEP_DISTFILES= yes с переменными USE_*, которые обрабатываются в ports/Mk/bsd.*.mk для пополнения первоначальных зависимостей построения. Например, - USE_GMAKE=yes добавляет + USES= gmake добавляет devel/gmake в BUILD_DEPENDS. Для предотвращения загрязнения RUN_DEPENDS подобными дополнительными @@ -3595,6 +3713,26 @@ ALWAYS_KEEP_DISTFILES= yes совпадает с DEPENDS_TARGET. + + <makevar>USES</makevar> + + Существует несколько параметров для определения различных + видов характерных особенностей и зависимостей, которыми + обладает рассматриваемый порт. Они могут быть указаны путём + добавления следующей строки в Makefile + порта: + + USES= feature[:arguments] + + Для получения полного списка значений смотрите . + + + Значение USES нельзя присваивать + после подключения bsd.port.pre.mk. + + + <makevar>USE_<replaceable>*</replaceable></makevar> @@ -3614,10 +3752,11 @@ ALWAYS_KEEP_DISTFILES= yes в /etc/make.conf всегда является ошибочным действием. В частности, установка - USE_GCC= 3.4 + USE_GCC=X.Y - добавит зависимость - от gcc34 к каждому порту, включая сам gcc34! + (где X.Y соответствует версии) добавит зависимость + от gccXY к каждому порту, включая и сам + lang/gccXY! @@ -3629,7 +3768,7 @@ ALWAYS_KEEP_DISTFILES= yes Переменная - Смысл + Значение @@ -3649,35 +3788,30 @@ ALWAYS_KEEP_DISTFILES= yes - USE_BISON - - Для построения порт использует - bison. - - - - USE_CDRTOOLS - - Порт требует cdrecord - из sysutils/cdrtools или sysutils/cdrtools-cjk в - зависимости от предпочтений пользователя. - - - USE_GCC - Порт требует для сборки специальную версию - gcc. Точная версия может быть указана - в значении переменной, например 3.4. - Минимально необходимую версию можно указать как - 3.4+. gcc из - основной системы используется в случае, если он - удовлетворяет запрошенной версии, иначе производится - компиляция подходящей версии gcc из - портов с коррекций переменных CC и - CXX. + Для сборки порта требуется GCC + (gcc или g++). + Некоторым портам подходит любая версия, для других + требуются последние современные версии. Обычно + используется со значением any (в + этом случае используется встроенный GCC в тех + версиях &os;, в состав которых он всё ещё входит, + или устанавливается порт + lang/gcc, когда Clang является + компилятором C/C++ по умолчанию) или + yes (всегда используется + стабильная современная версия GCC из порта + lang/gcc). Также в значении + переменной можно указать точную версию, например + 4.7. Минимально допустимую + версию можно указать как 4.6+. + GCC из основной системы используется в случае, если + его версия удовлетворяет запрошенной, иначе + собирается подходящая версии компилятора из порта с + соответствующей коррекцией переменных + CC и CXX. + @@ -3810,11 +3944,11 @@ LIB_DEPENDS= bar:${PORTSDIR}/foo/bar Корректное объявление необязательной зависимостиOPTIONS_DEFINE= BAR -BAR_DESC= Enable bar support +BAR_DESC= Bar support .include <bsd.port.options.mk> -.if ${PORTOPTIONS:MBAR} +.if ${PORT_OPTIONS:MBAR} LIB_DEPENDS= bar:${PORTSDIR}/foo/bar .endif @@ -3962,13 +4096,6 @@ MASTERDIR= ${.CURDIR}/../xdvi300 bsd.port.mk ничего дополнительно делать не нужно. - Значение переменной MANCOMPRESSED автоматически - устанавливается в yes, если переменная - USE_IMAKE задана, а - NO_INSTALL_MANPAGES нет, и в значение - no в противном случае. Вам не нужно задавать ее - явно, если значение по умолчанию подходит вашему порту. - Если ваш порт определяет корнем для файлов Справочника каталог, отличный от PREFIX, вы можете использовать переменную MANPREFIX, чтобы задать его явно. Кроме @@ -4078,7 +4205,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gzЭти переменные предназначены для установки системным администратором. Многие из них стандартизованы в файле - ports/KNOBS. + ports/KNOBS.При создании порта не давайте имя для knob, специфичное для данного приложения. На примере порта Avahi, используйте @@ -4110,19 +4237,11 @@ ${MANPREFIX}/man/de/man3/baz.3.gz Переменная - Значения + Значение - - WITHOUT_NLS - - Если установлена, указывает не задействовать - интернационализацию, что может ускорить компиляцию. - По умолчанию, интернационализация используется. - - WITH_OPENSSL_BASE @@ -4136,15 +4255,6 @@ ${MANPREFIX}/man/de/man3/baz.3.gzsecurity/openssl, даже если в базовой системе последняя версия. - - - WITHOUT_X11 - - Порты, которые могут быть собраны с поддержкой - или без поддержки X, обычно собираются с поддержкой - X. Если эта переменная определена, то будет собрана - версия без поддержки X. -
@@ -4157,7 +4267,7 @@ ${MANPREFIX}/man/de/man3/baz.3.gzKNOBS + url="http://svnweb.FreeBSD.org/ports/head/KNOBS?view=markup">KNOBS Названия knobs должны отражать, что это такое и что @@ -4249,6 +4359,13 @@ OPT6_DESC= Describe OPT6OPTIONS_SINGLE= SG1 OPTIONS_SINGLE_SG1= OPT3 OPT4 + OPTIONS можно группировать в виде + переключателей, для которых разрешен выбор единственного + варианта (или ни одного) в каждой группе: + + OPTIONS_RADIO= RG1 +OPTIONS_RADIO_RG1= OPT7 OPT8 + OPTIONS также можно группировать в виде списков со множественным выбором, для которых обязан быть включен по крайней мере @@ -4257,20 +4374,13 @@ OPTIONS_SINGLE_SG1= OPT3 OPT4OPTIONS_MULTI= MG1 OPTIONS_MULTI_MG1= OPT5 OPT6 - OPTIONS_MULTI и - OPTIONS_SINGLE также допускают - отсутствие выбора путём включения группы в - OPTIONS_DEFINE: - - OPTIONS_DEFINE= MG1 -OPTIONS_MULTI= MG1 -OPTIONS_MULTI_MG1= OPT5 OPT6 + OPTIONS также можно группировать + в виде списков со множественным выбором, для которых + могут быть включены любые параметры, включая отсутствие + выбора: - После этого группа требует по крайней мере один - OPTION из MG1, - только если выбран новый MG1 - OPTION. Рекомендуется - поэкспериментировать, чтобы улучшить понимание. + OPTIONS_GROUP= GG1 +OPTIONS_GROUP_GG1= OPT9 OPT10 По умолчанию OPTIONS находится в выключенном положении, если при этом оно также отсутствует @@ -4314,6 +4424,15 @@ RUN_DEPENDS+= bar:${PORTSDIR}/bar/bar .include <bsd.port.mk> + + Проверка незаданных значений + <makevar>OPTIONS</makevar> + + .if ! ${PORT_OPTIONS:MEXAMPLES} +CONFIGURE_ARGS+=--without-examples +.endif + + Пример реального использования <makevar>OPTIONS</makevar> @@ -4349,32 +4468,42 @@ CONFIGURE_ARGS+= --without-postgres LIB_DEPENDS+= icuuc:${PORTSDIR}/devel/icu .endif -# Check other OPTIONS - -.include <bsd.port.mk> - - - - Использование <makevar>OPTIONS</makevar> - в старом стиле - OPTIONS= FOO "Enable option foo" On - -.include <bsd.port.pre.mk> - -.if defined(WITHOUT_FOO) -CONFIGURE_ARGS+= --without-foo -.else -CONFIGURE_ARGS+= --with-foo +.if ! ${PORT_OPTIONS:MEXAMPLES} +CONFIGURE_ARGS+= --without-examples .endif -.include <bsd.port.post.mk> +# Проверка других параметров OPTIONS + +.include <bsd.port.mk> + - - Такой способ использования OPTIONS - является устаревшим, и в будущем его поддержка будет - удалёна. Не используйте этот способ для новых портов. - + + Параметры по умолчанию + Следующие параметры по умолчанию всегда включены. + + + DOCS — построение и установка + документации. + + + NLS — интернационализация. + + + EXAMPLES — построение и + установка примеров использования. + + + IPV6 — поддержка протокола + IPv6. + + + + Нет необходимости добавлять эти параметры в + OPTIONS_DEFAULT. Тем не менее, чтобы + отобразить их в окне диалога выбора параметров, они должны + быть добавлены в OPTIONS_DEFINE. +
@@ -4393,7 +4522,7 @@ CONFIGURE_ARGS+= --with-foo Неправильное управление опцией .if ${PORT_OPTIONS:MFOO} -LIB_DEPENDS+= foo:${PORTSDIR}/devel/foo +LIB_DEPENDS+= libfoo.so:${PORTSDIR}/devel/foo CONFIGURE_ARGS+= --enable-foo .endif @@ -4412,7 +4541,7 @@ CONFIGURE_ARGS+= --enable-foo Правильное управление опцией .if ${PORT_OPTIONS:MFOO} -LIB_DEPENDS+= foo:${PORTSDIR}/devel/foo +LIB_DEPENDS+= libfoo.so:${PORTSDIR}/devel/foo CONFIGURE_ARGS+= --enable-foo .else CONFIGURE_ARGS+= --disable-foo @@ -4422,148 +4551,445 @@ CONFIGURE_ARGS+= --disable-foo Во втором примере библиотека libfoo отключена явным образом. Сценарий configure не включает соответствующие функции в приложении, несмотря на присутствие библиотеки в системе. - - + + При определенных условиях сокращенный синтаксис записи + условий может вызывать проблемы со сложными конструкциями. + Если вы получаете ошибки, такие как Malformed + conditional, то может быть использован + альтернативный синтаксис. + + .if !empty(VARIABLE:MVALUE) +# as an alternative to +.if ${VARIABLE:MVALUE} + + - - Задание рабочего каталога + + Вспомогательные макросы - Каждый порт распаковывается в рабочий каталог, который должен быть - доступным для записи. В системе портов по умолчанию - DISTFILES распаковываются в каталог с именем - ${DISTNAME}. Другими словами, если вы - задали: + Существует несколько макросов, упрощающих запись условных + значений, которые отличаются в зависимости от набора + параметров. - PORTNAME= foo -PORTVERSION= 1.0 + Если переменная OPTIONS_SUB имеет + значение yes, то каждый из указанных в + OPTIONS_DEFINE параметров будет добавлен + в PLIST_SUB. Следующая запись: - то дистрибутивные файлы порта содержат каталог верхнего уровня, - foo-1.0, и все файлы расположены в этом - каталоге. + OPTIONS_DEFINE= OPT1 +OPTIONS_SUB= yes - Если это не ваш случай, то имеется несколько переменных, которые - вы можете переопределить. + соответствует: - - <makevar>WRKSRC</makevar> + OPTIONS_DEFINE= OPT1 - Эта переменная задаёт имя каталога, который создаётся при - распаковке исходных файлов приложения. В нашем предыдущем - примере если бы распаковка происходила в каталог с именем - foo (а не - foo-1.0), то вы должны написать: +.include <bsd.port.options.mk> - WRKSRC= ${WRKDIR}/foo +.if ${PORT_OPTIONS:MOPT1} +PLIST_SUB+= OPT1="" +.else +PLIST_SUB+= OPT1="@comment " +.endif - или, как вариант + X_CONFIGURE_ENABLE дописывает в + CONFIGURE_ARGS строку + --enable-${X_CONFIGURE_ENABLE} или + --disable-${X_CONFIGURE_ENABLE} в + соответствии с состоянием X. Следующая + запись: - WRKSRC= ${WRKDIR}/${PORTNAME} - + OPTIONS_DEFINE= OPT1 +OPT1_CONFIGURE_ENABLE= test - - <makevar>NO_WRKSUBDIR</makevar> + соответствует: - Если порт вообще не распаковывается ни в какой каталог, то вы - должны задать переменную NO_WRKSUBDIR для указания - на этот факт. + OPTIONS_DEFINE= OPT1 - NO_WRKSUBDIR= yes - - +.include <bsd.port.options.mk> - - Разрешение конфликтов +.if ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --enable-test +.else +CONFIGURE_ARGS+= --disable-test +.endif - Для регистрации конфликта между пакетами и портами используются - три различные переменные: CONFLICTS, - CONFLICTS_INSTALL и - CONFLICTS_BUILD. + X_CONFIGURE_WITH дописывает в + CONFIGURE_ARGS строку + --with-${X_CONFIGURE_WITH} или + --without-${X_CONFIGURE_WITH} в + соответствии с состоянием X. Следующая + запись: - - Переменные регистрации конфликта автоматически определяют - переменную IGNORE, которая более подробно - описана в . - + OPTIONS_DEFINE= OPT1 +OPT1_CONFIGURE_WITH= test - При удалении одного из конфликтующих портов целесообразно - сохранить записи CONFLICTS в тех других портах - в течении нескольких месяцев, чтобы позаботиться о тех пользователей, - которые обновляются от случая к случаю. + соответствует: - - <makevar>CONFLICTS_INSTALL</makevar> + OPTIONS_DEFINE= OPT1 - Если ваш пакет не может существовать вместе с другими - (из-за конфликта файлов, несовместимости времени выполнения и так - далее), перечислите имена остальных пакетов в переменной - CONFLICTS_INSTALL. Здесь вы можете использовать - шаблоны командного интерпретатора, такие как * - и ?. Имена пакетов должны выглядеть так же, - как в /var/db/pkg. Пожалуйста, убедитесь, - что CONFLICTS_INSTALL не содержит пакет самого - этого порта. В противном случае не будет работать установка с - использованием переменной FORCE_PKG_REGISTER. - Проверка CONFLICTS_INSTALL выполняется после процесса сборки и - до процесса установки. - +.include <bsd.port.options.mk> - - <makevar>CONFLICTS_BUILD</makevar> +.if ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --with-test +.else +CONFIGURE_ARGS+= --without-test +.endif - Если ваш порт не может быть собран, когда уже установлен - другой, перечислите имена остальных портов в переменной - CONFLICTS_BUILD. Здесь вы можете использовать - шаблоны командного интерпретатора, такие как * - и ?. Имена пакетов должны выглядеть так же, - как в /var/db/pkg. Проверка CONFLICTS_BUILD - выполняется до процесса сборки. Конфликты сборки в получаемом - пакете не записываются. - + Значение переменной X_CONFIGURE_ON + будет дописано в CONFIGURE_ARGS в + соответствии с состоянием X. Следующая + запись: - - <makevar>CONFLICTS</makevar> + OPTIONS_DEFINE= OPT1 +OPT1_CONFIGURE_ON= --add-test - Если ваш порт не может быть собран, когда уже установлен - другой, а получаемый пакет не может существовать вместе с другими, - перечислите имена остальных пакетов в переменной - CONFLICTS. Здесь вы можете использовать шаблоны - командного интерпретатора, такие как * и - ?. Имена пакетов должны выглядеть так же, как - в /var/db/pkg. Пожалуйста, убедитесь, что - CONFLICTS не содержит пакет самого этого порта. - В противном случае не будет работать установка с использованием - переменной FORCE_PKG_REGISTER. Проверка - CONFLICTS выполняется до процессов сборки и установки. - - + соответствует: - - Установка файлов + OPTIONS_DEFINE= OPT1 - - Макросы INSTALL_* +.include <bsd.port.options.mk> - Используйте макросы, которые есть в файле - bsd.port.mk для обеспечения правильных прав - доступа и владения файлов в своих целях - *-install. +.if ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --add-test +.endif - - - INSTALL_PROGRAM - это команда для - установки бинарных выполнимых файлов. - + Значение переменной X_CONFIGURE_OFF + будет дописано в CONFIGURE_ARGS в + соответствии с состоянием X. Следующая + запись: - - INSTALL_SCRIPT - это команда для установки - выполнимых скриптов. - + OPTIONS_DEFINE= OPT1 +OPT1_CONFIGURE_OFF= --no-test - - INSTALL_LIB - это команда для установки - динамических библиотек. - + соответствует: + + OPTIONS_DEFINE= OPT1 +.include <bsd.port.options.mk> +.if ! ${PORT_OPTIONS:MOPT1} +CONFIGURE_ARGS+= --no-test +.endif + + Значение переменной X_CMAKE_ON будет + дописано в CMAKE_ARGS в соответствии с + состоянием X. Следующая запись: + + OPTIONS_DEFINE= OPT1 +OPT1_CMAKE_ON= -DTEST:BOOL=true + + соответствует: + + OPTIONS_DEFINE= OPT1 + +.include <bsd.port.options.mk> + +.if ${PORT_OPTIONS:MOPT1} +CMAKE_ARGS+= -DTEST:BOOL=true +.endif + + Значение переменной X_CMAKE_OFF будет + дописано в CMAKE_ARGS в соответствии с + состоянием X. Следующая запись: + + OPTIONS_DEFINE= OPT1 +OPT1_CMAKE_OFF= -DTEST:BOOL=false + + соответствует: + + OPTIONS_DEFINE= OPT1 + +.include <bsd.port.options.mk> + +.if ! ${PORT_OPTIONS:MOPT1} +CMAKE_ARGS+= -DTEST:BOOL=false +.endif + + Для любой из следующих переменных: *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***