From owner-svn-doc-all@FreeBSD.ORG Sat Jul 12 14:08:50 2014 Return-Path: Delivered-To: svn-doc-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4EA0B352; Sat, 12 Jul 2014 14:08:50 +0000 (UTC) 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)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 375CA259B; Sat, 12 Jul 2014 14:08:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6CE8oSY020964; Sat, 12 Jul 2014 14:08:50 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6CE8nU6020959; Sat, 12 Jul 2014 14:08:49 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201407121408.s6CE8nU6020959@svn.freebsd.org> From: Sergey Kandaurov Date: Sat, 12 Jul 2014 14:08:49 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r45256 - in head/ru_RU.KOI8-R/books/porters-handbook: . appendices keeping-up makefiles new-port pkg-files plist porting-dads porting-samplem porting-why quick-porting security slow-por... X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Sat, 12 Jul 2014 14:28:59 +0000 X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.18 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: Sat, 12 Jul 2014 14:08:50 -0000 Author: pluknet Date: Sat Jul 12 14:08:49 2014 New Revision: 45256 URL: http://svnweb.freebsd.org/changeset/doc/45256 Log: Whitespace fixes after PH split. Modified: head/ru_RU.KOI8-R/books/porters-handbook/appendices/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/keeping-up/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/makefiles/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/new-port/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/pkg-files/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/plist/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/porting-dads/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/porting-samplem/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/porting-why/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/quick-porting/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/security/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/slow-porting/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/special/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/testing/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/upgrading/chapter.xml head/ru_RU.KOI8-R/books/porters-handbook/uses.xml head/ru_RU.KOI8-R/books/porters-handbook/versions.xml Modified: head/ru_RU.KOI8-R/books/porters-handbook/appendices/chapter.xml ============================================================================== --- head/ru_RU.KOI8-R/books/porters-handbook/appendices/chapter.xml Sat Jul 12 09:14:48 2014 (r45255) +++ head/ru_RU.KOI8-R/books/porters-handbook/appendices/chapter.xml Sat Jul 12 14:08:49 2014 (r45256) @@ -7,67 +7,70 @@ Original revision: r43844 --> - + - Приложения + Приложения - - Значения <varname>USES</varname> + + Значения <varname>USES</varname> - - Значения <varname>USES</varname> +
+ Значения <varname>USES</varname> - - - - Наименование - Аргументы - Описание - - - - &values.uses; - - -
-
+ + + + Наименование + Аргументы + Описание + + + + + &values.uses; + + + +
+ + + Значения <literal>__FreeBSD_version</literal> + + Ниже для справки приводится перечень значений + __FreeBSD_version в виде, который определён + в sys/param.h: - + Значения <literal>__FreeBSD_version</literal> - Ниже для справки приводится перечень значений - __FreeBSD_version в виде, который определён в - sys/param.h: - -
- Значения <literal>__FreeBSD_version</literal> - - - - - Значение - Дата - Релиз - - - - - &values.versions; - - -
- - - Заметьте, что 2.2-STABLE иногда идентифицирует себя как - 2.2.5-STABLE после 2.2.5-RELEASE. Такой принцип - использовался год и месяц, но мы решили изменить его на более - однозначную систему нумерации старший/младший, начиная с версии - 2.2. Это объясняется тем, что параллельная разработка в нескольких - ветках делает непрактичным идентификацию релизов просто по их - реальным датам выпуска. Если вы сейчас делаете порт, вам не стоит - заботиться о старых версиях -CURRENT; они перечислены здесь просто - в информационных целях. - -
-
- + + + + Значение + Дата + Релиз + + + + + &values.versions; + + + + + + Заметьте, что 2.2-STABLE иногда идентифицирует себя как + 2.2.5-STABLE после 2.2.5-RELEASE. Такой + принцип использовался год и месяц, но мы решили изменить его + на более однозначную систему нумерации старший/младший, + начиная с версии 2.2. Это объясняется тем, что параллельная + разработка в нескольких ветках делает непрактичным + идентификацию релизов просто по их реальным датам выпуска. + Если вы сейчас делаете порт, вам не стоит заботиться о старых + версиях -CURRENT; они перечислены здесь просто в + информационных целях. + + +
Modified: head/ru_RU.KOI8-R/books/porters-handbook/keeping-up/chapter.xml ============================================================================== --- head/ru_RU.KOI8-R/books/porters-handbook/keeping-up/chapter.xml Sat Jul 12 09:14:48 2014 (r45255) +++ head/ru_RU.KOI8-R/books/porters-handbook/keeping-up/chapter.xml Sat Jul 12 14:08:49 2014 (r45256) @@ -7,149 +7,161 @@ Original revision: r43840 --> - + - Актуализация - - Коллекция Портов &os; постоянно изменяется. Здесь находится - некоторая информация о том, как поддерживать её в актуальном - состоянии. - - - FreshPorts - - Самым простым способом отслеживать уже произошедшие обновления - является подписка на - FreshPorts. Для мониторинга вы можете выбрать несколько - портов. Мейнтейнерам настоятельно рекомендуется подписаться здесь, - потому что они будут получать уведомления не только о собственных - изменениях, но и об изменениях, сделанных любым другим коммиттером - &os;. (Это часто необходимо для синхронизации с изменениями на более - низком технологическом уровне—хотя более корректным было бы - получение предупреждений от тех, кто вносит подобные изменения, - иногда этот этап пропускается или он просто непрактичен. Кроме того, - в некоторых случаях изменения по своей природе весьма незначительны. - Мы полагаем, что любой разработчик в таких ситуациях будет - руководствоваться здравым смыслом). - - Если вы хотите использовать FreshPorts, то вам нужна только - учётная запись. Если регистрационный адрес вашей электронной почты - будет иметь вид @FreeBSD.org, то справа на - Web-страницах вы увидите дополнительную ссылку. Для тех из вас, кто - уже получил учётную запись FreshPorts, но не использовал собственный - адрес электронной почты @FreeBSD.org, достаточно - сменить адрес на @FreeBSD.org, подписаться, а - затем сменить его обратно. - - Во FreshPorts имеется также функция проверки правильности, - которая автоматически проверяет каждое изменение, внесённое в дерево - портов &os;. Если вы подпишетесь на эту услугу, то будете - оповещаться обо всех ошибках, обнаруженных FreshPorts при проверке - внесённых вами изменений. - - - - Web-интерфейс к хранилищу исходных текстов - - Файлы в хранилище исходных текстов можно просматривать при помощи - Web-интерфейса. Изменения, которые касаются в целом всей системы - портов, теперь документируются в файле CHANGES. - Изменения, касающиеся отдельных портов, отражаются теперь в - файле UPDATING. - Однако однозначный ответ на любой вопрос можно найти, только - прочитав исходных код bsd.port.mk - и связанных с ним файлов. - - - - Список рассылки &os;, посвящённый портам - - Если вы поддерживаете порты, то должны следить за &a.ports;. - О важных изменениях, отражающихся на работе портов, будет сообщаться - здесь, а затем они переносятся в CHANGES. - - Если данный список рассылки слишком загружен сообщениями, - вы можете отслеживать &a.ports-announce.name;, который модерируется - и не является местом для дискуссий. - - - - Кластер построения портов &os; - - Одной из наименее известных сильных сторон &os; является тот - факт, что для непрерывного построения Коллекции Портов для каждого - из основных релизов ОС для каждой архитектуры уровня поддержки - Tier-1 выделен целый кластер машин. - - Отдельные порты собираются, если они специально не помечены как - IGNORE. Для портов, помеченных как - BROKEN, попытки будут продолжены для того, - чтобы увидеть, если основная проблема была решена. (Это сделано - через использование переменной TRYBROKEN для - Makefile порта.) - - - - - Portscout: сканер дистрибутивных файлов портов &os; - - Кластер построения выделен для выполнения самого последнего - релиза каждого из портов, дистрибутивные файлы которых уже были - сгружены. Однако из-за постоянных изменений в Internet - дистрибутивные файлы могут быстро исчезать. Portscout, средство - сканирования дистрибутивных файлов &os; пытается опросить - каждый из сайтов, доступных для сгрузки каждого из портов, - для определения того, доступны ли ещё дистрибутивные файлы. - Portscout может готовить отчёты - в HTML и рассылать электронные письма об - имеющихся обновлениях для портов тем, кто это запрашивает. - Мейнтейнеры периодически запрашивают наличие изменений, либо - вручную, либо используя ленту RSS. - - Главная страница Portscout - отображает email мейнтейнера порта, количество портов, за - которые ответственен мейнтейнер, количество портов с новыми - дистрибутивными файлами и процент устаревших портов. Функция - поиска выполняет поиск мейнтейнера по адресу электронной почты - и позволяет выбирать между всеми портами или только - устаревшими. - - При щелчке по адресу электронной почты мейнтейнера - отображается список всех его портов, разделённых по категориям, - вместе с текущим номером версии, информацией о наличии новой - версии, временем последнего обновления порта и временем его - последней проверки. Функция поиска на этой странице позволяет - пользователю выполнять поиск конкретного порта. - - По щелчку на название порта в списке отображается информация - о порте FreshPorts. - - - - Система мониторинга портов &os; - - Другим полезным ресурсом является - Система мониторинга - портов &os; (известная также как portsmon). - Система представляет собой базу данных, обрабатывающую информацию из - нескольких источников и позволяющую просматривать их при помощи - Web-интерфейса. На данный момент задействованы база сообщений об - ошибках (PR), протоколы ошибок кластера построения и отдельные файлы - из коллекции портов. В будущем в этот список будет добавлена система - проверки дистрибутивных файлов и другие ресурсы. - - Для начала вы можете просмотреть всю информацию о некотором порте - при помощи средства Обзор - отдельного порта. - - На момент написания это единственный доступный ресурс, который - для имени порта ставит в соответствие записи PR GNATS. - (Отправители PR не всегда добавляют в название имя порта, хотя - мы предпочитаем, чтобы они это делали.) Таким образом, - portsmon это хорошее место для начала, если вы - хотите найти присланные PR и/или ошибки построения для существующего - порта; либо поискать, был ли уже прислан новый порт, который вы - подумывали создать сами. - - + Актуализация + Коллекция Портов &os; постоянно изменяется. Здесь находится + некоторая информация о том, как поддерживать её в актуальном + состоянии. + + + FreshPorts + + Самым простым способом отслеживать уже произошедшие + обновления является подписка на FreshPorts. Для + мониторинга вы можете выбрать несколько портов. Мейнтейнерам + настоятельно рекомендуется подписаться здесь, потому что они + будут получать уведомления не только о собственных изменениях, + но и об изменениях, сделанных любым другим коммиттером &os;. + (Это часто необходимо для синхронизации с изменениями на более + низком технологическом уровне—хотя более корректным было + бы получение предупреждений от тех, кто вносит подобные + изменения, иногда этот этап пропускается или он просто + непрактичен. Кроме того, в некоторых случаях изменения по + своей природе весьма незначительны. Мы полагаем, что любой + разработчик в таких ситуациях будет руководствоваться здравым + смыслом). + + Если вы хотите использовать FreshPorts, то вам нужна только + учётная запись. Если регистрационный адрес вашей электронной + почты будет иметь вид @FreeBSD.org, то + справа на Web-страницах вы увидите дополнительную ссылку. Для + тех из вас, кто уже получил учётную запись FreshPorts, но не + использовал собственный адрес электронной почты + @FreeBSD.org, достаточно сменить адрес на + @FreeBSD.org, подписаться, а затем сменить + его обратно. + + Во FreshPorts имеется также функция проверки правильности, + которая автоматически проверяет каждое изменение, внесённое в + дерево портов &os;. Если вы подпишетесь на эту услугу, то + будете оповещаться обо всех ошибках, обнаруженных FreshPorts + при проверке внесённых вами изменений. + + + + Web-интерфейс к хранилищу исходных текстов + + Файлы в хранилище исходных текстов можно просматривать при + помощи Web-интерфейса. Изменения, которые касаются в целом + всей системы портов, теперь документируются в файле CHANGES. + Изменения, касающиеся отдельных портов, отражаются теперь в + файле UPDATING. + Однако однозначный ответ на любой вопрос можно найти, только + прочитав исходных код bsd.port.mk + и связанных с ним файлов. + + + + Список рассылки &os;, посвящённый портам + + Если вы поддерживаете порты, то должны следить за + &a.ports;. О важных изменениях, отражающихся на работе портов, + будет сообщаться здесь, а затем они переносятся в + CHANGES. + + Если данный список рассылки слишком загружен сообщениями, + вы можете отслеживать &a.ports-announce.name;, который + модерируется и не является местом для дискуссий. + + + + Кластер построения портов &os; + + Одной из наименее известных сильных сторон &os; является + тот факт, что для непрерывного построения Коллекции Портов для + каждого из основных релизов ОС для каждой архитектуры уровня + поддержки Tier-1 выделен целый кластер машин. + + Отдельные порты собираются, если они специально не помечены + как IGNORE. Для портов, помеченных как + BROKEN, попытки будут продолжены для того, + чтобы увидеть, если основная проблема была решена. (Это + сделано через использование переменной + TRYBROKEN для Makefile + порта.) + + + + Portscout: сканер дистрибутивных файлов портов + &os; + + Кластер построения выделен для выполнения самого последнего + релиза каждого из портов, дистрибутивные файлы которых уже были + сгружены. Однако из-за постоянных изменений в Internet + дистрибутивные файлы могут быстро исчезать. Portscout, + средство сканирования дистрибутивных файлов &os; пытается + опросить каждый из сайтов, доступных для сгрузки каждого из + портов, для определения того, доступны ли ещё дистрибутивные + файлы. Portscout может готовить + отчёты в HTML и рассылать электронные письма + об имеющихся обновлениях для портов тем, кто это запрашивает. + Мейнтейнеры периодически запрашивают наличие изменений, либо + вручную, либо используя ленту RSS. + + Главная страница Portscout + отображает email мейнтейнера порта, количество портов, за + которые ответственен мейнтейнер, количество портов с новыми + дистрибутивными файлами и процент устаревших портов. Функция + поиска выполняет поиск мейнтейнера по адресу электронной почты + и позволяет выбирать между всеми портами или только + устаревшими. + + При щелчке по адресу электронной почты мейнтейнера + отображается список всех его портов, разделённых по категориям, + вместе с текущим номером версии, информацией о наличии новой + версии, временем последнего обновления порта и временем его + последней проверки. Функция поиска на этой странице позволяет + пользователю выполнять поиск конкретного порта. + + По щелчку на название порта в списке отображается информация + о порте FreshPorts. + + + + Система мониторинга портов &os; + + Другим полезным ресурсом является Система мониторинга + портов &os; (известная также как + portsmon). Система представляет собой базу + данных, обрабатывающую информацию из нескольких источников и + позволяющую просматривать их при помощи Web-интерфейса. На + данный момент задействованы база сообщений об ошибках (PR), + протоколы ошибок кластера построения и отдельные файлы из + коллекции портов. В будущем в этот список будет добавлена + система проверки дистрибутивных файлов и другие ресурсы. + + Для начала вы можете просмотреть всю информацию о некотором + порте при помощи средства Обзор + отдельного порта. + + На момент написания это единственный доступный ресурс, + который для имени порта ставит в соответствие записи PR GNATS. + (Отправители PR не всегда добавляют в название имя порта, хотя + мы предпочитаем, чтобы они это делали.) Таким образом, + portsmon это хорошее место для начала, если + вы хотите найти присланные PR и/или ошибки построения для + существующего порта; либо поискать, был ли уже прислан новый + порт, который вы подумывали создать сами. + + Modified: head/ru_RU.KOI8-R/books/porters-handbook/makefiles/chapter.xml ============================================================================== --- head/ru_RU.KOI8-R/books/porters-handbook/makefiles/chapter.xml Sat Jul 12 09:14:48 2014 (r45255) +++ head/ru_RU.KOI8-R/books/porters-handbook/makefiles/chapter.xml Sat Jul 12 14:08:49 2014 (r45256) @@ -7,3028 +7,3209 @@ Original revision: r43840 --> - + - Настройка файла Makefile + Настройка файла Makefile - Настройка файла Makefile достаточно проста, и - мы снова предполагаем, что перед тем, как начать, вы посмотрите на - существующие примеры. К тому же в этом руководстве имеется примерный Makefile, так что взгляните - на него и, пожалуйста, следуйте порядку переменных и разделов в этом - образце, чтобы облегчить чтение вашего порта другими людьми. - - Итак, расположим решаемые задачи в порядке их возникновения при - создании вашего нового файла Makefile: - - - Оригинальные исходный код - - Находится ли он в каталоге DISTDIR в виде - стандартного упакованного архиватором gzip - tar-архива с именем типа - foozolix-1.2.tar.gz? Если это так, - можно перейти к следующему шагу. Если нет, то вы должны попытаться - переопределить некоторые из переменных - DISTVERSION, DISTNAME, - EXTRACT_CMD, - EXTRACT_BEFORE_ARGS, - EXTRACT_AFTER_ARGS, - EXTRACT_SUFX или DISTFILES в - зависимости от того, насколько необычен формат дистрибутивного - файла. - - В худшем случае вы можете просто определить свою собственную цель - do-extract для переопределения действий по - умолчанию, хотя к этому нужно будет прибегать в очень редких случаях, - если вообще придётся. - - - - Именование - - В первой части Makefile порта ему даётся - название, указывается его номер версии и принадлежность к правильной - категории. - - - <varname>PORTNAME</varname> и - <varname>PORTVERSION</varname> - - В переменной PORTNAME вы должны указать - основную часть имени вашего порта, а в переменной - PORTVERSION - номер версии. - - - - <varname>PORTREVISION</varname> и - <varname>PORTEPOCH</varname> - - - <varname>PORTREVISION</varname> - - Переменная PORTREVISION представляет собой - монотонно увеличивающееся число, которое обнуляется при каждом - увеличении значения переменной PORTVERSION (то - есть каждый раз, когда создателями выпускается новый официальный - релиз), и добавляется к имени пакета, если оно не равно нулю. - Изменения в PORTREVISION используются - автоматизированными инструментами (например, - pkg version, см. &man.pkg-version.8;) - для определения факта появления нового пакета. - - Значение PORTREVISION должно увеличиваться - каждый раз, когда в порте FreeBSD делаются изменения, которые - как-либо меняют получаемый пакет. Сюда относятся только - изменения, затрагивающие построение пакета с параметрами по - умолчанию. - - Примеры случаев, когда значение PORTREVISION - должно быть увеличено: - - - - Добавление патчей для исправления уязвимостей, - ошибок, или добавления новой функциональности в порт. - - - - Изменения в файле Makefile порта для - включения и выключения параметров, определяемых при компиляции - пакета. - - - - Изменения в списке упаковки или в поведении пакета во - время его установки (например, изменение скрипта, генерирующего - начальные данные для пакета, такие, как ssh-ключи для - хоста). - - - - Увеличение версии динамической библиотеки, от которой - зависит порт (в этом случае тот, кто попытается установить - старый пакет после установки более новой версии библиотеки, - не сможет этого сделать, потому что при этом будет делаться - поиск старой библиотеки libfoo.x, а не libfoo.(x+1)). - - - - Большие функциональные изменения в дистрибутивном файле - порта, происходящие без объявлений, и приводящие к большим - изменениям, то есть изменения в дистрибутиве требуют - корректировки файла distinfo без - соответствующего изменения PORTVERSION, - когда как команда diff -ru между новой - и старой версиями показывает нетривиальные изменения в - коде. - - - - Примеры изменений, которые не требуют увеличения переменной - PORTREVISION: - - - - Изменения стиля в скелете порта без функциональных изменений - в пакете. - - - - Изменения в переменной MASTER_SITES или - другие функциональные изменения порта, которые не затрагивают - получающегося пакета. - - - - Тривиальные патчи к дистрибутивному файлу, такие, как - исправления опечаток, которые не так уж важны, что пользователи - пакета должны озаботиться обновлением. - - - - Исправления, касающиеся этапа построения, которые делают - возможным построение пакета, если ранее это было невозможно - сделать (пока изменения не приводят к изменению работы на любых - других платформах, на которых порт ранее строился). Так как - PORTREVISION отражает содержимое пакета, - то, если ранее пакет не строился, то нет нужды увеличивать - PORTREVISION для отметки изменения. - - - - Правило, которому нужно приблизительно следовать, заключается в - том, что нужно спрашивать себя, является ли вносимое в порт - изменение таким, что от него выиграют все (в виде - усовершенствования, исправления или благодаря тому, что новый - пакет будет вообще работоспособным), и примите во внимание тот - факт, что при этом все, кто регулярно обновляют своё дерево портов, - будут обязаны это сделать. Если это так, то переменная - PORTREVISION должна быть увеличена. - - - - <varname>PORTEPOCH</varname> - - Время от времени разработчик программного обеспечения или - создатель порта &os; делают что-то не так и выпускают версию - программы, номер которой меньше предыдущей версии. Примером этого - является порт, название которого меняется с foo-20000801 на foo-1.0 - (изначально это не считалось бы более новой версией, так как - 20000801 численно больше, чем 1). - - - Результат сравнения номера версии не всегда очевиден. - Для выполнения сравнения двух строк с номером версии можно - использовать pkg version - (см. &man.pkg-version.8;). Например: - - &prompt.user; pkg_version -t 0.031 0.29 -> - - Для пользователей pkgng: + Настройка файла Makefile достаточно + проста, и мы снова предполагаем, что перед тем, как начать, вы + посмотрите на существующие примеры. К тому же в этом руководстве + имеется примерный + Makefile, так что взгляните на него и, пожалуйста, + следуйте порядку переменных и разделов в этом образце, чтобы + облегчить чтение вашего порта другими людьми. + + Итак, расположим решаемые задачи в порядке их возникновения + при создании вашего нового файла + Makefile: + + + Оригинальные исходный код + + Находится ли он в каталоге DISTDIR в + виде стандартного упакованного архиватором + gzip tar-архива с именем типа + foozolix-1.2.tar.gz? Если это так, можно + перейти к следующему шагу. Если нет, то вы должны попытаться + переопределить некоторые из переменных + DISTVERSION, DISTNAME, + EXTRACT_CMD, + EXTRACT_BEFORE_ARGS, + EXTRACT_AFTER_ARGS, + EXTRACT_SUFX или + DISTFILES в зависимости от того, насколько + необычен формат дистрибутивного файла. + + В худшем случае вы можете просто определить свою + собственную цель do-extract для + переопределения действий по умолчанию, хотя к этому нужно будет + прибегать в очень редких случаях, если вообще придётся. + - &prompt.user; pkg version -t 0.031 0.29 -> + + Именование - Строка > в выводе команды означает, - что версия 0.031 считается выше, чем версия 0.29, что может - быть не очевидно для того, кто выполняет портирование. - + В первой части Makefile порта ему + даётся название, указывается его номер версии и принадлежность + к правильной категории. + + + <varname>PORTNAME</varname> и + <varname>PORTVERSION</varname> + + В переменной PORTNAME вы должны + указать основную часть имени вашего порта, а в переменной + PORTVERSION - номер версии. + + + + <varname>PORTREVISION</varname> и + <varname>PORTEPOCH</varname> + + + <varname>PORTREVISION</varname> + + Переменная PORTREVISION представляет + собой монотонно увеличивающееся число, которое обнуляется + при каждом увеличении значения переменной + PORTVERSION (то есть каждый раз, когда + создателями выпускается новый официальный релиз), и + добавляется к имени пакета, если оно не равно нулю. + Изменения в PORTREVISION используются + автоматизированными инструментами (например, + pkg version, см. &man.pkg-version.8;) + для определения факта появления нового пакета. + + Значение PORTREVISION должно + увеличиваться каждый раз, когда в порте FreeBSD делаются + изменения, которые как-либо меняют получаемый пакет. Сюда + относятся только изменения, затрагивающие построение пакета + с параметрами по + умолчанию. + + Примеры случаев, когда значение + PORTREVISION должно быть + увеличено: - В ситуациях, подобных этой, должно быть увеличено значение - PORTEPOCH. Если значение - PORTEPOCH не равно нулю, то оно добавляется к - имени пакета, как описано в разделе выше. Значение - PORTEPOCH никогда не должно уменьшаться или - сбрасываться в ноль, потому что это приведёт к ошибке сравнения с - пакетом с меньшим номером эпохи (то есть то, что пакет устарел, - обнаружено не будет): номер новой версии (например, - 1.0,1 в примере выше) останется меньше, чем - номер предыдущей версии (20000801), однако суффикс - ,1 интерпретируется различными - автоматизированными утилитами особым образом, и окажется больше, - чем предполагаемый суффикс ,0 более раннего - пакета). - - Некорректное уменьшение или сброс PORTEPOCH - приводит к печальным последствиям; если вы не поняли, о чём шла - речь ранее, пожалуйста, всё же разберитесь с этим, либо спросите - в списках рассылки. - - Предполагается, что в большинстве портов переменная - PORTEPOCH использоваться не будет, но при - корректном использовании PORTVERSION может - появиться необходимость её иметь, если в будущих релизах - программное обеспечение должно изменить структуру номера версии. - Однако создателям портов для &os; нужно быть внимательными, когда - разработчик выпускает релиз без официального номера версии — - эдакие промежуточные релизы. Имеется соблазн - пометить релиз датой его выхода, что может вызвать проблемы, как и - в примере выше, когда будет выпущен новый - официальный релиз. - - Например, если промежуточный релиз помечен датой 20000917, а - предыдущая версия программного обеспечения имела номер 1.2, то - промежуточному релизу должно быть поставлено в соответствие - значение PORTVERSION, равное 1.2.20000917 или - что-то похожее, но не 20000917, так как последующий релиз, скажем, - 1.3, должен иметь численно большее значение. - - - - Пример использования переменных - <varname>PORTREVISION</varname> и - <varname>PORTEPOCH</varname> - - Выполнен коммит порта gtkmumble, версии - 0.10, в коллекцию портов. - - PORTNAME= gtkmumble -PORTVERSION= 0.10 - - Значение PKGNAME станет равным - gtkmumble-0.10. - - Обнаружена брешь в безопасности, исправление которой - потребовало создания - локального патча для &os;. Соответственно было увеличено - значение переменной PORTREVISION. - - PORTNAME= gtkmumble -PORTVERSION= 0.10 -PORTREVISION= 1 - - PKGNAME принимает значение - gtkmumble-0.10_1 - - Разработчиком выпущена новая версия с номером - 0.2 (оказалось, что под номером - 0.10 автор имел в виду - 0.1.0, а не то, что будет выпущено после - версии 0.9 - извините, теперь уже поздно). Так как новый - младший номер версии 2 по значению меньше, чем - номер предыдущей версии 10, то должно быть - увеличено значение PORTEPOCH для того, чтобы - заставить распознавать вновь создаваемый пакет как более - новый. Так как это новый релиз программы, то - PORTREVISION обнуляется (или удаляется из - файла Makefile). - - PORTNAME= gtkmumble -PORTVERSION= 0.2 -PORTEPOCH= 1 - - PKGNAME принимает значение - gtkmumble-0.2,1 - - Следующий релиз имеет номер версии 0.3. Так как значение - переменной PORTEPOCH никогда не уменьшается, что - переменные, определяющие версии, теперь выглядят так: - - PORTNAME= gtkmumble -PORTVERSION= 0.3 -PORTEPOCH= 1 - - PKGNAME принимает значение - gtkmumble-0.3,1 - - - Если значение PORTEPOCH этим обновлением - было бы сброшено в 0, то кто-нибудь, имеющий - установленный пакет gtkmumble-0.10_1, не - смог бы опознать пакет gtkmumble-0.3 как - более новый, так как 3 было бы меньше, чем - 10. Помните, что в первую очередь это - касается PORTEPOCH. - - - - - - Переменные <varname>PKGNAMEPREFIX</varname> - и <varname>PKGNAMESUFFIX</varname> - - Две необязательные переменные, PKGNAMEPREFIX и - PKGNAMESUFFIX, объединяются со значениями - PORTNAME и - PORTVERSION для формирования - PKGNAME в форме - ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. - Добейтесь того, чтобы это соответствовало нашим рекомендациям по правильному выбору - названий для пакетов. В частности, в переменной - PORTVERSION не разрешается - использование дефиса (-). Кроме того, если в - имени пакета присутствует часть language- - или -compiled.specifics (смотрите ниже), - то используйте переменные PKGNAMEPREFIX и - PKGNAMESUFFIX, соответственно. Не делайте их - частью значения переменной PORTNAME. - - - - Соглашения по именованию пакетов - - Далее описаны некоторые соглашения, которым вы должны следовать - в именовании ваших пакетов. Они были разработаны для облегчения - просмотра каталога, так как имеется уже тысячи пакетов, а - пользователи отвернутся от нас, если список не понравится их - взору! - - Имя пакета должно иметь вид - language_region-name-compiled.specifics-version.numbers. - - Имя пакета определяется как - ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. - Вы должны задавать значения переменных в соответствии с этим - форматом. - - - - &os; пытается поддерживать языки, на которых разговаривают - её пользователи. Часть language- - должна быть двухсимвольным сокращением от названия языка по - стандарту ISO-639, если порт специфичен для конкретного языка. - Примерами являются ja для японского, - ru для русского, vi для - вьетнамского, zh для китайского, - ko для корейского и de для - немецкого языков. - - Если ваш порт специфичен для конкретного региона внутри - области использования языка, добавьте также двухсимвольный код - страны. Примерами являются en_US для US - English и fr_CH для Swiss French. - - Часть language- должна задаваться - в переменной PKGNAMEPREFIX. - - - - Первая буква части name должна быть в - нижнем регистре. (Оставшаяся часть названия может содержать - буквы в верхнем регистре, так что принимайте решение сами, когда - преобразуете имя программного пакета, содержащего в имени - некоторое количество заглавных букв.) Существует традиция - именовать модули для Perl 5, добавляя впереди - p5- и преобразуя пару двоеточий в - дефис; например, модуль Data::Dumper будет - именоваться p5-Data-Dumper. + + + Добавление патчей для исправления уязвимостей, + ошибок, или добавления новой функциональности в + порт. - Убедитесь, что имя порта и версия четко отделены и - размещаются в переменных PORTNAME и - PORTVERSION. Единственная причина, по - которой PORTNAME содержит версионную часть, - это если полученный дистрибутив сам назван таким образом, как - это сделано для портов textproc/libxml2 - или japanese/kinput2-freewnn. В противном - случае PORTNAME не должен содержать никакой - информации, указывающей на версию. То, что некоторые порты - имеют одинаковый PORTNAME, является вполне - нормальным, как для портов www/apache*; - в этом случае различные версии (и различные записи в индексе) - отличаются по значениям PKGNAMEPREFIX - и PKGNAMESUFFIX. - - - - Если порт может быть построен с различными статически заданными значениями по - умолчанию (обычно это часть имени каталога в семействе - портов), то часть -compiled.specifics - должна определять вкомпилированные значения по умолчанию (дефис - не обязателен). Примерами являются размеры бумаги и - шрифтов. - - Часть -compiled.specifics должна - задаваться в переменной PKGNAMESUFFIX. - - - - Строка с номером версии должна следовать за дефисом - (-) и являться списком разделенных двоеточием - чисел и букв в нижнем регистре. В частности, не разрешается - иметь еще один дефис внутри строки с обозначением номера версии. - Единственным исключением является строчка pl - (означающая patchlevel), которая может - использоваться только тогда, когда у - программного обеспечения нет старшего и младшего номера версии. - Если в номер версии программного обеспечения включена строчка - типа alpha, beta, - rc или pre, возьмите из неё первую - букву и поставьте её непосредственно после точки. Если после - таких строк номер версии ещё продолжается, то после буквы должно - следовать число без дополнительной разделяющей точки. - - Смысл такого формата заключается в удобстве сортировки портов - по номеру версии. В частности, следите за тем, чтобы компоненты - номера версии разделялись точкой, и если там присутствует дата, - то используйте формат - 0.0.yyyy.mm.dd, но не - dd.mm.yyyy - или не совместимый с проблемой Y2K - yy.mm.dd. - Добавление к версии префикса 0.0. является - важным, в случае если выпущен релиз с присвоением настоящей - версии, которая в числовом представлении, конечно же, будет - ниже, чем - yyyy. - - - - Вот несколько (реальных) примеров того, как преобразовать имя из - оригинального, придуманного авторами, к подходящему для имени - пакета: - - - - - - Имя дистрибутива - - PKGNAMEPREFIX - - PORTNAME - - PKGNAMESUFFIX - - PORTVERSION - - Обоснование - - - - - - mule-2.2.2 - (пусто) - mule - (пусто) - 2.2.2 - Изменений не потребовалось - - - - EmiClock-1.0.2 - (пусто) - emiclock - (пусто) - 1.0.2 - Для отдельных программ имена с заглавными буквами - запрещены - *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***