From c066b8d2c1e2711f2ffc41e686245cc1b24f7ee1 Mon Sep 17 00:00:00 2001 From: Andrey Zakhvatov Date: Sat, 21 Feb 2004 06:24:17 +0000 Subject: [PATCH] MFen 1.367 Obtained from: The FreeBSD Russian Documentation Project --- ru_RU.KOI8-R/books/porters-handbook/book.sgml | 999 +++++++++++++----- 1 file changed, 756 insertions(+), 243 deletions(-) diff --git a/ru_RU.KOI8-R/books/porters-handbook/book.sgml b/ru_RU.KOI8-R/books/porters-handbook/book.sgml index 84067031af..0a831f9e77 100644 --- a/ru_RU.KOI8-R/books/porters-handbook/book.sgml +++ b/ru_RU.KOI8-R/books/porters-handbook/book.sgml @@ -2,9 +2,9 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml,v 1.108 2004/01/13 12:16:14 andy Exp $ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml,v 1.116 2004/02/15 16:24:16 andy Exp $ - Original revision: 1.353 + Original revision: 1.367 --> %mailing-lists; + +%freebsd; ]> @@ -45,10 +47,25 @@ &bookinfo.legalnotice; + + Введение + + Коллекция портов FreeBSD является способом, используемым + практически каждым для установки приложений ("портов") на FreeBSD. + Как и почти всё остальное во FreeBSD, эта система в основном является + добровольно поддерживаемым начинанием. Важно иметь это в виду при + чтении данного документа. + + Во FreeBSD любой может прислать новый порт либо изъявить желание + поддерживать существующий порт, если его никто ещё никто не + поддерживает—вам не нужно иметь никаких особых привилегий на + внесение изменений, чтобы это делать. + + Как самому сделать порт - Итак, теперь вас интересует, как создать собственный порт или + Итак, вы интересуетесь, как создать собственный порт или обновить существующий? Великолепно! Ниже находятся некоторые указания по созданию нового порта для @@ -66,8 +83,9 @@ Только часть переменных (VAR), которые могут быть переопределены, описаны в этом документе. Большинство (если не - все) описаны в начале файла bsd.port.mk. - В этом файле используется нестандартная настройка шага табуляции. + все) описаны в начале файла bsd.port.mk; + остальные, скорее всего, тоже там описаны. Заметьте, что + в этом файле используется нестандартная настройка шага табуляции: Emacs и Vim должны распознать это при загрузке файла. Как &man.vi.1;, так и &man.ex.1; могут быть настроены на использование @@ -80,7 +98,8 @@ Быстрое портирование В этом разделе будет описано, как сделать порт на скорую руку. - Во многих случаях этого бывает недостаточно, но мы посмотрим. + Во многих случаях этого бывает не достаточно, так что вам нужно будет + прочитать документ дальше. Во-первых, скачайте оригинальный tar-файл и поместите его в каталог DISTDIR, который по умолчанию есть не что иное, как @@ -335,9 +354,18 @@ lib/X11/oneko/mouse.xpm краткое описание программы, порт которой вы создали, в раздел Description отправляемого PR и сам порт в виде архива shar или архива tar, обработанного утилитой uuencode, поместив его в - раздел Fix. Последнее облегчит труд коммиттеров, - которые используют скрипты для выполнения своей работы, связанной с - портами. + раздел Fix. + + + Вы можете значительно облегчить нашу работу, если в тему + сообщения о проблеме поместите хорошее описание. Мы рекомендуем + нечто вроде New port: <категория>/<название + порта> <краткое описание порта> для новых портов и + Update port: <категория>/<имя порта> <краткое + описание обновления> в случае обновления портов. Если + вы следуете этой схеме, то шансы на то, что на ваше PR вскоре + кто-то взглянет, гораздо выше. + Повторим ещё раз, что не нужно включать ни оригинальный файл с дистрибутивом, ни каталог work, @@ -364,17 +392,6 @@ lib/X11/oneko/mouse.xpm Дополнительных контрибуторов проекта FreeBSD и других файлах. Разве это не великолепно?!? :-) - - - Вы можете значительно облегчить нам работу, если будете давать - хорошее описание в поле описания проблемы при посылке. Мы - предпочитаем нечто вроде New port: <краткое описание - порта> в случае нового порта и Update port: - <category>/<port> <краткое описание - обновлений> в случае обновления порта. Если вы будете - придерживаться этой схемы, то шансы, что кто-нибудь вскоре взглянет - на ваш PR, весьма высоки. - @@ -512,8 +529,8 @@ lib/X11/oneko/mouse.xpm чем проверяют успешность завершения всех предыдущих шагов и вызывают настоящие цели или скрипты, и их не нужно менять. Если вам нужно изменить распаковку, исправляйте - do-extract, но никогда не трогайте - extract! + do-extract, но никогда не меняйте способ + работы extract! Теперь вы представляете, что происходит, когда пользователь @@ -532,17 +549,26 @@ lib/X11/oneko/mouse.xpm используйте исходные тексты основной ветки разработки везде, где это возможно. + Вам потребуется задать значение переменной + MASTER_SITES так, чтобы оно указывало на + местоположение оригинального tar-архива. В файле + bsd.sites.mk вы найдёте краткие обозначения + для большинства популярных сайтов. Пожалуйста, используйте эти + сайты—и соответствующие определения—везде, где это + возможно, чтобы избежать проблем повторения одной и той же информации + в базе источников. Так как эти сайты со временем меняются, для + всех причастных поддержка становится настоящим кошмаром. + Если вы не можете найти FTP/HTTP сайт с хорошим подключением к сети, или находите только сайты, которые имеют раздражающе нестандартные форматы, то можете захотеть поместить копию на надежный сервер FTP или HTTP, который вам доступен (например, ваша домашняя - страница). Проверьте, что вы установили переменную - MASTER_SITES в значение, которое соответствует - вашему решению. + страница). Если вы не можете найти доступного и надёжного места для помещения дистрибутивного файла, то мы сами сможем разместить его на - сервере ftp.FreeBSD.org. Дистрибутивный файл должен + сервере ftp.FreeBSD.org; однако это наименее + рекомендуемое решение. Дистрибутивный файл должен быть помещён в каталог ~/public_distfiles/ одного из пользователей машины freefall. Попросите того, кто коммиттил ваш порт, сделать это. Этот человек также задаст @@ -552,10 +578,13 @@ lib/X11/oneko/mouse.xpm с машины freefall. Если дистрибутивные файлы вашего порта постоянно меняются по - непонятным причинам, остается поместить дистрибутив на вашу домашнюю - веб-страницу и указать ее первой в списке - MASTER_SITES. Это позволит избежать получения - ошибок checksum mismatch у пользователей, а + неизвестным причинам без изменения версий со стороны автора, остаётся + только поместить дистрибутив на вашу домашнюю Web-страницу и указать + её первой в списке MASTER_SITES. Если можете, + попытайтесь договориться с автором порта об этом; это действительно + помогает в достижении некоторого управления исходным кодом. + Хостирование собственной версии поможет избежать появления ошибок у + пользователей типа checksum mismatch, а также уменьшит нагрузку на людей, сопровождающих наш FTP-сервер. Также, если у порта имеется только один основной сервер, то рекомендуется поместить архивную копию на свой сайт и указать его в @@ -671,7 +700,7 @@ lib/X11/oneko/mouse.xpm Обработка пользовательского ввода Если для построения, конфигурации или установки вашего порта - требуется некоторый ввод со стороны пользователя, то задайте + требуется некоторый ввод со стороны пользователя, то вы должны задать переменную IS_INTERACTIVE в вашем файле Makefile. В случае ночного построения это позволит пропустить @@ -679,7 +708,8 @@ lib/X11/oneko/mouse.xpm BATCH (и если пользователь установил переменную INTERACTIVE, то будут строиться только порты, которые требуют взаимодействия - с пользователем. + с пользователем. Это сэкономит значительное количество времени на + части машин, которые постоянно строят порты (смотрите ниже). При наличии разумных ответов на задаваемые вопросы, подходящих по умолчанию, также рекомендуется проверять переменную @@ -754,10 +784,14 @@ lib/X11/oneko/mouse.xpm увеличении значения переменной PORTVERSION (то есть каждый раз, когда создателями выпускается новый официальный релиз), и добавляется к имени пакаджа, если оно не равно нулю. - Значение PORTREVISION увеличивается каждый раз, - когда в порте FreeBSD делаются изменения, которые достаточно сильно - затрагивают содержимое или структуру соответствующего - пакаджа. + Изменения в PORTREVISION используются + автоматизированными инструментами (например, &man.pkg.version.1;) + для определения факта появления нового пакаджа. + + Значение PORTREVISION должно увеличиваться + каждый раз, когда в порте FreeBSD делаются изменения, которые + достаточно сильно затрагивают содержимое или структуру + соответствующего пакаджа. Примеры случаев, когда значение PORTREVISION должно быть увеличено: @@ -765,8 +799,7 @@ lib/X11/oneko/mouse.xpm Добавление патчей для исправления пробелов в безопасности, - ошибок, или добавления новой функциональности в порт - FreeBSD. + ошибок, или добавления новой функциональности в порт. @@ -828,20 +861,20 @@ lib/X11/oneko/mouse.xpm возможным построение пакаджа, если ранее это было невозможно сделать (пока изменения не приводят к изменению работы на любых других платформах, на которых порт ранее строился). Так как - PORTREVISION отражает содержимое пакаджа, то - если ранее пакадж не строился, то нет нужды увеличивать + PORTREVISION отражает содержимое пакаджа, + то, если ранее пакадж не строился, то нет нужды увеличивать PORTREVISION для отметки изменения. Правило, которому нужно приблизительно следовать, заключается в том, что нужно спрашивать себя, является ли вносимое в порт - изменение таким, что кто-либо и где-либо от него выиграет (в виде + изменение таким, что от него выиграют все (в виде усовершенствования, исправления или благодаря тому, что новый - пакадж будет реально работать). Если это так, то переменная - PORTREVISION должна быть увеличена, чтобы - автоматизированные инструменты (например, &man.pkg.version.1;) - смогли обнаружить факт появления нового пакаджа. + пакадж будет вообще работоспособным), и примите во внимание тот + факт, что при этом все, кто регулярно обновляют своё дерево портов, + будут обязаны это сделать. Если это так, то переменная + PORTREVISION должна быть увеличена. @@ -858,8 +891,8 @@ lib/X11/oneko/mouse.xpm PORTEPOCH. Если значение PORTEPOCH не равно нулю, то оно добавляется к имени пакаджа, как описано в разделе выше. Значение - PORTEPOCH никогда не уменьшается и не - сбрасывается в ноль, потому что это приведёт к ошибке сравнения с + PORTEPOCH никогда не должно уменьшаться или + сбрасываться в ноль, потому что это приведёт к ошибке сравнения с пакаджем с меньшим номером эпохи (то есть то, что пакадж устарел, обнаружено не будет): номер новой версии (например, 1.0,1 в примере выше) останется меньше, чем @@ -869,6 +902,11 @@ lib/X11/oneko/mouse.xpm чем предполагаемый суффикс ,0 более раннего пакаджа). + Некорректное уменьшение или сброс PORTEPOCH + приводит к печальным последствиям; если вы не поняли, о чём шла + речь ранее, пожалуйста, всё же разберитесь с этим, либо спросите + в списках рассылки. + Предполагается, что в большинстве портов переменная PORTEPOCH использоваться не будет, но при корректном использовании PORTVERSION может @@ -951,7 +989,8 @@ PORTEPOCH= 1 установленный пакадж gtkmumble-0.10_1, не смог бы опознать пакадж gtkmumble-0.3 как более новый, так как 3 было бы меньше, чем - 10. + 10. Помните, что в первую очередь это + касается PORTEPOCH. @@ -967,13 +1006,13 @@ PORTEPOCH= 1 PKGNAME в форме ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. Добейтесь того, чтобы это соответствовало нашим рекомендациям по правильному выбору названий - для пакаджей. В частности, в переменной - PORTVERSION не разрешается использование дефиса - (-). Кроме того, если в имени пакаджа - присутствует часть language- или - -compiled.specifics, то используйте - переменные PKGNAMEPREFIX и + linkend="porting-pkgname">рекомендациям по правильному выбору + названий для пакаджей. В частности, в переменной + PORTVERSION не разрешается + использование дефиса (-). Кроме того, если в + имени пакаджа присутствует часть language- + или -compiled.specifics (смотрите ниже), + то используйте переменные PKGNAMEPREFIX и PKGNAMESUFFIX, соответственно. Не делайте их частью значения переменной PORTNAME. @@ -983,9 +1022,9 @@ PORTEPOCH= 1 Далее описаны некоторые соглашения, которым вы должны следовать в именовании ваших пакаджей. Они были разработаны для облегчения - просмотра каталога, так как пакаджей уже имеется достаточно много и - ещё больше их появляется, а пользователи отвернутся от нас, если - список не понравится их взору! + просмотра каталога, так как имеется уже тысячи пакаджей, а + пользователи отвернутся от нас, если список не понравится их + взору! Имя пакаджа должно иметь вид language_region-name-compiled.specifics-version.numbers. @@ -1254,16 +1293,32 @@ PORTEPOCH= 1 Если ваш порт действительно относится к чему-то, что абсолютно не имеет отношения ни к одной из существующих категорий, вы можете даже создать новую категорию. В этом случае, пожалуйста, пошлите - письмо с вашим предложением на адрес &a.ports;. + письмо с вашим предложением на адрес &a.ports;. Однако, вообще + говоря, пока не наберётся более чем достаточного количества портов, + которые можно отнести к предлагаемой вами категории, ваша идея будет + отвергаться. + + + Время от времени кто-нибудь предлагает произвести реорганизацию + категорий либо до двухуровневой, либо другого типа на основе + ключевых слов. На данный момент из этих предложений ничего не + получилось, потому что, хотя они просты в реализации, но + предполагаемая переделка всей коллекции портов по меньшей мере + приводит в уныние. Пожалуйста, прочтите историю этих предложений + в архивах рассылок перед тем, как присылать свои соображения; + более того, вы должны быть готовы представить работающий + прототип. + Текущий список категорий - Во-первых, это текущий список категорий. Те, которые отмечены + Вот текущий список категорий. Те, которые отмечены звёздочкой (*), являются виртуальными категориями—они не имеют - собственного подкаталога в дереве портов. + собственного подкаталога в дереве портов. Они используются только в + качестве вторичных категорий, и только для поиска. Для каждой виртуальной категории имеется файл @@ -1273,62 +1328,82 @@ PORTEPOCH= 1 - + Категория Описание + + Примечания - accessibility* + accessibility - Порты для помощи пользователям-инвалидам. + Порты для помощи пользователям с ограниченными + возможностями. + + afterstep* - Порты, поддерживающие менеджер окон AfterStep. + Порты, поддерживающие менеджер окон AfterStep. + + arabic Поддержка арабского языка. + + archivers Инструменты для работы с архивами. + + astro Приложения, связанные с астрономией. + + audio Поддержка работы со звуком. + + benchmarks Утилиты для измерения производительности системы. + + biology Программное обеспечение, связанное с биологией. + + @@ -1336,44 +1411,57 @@ PORTEPOCH= 1 Инструменты Систем Автоматизированного Проектирования. + + chinese Поддержка китайского языка. + + comms - Коммуникационное программное обеспечение. В основном - программы для работы с последовательным портом. + Коммуникационное программное обеспечение. + + В основном программы для работы с последовательным + портом. converters Утилиты для преобразования символьных форматов. + + databases Базы данных. + + deskutils То, что было на столе до изобретения компьютеров. + + devel - Утилиты для разработки программного обеспечения. Не - помещайте сюда библиотеки просто потому что это + Утилиты для разработки программного обеспечения. + + Не помещайте сюда библиотеки просто потому что это библиотеки—если они подпадают под какую-то другую категорию, то их быть здесь не должно. @@ -1382,14 +1470,18 @@ PORTEPOCH= 1 dns Программное обеспечение для работы с DNS. + + editors - Редакторы общего назначения. Специализированные - редакторы относят к разделу для соответствующих инструментов - (например, редактор математических формул попадает в + Редакторы общего назначения. + + Специализированные редакторы относят к разделу для + соответствующих инструментов (например, редактор + математических формул попадает в категорию math). @@ -1397,15 +1489,18 @@ PORTEPOCH= 1 elisp* Порты для Emacs lisp. + + emulators - Эмуляторы других операционных систем. Эмуляторы - терминалов сюда не относятся—те, - которые разработаны для X, должны быть в категории - x11, а текстовые в + Эмуляторы других операционных систем. + + Эмуляторы терминалов сюда не + относятся—те, которые разработаны для X, должны быть в + категории x11, а текстовые в comms или misc, в зависимости от конкретного их предназначения. @@ -1415,18 +1510,24 @@ PORTEPOCH= 1 Приложения для работы с деньгами, финансами и всем, что с этим связано. + + french Поддержка французского языка. + + ftp - Клиенты и серверы FTP. Если ваш порт понимает как FTP, + Клиенты и серверы FTP. + + Если ваш порт понимает как FTP, так и HTTP, поместите его в категорию ftp и укажите вторичную категорию www. @@ -1436,25 +1537,33 @@ PORTEPOCH= 1 games Игры. + + german Поддержка немецкого языка. + + gnome* - Порты проекта GNU Object Model Environment (GNOME) - Project. + Порты Проекта GNOME. + + graphics Графические утилиты. + + @@ -1462,36 +1571,48 @@ PORTEPOCH= 1 Программное обеспечение, связанное с языком Haskell. + + hebrew Поддержка иврита. + + hungarian Поддержка венгерского языка. + + ipv6* Программное обеспечение, связанное с IPv6. + + irc Утилиты для работы с Internet Relay Chat. + + japanese Поддержка японского языка. + + @@ -1499,30 +1620,41 @@ PORTEPOCH= 1 Программное обеспечение, связанное с языком Java. + + kde* - Порты проекта K Desktop Environment (KDE). + Порты проекта K Desktop + Environment (KDE). + + korean Поддержка корейского языка. + + lang Языки программирования. + + linux* Linux приложения и утилиты. + + @@ -1530,12 +1662,16 @@ PORTEPOCH= 1 Программное обеспечение, связанное с языком Lisp. + + mail - Программы для работы с электронной почтой.. + Программы для работы с электронной почтой. + + @@ -1543,25 +1679,33 @@ PORTEPOCH= 1 Программное обеспечение для численных вычислений и другие утилиты, связанные с математикой. + + mbone Приложения для MBone. + + misc - Различные утилиты—в основном то, что не попадает в + Различные утилиты + + В основном то, что не попадает в другие категории. Это единственная категория, которая не должна указываться вместе с любой другой невиртуальной категорией. Если вы указываете misc вместе с чем-то ещё в строке CATEGORIES, это значит, что вы можете спокойно удалить misc и просто поместить порт в этот - другой подкаталог! + другой подкаталог! Если это возможно, попробуйте найти + более подходящую, чем misc, категорию для + вашего порта, так как здесь порты теряются. @@ -1569,12 +1713,16 @@ PORTEPOCH= 1 Программное обеспечение для работы с мультимедиа. + + net Различное сетевое программное обеспечение. + + @@ -1582,18 +1730,26 @@ PORTEPOCH= 1 Программное обеспечение для работы с конференциями USENET. + + offix* - Порты из набора OffiX. + Порты из пакета OffiX. + + palm - Программная поддержка Palm(tm). + Программная поддержка Palm™. + + @@ -1601,71 +1757,98 @@ PORTEPOCH= 1 Приложения, связанные с параллельными вычислениями. + + pear* Порты, относящиеся к технологии Pear PHP. + + perl5* Порты, которым для работы требуется - perl версии 5. + Perl версии 5. + + picobsd - Порты для поддержки PicoBSD. + Порты для поддержки + PicoBSD. + + plan9* - Различные программы из plan9. + Различные программы из + Plan9. + + polish Поддержка польского языка. + + portuguese Поддержка португальского языка. + + print - Программное обеспечение для печати. Инструменты для - вёрстки (просмотрщики и тому подобное) тоже относятся - сюда. + Программное обеспечение для печати. + + Инструменты для вёрстки (просмотрщики и тому подобное) + тоже относятся сюда. + + python* - Программное обеспечение, связанное с языком - Python. + Программное обеспечение, связанное с языком Python. + + ruby* - Программное обеспечение, связанное с языком - Ruby. + Программное обеспечение, связанное с языком Ruby. + + russian Поддержка русского языка. + + @@ -1675,92 +1858,121 @@ PORTEPOCH= 1 категории, скажем, astro, biology или math. + + security Программы, обеспечивающие безопасность системы. + + shells Различные командные процессоры. + + sysutils Системные утилиты. + + tcl76* Порты, которым для работы нужен Tcl версии 7.6. + + tcl80* Порты, которым для работы нужен Tcl версии 8.0. + + tcl81* Порты, которым для работы нужен Tcl версии 8.1. + + tcl82* Порты, которым для работы нужен Tcl версии 8.2. + + tcl83* Порты, которым для работы нужен Tcl версии 8.3. + + textproc - Утилиты для обработки текстов. Инструменты для - вёрстки помещаются в print, а не - сюда. + Утилиты для обработки текстов. + + Инструменты для вёрстки помещаются в категорию + print, а не сюда. tk42* Порты, которым для работы нужен Tk версии 4.2. + + tk80* Порты, которым для работы нужен Tk версии 8.0. + + tk81* Порты, которым для работы нужен Tk версии 8.1. + + tk82* Порты, которым для работы нужен Tk версии 8.2. + + tk83* Порты, которым для работы нужен Tk версии 8.3. + + @@ -1768,88 +1980,115 @@ PORTEPOCH= 1 Порты, которым для работы нужен TkSTEP версии 8.0. + + ukrainian Поддержка украинского языка. + + vietnamese Поддержка вьетнамского языка. + + windowmaker* Порты, поддерживающие менеджер окон WindowMaker. + + www - Программное обеспечение, связанное с World Wide Web. - Поддержка языка HTML относится сюда же. + Программное обеспечение, связанное с World Wide + Web. + + Поддержка языка HTML относится сюда же. x11 - X Window System и иже с ними. Эта категория + X Window System и иже с ними. + + Эта категория предназначена только для программного обеспечения, которое поддерживает саму оконную систему. Не помещайте сюда - обычные приложения X. Если ваш порт является приложением - для X, задайте USE_XLIB (что + обычные приложения для X: большинство из них должны быть + перенесены в другие категории x11-* + (смотрите ниже). Если ваш порт является + приложением для X, задайте USE_XLIB (что подразумевается при использовании USE_IMAKE) и укажите подходящую - категорию. Кроме того, многие такие приложения относятся к - категориям x11-* (смотрите - ниже). + категорию. x11-clocks Часы для X11. + + x11-fm Менеджеры файлов для X11. + + x11-fonts Шрифты для X11 и утилиты для работы с ними. + + x11-servers Серверы для X11. + + x11-toolkits Пакеты разработчика для X11. + + x11-wm Оконные менеджеры для X11. + + zope* - Поддержка zope. + Поддержка Zope. + + @@ -1875,12 +2114,13 @@ PORTEPOCH= 1 Более конкретные категории предпочтительней перед более общими. В частности, редактор HTML должен быть описан как - www editors, а не наоборот. Кроме того, вам - не нужно указывать категорию net, если порт + www editors, а не наоборот. Кроме того, вы + не должны указывать категорию net, если порт относится к одной из категорий irc, mail, mbone, news, security или - www. + www, так как net + включается автоматически. @@ -1910,8 +2150,10 @@ PORTEPOCH= 1 отметьте это в вашем сообщении через &man.send-pr.1;, чтобы мы могли обсудить это до того, как включить порт в Коллекцию. Если вы являетесь коммиттером, пошлите замечание на адрес &a.ports;, чтобы мы - могли обсудить это—зачастую новые порты помещаются не в ту - категорию только для того, чтобы их оттуда сразу же удалили. + могли обсудить это. Зачастую новые порты помещаются не в ту + категорию только для того, чтобы их оттуда сразу же удалили. + Это приводит к излишнему и ненужному росту основного хранилища + исходных текстов. @@ -1928,10 +2170,10 @@ PORTEPOCH= 1 В переменной DISTNAME указывается имя порта так, как назвали его создатели программного обеспечения. Значение DISTNAME по умолчанию совпадает с - ${PORTNAME}-${PORTVERSION}, так что переопределите - её значение в случае - необходимости. DISTNAME используется только в двух - местах. Во-первых, список дистрибутивных файлов + ${PORTNAME}-${PORTVERSION}, так что + переопределяйте её значение только в случае необходимости. + DISTNAME используется только в двух местах. + Во-первых, список дистрибутивных файлов (DISTFILES) по умолчанию состоит из ${DISTNAME}${EXTRACT_SUFX}. И во-вторых, предполагается, что дистрибутивный файл будет распакован в @@ -1942,7 +2184,7 @@ PORTEPOCH= 1 Значения переменных PKGNAMEPREFIX и PKGNAMESUFFIX не влияют на значение - DISTNAME. Заметьте также, что значение + DISTNAME. Заметьте также, что если значение WRKSRC равно work/${PORTNAME}-${PORTVERSION}, и в случае, когда оригинальный архив называется по имени, отличном @@ -1968,9 +2210,10 @@ PORTEPOCH= 1 в системе. Рекомендуется помещать в список много сайтов, предпочтительно с - разных континентов. Это поможет при наличии проблем с мировой сетью, - и мы даже планируем добавить поддержку автоматического определения - ближайшего сайта и сгрузки файлов оттуда! + разных континентов. Это поможет при наличии проблем с мировой сетью. + Мы даже планируем добавить поддержку автоматического определения + ближайшего сайта и сгрузки файлов оттуда; наличие нескольких сайтов + будет способствовать этому начинанию. Если оригинальный архив находится на одном из таких популярных серверов, как X-contrib, GNU или Perl CPAN, то указывайте эти сайты в @@ -1987,7 +2230,7 @@ MASTER_SITE_SUBDIR= applications Эти переменные определены в файле /usr/ports/Mk/bsd.sites.mk. Всё время - добавляются новые сайты, так что обращайтесь к последней версии + добавляются новые записи, так что обращайтесь к последней версии этого файла перед тем, как послать нам свой порт. Пользователь может также задать значения переменных @@ -2018,8 +2261,10 @@ EXTRACT_SUFX= .tgz переменных не задана, то значение EXTRACT_SUFX по умолчанию устанавливается в .tar.gz. - Вам не нужно задавать значения EXTRACT_SUFX и - DISTFILES одновременно. + + Вам не нужно задавать значения EXTRACT_SUFX + и DISTFILES одновременно. + @@ -2109,6 +2354,10 @@ EXTRACT_ONLY= source.tar.gz Несколько дистрибутивных файлов или патчей с различных серверов и подкаталогов (<literal>MASTER_SITES:n</literal>) + (Этот раздел можно считать немного повышенной + трудности; те, кто впервые знакомятся с этим текстом, могут + пропустить этот раздел). + В этом разделе находится информация о механизме сгрузки, известном как MASTER_SITES:n и MASTER_SITES_NN. Далее мы будем называть этот @@ -2750,15 +2999,20 @@ PATCHFILES= patch1:test Укажите здесь ваш адрес электронной почты. Пожалуйста. :-) + Заметьте, что в качестве значения для + MAINTAINER допустимо использование только одного + адреса без поля комментария. Должен использоваться формат + user@hostname.domain. Пожалуйста, не включайте + никакого описательного текста, например, вашего настоящего имени в + эту строку—это несколько сбивает с толку + bsd.port.mk. Вместо этого помещайте такую + информацию в ваш pkg-descr. + Подробное описание того, за что отвечает лицо, поддерживающее порт, даётся в главе MAINTAINER в Makefiles. - Заметьте, что в качестве значения для MAINTAINER - разрешается указывать только единственный адрес без - каких-либо комментариев. - Если мэйнтейнер порта не ответил на запрос пользователя об обновлении в течение двух недель (исключая большие праздники), то это можно считать таймаутом от мэйнтейнера, и обновление может @@ -2788,16 +3042,20 @@ PATCHFILES= patch1:test В файле Makefile переменная COMMENT должна следовать сразу за переменной MAINTAINER. + + Пожалуйста, постарайтесь делать строку COMMENT длиной, меньшей, + чем 70 символов, так как она выдаётся пользователям в качестве + однострочного описания порта. Зависимости - Многие порты зависят от других портов. Имеется пять переменных, - которые вы можете использовать для обеспечения того, что все + Многие порты зависят от других портов. Имеется семь переменных, + которые вы можете использовать для обеспечения того, что всё требуемое находится на машине пользователя. Имеется также несколько - предопределенных переменных, отражающих зависимости для общих - случаев, плюс еще несколько для управления поведением + предопределённых переменных, отражающих зависимости для общих + случаев, плюс ещё несколько для управления поведением зависимостей. @@ -2925,14 +3183,61 @@ PATCHFILES= patch1:test совпадает с DEPENDS_TARGET. + + <makevar>EXTRACT_DEPENDS</makevar> + + В этой переменной указываются программы или файлы, которые + требуются для распаковки порта. Как и в предыдущих случаях, это + список пар вида + path:dir:target. + Например, EXTRACT_DEPENDS= + unzip:${PORTSDIR}/archivers/unzip будет проверять + наличие программы с именем unzip, и перейдёт в + подкаталог archivers/unzip вашего дерева + портов для её построения и установки, если такой программы не будет + найдено. + + Зависимость проверяется внутри цели + extract. Часть + target может быть опущена, если она + совпадает с DEPENDS_TARGET. + + + Используйте эту переменную, только если распаковка не + работает (по умолчанию предполагается использование + gzip) и это не исправляется при помощи + USE_ZIP или USE_BZIP2, + которые описаны в . + + + + + <makevar>PATCH_DEPENDS</makevar> + + Эта переменная указывает на программы или файлы, которые нужны + порту для применения патчей. Как и в предыдущих случаях, это + список пар вида + path:dir:target. + Например, PATCH_DEPENDS= + ${NONEXISTENT}:${PORTSDIR}/java/jfc:extract будет + переходить в подкаталог java/jfc вашего дерева + портов для построения и установки, если не найдёт нужной + программы. + + Зависимость проверяется внутри цели + patch. Часть + target может быть опущена, если она + совпадает с DEPENDS_TARGET. + + <makevar>DEPENDS</makevar> Если имеется зависимость, которая не подпадает ни под одну из - вышеперечисленных четырех категорий, или ваш порт требует наличия + вышеперечисленных категорий, или ваш порт требует наличия исходных текстов другого порта в распакованном виде кроме того, что этот порт должен быть установлен, то воспользуйтесь этой - переменной. Это список пар + переменной. Это список пар вида dir:target, потому что, в отличие от предыдущих случаев, ничего не проверяется. Часть target может @@ -2940,7 +3245,7 @@ PATCHFILES= patch1:test DEPENDS_TARGET. - + <makevar>USE_<replaceable>*</replaceable></makevar> Для объединения нескольких зависимостей, которые есть во многих @@ -3047,6 +3352,15 @@ PATCHFILES= patch1:test + USE_SDL + + Для построения и работы порт использует + SDL. Обратитесь к разделу для получения информации о том, как + использовать USE_SDL. + + + NO_INSTALL_MANPAGES Не использовать цель @@ -3088,7 +3402,10 @@ PATCHFILES= patch1:test Когда вы набираете команду make clean, эта операция также выполняется и над зависимостями этого порта. Если вы не хотите, чтобы это случилось, определите переменную - NOCLEANDEPENDS в вашем окружении. + NOCLEANDEPENDS в вашем окружении. + Это может быть особенно нужным, если порт имеет нечто, что занимает + много времени на построение, в своём списке зависимостей, например, + KDE, GNOME или Mozilla. Чтобы безусловно зависеть от другого порта, укажите переменную ${NONEXISTENT} в качестве первого поля @@ -3144,13 +3461,32 @@ PATCHFILES= patch1:test WANT_GTK, WANT_ESOUND, WANT_IMLIB и WANT_GNOME. + + + Зацикленные зависимости фатальны + + + Не помещайте зацикливающиеся зависимости в дерево + портов! + + + Технология построения портов не защищена от зацикленных + зависимостей. Если вы создадите такую, то у кого-нибудь и + где-нибудь установка FreeBSD будет немедленно сломана, а у остальных + сломается несколько позже. Это на самом деле очень трудно + распознать; если вы сомневаетесь, то перед внесением изменений + проверьте, что выполнили следующее: cd /usr/ports; make + index. Этот процесс может быть достаточно медленным на + старых машинах, хотя мы сможете спасти большое количество + людей—включая себя—от грядущих бед. + Задание рабочего каталога Каждый порт распаковывается в рабочий каталог, который должен быть - доступным для записи. В системе портов предполагается, что + доступным для записи. В системе портов по умолчанию DISTFILES распаковываются в каталог с именем ${DISTNAME}. Другими словами, если вы задали: @@ -3163,7 +3499,7 @@ PORTVERSION= 1.0 каталоге. Если это не ваш случай, то имеется несколько переменных, которые - можно переопределить. + вы можете переопределить. <makevar>WRKSRC</makevar> @@ -3344,7 +3680,8 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar двоичный пакадж, как правило, бесполезен, а приложение должно всегда компилироваться из исходного кода. К примеру, если в приложение во время компиляции жёстко включается конфигурационная информация, - привязанная к конкретной системе. + привязанная к конкретной системе, то задайте переменную + NO_PACKAGE. Значением переменной NO_PACKAGE должна быть строка, описывающая причину, по которой пакадж не должен @@ -3356,9 +3693,9 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar Эта переменная указывает на то, что, хотя мы имеем право создавать двоичные пакеты, нам запрещается помещать эти пакеты или - файлы DISTFILES порта на CDROM для перепродажи. - Файлы DISTFILES будут оставаться доступными - посредством FTP. + файлы DISTFILES порта на CDROM (или DVD-ROM) для + перепродажи. Файлы DISTFILES будут оставаться + доступными посредством FTP (или HTTP, если вы это настроили.) Переменные NO_PACKAGE и NO_CDROM могут задаваться одновременно. @@ -3369,12 +3706,16 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar Задайте эту переменную, если лицензия на приложение также запрещает нам зеркалировать файлы DISTFILES - приложения через FTP. + приложения через FTP (или HTTP, если вы это настроили.) Также задавайте эту переменную, если лицензионное соглашение приложения имеет общее ограничение на то, кто может его использовать, например, приложение предназначено исключительно для некоммерческого использования. + + Заметьте, что коммиттер порта должен добавить запись в файл + /usr/ports/LEGAL, точно описав, какое + ограничение при этом действует. @@ -3712,9 +4053,9 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar Использование GNOME - Для определения того, какие компоненты GNOME использует конкретный - порт, проект FreeBSD/GNOME использует систему под названием - GNOMENG. На странице проекта FreeBSD/GNOME + Для задания того, какие компоненты GNOME использует конкретный + порт, проект FreeBSD/GNOME использует собственный набор переменных. + На странице проекта FreeBSD/GNOME размещён исчерпывающий список этих переменных. @@ -3783,31 +4124,139 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar Использование Bison - + Этот раздел ещё предстоит написать. Использование Java - + Этот раздел ещё предстоит написать. Использование Python - + Этот раздел ещё предстоит написать. Использование Emacs - + Этот раздел ещё предстоит написать. Использование Ruby - + Этот раздел ещё предстоит написать. + + + + Использование SDL + + Переменная USE_SDL используется для + автоматической настройки зависимостей для портов, использующих + библиотеки на основе SDL, такие как + devel/sdl12 или + x11-toolkits/sdl_gui. + + На данный момент распознаются следующие SDL-библиотеки: + + + + sdl: devel/sdl12 + + + + gfx: graphics/sdl_gfx + + + + gui: x11-toolkits/sdl_gui + + + + image: graphics/sdl_image + + + + ldbad: devel/sdl_ldbad + + + + mixer: audio/sdl_mixer + + + + mm: devel/sdlmm + + + + net: net/sdl_net + + + + sound: audio/sdl_sound + + + + ttf: graphics/sdl_ttf + + + + Таким образом, если порт имеет зависимость от + net/sdl_net и + audio/sdl_mixer, то строка будет + следующей: + + USE_SDL= net mixer + + Зависимость от порта devel/sdl12, который требуется для net/sdl_net и audio/sdl_mixer будет также автоматически + добавлен. + + Если вы используете USE_SDL, то + он автоматически: + + + + Добавляет зависимость от + sdl11-config + к BUILD_DEPENDS + + + + Добавляет переменную SDL_CONFIG к + CONFIGURE_ENV + + + + Добавляет зависимости от указанных библиотек к + LIB_DEPENDS + + + + Для проверки наличия библиотеки SDL вы можете делать это при + помощи переменной WANT_SDL: + + WANT_SDL=yes + +.include <bsd.port.pre.mk> + +.if ${HAVE_SDL:Mmixer}!="" +USE_SDL+= mixer +.endif + +.include <bsd.port.post.mk> @@ -4215,8 +4664,8 @@ ${PREFIX}/man/ja/man4/baz.4.gz Эта переменная будет установлена сценарием bsd.port.mk в соответствующее значение, соответствующее библиотеке Motif. Пожалуйста, измените исходные - тексты для использования этой переменной там, где упоминается - библиотека Motif, в Makefile или + тексты вашего порта на использование этой переменной там, где + упоминается библиотека Motif, в Makefile или Imakefile. Могут быть два случая: @@ -4303,7 +4752,7 @@ ${PREFIX}/man/ja/man4/baz.4.gz дополнительные действия или команды, то вы можете сделать это с помощью скрипта pkg-install. Этот скрипт будет автоматически добавлен к пакаджу, и будет дважды запускаться по - команде &man.pkg.add.1;. Первый раз в виде + команде &man.pkg.add.1;: первый раз в виде ${SH} pkg-install ${PKGNAME} PRE-INSTALL, а второй раз как ${SH} {PKGNAME} POST-INSTALL. @@ -4363,10 +4812,10 @@ ${PREFIX}/man/ja/man4/baz.4.gz %%PERL_VER%% и %%PERL_VERSION%% в файле pkg-plist будут заменяться соответствующими значениями. Значением %%OSREL%% является номер - версии операционной системы (например, 2.2.7). + версии операционной системы (например, 4.9). %%PERL_VERSION%% обозначает полный номер версии - perl (например, 5.00502), а - %%PERL_VER%% - номер версии perl + perl (например, 5.00502), а + %%PERL_VER%% - номер версии perl без номера патча (например, 5.005). Если вам нужно сделать другие подстановки, вы можете указать в @@ -4425,46 +4874,42 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} ${MASTERDIR}.) - - - - Переменная - Значение по умолчанию - - + + + + Переменная - - - DESCR - ${PKGDIR}/pkg-descr - + Значение по умолчанию + + - - PLIST - ${PKGDIR}/pkg-plist - + + + DESCR + ${PKGDIR}/pkg-descr + - - PKGINSTALL - ${PKGDIR}/pkg-install - + + PLIST + ${PKGDIR}/pkg-plist + - - PKGDEINSTALL - ${PKGDIR}/pkg-deinstall - + + PKGINSTALL + ${PKGDIR}/pkg-install + - - PKGREQ - ${PKGDIR}/pkg-req - + + PKGREQ + ${PKGDIR}/pkg-req + - - PKGMESSAGE - ${PKGDIR}/pkg-message - - - + + PKGMESSAGE + ${PKGDIR}/pkg-message + + + Пожалуйста, изменяйте значения этих переменных, а не @@ -4498,15 +4943,15 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} в случае чего он будет принят равным X11BASE (по умолчанию /usr/X11R6). - Отсутствие явного указания /usr/local или - /usr/X11R6 нигде в исходном коде сделает порт + Избежание явного указания /usr/local или + /usr/X11R6 в исходном коде сделает порт гораздо более гибким и способным удовлетворить потребности других серверов. Для портов, которые используют X, это происходит автоматически; в противном случае зачастую это может быть сделано простой заменой строк /usr/local (или /usr/X11R6 для портов X, не использующих imake) в различных файлах scripts/Makefile порта на - использование PREFIX, так как эта переменная + использование ${PREFIX}, так как эта переменная автоматически передаётся далее на каждом этапе построения и установки. @@ -4515,10 +4960,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} PREFIX. Это можно быстро проверить следующим образом: - -&prompt.root; make clean; make package PREFIX=/var/tmp/p -ort-name - + &prompt.root; make clean; make package PREFIX=/var/tmp/port-name Если что-то было установлено за пределами PREFIX, то процесс создания пакаджа сообщит об @@ -4569,7 +5011,7 @@ ort-name Тесты на корректность от FreshPorts На сайте FreshPorts имеется + url="http://www.FreshPorts.org/"> имеется механизм проведения тестирования на корректность, а именно автоматического тестирования каждого коммита, происходящего в дереве портов FreeBSD. Если вы подпишитесь на эту услугу, то будете @@ -4593,31 +5035,41 @@ ort-name Если вы заметите, что ваш порт устарел по сравнению с последней авторской версией, первым делом проверьте, что у вас находится самая последняя версия порта. Вы можете найти их в каталоге - ports/ports-current на зеркальных серверах FTP. + ports/ports-current на зеркальных FTP-серверах &os;. Кроме того, вы можете использовать CVSup для поддержки актуальности всей Коллекции портов, как это описано в Руководстве. Следующий шаг - это посылка сообщения электронной почты человеку, - поддерживающему этот порт - (майнтайнеру), если он указан в файле Makefile + поддерживающему этот порт (мэйнтейнеру), если он указан в файле + Makefile порта. Этот человек может уже работать над обновлением, или иметь причину не обновлять порт прямо сейчас (например, из-за проблем со - стабильностью функционирования новой версии). + стабильностью функционирования новой версии); + вам нет нужды дублировать их работу. Заметьте, что неподдерживаемые + порты перечисляются с адресом мэйнтейнера + ports@FreeBSD.org; поылка сообщения на этот адрес. + скорее всего, в данном случае не поможет. - Если ведущий попросил сделать обновление вас, или такой персоны не - нашлось, то, пожалуйста, выполните обновление и пошлите рекурсивный - diff-файл (подойдет как в унифицированном, так и контекстно-зависимом - формате, однако коммиттеры предпочитают унифицированный формат) - сравнения нового и старого каталогов нам (например, если каталог с + Если мэйнтейнер просит вас выполнить обновление, либо им является + ports@FreeBSD.org, то, пожалуйста, выполните + обновление и сохраните результат рекурсивного diff + между новым и старым каталогами порта (например, если каталог с модифицированным портом называется superedit, а оригинальный, совпадающий с находящимся в нашем дереве портов, - superedit.bak, то пошлите нам результат выполнения + superedit.bak, то сохраните результат выполнения команды diff -ruN superedit.bak superedit). - Пожалуйста, проверьте результат работы этой команды, так, чтобы все - изменения имели смысл. Лучший способ послать нам diff-файл - включить - его в посылку по команде &man.send-pr.1; (категория - ports). Если вы являетесь майнтайнером порта, + Подойдёт как унифицированный, так и контекстный дифф, однако коммиттеры + портов обычно предпочитают унифицированный формат. Отметьте + использование опции -N—это одобряемый способ + заставить diff корректно работать в случае добавления новых файлов или + удаления старых. Перед тем, как посылать нам diff-файл, пожалуйста, + проверьте его, чтобы убедиться в значимости всех внесённых + изменений. + + Лучше всего послать нам diff-файл, включив его в посылку по команде + &man.send-pr.1; (категория ports). Если вы + собираетесь стать мэйнтейнером порта, обязательно поместите текст [maintainer update] в начале строки описания и/или задайте в поле Class вашего PR строчку maintainer-update. Будьте добры, в @@ -4627,6 +5079,12 @@ ort-name утилитой uuencode; в противном случае просто включите его как есть в PR. + Наконец, посмотрите, пожалуйста, раздел о Написании + сообщений о проблемах в статье о Сообщениях об ошибках для + получения дополнительной информации о том, как писать полезные + сообщения о проблемах. + Если ваше обновление вызвано соображениями информационной безопасности или наличием серьёзных ошибок в имеющемся порте, @@ -4646,16 +5104,21 @@ ort-name Что делать нужно, и что делать нельзя - Вот список часто встречающихся действий, которые нужно и которые - нельзя делать во время процесса портирования. Вы должны проверять ваш - порт по этому списку, и вы также можете проверять порты в базе - сообщений PR, которые присланы другими людьми. Присылайте любые - комментарии о портах, которые вы проверили, так, как это описано в - главе о - Сообщениях об ошибках и общих замечаниях. Проверка портов в - базе сообщений PR позволит нам быстрее коммиттить их и удостовериться, - что вы знаете, что делаете. + + Введение + + Вот список часто встречающихся действий, которые нужно и которые + нельзя делать во время процесса портирования. Вы должны проверять ваш + порт по этому списку, и вы также можете проверять порты в базе + сообщений PR, которые присланы другими людьми. Присылайте + любые комментарии о портах, которые вы проверили, так, как это описано + в главе о + Сообщениях об ошибках и общих замечаниях. Проверка портов в + базе сообщений PR позволит нам быстрее коммиттить их и удостовериться, + что вы знаете, что делаете. + Удаление отладочной информации в бинарных файлах @@ -4726,8 +5189,8 @@ ort-name Каталог WRKDIR является единственным местом, которое гарантированно будет доступно для записи во время построения порта (обратитесь к главе о компиляции портов с - компакт-диска за + url="../handbook/ports-using.html#PORTS-CD">установке портов с + CDROM за примером построения портов из дерева, доступного только для чтения). Если вам нужно изменить какой-либо из файлов pkg-*, сделайте это, @@ -4757,10 +5220,10 @@ ort-name Вы можете встретиться с кодом, который требует модификаций или условной компиляции в зависимости от того, с какой версией - Unix он работает. Если вам нудно сделать такие изменения в коде для + Unix он работает. Если вам нужно сделать такие изменения в коде для условной компиляции, то вы должны делать изменения как можно - более общими, чтобы мы могли перенести код на системы FreeBSD версий - 1.x, а также и на другие системы BSD, такие, как 4.4BSD от CSRG, + более общими, чтобы мы могли перенести код на более старые системы + FreeBSD, а также и на другие системы BSD, такие, как 4.4BSD от CSRG, BSD/386, 386BSD, NetBSD, и OpenBSD. Предпочтительным способом отделения кода для 4.3BSD/Reno (1990) и @@ -4826,7 +5289,7 @@ ort-name - __FreeBSD__ определен во всех версиях + __FreeBSD__ определён во всех версиях FreeBSD. Используйте его, если изменение, вносимое вами, касается только FreeBSD. Проблемы портирования, такие, как использование @@ -4839,13 +5302,13 @@ ort-name Во FreeBSD 2.x, значение __FreeBSD__ определено как 2. В более ранних версиях оно равно 1. В более поздних версиях это значение - увеличивается в соответствии со старшим номером версии + всегда увеличивается в соответствии со старшим номером версии системы. - Если вам нужно отделить системы FreeBSD 1.x от систем - FreeBSD 2.x или 3.x, правильным способом, как правило, будет + Если вам нужно отделить системы FreeBSD 1.x от систем FreeBSD + 2.x и более старших, правильным способом, как правило, будет использование макроса BSD, описанное выше. Если это действительно изменение, специфичное для FreeBSD (например, особая опция для динамической библиотеки при @@ -5565,6 +6028,13 @@ ort-name 490101 + + 4.9-STABLE после выполнения MFC функциональности libmap + для rtld. + + 490102 + + 5.0-CURRENT @@ -6091,6 +6561,12 @@ ort-name 502000 + + 5.2.1-RELEASE + + 502001 + + 5.2-CURRENT после отделения ветки RELENG_5_2 @@ -6103,6 +6579,14 @@ ort-name 502101 + + + 5.2-CURRENT после смены используемой по умолчанию + библиотеки работы с потоками выполнения libc_r на + libpthread. + + 502102 + @@ -6180,15 +6664,19 @@ ort-name OSVERSION - Версия операционной системы в виде числа, то же, что и Версия операционной системы в виде числа, та же, что и __FreeBSD_version. PORTOBJFORMAT + Формат объектных файлов, используемых в системе - (aout или elf) + (elf или aout); + заметьте, что для современных версий FreeBSD + aout не используется.) @@ -6223,8 +6711,7 @@ ort-name Вот несколько примеров того, что вы можете написать после bsd.port.pre.mk: - -# no need to compile lang/perl5 if perl5 is already in system + # no need to compile lang/perl5 if perl5 is already in system .if ${OSVERSION} > 300003 BROKEN= perl is in system .endif @@ -6240,8 +6727,11 @@ TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} post-install: .if ${PORTOBJFORMAT} == "aout" ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so -.endif - +.endif + + Вы не забываете об использовании табуляции вместо пробелов + после BROKEN= и TCL_LIB_FILE=, + не так ли? :-). @@ -6321,7 +6811,7 @@ post-install: установки и помещают все в подкаталог с именем порта, что неправильно. Также многие порты помещают все, кроме бинарных файлов, файлов заголовков и страниц Справочника, в подкаталог каталога - lib, что не очень хорошо соответствует парадигме + lib, что не очень хорошо работает с подходом BSD. Многие файлы должны быть перемещены в одно из следующих местоположений: etc (настроечные/конфигурационные файлы), libexec @@ -6393,7 +6883,8 @@ lib/X11/oneko/sounds/cat.au или другими портами. Вот текущий список UID между 50 и 999. - majordom:*:54:54:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent + bind:*:53:53:Bind Sandbox:/:/sbin/nologin +majordom:*:54:54:Majordomo Pseudo User:/usr/local/majordomo:/nonexistent cyrus:*:60:60:the cyrus mail server:/nonexistent:/nonexistent gnats:*:61:1:GNATS database owner:/usr/local/share/gnats/gnats-db:/bin/sh proxy:*:62:62:Packet Filter pseudo-user:/nonexistent:/nonexistent @@ -6450,6 +6941,13 @@ bacula:*:910:910:Bacula Daemon:/var/db/bacula:/sbin/nologin EXTRACT* и использование GNU_CONFIGURE вместо CONFIGURE_ARGS+= --prefix=${PREFIX}. + + Если вы обнаружите, что для выполнения чего-то приходится писать + много нового кода, то, пожалуйста, просмотрите файл + bsd.port.mk на предмет того, не содержит ли он + реализацию именно вашей проблемы. Хотя его трудно читать, имеется + много проблем, выглядящих сложными, для которых файл + bsd.port.mk уже содержит быстрое решение. @@ -6457,8 +6955,15 @@ bacula:*:910:910:Bacula Daemon:/var/db/bacula:/sbin/nologin CXX Порт должен принимать во внимание как переменную - CC, так и CXX. Если он это - не делает, пожалуйста, добавьте строку NO_PACKAGE=ignores + CC, так и CXX. + Под этим мы подразумеваем, что порт ни в коем случае не должен + устанавливать значения этих переменных, переопределяя имеющиеся + значения; вместо этого от должен добавлять те значения, которые + нужны, к имеющимся. Это нужно для того, чтобы параметры построения, + относящиеся ко всем портам, могут быть заданы глобально. + + Если порты не принимают во внимание значения этих переменных, + пожалуйста, добавьте строку NO_PACKAGE=ignores either cc or cxx в файл Makefile. @@ -6489,7 +6994,14 @@ bacula:*:910:910:Bacula Daemon:/var/db/bacula:/sbin/nologin Использование <makevar>CFLAGS</makevar> Порт должен принимать во внимание переменную - CFLAGS. Если он этого не делает, то, пожалуйста, + CFLAGS. + Под этим мы подразумеваем, что порт ни в коем случае не должен + устанавливать значения этих переменных, переопределяя имеющиеся + значения; вместо этого от должен добавлять те значения, которые + нужны, к имеющимся. Это нужно для того, чтобы параметры построения, + относящиеся ко всем портам, могут быть заданы глобально. + + Если он этого не делает, то, пожалуйста, добавьте в файл Makefile строчку NO_PACKAGE=ignores cflags. @@ -6820,7 +7332,8 @@ pre-install: К другим ресурсам, помогающим тем, кто поддерживает порты, относится список протоколов - построения пакаджей и ошибок и , который располагается на + кластере bento, и проверка дистрибутивных файлов Портов FreeBSD.