diff options
Diffstat (limited to 'documentation/content/ru/books/porters-handbook/slow-porting/_index.po')
-rw-r--r-- | documentation/content/ru/books/porters-handbook/slow-porting/_index.po | 1017 |
1 files changed, 1017 insertions, 0 deletions
diff --git a/documentation/content/ru/books/porters-handbook/slow-porting/_index.po b/documentation/content/ru/books/porters-handbook/slow-porting/_index.po new file mode 100644 index 0000000000..388441324e --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/slow-porting/_index.po @@ -0,0 +1,1017 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-18 22:05+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/booksporters-handbookslow-porting_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:1 +#, no-wrap +msgid "Description about creating a FreeBSD Port when the program need some modifications" +msgstr "Описание создания порта FreeBSD, когда программа требует некоторых изменений" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:1 +#, no-wrap +msgid "Chapter 4. Slow Porting" +msgstr "Глава 4. Медленное портирование" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:14 +#, no-wrap +msgid "Slow Porting" +msgstr "Медленное портирование" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:53 +msgid "" +"Okay, so it was not that simple, and the port required some modifications to " +"get it to work. In this section, we will explain, step by step, how to " +"modify it to get it to work with the ports paradigm." +msgstr "" +"Итак, все оказалось не так уж и просто, и порт потребовал некоторых " +"модификаций для того, чтобы заставить его работать. В этом разделе мы " +"расскажем, шаг за шагом, как его модифицировать, чтобы он работал с нашей " +"системой портов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:55 +#, no-wrap +msgid "How Things Work" +msgstr "Как всё это работает" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:59 +msgid "" +"First, this is the sequence of events which occurs when the user first types " +"`make` in the port's directory. Having [.filename]#bsd.port.mk# in another " +"window while reading this really helps to understand it." +msgstr "" +"Во-первых, когда пользователь дает в своем каталоге с портом команду `make`, " +"происходит целая череда событий. Во время чтения этого текста может " +"оказаться полезным иметь файл [.filename]#bsd.port.mk# открытым в другом " +"окне, что сильно поможет его понять." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:61 +msgid "" +"But do not worry, not many people understand exactly how " +"[.filename]#bsd.port.mk# is working... _:-)_" +msgstr "" +"Но не волнуйтесь сильно, если вы не до конца понимаете, что делается в " +"[.filename]#bsd.port.mk#, не так уж много людей его понимает... _:-)_" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:64 +msgid "" +"The `fetch` target is run. The `fetch` target is responsible for making sure " +"that the tarball exists locally in `DISTDIR`. If `fetch` cannot find the " +"required files in `DISTDIR` it will look up the URL `MASTER_SITES`, which is " +"set in the Makefile, as well as our FTP mirrors where we put distfiles as " +"backup. It will then attempt to fetch the named distribution file with " +"`FETCH`, assuming that the requesting site has direct access to the " +"Internet. If that succeeds, it will save the file in `DISTDIR` for future " +"use and proceed." +msgstr "" +"Запускается цель `fetch`. Цель `fetch` отвечает за то, что архив исходных " +"текстов имеется в наличии локально в каталоге `DISTDIR`. Если цель `fetch` " +"не может найти требуемые файлы в каталоге `DISTDIR`, то они будут искаться " +"по указателю URL `MASTER_SITES`, который устанавливается в Makefile, а также " +"на наших FTP зеркалах, куда мы по возможности помещаем дистрибутивные файлы " +"для архива. Затем она попытается сгрузить указанный файл с помощью `FETCH`, " +"полагая, что запрашивающая машина имеет прямое подключение к Интернет. Если " +"файл скачается удачно, то он будет помещен в каталог `DISTDIR` для " +"последующего использования и обработки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:65 +msgid "" +"The `extract` target is run. It looks for the port's distribution file " +"(typically a compressed tarball) in `DISTDIR` and unpacks it into a " +"temporary subdirectory specified by `WRKDIR` (defaults to [.filename]#work#)." +msgstr "" +"Выполняется цель `extract`. Она ищет дистрибутивный файл порта (как правило, " +"tar-архив `gzip`) в каталоге `DISTDIR` и распаковывает его во временный " +"каталог, задаваемый переменной `WRKDIR` (по умолчанию [.filename]#work#)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:66 +msgid "" +"The `patch` target is run. First, any patches defined in `PATCHFILES` are " +"applied. Second, if any patch files named [.filename]#patch-*# are found in " +"`PATCHDIR` (defaults to the [.filename]#files# subdirectory), they are " +"applied at this time in alphabetical order." +msgstr "" +"Выполняется цель `patch`. Во-первых, применяются все патчи, заданные " +"переменной `PATCHFILES`. Во-вторых, если какие-либо файлы с патчами, носящие " +"имена [.filename]#patch-*#, имеются в подкаталоге `PATCHDIR` (по умолчанию " +"это каталог [.filename]#files#), то они применяются в этот момент в " +"алфавитном порядке." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:67 +msgid "" +"The `configure` target is run. This can do any one of many different things." +msgstr "" +"Запускается цель `configure`. Здесь может выполняться любая из многих " +"различных вещей." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:68 +msgid "If it exists, [.filename]#scripts/configure# is run." +msgstr "Если он существует, запускается [.filename]#scripts/configure#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:69 +msgid "" +"If `HAS_CONFIGURE` or `GNU_CONFIGURE` is set, [.filename]#WRKSRC/configure# " +"is run." +msgstr "" +"Если установлены `HAS_CONFIGURE` или `GNU_CONFIGURE`, запускается " +"[.filename]#WRKSRC/configure#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:71 +msgid "" +"The `build` target is run. This is responsible for descending into the " +"port's private working directory (`WRKSRC`) and building it." +msgstr "" +"Выполняется цель `build`. Она отвечает за переход в собственный рабочий " +"каталог порта (`WRKSRC`) и его построение." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:72 +msgid "" +"The `stage` target is run. This puts the final set of built files into a " +"temporary directory (`STAGEDIR`, see crossref:special[staging,Staging]). The " +"hierarchy of this directory mirrors that of the system on which the package " +"will be installed." +msgstr "" +"Выполняется цель `stage`. Конечный набор построенных файлов помещается во " +"временный каталог (`STAGEDIR`, смотрите crossref:special[staging,Staging]). " +"Иерархия этого каталога отражает иерархию каталогов системы, в которую " +"данный пакет будет устанавливаться." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:73 +msgid "" +"The `package` target is run. This creates a package using the files from the " +"temporary directory created during the `stage` target and the port's " +"[.filename]#pkg-plist#." +msgstr "" +"Выполняется цель `package`. При этом создается пакет с использованием файлов " +"из временного каталога, созданного во время выполнения цели `stage`, и файла " +"[.filename]#pkg-plist# порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:74 +msgid "" +"The `install` target is run. This installs the package created during the " +"`package` target into the host system." +msgstr "" +"Выполняется цель `install`. Это устанавливает пакет, созданный во время цели " +"`package`, в хост-систему." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:76 +msgid "" +"The above are the default actions. In addition, define targets `pre-" +"_something_` or `post-_something_`, or put scripts with those names, in the " +"[.filename]#scripts# subdirectory, and they will be run before or after the " +"default actions are done." +msgstr "" +"Выше перечислены стандартные действия. Кроме того, вы сами можете определить " +"цели `pre-_что-то_` или `post-_что-то_`, или создать скрипты с такими " +"именами в подкаталоге [.filename]#scripts#, и они будут запущены до или " +"после выполнения действий по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:82 +msgid "" +"For example, if there is a `post-extract` target defined in the " +"[.filename]#Makefile#, and a file [.filename]#pre-build# in the " +"[.filename]#scripts# subdirectory, the `post-extract` target will be called " +"after the regular extraction actions, and [.filename]#pre-build# will be " +"executed before the default build rules are done. It is recommended to use " +"[.filename]#Makefile# targets if the actions are simple enough, because it " +"will be easier for someone to figure out what kind of non-default action the " +"port requires." +msgstr "" +"Например, если у вас есть цель `post-extract`, определённая в вашем файле " +"[.filename]#Makefile# и файл [.filename]#pre-build# в подкаталоге " +"[.filename]#scripts#, то после выполнения обычных действий по распаковке, " +"будет вызвана цель `post-extract` а скрипт [.filename]#pre-build# будет " +"выполнен перед запуском стандартных правил построения. Рекомендуется " +"использовать цели из [.filename]#Makefile#, если действия достаточно просты, " +"потому что в дальнейшем будет проще определить, какие нестандартные действия " +"требует порт." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:86 +msgid "" +"The default actions are done by the `do-_something_` targets from " +"[.filename]#bsd.port.mk#. For example, the commands to extract a port are " +"in the target `do-extract`. If the default target does not do the job " +"right, redefine the `do-_something_` target in the [.filename]#Makefile#." +msgstr "" +"Действия по умолчанию выполняются целями `do-_что-то_` из " +"[.filename]#bsd.port.mk#. Например, команды для распаковки порта находятся в " +"цели `do-extract`. Если вам не хватает цели по умолчанию, вы можете ее " +"исправить, переопределив цель `do-_something_` в вашем файле " +"[.filename]#Makefile#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:92 +msgid "" +"The \"main\" targets (for example, `extract`, `configure`, etc.) do nothing " +"more than make sure all the stages up to that one are completed and call the " +"real targets or scripts, and they are not intended to be changed. To fix " +"the extraction, fix `do-extract`, but never ever change the way `extract` " +"operates! Additionally, the target `post-deinstall` is invalid and is not " +"run by the ports infrastructure." +msgstr "" +"\"Основные\" цели (к примеру, `extract`, `configure` и так далее) не делают " +"ничего больше, чем проверяют успешность завершения всех предыдущих шагов и " +"вызывают настоящие цели или скрипты, и их не нужно менять. Если вам нужно " +"изменить распаковку, исправляйте `do-extract`, но никогда не меняйте способ " +"работы `extract`! Кроме того, цель `post-deinstall` является " +"недействительной и не выполняется инфраструктурой портов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:95 +msgid "" +"Now that what goes on when the user types `make install` is better " +"understood, let us go through the recommended steps to create the perfect " +"port." +msgstr "" +"Теперь, когда вы представляете, что происходит, когда пользователь набирает " +"команду `make install`, давайте пройдемся через шаги, рекомендуемые для " +"создания настоящего порта." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:97 +#, no-wrap +msgid "Getting the Original Sources" +msgstr "Получение исходного кода" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:101 +msgid "" +"Get the original sources (normally) as a compressed tarball " +"([.filename]#foo.tar.gz# or [.filename]#foo.tar.bz2#) and copy it into " +"`DISTDIR`. Always use _mainstream_ sources when and where possible." +msgstr "" +"Получите оригинальные исходные тексты (обычно) в виде упакованного tar-" +"архива ([.filename]#foo.tar.gz# или [.filename]#foo.tar.bz2#) и скопируйте " +"его в каталог `DISTDIR`. Всегда используйте исходные тексты _основной ветки " +"разработки_ везде, где это возможно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:108 +msgid "" +"Set the variable `MASTER_SITES` to reflect where the original tarball " +"resides. Shorthand definitions exist for most mainstream sites in " +"[.filename]#bsd.sites.mk#. Please use these sites-and the associated " +"definitions-if at all possible, to help avoid the problem of having the same " +"information repeated over again many times in the source base. As these " +"sites tend to change over time, this becomes a maintenance nightmare for " +"everyone involved. See crossref:makefiles[makefile-" +"master_sites,`MASTER_SITES`] for details." +msgstr "" +"Вам потребуется задать значение переменной `MASTER_SITES` так, чтобы оно " +"указывало на местоположение оригинального tar-архива. В файле " +"[.filename]#bsd.sites.mk# вы найдёте краткие обозначения для большинства " +"популярных сайтов. Пожалуйста, используйте эти сайты-и соответствующие " +"определения-везде, где это возможно, чтобы избежать проблем повторения одной " +"и той же информации в базе источников. Так как эти сайты со временем " +"меняются, для всех причастных поддержка становится настоящим кошмаром. Для " +"подробностей смотрите crossref:makefiles[makefile-" +"master_sites,`MASTER_SITES`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:110 +msgid "" +"If there is no FTP/HTTP site that is well-connected to the net, or can only " +"find sites that have irritatingly non-standard formats, put a copy on a " +"reliable FTP or HTTP server (for example, a home page)." +msgstr "" +"Если вы не можете найти FTP/HTTP сайт с хорошим подключением к сети, или " +"находите только сайты, которые имеют раздражающе нестандартные форматы, то " +"можете захотеть поместить копию на надежный сервер FTP или HTTP, который вам " +"доступен (например, ваша домашняя страница)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:114 +msgid "" +"If a convenient and reliable place to put the distfile cannot be found, we " +"can \"house\" it ourselves on `ftp.FreeBSD.org`; however, this is the least-" +"preferred solution. The distfile must be placed into [.filename]#~/" +"public_distfiles/# of someone's `freefall` account. Ask the person who " +"commits the port to do this. This person will also set `MASTER_SITES` to " +"`LOCAL/_username_` where `_username_` is their FreeBSD cluster login." +msgstr "" +"Если вы не можете найти доступного и надёжного места для помещения " +"дистрибутивного файла, то мы сами сможем разместить его на сервере " +"`ftp.FreeBSD.org`; однако это наименее рекомендуемое решение. Дистрибутивный " +"файл должен быть помещён в каталог [.filename]#~/public_distfiles/# одного " +"из пользователей машины `freefall`. Попросите того, кто коммиттил ваш порт, " +"сделать это. Этот человек также задаст переменной `MASTER_SITES` значение " +"`MASTER_SITE_LOCAL`, а в переменной `MASTER_SITE_SUBDIR` укажет логин " +"кластера FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:119 +msgid "" +"If the port's distfile changes all the time without any kind of version " +"update by the author, consider putting the distfile on a home page and " +"listing it as the first `MASTER_SITES`. Try to talk the port author out of " +"doing this; it really does help to establish some kind of source code " +"control. Hosting a specific version will prevent users from getting " +"`checksum mismatch` errors, and also reduce the workload of maintainers of " +"our FTP site. Also, if there is only one master site for the port, it is " +"recommended to house a backup on a home page and list it as the second " +"`MASTER_SITES`." +msgstr "" +"Если дистрибутивные файлы вашего порта постоянно меняются по неизвестным " +"причинам без изменения версий со стороны автора, остаётся только поместить " +"дистрибутив на вашу домашнюю Web-страницу и указать её первой в списке " +"`MASTER_SITES`. Если можете, попытайтесь договориться с автором порта об " +"этом; это действительно помогает в достижении некоторого управления исходным " +"кодом. Размещение собственной версии поможет избежать появления ошибок у " +"пользователей типа `checksum mismatch`, а также уменьшит нагрузку на людей, " +"сопровождающих наш FTP-сервер. Также, если у порта имеется только один " +"основной сервер, то рекомендуется поместить архивную копию на свой сайт и " +"указать его в списке `MASTER_SITES` вторым." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:123 +msgid "" +"If the port requires additional patches that are available on the Internet, " +"fetch them too and put them in `DISTDIR`. Do not worry if they come from a " +"site other than where the main source tarball comes, we have a way to handle " +"these situations (see the description of crossref:makefiles[porting-" +"patchfiles,PATCHFILES] below)." +msgstr "" +"Если вашему порту требуются дополнительные `патчи`, доступные в Интернет, " +"скачайте также и их, поместив в каталог `DISTDIR`. Не волнуйтесь, если они " +"находятся не на том же сайте, откуда взят дистрибутивный архив, мы умеем " +"обрабатывать такие ситуации (смотрите описание crossref:makefiles[porting-" +"patchfiles,PATCHFILES] ниже)." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:125 +#, no-wrap +msgid "Modifying the Port" +msgstr "Модификация порта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:130 +msgid "" +"Unpack a copy of the tarball in a private directory and make whatever " +"changes are necessary to get the port to compile properly under the current " +"version of FreeBSD. Keep _careful track_ of steps, as they will be needed " +"to automate the process shortly. Everything, including the deletion, " +"addition, or modification of files has to be doable using an automated " +"script or patch file when the port is finished." +msgstr "" +"Распакуйте копию дистрибутивного файла в отдельный каталог и внесите " +"изменения, которые необходимы для того, чтобы порт компилировался нормально " +"в текущей версии FreeBSD. _Тщательно отслеживайте_ все, что вы делаете, этот " +"процесс вам предстоит автоматизировать. Все, включая удаление, добавление " +"или модификацию в файлах должны будут выполняться автоматически с помощью " +"скриптов или файлов патчей, когда вы завершите работу над портом." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:133 +msgid "" +"If the port requires significant user interaction/customization to compile " +"or install, take a look at one of Larry Wall's classic Configure scripts and " +"perhaps do something similar. The goal of the new ports collection is to " +"make each port as \"plug-and-play\" as possible for the end-user while using " +"a minimum of disk space." +msgstr "" +"Если вашему порту во время компиляции, установки и настройки требуется " +"довольно много взаимодействовать с пользователем, то посмотрите на один из " +"классических скриптов Configure Лэрри Уолла (Larry Wall) и сделайте сами что-" +"либо подобное. Предназначение новой коллекции портов - это сделать каждое " +"приложение в стиле \"plug-and-play\" настолько, насколько это вообще " +"возможно для конечного пользователя при минимальном использовании дискового " +"пространства." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:137 +msgid "" +"Unless explicitly stated, patch files, scripts, and other files created and " +"contributed to the FreeBSD ports collection are assumed to be covered by the " +"standard BSD copyright conditions." +msgstr "" +"Если явно не указано обратное, то патчи, скрипты и другие файлы, которые вы " +"создали и предоставили для Коллекции Портов FreeBSD, неявно подпадают под " +"стандартные условия лицензии BSD." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:140 +#, no-wrap +msgid "Patching" +msgstr "Работа с патчами" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:144 +msgid "" +"In the preparation of the port, files that have been added or changed can be " +"recorded with man:diff[1] for later feeding to man:patch[1]. Doing this " +"with a typical file involves saving a copy of the original file before " +"making any changes using a [.filename]#.orig# suffix." +msgstr "" +"Файлы, которые добавлялись или изменялись в процессе создания порта, могут " +"быть выявлены программой man:diff[1], а результат работы этой программы " +"может быть в дальнейшем передан программе man:patch[1]. Такое действие с " +"обычным файлом подразумевает сохранение копии файла с первоначальным " +"содержимым перед внесением каких-либо изменений." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:148 +#, no-wrap +msgid "% cp file file.orig\n" +msgstr "% cp file file.orig\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:152 +msgid "" +"After all changes have been made, `cd` back to the port directory. Use " +"`make makepatch` to generate updated patch files in the [.filename]#files# " +"directory." +msgstr "" +"Патчи сохраняются в виде файлов с именем [.filename]#patch-*#, где _*_ " +"обозначает путь к файлу, к которому применяется патч, такой как " +"[.filename]#patch-Imakefile# или [.filename]#patch-src-config.h#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:157 +msgid "" +"Use `BINARY_ALIAS` to substitute hardcoded commands during the build and " +"avoid patching build files. See crossref:makefiles[binary-alias,Use " +"`BINARY_ALIAS` to Rename Commands Instead of Patching the Build] for more " +"information." +msgstr "" +"Используйте `BINARY_ALIAS` для замены жёстко заданных команд во время сборки " +"и избежания исправлений в файлах сборки. Подробнее см. в " +"crossref:makefiles[binary-alias,Использование `BINARY_ALIAS` для " +"переименования команд вместо исправления сборки]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:160 +#, no-wrap +msgid "General Rules for Patching" +msgstr "Общие правила для установки патчей" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:167 +msgid "" +"Patch files are stored in `PATCHDIR`, usually [.filename]#files/#, from " +"where they will be automatically applied. All patches must be relative to " +"`WRKSRC`. Typically `WRKSRC` is a subdirectory of `WRKDIR`, the directory " +"where the distfile is extracted. Use `make -V WRKSRC` to see the actual " +"path. The patch names are to follow these rules:" +msgstr "" +"Файлы патчей хранятся в `PATCHDIR`, обычно это [.filename]#files/#, откуда " +"они будут автоматически применены. Все исправления должны быть относительны " +"к `WRKSRC`. Обычно `WRKSRC` является подкаталогом `WRKDIR`, каталога, в " +"котором распаковывается distfile. Используйте `make -V WRKSRC` для просмотра " +"фактического пути. Имена файлов патчей должны соответствовать следующим " +"правилам:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:169 +msgid "" +"Avoid having more than one patch modify the same file. For example, having " +"both [.filename]#patch-foobar.c# and [.filename]#patch-foobar.c2# making " +"changes to [.filename]#${WRKSRC}/foobar.c# makes them fragile and difficult " +"to debug." +msgstr "" +"Избегайте ситуации, когда несколько патчей изменяют один и тот же файл. " +"Например, если и [.filename]#patch-foobar.c#, и [.filename]#patch-foobar.c2# " +"вносят изменения в [.filename]#${WRKSRC}/foobar.c#, это делает их хрупкими и " +"затрудняет отладку." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:170 +msgid "" +"When creating names for patch files, replace each underscore (`\\_`) with " +"two underscores (`\\__`) and each slash (`/`) with one underscore (`_`). For " +"example, to patch a file named [.filename]#src/freeglut_joystick.c#, name " +"the corresponding patch [.filename]#patch-src_freeglut__joystick.c#. Do not " +"name patches like [.filename]#patch-aa# or [.filename]#patch-ab#. Always use " +"the path and file name in patch names. Using `make makepatch` automatically " +"generates the correct names." +msgstr "" +"При создании имен для файлов исправлений заменяйте каждое подчеркивание " +"(`\\_`) на два подчеркивания (`\\__`) и каждый слэш (`/`) на одно " +"подчеркивание (`_`). Например, чтобы исправить файл с именем [.filename]#src/" +"freeglut_joystick.c#, назовите соответствующий исправление [.filename]#patch-" +"src_freeglut__joystick.c#. Не называйте исправления как [.filename]#patch-" +"aa# или [.filename]#patch-ab#. Всегда используйте путь и имя файла в " +"названиях исправлений. Использование `make makepatch` автоматически " +"генерирует правильные имена." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:171 +msgid "" +"A patch may modify multiple files if the changes are related and the patch " +"is named appropriately. For example, [.filename]#patch-add-missing-stdlib.h#." +msgstr "" +"Патч может изменять несколько файлов, если изменения связаны между собой и " +"патч назван соответствующим образом. Например, [.filename]#patch-add-missing-" +"stdlib.h#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:172 +msgid "" +"Only use characters `[-+.\\_a-zA-Z0-9]` for naming patches. In particular, " +"__do not use `::` as a path separator,__ use `_` instead." +msgstr "" +"Используйте только символы `[-+.\\_a-zA-Z0-9]` для именования патчей. В " +"частности, __не используйте `::` как разделитель путей,__ вместо этого " +"используйте `_`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:177 +msgid "" +"Minimize the amount of non-functional whitespace changes in patches. It is " +"common in the Open Source world for projects to share large amounts of a " +"code base, but obey different style and indenting rules. When taking a " +"working piece of functionality from one project to fix similar areas in " +"another, please be careful: the resulting patch may be full of non-" +"functional changes. It not only increases the size of the ports repository " +"but makes it hard to find out what exactly caused the problem and what was " +"changed at all." +msgstr "" +"Минимизируйте количество нефункциональных изменений пробелов в патчах. В " +"мире открытого исходного кода распространена практика, когда проекты " +"используют обширные части кодовой базы, но следуют разным правилам стиля и " +"отступов. При переносе работоспособного функционала из одного проекта для " +"исправления аналогичных участков в другом будьте внимательны: итоговый патч " +"может быть переполнен нефункциональными изменениями. Это не только " +"увеличивает размер репозитория портов, но и затрудняет понимание того, что " +"именно вызвало проблему и какие изменения были внесены." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:179 +msgid "" +"If a file must be deleted, do it in the `post-extract` target rather than as " +"part of the patch." +msgstr "" +"Если файл необходимо удалить, сделайте это в цели `post-extract`, а не как " +"часть исправления." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:181 +#, no-wrap +msgid "Manual Patch Generation" +msgstr "Ручное создание патчей" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:188 +msgid "" +"Manual patch creation is usually not necessary. Automatic patch generation " +"as described earlier in this section is the preferred method. However, " +"manual patching may be required occasionally." +msgstr "" +"Ручное создание патчей обычно не требуется. Предпочтительным методом " +"является автоматическая генерация патчей, как описано ранее в этом разделе. " +"Однако иногда может потребоваться ручное исправление." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:193 +msgid "" +"Patches are saved into files named [.filename]#patch-*# where * indicates " +"the pathname of the file that is patched, such as [.filename]#patch-" +"Imakefile# or [.filename]#patch-src-config.h#. Patches with file names " +"which do not start with [.filename]#patch-# will not be applied " +"automatically." +msgstr "" +"Патчи сохраняются в файлы с именами [.filename]#patch-*#, где * указывает на " +"путь к файлу, который патчится, например [.filename]#patch-Imakefile# или " +"[.filename]#patch-src-config.h#. Патчи с именами файлов, не начинающимися с " +"[.filename]#patch-#, не будут применены автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:196 +msgid "" +"After the file has been modified, man:diff[1] is used to record the " +"differences between the original and the modified version. `-u` causes " +"man:diff[1] to produce \"unified\" diffs, the preferred form." +msgstr "" +"После изменения файла используется man:diff[1] для записи различий между " +"оригинальной и изменённой версиями. `-u` заставляет man:diff[1] выводить " +"различия файлов в \"унифицированном\" формате (unified diffs), которые " +"являются предпочтительным форматом." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:200 +#, no-wrap +msgid "% diff -u file.orig file > patch-pathname-file\n" +msgstr "% diff -u file.orig file > patch-pathname-file\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:203 +msgid "" +"When generating patches for new, added files, `-N` is used to tell " +"man:diff[1] to treat the non-existent original file as if it existed but was " +"empty:" +msgstr "" +"Для порождении патчей для новых добавляемых файлов используется параметр `-" +"N`, который заставляет man:diff[1] трактовать несуществующие прежде файлы " +"как если бы они существовали, но имели пустое содержимое:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:207 +#, no-wrap +msgid "% diff -u -N newfile.orig newfile > patch-pathname-newfile\n" +msgstr "% diff -u -N newfile.orig newfile > patch-pathname-newfile\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:213 +msgid "" +"Using the recurse (`-r`) option to man:diff[1] to generate patches is fine, " +"but please look at the resulting patches to make sure there is no " +"unnecessary junk in there. In particular, diffs between two backup files, " +"[.filename]##Makefile##s when the port uses `Imake` or GNU `configure`, " +"etc., are unnecessary and have to be deleted. If it was necessary to edit " +"[.filename]#configure.in# and run `autoconf` to regenerate `configure`, do " +"not take the diffs of `configure` (it often grows to a few thousand " +"lines!). Instead, define `USES=autoreconf` and take the diffs of " +"[.filename]#configure.in#." +msgstr "" +"Использование опции рекурсии (`-r`) в man:diff[1] для создания патчей " +"допустимо, но пожалуйста, проверяйте полученные патчи, чтобы убедиться в " +"отсутствии ненужных данных. В частности, различия между резервными файлами, " +"[.filename]##Makefile##, когда порт использует `Imake` или GNU `configure`, " +"и т.д., являются избыточными и должны быть удалены. Если потребовалось " +"отредактировать [.filename]#configure.in# и запустить `autoconf` для " +"перегенерации `configure`, не включайте различия в `configure` (его объем " +"часто достигает нескольких тысяч строк!). Вместо этого определите " +"`USES=autoreconf` и возьмите различия для [.filename]#configure.in#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:215 +#, no-wrap +msgid "Simple Automatic Replacements" +msgstr "Простая автоматическая замена" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:219 +msgid "" +"Simple replacements can be performed directly from the port " +"[.filename]#Makefile# using the in-place mode of man:sed[1]. This is useful " +"when changes use the value of a variable:" +msgstr "" +"Простые замены могут быть выполнены напрямую из [.filename]#Makefile# порта, " +"используя режим редактирования на месте утилиты man:sed[1]. Это полезно, " +"когда изменения используют значение переменной:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:224 +#, no-wrap +msgid "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:230 +msgid "" +"Only use man:sed[1] to replace variable content. You must use patch files " +"instead of man:sed[1] to replace static content." +msgstr "" +"Используйте man:sed[1] только для замены изменяемого содержимого. Для замены " +"статического содержимого необходимо использовать файлы исправлений вместо " +"man:sed[1]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:235 +msgid "" +"Quite often, software being ported uses the CR/LF convention in source " +"files. This may cause problems with further patching, compiler warnings, or " +"script execution (like `/bin/sh^M not found`.) To quickly convert all files " +"from CR/LF to just LF, add this entry to the port [.filename]#Makefile#:" +msgstr "" +"Довольно часто портируемое программное обеспечение использует соглашение CR/" +"LF в исходных файлах. Это может вызвать проблемы с дальнейшим наложением " +"патчей, предупреждениями компилятора или выполнением скриптов (например, `/" +"bin/sh^M не найден`). Для быстрого преобразования всех файлов из CR/LF в " +"просто LF добавьте следующую запись в [.filename]#Makefile# порта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:239 +#, no-wrap +msgid "USES=\tdos2unix\n" +msgstr "USES=\tdos2unix\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:242 +msgid "A list of specific files to convert can be given:" +msgstr "Список конкретных файлов для преобразования может быть указан:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:247 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_FILES=\tutil.c util.h\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_FILES=\tutil.c util.h\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:254 +msgid "" +"Use `DOS2UNIX_REGEX` to convert a group of files across subdirectories. Its " +"argument is a man:find[1]-compatible regular expression. More on the format " +"is in man:re_format[7]. This option is useful for converting all files of a " +"given extension. For example, convert all source code files, leaving binary " +"files intact:" +msgstr "" +"Используйте `DOS2UNIX_REGEX` для преобразования группы файлов во вложенных " +"каталогах. Его аргумент — это совместимое с man:find[1] регулярное " +"выражение. Подробнее о формате можно узнать в man:re_format[7]. Эта опция " +"полезна для преобразования всех файлов с заданным расширением. Например, " +"преобразовать все исходные файлы кода, оставив двоичные файлы без изменений:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:259 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_REGEX=\t.*\\.([ch]|cpp)\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_REGEX=\t.*\\.([ch]|cpp)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:262 +msgid "" +"A similar option is `DOS2UNIX_GLOB`, which runs `find` for each element " +"listed in it." +msgstr "" +"Аналогичной опцией является `DOS2UNIX_GLOB`, которая запускает `find` для " +"каждого указанного в ней элемента." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:267 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_GLOB=\t*.c *.cpp *.h\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_GLOB=\t*.c *.cpp *.h\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:271 +msgid "" +"The base directory for the conversion can be set. This is useful when there " +"are multiple distfiles and several contain files which require line-ending " +"conversion." +msgstr "" +"Базовый каталог для преобразования может быть установлен. Это полезно, когда " +"имеется несколько distfiles и в нескольких из них содержатся файлы, " +"требующие преобразования окончаний строк." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:276 +#, no-wrap +msgid "" +"USES=\tdos2unix\n" +"DOS2UNIX_WRKSRC=\t${WRKDIR}\n" +msgstr "" +"USES=\tdos2unix\n" +"DOS2UNIX_WRKSRC=\t${WRKDIR}\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:279 +#, no-wrap +msgid "Patching Conditionally" +msgstr "Внесение исправлений при условии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:286 +msgid "" +"Some ports need patches that are only applied for specific FreeBSD versions " +"or when a particular option is enabled or disabled. Conditional patches are " +"specified by placing the full paths to the patch files in `EXTRA_PATCHES`. " +"Conditional patch file names usually start with [.filename]#extra-# although " +"this is not necessary. However, their file names _must not_ start with " +"[.filename]#patch-#. If they do, they are applied unconditionally by the " +"framework which is undesired for conditional patches." +msgstr "" +"Некоторые порты требуют патчей, которые применяются только для определённых " +"версий FreeBSD или при включении или отключении конкретной опции. Условные " +"патчи указываются путём размещения полных путей к файлам патчей в " +"`EXTRA_PATCHES`. Имена файлов условных патчей обычно начинаются с " +"[.filename]#extra-#, хотя это и не обязательно. Однако их имена _не должны_ " +"начинаться с [.filename]#patch-#. Если это произойдёт, они будут применены " +"безусловно фреймворком, что нежелательно для условных патчей." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:288 +#, no-wrap +msgid "Applying a Patch for a Specific FreeBSD Version" +msgstr "Применение патча для конкретной версии FreeBSD" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:294 +#, no-wrap +msgid ".include <bsd.port.options.mk>\n" +msgstr ".include <bsd.port.options.mk>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:299 +#, no-wrap +msgid "" +"# Patch in the iconv const qualifier before this\n" +".if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100069\n" +"EXTRA_PATCHES=\t${PATCHDIR}/extra-patch-fbsd10\n" +".endif\n" +msgstr "" +"# Patch in the iconv const qualifier before this\n" +".if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100069\n" +"EXTRA_PATCHES=\t${PATCHDIR}/extra-patch-fbsd10\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:301 +#, no-wrap +msgid ".include <bsd.port.mk>\n" +msgstr ".include <bsd.port.mk>\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:306 +#, no-wrap +msgid "Optionally Applying a Patch" +msgstr "Опциональное применение патча" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:311 +msgid "" +"When an crossref:makefiles[makefile-options,option] requires a patch, use " +"``opt_EXTRA_PATCHES`` and ``opt_EXTRA_PATCHES_OFF`` to make the patch " +"conditional on the `opt` option. See crossref:makefiles[options-" +"variables,Generic Variables Replacement, `OPT_VARIABLE` and " +"`OPT_VARIABLE_OFF`] for more information." +msgstr "" +"Когда для crossref:makefiles[makefile-options,опции] требуется патч, " +"используйте ``opt_EXTRA_PATCHES`` и ``opt_EXTRA_PATCHES_OFF``, чтобы сделать " +"исправление зависимым от опции `opt`. Дополнительные сведения см. в " +"crossref:makefiles[options-variables,Generic Variables Replacement, " +"`OPT_VARIABLE` и `OPT_VARIABLE_OFF`]." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:318 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\t FOO BAR\n" +"FOO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-foo\n" +"BAR_EXTRA_PATCHES_OFF=\t${PATCHDIR}/extra-patch-bar.c \\\n" +"\t\t${PATCHDIR}/extra-patch-bar.h\n" +msgstr "" +"OPTIONS_DEFINE=\t FOO BAR\n" +"FOO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-foo\n" +"BAR_EXTRA_PATCHES_OFF=\t${PATCHDIR}/extra-patch-bar.c \\\n" +"\t\t${PATCHDIR}/extra-patch-bar.h\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:323 +#, no-wrap +msgid "Using `EXTRA_PATCHES` With a Directory" +msgstr "Использование `EXTRA_PATCHES` с директорией" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:328 +msgid "" +"Sometimes, there are many patches that are needed for a feature, in this " +"case, it is possible to point `EXTRA_PATCHES` to a directory, and it will " +"automatically apply all files named [.filename]#patch-*# in it." +msgstr "" +"Иногда для функции требуется множество патчей, в таком случае можно указать " +"`EXTRA_PATCHES` на директорию, и все файлы с именем [.filename]#patch-*# в " +"ней будут применены автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:331 +msgid "" +"Create a subdirectory in [.filename]#${PATCHDIR}#, and move the patches in " +"it. For example:" +msgstr "" +"Создайте подкаталог в [.filename]#${PATCHDIR}# и переместите в него патчи. " +"Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:337 +#, no-wrap +msgid "" +"% ls -l files/foo-patches\n" +"-rw-r--r-- 1 root wheel 350 Jan 16 01:27 patch-Makefile.in\n" +"-rw-r--r-- 1 root wheel 3084 Jan 18 15:37 patch-configure.ac\n" +msgstr "" +"% ls -l files/foo-patches\n" +"-rw-r--r-- 1 root wheel 350 Jan 16 01:27 patch-Makefile.in\n" +"-rw-r--r-- 1 root wheel 3084 Jan 18 15:37 patch-configure.ac\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:340 +msgid "Then add this to the [.filename]#Makefile#:" +msgstr "Затем добавьте это в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:345 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tFOO\n" +"FOO_EXTRA_PATCHES=\t${PATCHDIR}/foo-patches\n" +msgstr "" +"OPTIONS_DEFINE=\tFOO\n" +"FOO_EXTRA_PATCHES=\t${PATCHDIR}/foo-patches\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:348 +msgid "" +"The framework will then use all the files named [.filename]#patch-*# in that " +"directory." +msgstr "" +"Затем фреймворк использует все файлы с именем [.filename]#patch-*# в этом " +"каталоге." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:351 +#, no-wrap +msgid "Configuring" +msgstr "Конфигурирование" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:355 +msgid "" +"Include any additional customization commands in the [.filename]#configure# " +"script and save it in the [.filename]#scripts# subdirectory. As mentioned " +"above, it is also possible do this with [.filename]#Makefile# targets and/or " +"scripts with the name [.filename]#pre-configure# or [.filename]#post-" +"configure#." +msgstr "" +"Поместите все дополнительные команды, требуемые для настройки, в ваш скрипт " +"[.filename]#configure# и сохраните его в подкаталоге [.filename]#scripts#. " +"Как отмечено выше, вы можете сделать это целями в файле " +"[.filename]#Makefile# и/или скриптами с именами [.filename]#pre-configure# " +"или [.filename]#post-configure#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:357 +#, no-wrap +msgid "Handling User Input" +msgstr "Обработка пользовательского ввода" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:364 +msgid "" +"If the port requires user input to build, configure, or install, set " +"`IS_INTERACTIVE` in the [.filename]#Makefile#. This will allow \"overnight " +"builds\" to skip it. If the user sets the variable `BATCH` in their " +"environment (and if the user sets the variable `INTERACTIVE`, then _only_ " +"those ports requiring interaction are built). This will save a lot of " +"wasted time on the set of machines that continually build ports (see below)." +msgstr "" +"Если для построения, конфигурации или установки вашего порта требуется " +"некоторый ввод со стороны пользователя, то вы должны задать переменную " +"`IS_INTERACTIVE` в вашем файле [.filename]#Makefile#. В случае \"ночного " +"построения\" это позволит пропустить ваш порт, если пользователь в своем " +"окружении задал переменную `BATCH` (и если пользователь установил переменную " +"`INTERACTIVE`, то будут строиться _только_ порты, которые требуют " +"взаимодействия с пользователем. Это сэкономит значительное количество " +"времени на части машин, которые постоянно строят порты (смотрите ниже)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/slow-porting/_index.adoc:366 +msgid "" +"It is also recommended that if there are reasonable default answers to the " +"questions, `PACKAGE_BUILDING` be used to turn off the interactive script " +"when it is set. This will allow us to build the packages for CDROMs and FTP." +msgstr "" +"При наличии разумных ответов на задаваемые вопросы, подходящих по умолчанию, " +"также рекомендуется проверять переменную `PACKAGE_BUILDING` и выключать " +"интерактивный скрипт, если он есть. Это позволит нам строить пакеты для " +"помещения на компакт-диски и FTP-серверы." |