From owner-p4-projects@FreeBSD.ORG Fri Aug 4 19:54:27 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA1AD16A4E0; Fri, 4 Aug 2006 19:54:27 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 772CE16A4DD for ; Fri, 4 Aug 2006 19:54:27 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 42C4543D60 for ; Fri, 4 Aug 2006 19:54:25 +0000 (GMT) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k74JsPew035341 for ; Fri, 4 Aug 2006 19:54:25 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k74JsN0Y035338 for perforce@freebsd.org; Fri, 4 Aug 2006 19:54:23 GMT (envelope-from jb@freebsd.org) Date: Fri, 4 Aug 2006 19:54:23 GMT Message-Id: <200608041954.k74JsN0Y035338@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 103189 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Aug 2006 19:54:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=103189 Change 103189 by jb@jb_freebsd2 on 2006/08/04 19:53:58 IFC Affected files ... .. //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/portbuild/article.sgml#3 integrate .. //depot/projects/dtrace/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml#2 integrate .. //depot/projects/dtrace/ports/CHANGES#4 integrate .. //depot/projects/dtrace/ports/MOVED#9 integrate .. //depot/projects/dtrace/ports/Mk/bsd.emacs.mk#2 integrate .. //depot/projects/dtrace/ports/Mk/bsd.gnome.mk#3 integrate .. //depot/projects/dtrace/ports/Mk/bsd.mail.mk#2 integrate .. //depot/projects/dtrace/ports/Mk/bsd.openssl.mk#2 integrate .. //depot/projects/dtrace/ports/Mk/bsd.port.mk#5 integrate .. //depot/projects/dtrace/ports/Mk/bsd.port.subdir.mk#2 integrate .. //depot/projects/dtrace/ports/Mk/bsd.python.mk#2 integrate .. //depot/projects/dtrace/ports/Mk/bsd.ruby.mk#3 integrate .. //depot/projects/dtrace/ports/Mk/bsd.scons.mk#5 integrate .. //depot/projects/dtrace/ports/Tools/scripts/security-check.awk#2 integrate .. //depot/projects/dtrace/src/bin/sh/histedit.c#3 integrate .. //depot/projects/dtrace/src/etc/rc.d/Makefile#5 integrate .. //depot/projects/dtrace/src/games/fortune/datfiles/fortunes#9 integrate .. //depot/projects/dtrace/src/lib/Makefile#5 integrate .. //depot/projects/dtrace/src/lib/libc/resolv/res_init.c#2 integrate .. //depot/projects/dtrace/src/lib/libc/resolv/res_send.c#2 integrate .. //depot/projects/dtrace/src/lib/libc/sys/kse.2#3 integrate .. //depot/projects/dtrace/src/lib/libthread_db/arch/powerpc/libc_r_md.c#1 branch .. //depot/projects/dtrace/src/lib/libthread_db/arch/powerpc/libpthread_md.c#1 branch .. //depot/projects/dtrace/src/libexec/rtld-elf/rtld.c#3 integrate .. //depot/projects/dtrace/src/release/doc/fr_FR.ISO8859-1/hardware/alpha/proc-alpha.sgml#3 integrate .. //depot/projects/dtrace/src/sbin/sysctl/sysctl.c#4 integrate .. //depot/projects/dtrace/src/share/doc/papers/timecounter/timecounter.ms#3 integrate .. //depot/projects/dtrace/src/share/man/man4/acpi.4#5 integrate .. //depot/projects/dtrace/src/share/man/man4/devctl.4#3 integrate .. //depot/projects/dtrace/src/share/man/man4/ng_ether.4#3 integrate .. //depot/projects/dtrace/src/sys/boot/i386/loader/main.c#3 integrate .. //depot/projects/dtrace/src/sys/boot/pc98/loader/main.c#3 integrate .. //depot/projects/dtrace/src/sys/dev/bktr/CHANGELOG.TXT#3 integrate .. //depot/projects/dtrace/src/sys/dev/dpt/dpt_scsi.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/fe/if_fe.c#3 integrate .. //depot/projects/dtrace/src/sys/dev/ixgb/if_ixgb.c#3 integrate .. //depot/projects/dtrace/src/sys/dev/mxge/if_mxge.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/patm/if_patm_intr.c#3 integrate .. //depot/projects/dtrace/src/sys/dev/pci/pcivar.h#3 integrate .. //depot/projects/dtrace/src/sys/dev/sym/sym_fw1.h#3 integrate .. //depot/projects/dtrace/src/sys/dev/sym/sym_fw2.h#3 integrate .. //depot/projects/dtrace/src/sys/fs/hpfs/hpfs.h#3 integrate .. //depot/projects/dtrace/src/sys/geom/bde/g_bde_work.c#3 integrate .. //depot/projects/dtrace/src/sys/geom/mirror/g_mirror.c#8 integrate .. //depot/projects/dtrace/src/sys/geom/raid3/g_raid3.c#11 integrate .. //depot/projects/dtrace/src/sys/i386/i386/identcpu.c#7 integrate .. //depot/projects/dtrace/src/sys/i386/i386/tsc.c#4 integrate .. //depot/projects/dtrace/src/sys/kern/kern_resource.c#3 integrate .. //depot/projects/dtrace/src/sys/kern/kern_tc.c#6 integrate .. //depot/projects/dtrace/src/sys/kern/subr_bus.c#6 integrate .. //depot/projects/dtrace/src/sys/kern/uipc_syscalls.c#8 integrate .. //depot/projects/dtrace/src/sys/netgraph/ng_ether.c#4 integrate .. //depot/projects/dtrace/src/sys/netinet/ip_fw2.c#7 integrate .. //depot/projects/dtrace/src/sys/pci/ncr.c#4 integrate .. //depot/projects/dtrace/src/sys/vm/swap_pager.c#5 integrate .. //depot/projects/dtrace/src/sys/vm/vm_object.c#6 integrate .. //depot/projects/dtrace/src/sys/vm/vm_page.c#9 integrate .. //depot/projects/dtrace/www/en/projects/acpi/completed.sgml#2 integrate .. //depot/projects/dtrace/www/en/projects/acpi/index.sgml#2 integrate Differences ... ==== //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/portbuild/article.sgml#3 (text+ko) ==== @@ -11,7 +11,7 @@ The &os; Ports Management Team - $FreeBSD: doc/en_US.ISO8859-1/articles/portbuild/article.sgml,v 1.11 2006/06/19 00:16:16 linimon Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/portbuild/article.sgml,v 1.12 2006/08/04 17:26:26 linimon Exp $ 2003 @@ -609,6 +609,12 @@ real destination directory, and not one of the symlinks that points to it. + For incremental builds, packages should be uploaded + using rsync so we do not put too much + strain on the mirrors: + + &prompt.root; rsync -n -r -v -l -t -p --delete packages/ portmgr@ftp-master:w/ports/${arch}/${branch}/ | tee log + Distfiles can be transferred via rsync: ==== //depot/projects/dtrace/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml#2 (text+ko) ==== @@ -1,10 +1,10 @@ Создание информационных файлов Имеется два информационных файла, которые требуются для любого - порта, вне зависимости от того, является ли он пакаджем или нет. Это + порта, вне зависимости от того, является ли он пакетом или нет. Это pkg-descr и pkg-plist. Префикс pkg- отличает их от других файлов. @@ -195,7 +195,7 @@ Здесь перечисляются все файлы, устанавливаемые портом. Его также называют списком для упаковки, потому что - пакадж генерируется упаковкой файлов, которые здесь указаны. + пакет генерируется упаковкой файлов, которые здесь указаны. Имена путей указываются относительно установочного префикса (обычно /usr/local или /usr/X11R6). Если вы используете переменные @@ -232,6 +232,41 @@ linkend="porting-autoplist">автоматическом построении списка упаковки может помочь сэкономить время. + + Существует только одно исключение, когда у порта может + отсутствовать pkg-plist. Если порт + устанавливает лишь несколько файлов, а возможно, и каталогов, то + они могут быть перечислены в переменных + PLIST_FILES и PLIST_DIRS, + соответственно, внутри файла Makefile порта. + К примеру, мы можем обойтись без файла + pkg-plist у приведённого выше порта + oneko, добавив следующие строки в + Makefile: + + PLIST_FILES= bin/oneko \ + lib/X11/app-defaults/Oneko \ + lib/X11/oneko/cat1.xpm \ + lib/X11/oneko/cat2.xpm \ + lib/X11/oneko/mouse.xpm +PLIST_DIRS= lib/X11/oneko + + Конечно, переменная PLIST_DIRS не должна + задаваться, если порт не устанавливает никаких каталогов. + + Обратной стороной такого способа перечисления файлов и + каталогов порта является невозможность использования + последовательностей команд, описанных в &man.pkg.create.1;. + Поэтому он подходит для простых портов, что делает их ещё более + простыми. Одновременно с этим положительным моментом является + уменьшение количества файлов в коллекции портов. Пожалуйста, + подумайте над использованием этой техники, прежде чем создавать + pkg-plist. + + Далее мы увидим, как можно использовать файлы + pkg-plist и PLIST_FILES + выполнения более сложных + задач. @@ -247,7 +282,7 @@ Тестирование порта Вы должны удостовериться, что правила построения порта выполняют - именно то, что вы хотите, включая создание пакаджа для порта. Вот + именно то, что вы хотите, включая создание пакета для порта. Вот те важные вещи, которые вы должны проверить. @@ -310,7 +345,7 @@ предупреждений. После выполнения шага 3 проверьте, что все новые каталоги были успешно удалены. Также попробуйте запустить программное обеспечение после выполнения шага 4, чтобы убедиться, что - оно работает правильно при установке из пакаджа. + оно работает правильно при установке из пакета. @@ -323,7 +358,7 @@ Портов. В частности, вы можете захотеть проверить, правильно ли сформирован файл Makefile и соответствующим ли образом наименован пакадж. + linkend="porting-pkgname">пакет. @@ -336,7 +371,7 @@ Теперь, когда вы счастливы от своего первого порта, единственное, что осталось сделать, это включить его в основное дерево портов FreeBSD и осчастливить этим всех остальных. Нам не нужен ни ваш - каталог work, ни пакадж + каталог work, ни пакет pkgname.tgz, так что удалите их прямо сейчас. Затем просто включите вывод команды shar `find port_dir` в сообщение об ошибке и пошлите @@ -369,7 +404,7 @@ Повторим ещё раз, что не нужно включать ни оригинальный файл с дистрибутивом, ни каталог work, - ни пакадж, построенный вами командой + ни пакет, построенный вами командой make package. После того как вы послали порт, пожалуйста, потерпите. @@ -669,11 +704,11 @@ configure, не нужно включать файлы diff для configure (они частенько вырастают до нескольких тысяч строк!); задайте USE_AUTOCONF_VER=213 и - включите дифф-файл для configure.in. + включите diff-файл для configure.in. Кроме того, если вы удаляете файл, то это можно сделать и в цели post-extract, а не внутри патча. Как только - вы будете удовлетворены получающимся дифф-файлом, разбейте его на + вы будете удовлетворены получающимся diff-файлом, разбейте его на несколько по одному патчу на отдельный файл. @@ -706,7 +741,7 @@ При наличии разумных ответов на задаваемые вопросы, подходящих по умолчанию, также рекомендуется проверять переменную PACKAGE_BUILDING и выключать интерактивный скрипт, - если он есть. Это позволит нам строить пакаджи для помещения на + если он есть. Это позволит нам строить пакеты для помещения на компакт-диски и FTP-серверы. @@ -775,15 +810,15 @@ монотонно увеличивающееся число, которое обнуляется при каждом увеличении значения переменной PORTVERSION (то есть каждый раз, когда создателями выпускается новый официальный - релиз), и добавляется к имени пакаджа, если оно не равно нулю. + релиз), и добавляется к имени пакета, если оно не равно нулю. Изменения в PORTREVISION используются автоматизированными инструментами (например, &man.pkg.version.1;) - для определения факта появления нового пакаджа. + для определения факта появления нового пакета. Значение PORTREVISION должно увеличиваться каждый раз, когда в порте FreeBSD делаются изменения, которые достаточно сильно затрагивают содержимое или структуру - соответствующего пакаджа. + соответствующего пакета. Примеры случаев, когда значение PORTREVISION должно быть увеличено: @@ -797,20 +832,20 @@ Изменения в файле Makefile порта для включения и выключения параметров, определяемых при компиляции - пакаджа. + пакета. - Изменения в списке упаковки или в поведении пакаджа во + Изменения в списке упаковки или в поведении пакета во время его установки (например, изменение скрипта, генерирующего - начальные данные для пакаджа, такие, как ssh-ключи для + начальные данные для пакета, такие, как ssh-ключи для хоста). Увеличение версии динамической библиотеки, от которой зависит порт (в этом случае тот, кто попытается установить - старый пакадж после установки более новой версии библиотеки, + старый пакет после установки более новой версии библиотеки, не сможет этого сделать, потому что при этом будет делаться поиск старой библиотеки libfoo.x, а не libfoo.(x+1)). @@ -833,28 +868,28 @@ Изменения стиля в скелете порта без функциональных изменений - в пакадже. + в пакете. Изменения в переменной MASTER_SITES или другие функциональные изменения порта, которые не затрагивают - получающегося пакаджа. + получающегося пакета. Тривиальные патчи к дистрибутивному файлу, такие, как исправления опечаток, которые не так уж важны, что пользователи - пакаджа должны озаботиться обновлением. + пакета должны озаботиться обновлением. Исправления, касающиеся этапа построения, которые делают - возможным построение пакаджа, если ранее это было невозможно + возможным построение пакета, если ранее это было невозможно сделать (пока изменения не приводят к изменению работы на любых других платформах, на которых порт ранее строился). Так как - PORTREVISION отражает содержимое пакаджа, - то, если ранее пакадж не строился, то нет нужды увеличивать + PORTREVISION отражает содержимое пакета, + то, если ранее пакет не строился, то нет нужды увеличивать PORTREVISION для отметки изменения. @@ -863,7 +898,7 @@ том, что нужно спрашивать себя, является ли вносимое в порт изменение таким, что от него выиграют все (в виде усовершенствования, исправления или благодаря тому, что новый - пакадж будет вообще работоспособным), и примите во внимание тот + пакет будет вообще работоспособным), и примите во внимание тот факт, что при этом все, кто регулярно обновляют своё дерево портов, будут обязаны это сделать. Если это так, то переменная PORTREVISION должна быть увеличена. @@ -882,17 +917,17 @@ В ситуациях, подобных этой, должно быть увеличено значение PORTEPOCH. Если значение PORTEPOCH не равно нулю, то оно добавляется к - имени пакаджа, как описано в разделе выше. Значение + имени пакета, как описано в разделе выше. Значение PORTEPOCH никогда не должно уменьшаться или сбрасываться в ноль, потому что это приведёт к ошибке сравнения с - пакаджем с меньшим номером эпохи (то есть то, что пакадж устарел, + пакетом с меньшим номером эпохи (то есть то, что пакет устарел, обнаружено не будет): номер новой версии (например, 1.0,1 в примере выше) останется меньше, чем номер предыдущей версии (20000801), однако суффикс ,1 интерпретируется различными автоматизированными утилитами особым образом, и окажется больше, чем предполагаемый суффикс ,0 более раннего - пакаджа). + пакета). Некорректное уменьшение или сброс PORTEPOCH приводит к печальным последствиям; если вы не поняли, о чём шла @@ -952,7 +987,7 @@ младший номер версии 2 по значению меньше, чем номер предыдущей версии 10, то должно быть увеличено значение PORTEPOCH для того, чтобы - заставить распознавать вновь создаваемый пакадж как более + заставить распознавать вновь создаваемый пакет как более новый. Так как это новый релиз программы, то PORTREVISION обнуляется (или удаляется из файла Makefile). @@ -978,8 +1013,8 @@ Если значение PORTEPOCH этим обновлением было бы сброшено в 0, то кто-нибудь, имеющий - установленный пакадж gtkmumble-0.10_1, не - смог бы опознать пакадж gtkmumble-0.3 как + установленный пакет gtkmumble-0.10_1, не + смог бы опознать пакет gtkmumble-0.3 как более новый, так как 3 было бы меньше, чем 10. Помните, что в первую очередь это касается PORTEPOCH. @@ -999,10 +1034,10 @@ ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. Добейтесь того, чтобы это соответствовало нашим рекомендациям по правильному выбору - названий для пакаджей. В частности, в переменной + названий для пакетов. В частности, в переменной PORTVERSION не разрешается использование дефиса (-). Кроме того, если в - имени пакаджа присутствует часть language- + имени пакета присутствует часть language- или -compiled.specifics (смотрите ниже), то используйте переменные PKGNAMEPREFIX и PKGNAMESUFFIX, соответственно. Не делайте их @@ -1010,18 +1045,18 @@ - Соглашения по именованию пакаджей + Соглашения по именованию пакетов Далее описаны некоторые соглашения, которым вы должны следовать - в именовании ваших пакаджей. Они были разработаны для облегчения - просмотра каталога, так как имеется уже тысячи пакаджей, а + в именовании ваших пакетов. Они были разработаны для облегчения + просмотра каталога, так как имеется уже тысячи пакетов, а пользователи отвернутся от нас, если список не понравится их взору! - Имя пакаджа должно иметь вид + Имя пакета должно иметь вид language_region-name-compiled.specifics-version.numbers. - Имя пакаджа определяется как + Имя пакета определяется как ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. Вы должны задавать значения переменных в соответствии с этим форматом. @@ -1104,7 +1139,7 @@ Вот несколько (реальных) примеров того, как преобразовать имя из оригинального, придуманного авторами, к подходящему для имени - пакаджа: + пакета: @@ -1233,7 +1268,7 @@ -letter 1.13 Размер бумаги задается статически во время построения - пакаджа + пакета @@ -1242,7 +1277,7 @@ pkfonts 300 1.0 - Пакадж для шрифтов 300dpi + пакет для шрифтов 300dpi @@ -1264,13 +1299,13 @@ <makevar>CATEGORIES</makevar> - В процессе создания пакаджа он помещается в каталог + В процессе создания пакета он помещается в каталог /usr/ports/packages/All, а в одном или более подкаталогов из /usr/ports/packages создаются на него ссылки. Имена этих подкаталогов определяются переменной CATEGORIES. Такая схема нужна для облегчения жизни пользователя, когда он сталкивается с массой - пакаджей на FTP-сервере или компакт-диске. Пожалуйста, посмотрите на + пакетов на FTP-сервере или компакт-диске. Пожалуйста, посмотрите на список существующих категорий и выберите те из них, которые более всего подходят к вашему порту. @@ -3013,19 +3048,19 @@ url="../developers-handbook/policies.html#POLICIES-MAINTAINER"> MAINTAINER в Makefiles. - Если мэйнтейнер порта не ответил на запрос пользователя об + Если мейнтейнер порта не ответил на запрос пользователя об обновлении в течение двух недель (исключая большие праздники), - то это можно считать тайм-аутом от мэйнтейнера, и обновление может - быть выполнено без явного подтверждения от мэйнтейнера. Если - мэйнтейнер не отвечает в течение трёх месяцев, то считается, что - он отсутствует, и как мэйнтейнер порта, о котором идёт речь, может + то это можно считать тайм-аутом от мейнтейнера, и обновление может + быть выполнено без явного подтверждения от мейнтейнера. Если + мейнтейнер не отвечает в течение трёх месяцев, то считается, что + он отсутствует, и как мейнтейнер порта, о котором идёт речь, может быть заменён. Исключениями из этого правила является всё, что сопровождает &a.portmgr; или &a.security-officer;. Запрещено делать любые несанкционированные изменения в портах, которые ведут эти группы. За &a.portmgr; оставляется право снять или назначить кого-либо - мэйнтейнером, по любой причине, а за the &a.security-officer; + мейнтейнером, по любой причине, а за the &a.security-officer; оставляется право лишать или назначать права на сопровождение порта по соображениям информационной безопасности. @@ -3034,7 +3069,7 @@ <makevar>COMMENT</makevar> Это однострочное описание порта. Пожалуйста, - не включайте сюда название пакаджа (или номер версии программного + не включайте сюда название пакета (или номер версии программного обеспечения). Комментарий должен начинаться с заглавной буквы и не заканчиваться точкой. Вот пример: @@ -3086,7 +3121,7 @@ Зависимость проверяется дважды, один раз внутри цели extract, а затем из цели install. Кроме того, имя зависимости - помещается в пакадж, так что &man.pkg.add.1; будет + помещается в пакет, так что &man.pkg.add.1; будет автоматически его устанавливать, если его нет на пользовательской системе. @@ -3133,7 +3168,7 @@ Зависимость проверяется внутри цели install. Кроме того, имя зависимости - помещается в пакадж, так что программа &man.pkg.add.1; + помещается в пакет, так что программа &man.pkg.add.1; будет автоматически его устанавливать, если он не будет найден в пользовательской системе. Часть target может быть опущена, если она @@ -3421,7 +3456,7 @@ другой способ получить требуемый результат. Это может привести к тому, что какой-то другой порт всегда будет строиться (и по умолчанию устанавливаться). и такая зависимость отразится и на - пакадже. Если это именно то, что вам нужно, то вам, наверное, + пакете. Если это именно то, что вам нужно, то вам, наверное, следует описывать это через BUILD_DEPENDS и RUN_DEPENDS—по крайней мере смысл будет более понятен. @@ -3531,14 +3566,14 @@ <makevar>CONFLICTS</makevar> - Если ваш пакадж не может существовать одновременно с другими + Если ваш пакет не может существовать одновременно с другими (из-за конфликтов файлов, несовместимости во время выполнения и так - далее), перечислите имена остальных пакаджей в переменной + далее), перечислите имена остальных пакетов в переменной CONFLICTS. Здесь вы можете использовать шаблоны командного процессора типа * и - ?. Имена пакаджей должны выглядеть так же, как + ?. Имена пакетов должны выглядеть так же, как в /var/db/pkg. Пожалуйста, убедитесь, что - CONFLICTS не содержит пакадж самого этого порта + CONFLICTS не содержит пакет самого этого порта или еще, что установка с помощью переменной FORCE_PKG_REGISTER больше не будет использоваться. @@ -3546,10 +3581,10 @@ Механизмы построения - Если ваш пакадж использует GNU-версию утилиты + Если ваш пакет использует GNU-версию утилиты make, задайте USE_GMAKE=yes. - Если ваш пакадж использует configure, задайте - HAS_CONFIGURE=yes. Если ваш пакадж использует + Если ваш пакет использует configure, задайте + HAS_CONFIGURE=yes. Если ваш пакет использует GNU-версию configure, задайте GNU_CONFIGURE=yes (это также подразумевает HAS_CONFIGURE). Если вы хотите передать @@ -3558,7 +3593,7 @@ --prefix=${PREFIX} для GNU configure и пустую строку для не-GNU configure), укажите эти дополнительные параметры в - CONFIGURE_ARGS. Если ваш пакадж использует + CONFIGURE_ARGS. Если ваш пакет использует GNU-версию autoconf, задайте USE_AUTOCONF_VER=213. Это подразумевает GNU_CONFIGURE, и приведет к вызову @@ -3580,7 +3615,7 @@ CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL} - Если ваш пакадж является приложением для X, которое создает + Если ваш пакет является приложением для X, которое создает файлы Makefile из соответствующих файлов Imakefile при помощи утилиты imake, то задайте USE_IMAKE=yes. @@ -3625,8 +3660,8 @@ @exec /sbin/ldconfig -m и @unexec /sbin/ldconfig -R в ваш файл pkg-plist, так что пользователь, устанавливающий - пакадж, сможет сразу же использовать динамическую библиотеку, а - удаление пакаджа не приведёт к тому, что система будет предполагать, + пакет, сможет сразу же использовать динамическую библиотеку, а + удаление пакета не приведёт к тому, что система будет предполагать, что библиотека всё ещё имеется в наличии. Если нужно, вы можете переопределить каталог, в который по @@ -3675,7 +3710,7 @@ <makevar>NO_PACKAGE</makevar> Эта переменная указывает, что мы не можем создавать для - приложения двоичный пакадж. К примеру, лицензия не позволяет + приложения двоичный пакет. К примеру, лицензия не позволяет бинарное распространение или она может запрещать распространение пакетов, созданных из изменённых исходников. @@ -3685,14 +3720,14 @@ переменная NO_CDROM. NO_PACKAGE должна также использоваться, если - двоичный пакадж, как правило, бесполезен, а приложение должно всегда + двоичный пакет, как правило, бесполезен, а приложение должно всегда компилироваться из исходного кода. К примеру, если в приложение во время компиляции жёстко включается конфигурационная информация, привязанная к конкретной системе, то задайте переменную NO_PACKAGE. Значением переменной NO_PACKAGE должна быть - строка, описывающая причину, по которой пакадж не должен + строка, описывающая причину, по которой пакет не должен создаваться. @@ -3702,7 +3737,7 @@ Эта переменная указывает на то, что, хотя мы имеем право создавать бинарные пакеты, мы не можем помещать эти пакеты или файлы DISTFILES порта на CD-ROM (или на похожие носители) для - перепродажи. Однако бинарные пакаджи и файлы + перепродажи. Однако бинарные пакеты и файлы DISTFILES порта будут оставаться доступными посредством FTP/HTTP. @@ -3723,7 +3758,7 @@ Задайте эту переменную, если лицензия на приложение не позволяет ни зеркалировать файлы DISTFILES, ни распространять - бинарный пакадж через FTP/HTTP или на CD-ROM. + бинарный пакет через FTP/HTTP или на CD-ROM. Ни NO_CDROM, ни NO_PACKAGE не стоит устанавливать вместе с RESTRICTED, так @@ -3861,7 +3896,7 @@ SITE_PERL Имя каталога, куда помещаются специфичные для сайта - пакаджи perl. Это значение добавляется к + пакеты perl. Это значение добавляется к PLIST_SUB. @@ -4551,13 +4586,11 @@ JDK, таким образом становится проблематичным определить список файлов для упаковки (pkg-plist). Это одна из причин, по которой создателям портов настоятельно рекомендуется использовать - макрос PORTDOCS. Эта функцию ещё предстоит хорошо - документировать, поэтому вы должны обратиться непосредственно к файлу - bsd.port.mk для получения более полной - информации. Более того, даже если вы сможете угадать набор файлов, - который будет сгенерирован утилитой javadoc, - размер получающегося файла pkg-plist голосует за - использование PORTDOCS. + макрос PORTDOCS. Более того, даже если вы сможете + угадать набор файлов, который будет сгенерирован утилитой + javadoc, размер получающегося файла + pkg-plist голосует за использование + PORTDOCS. Значением по умолчанию для переменной DATADIR является ${PREFIX}/share/${PORTNAME}. Хорошей @@ -4761,7 +4794,7 @@ Формат - Пакаджи в дереве портов будут строиться в том формате, в котором + пакеты в дереве портов будут строиться в том формате, в котором работает машина. Это означает формат a.out для 2.2 и a.out или ELF для 3.0 в зависимости от результата работы команды `objformat`. Кроме того, как только пользователь @@ -4902,7 +4935,7 @@ Это нужно для того, чтобы утилита ldconfig - была вызвана правильно в зависимости от формата пакаджа, а не + была вызвана правильно в зависимости от формата пакета, а не формата, используемого в системе по умолчанию. @@ -4913,10 +4946,10 @@ <makevar>MASTERDIR</makevar> Если вашему порту требуется построение довольно различающихся - версий пакаджей через переменную (задающую, например, разрешение, + версий пакетов через переменную (задающую, например, разрешение, или размер бумаги), которая принимает различные значения, создайте для - каждого пакаджа отдельный подкаталог, чтобы пользователям было легче - определить, каким пакаджем воспользоваться, но попробуйте использовать + каждого пакета отдельный подкаталог, чтобы пользователям было легче + определить, каким пакетом воспользоваться, но попробуйте использовать совместно между портами как можно больше файлов. В типичном случае вам потребуются только очень короткие файлы Makefile во всех каталогах, кроме одного, если вы будете использовать переменные @@ -4925,7 +4958,7 @@ каталога, в котором находятся все остальные файлы. Также используйте переменную как часть PKGNAMESUFFIX, чтобы - пакаджи имели разные имена. + пакеты имели разные имена. Продемонстрируем это на примере. Вот часть файла japanese/xdvi300/Makefile: @@ -4947,7 +4980,7 @@ Порт japanese/xdvi300 содержит - также все обычные патчи, файлы для пакаджа и так далее. Если вы введете + также все обычные патчи, файлы для пакета и так далее. Если вы введете здесь команду make, она возьмет в качестве разрешения значение по умолчанию (300) и построит порт обычным образом. @@ -5113,7 +5146,7 @@ на работу с портами, которым требуется Motif, так чтобы мы могли легко создавать бинарные файлы, скомпонованные как динамически (для тех, кто строит приложение из порта), так и статически (для тех, кто - будет распространять приложения в виде пакаджей). + будет распространять приложения в виде пакетов). <makevar>USE_MOTIF</makevar> @@ -5176,9 +5209,9 @@ Файлы в формате info - Если в вашем пакадже нужна установка файлов GNU info, они должны + Если в вашем пакете нужна установка файлов GNU info, они должны быть перечислены в переменной INFO (без окончания - .info), и тогда перед регистрации пакаджа во + .info), и тогда перед регистрации пакета во временный файл pkg-plist будет автоматически добавлен соответствующий код установки/удаления. @@ -5203,7 +5236,7 @@ Файл pkg-message не нужно добавлять в pkg-plist. И он не будет автоматически - выводиться, если пользователь использует порт, а не пакадж, так что + выводиться, если пользователь использует порт, а не пакет, так что вы должны будете сами выводить его при выполнении цели post-install. @@ -5212,11 +5245,11 @@ <filename>pkg-install</filename> - Если при установке бинарного пакаджа по команде + Если при установке бинарного пакета по команде &man.pkg.add.1; вашему порту нужно выполнить какие-то дополнительные действия или команды, то вы можете сделать это с помощью скрипта pkg-install. Этот скрипт будет - автоматически добавлен к пакаджу, и будет дважды запускаться по + автоматически добавлен к пакету, и будет дважды запускаться по команде &man.pkg.add.1;: первый раз в виде ${SH} pkg-install ${PKGNAME} PRE-INSTALL, а второй раз как ${SH} {PKGNAME} @@ -5224,7 +5257,7 @@ Для распознавания того, в каком режиме запущен скрипт, можно использовать параметр $2. Переменная окружения PKG_PREFIX будет принимать значение, - соответствующее каталогу, в который устанавливается пакадж. + соответствующее каталогу, в который устанавливается пакет. Дополнительная информация находится на странице Справочника о команде &man.pkg.add.1;. @@ -5239,7 +5272,7 @@ <filename>pkg-deinstall</filename> - Этот скрипт вызывается при удалении пакаджа. + Этот скрипт вызывается при удалении пакета. Этот скрипт утилитой &man.pkg.delete.1; будет запускаться дважды. Первый раз как ${SH} pkg-install @@ -5316,6 +5349,24 @@ требуется отредактировать получающийся файл, делайте это в цели post-install изменением файла TMPPLIST. + + Другой способ изменения списка сборки порта основан на + определении значений переменных PLIST_FILES и + PLIST_DIRS. Каждое из них рассматривается как + перечень путей для записи в + TMPPLIST содержимого + PLIST. Имена, перечисленные + в PLIST_FILES и PLIST_DIRS, + подвергаются подстановке %%VAR%%, как описано + выше. За исключением этого, имена из PLIST_FILES + будут появляться в окончательном варианте перечня сборки без + изменений, когда как @dirrm будет предшествовать + именам из PLIST_DIRS. Для того, чтобы возыметь + действие, PLIST_FILES и + PLIST_DIRS должны задаваться до того, как будет + записываться TMPPLIST, то + есть в цели pre-install или ещё + раньше. @@ -5495,7 +5546,7 @@ &prompt.root; make clean; make package PREFIX=/var/tmp/port-name Если что-то было установлено за пределами - PREFIX, то процесс создания пакаджа сообщит об + PREFIX, то процесс создания пакета сообщит об отсутствии файлов. @@ -5580,13 +5631,13 @@ причину не обновлять порт прямо сейчас (например, из-за проблем со стабильностью функционирования новой версии); вам нет нужды дублировать их работу. Заметьте, что неподдерживаемые - порты перечисляются с адресом мэйнтейнера + порты перечисляются с адресом мейнтейнера ports@FreeBSD.org, который является всего лишь адресом общего списка рассылки, так что отправка туда сообщений, скорее всего, в данном случае не поможет. - Если мэйнтейнер просит вас выполнить обновление, либо - или мэйнтейнер отсутствует, то у вас появляется шанс помочь &os;, + Если мейнтейнер просит вас выполнить обновление, либо + или мейнтейнер отсутствует, то у вас появляется шанс помочь &os;, приготовив обновление самим! Пожалуйста, внесите изменения и сохраните результат рекурсивного diff между новым и старым каталогами порта (например, если каталог с @@ -5608,9 +5659,9 @@ Если порт никем не поддерживается, а вы активно его используете, пожалуйста, подумайте над тем, чтобы добровольно стать его - мэйнтэйнером. Во &os; имеется более 2000 портов без поддержки, и это + мейнтейнером. Во &os; имеется более 2000 портов без поддержки, и это как раз та область, где всегда нужны добровольцы. (Детальное описание - обязанностей мэйнтэйнеров можно найти в разделе MAINTAINER в Make-файлах.) @@ -5623,7 +5674,7 @@ В противном случае в поле Class вашего PR должно быть указано change-request. Будьте добры, в сообщении отметьте все добавленные или удалённые файлы, так как они будут - непосредственно указаны &man.cvs.1; при выполнении операции коммитта. + непосредственно указаны &man.cvs.1; при выполнении операции коммита. Если diff-файл имеет размер, превышающий 20КБ, сожмите его и обработайте утилитой uuencode; в противном случае просто включите его как есть в PR. @@ -5638,7 +5689,7 @@ Если ваше обновление вызвано соображениями информационной безопасности или наличием серьёзных ошибок в имеющемся порте, пожалуйста, оповестите &a.portmgr; о необходимости немедленного - перепостроения и повторного распространения пакаджа вашего порта. + перепостроения и повторного распространения пакета вашего порта. В противном случае ничего не подозревающие пользователи &man.pkg.add.1; будут продолжать устанавливать старую версию по команде pkg_add -r в течение ещё нескольких недель. @@ -6457,7 +6508,7 @@ 4.5-STABLE после переключения на использование по - умолчанию при построении пакаджей XFree86 4. + умолчанию при построении пакетов XFree86 4. 450005 @@ -6694,7 +6745,7 @@ - 5.0-CURRENT после первого коммитта SMPng. + 5.0-CURRENT после первого коммита SMPng. 500013 @@ -6786,7 +6837,7 @@ 5.0-CURRENT после перехода на использование по умолчанию - XFree86 4 для построения пакаджей и после добавления в + XFree86 4 для построения пакетов и после добавления в библиотеку libc новой функции strnstr(). 500026 @@ -6887,7 +6938,7 @@ 5.0-CURRENT после того, как в файлах заголовков было прекращено использование _BSD_FOO_T_ и начато использование _FOO_T_DECLARED. Это значение может быть также использовано - как примерная точка начала поддержки пакаджей в формате + как примерная точка начала поддержки пакетов в формате &man.bzip2.1;. 500039 @@ -7453,26 +7504,35 @@ ${INSTALL_MAN} ${WRKSRC}/docs/xvdocs.ps ${DOCSDIR} .endif - Вот несколько переменных и то, как они преобразуются при - использовании в Makefile: + Вот несколько полезных переменных и то, как они преобразуются по + умолчанию при использовании в Makefile: - ${DATADIR} преобразуется в - ${PREFIX}/share/${PORTNAME}. + DATADIR преобразуется в + PREFIX/share/PORTNAME. - ${DOCSDIR} преобразуется в - ${PREFIX}/share/doc/${PORTNAME}. + DOCSDIR преобразуется в + PREFIX/share/doc/PORTNAME. - ${EXAMPLESDIR} преобразуется в - ${PREFIX}/share/examples/${PORTNAME}. + EXAMPLESDIR преобразуется в + PREFIX/share/examples/PORTNAME. + Эти переменные экспортируются в PLIST_SUB. + Их значения появятся там в виде имён путей относительно + PREFIX, если это возможно. + То есть share/doc/PORTNAME + в списке сборки по умолчанию будет заменен на + %%DOCSDIR%%, и так далее. (Дополнительную + информацию о подстановке в pkg-plist можно + найти здесь.) + Все устанавливаемые файлы с документацией и каталоги должны быть перечислены в файле pkg-plist с префиксом %%PORTDOCS%%, например: @@ -7491,6 +7551,27 @@ Файл pkg-message не нужно добавлять в pkg-plist. + + В качестве альтернативы перечислению файлов документации в файле + pkg-plist, порт может указать в переменной + PORTDOCS список имён файлов и глобальных шаблонов + командного процессора для добавления в окончательный список сборки. + Имена будут задаваться относительно DOCSDIR. + Таким образом, порт, использующий PORTDOCS и + нестандартное местоположение документации, должен задавать + соответствующим образом и DOCSDIR. Если каталог + указан в PORTDOCS или соответствует шаблону для + этой переменной, то полное поддерево с входящими в него файлами и + каталогами будет регистрироваться в окончательном списке сборки. + PORTDOCS не должна задаваться, если определена + переменная NOPORTDOCS. Установка документации в + PORTDOCS, как это показано выше, остаётся за + самим портом. Типичный пример использования + PORTDOCS выглядит следующим образом: + + .if !defined(NOPORTDOCS) + PORTDOCS= * +.endif @@ -7556,7 +7637,7 @@ Идентификаторы UID - Если вашему порты требуется наличие некоторого пользователя в + Если вашему порту требуется наличие некоторого пользователя в системе, на которую он устанавливается, пусть скрипт pkg-install вызовет команду pw для его автоматического создания. Посмотрите @@ -7564,7 +7645,7 @@ Если ваш порт должен использовать тот же самый идентификатор - пользователя или группы при установке двоичного пакаджа, который был + пользователя или группы при установке двоичного пакета, который был при компиляции, то вы должны выбрать свободный UID в диапазоне от 50 до 999 и зарегистрировать его ниже. Взгляните для примера на japanese/Wnn6. @@ -7942,7 +8023,7 @@ # # $FreeBSD$ [ ^^^^^^^^^ Эта строка будет автоматически заменена со строчкой RCS ID -системой CVS при выполнении операции коммитта в наше хранилище. При +системой CVS при выполнении операции коммита в наше хранилище. При обновлении порта не приводите эту строку обратно к виду "$FreeBSD$". CVS сделает все автоматически.] # @@ -7971,7 +8052,7 @@ PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz [сопровождающий; *обязательное поле*! Это человек (предпочтительно с - привилегиями на операцию коммитта), с которым может связаться пользователь + привилегиями на операцию коммита), с которым может связаться пользователь для получения ответов на вопросы и посылки сообщений об ошибках - этот человек должен быть создателем порта или кем-то, кто может передать вопросы создателю порта. Если вы на самом деле не хотите указывать здесь @@ -8093,7 +8174,7 @@ Самым простым способом отслеживать уже произошедшие обновления является подписка на FreshPorts. Для мониторинга вы можете выбрать несколько - портов. Мэйнтэйнерам настоятельно рекомендуется подписаться здесь, + портов. Мейнтейнерам настоятельно рекомендуется подписаться здесь, потому что они будут получать уведомления не только о собственных изменениях, но и об изменениях, сделанных любым другим коммиттером &os;. (Это часто необходимо для синхронизации с изменениями на более @@ -8152,7 +8233,7 @@ из основных релизов ОС для каждой архитектуры уровня поддержки Tier-1 выделен целый кластер машин. Вы можете увидеть результаты этих построений в протоколах - построения пакаджей и обнаруженных ошибок. + построения пакетов и обнаруженных ошибок. @@ -8166,7 +8247,7 @@ инспектирования дистрибутивных файлов FreeBSD пытается опросить каждый из сайтов, доступный для сгрузки каждого из портов >>> TRUNCATED FOR MAIL (1000 lines) <<<