Translated pages with libffi until ninja inclusively

This commit is contained in:
Poltern 2023-07-11 00:15:42 +05:00
parent 4d7ee9e57a
commit ebfcb0d4f0
11 changed files with 88 additions and 66 deletions

View File

@ -27,6 +27,11 @@
интерфейс для различных соглашений о вызовах. Это позволяет программисту вызывать
любую функцию, указанную в описании интерфейса вызова во время выполнения.</para>
<para>FFI расшифровывается как интерфейс внешних функций. FFI позволяет программе,
написанной на одном языке, вызывать программу, написанную на другом языке. В
частности, Libffi может обеспечить связь между интерпретатором, таким как Perl или
Python, и подпрограммами общей библиотеки, написанными на C или C++.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
@ -43,19 +48,19 @@
<title>Установка пакета Libffi</title>
<note>
<para>Подобно GMP, libffi собирается с оптимизацией, специфичной для используемого
<para>Как и GMP, Libffi собирается с учетом оптимизаций, специфичных для используемого
процессора. При сборке для другой системы измените значение параметра
<parameter>--with-gcc-arch=</parameter> в следующей команде на имя архитектуры,
полностью реализованной процессором в этой системе. Если этого не сделать,
все приложения, ссылающиеся на libffi, будут выдавать ошибку <quote>Illegal Operation Errors</quote>.</para>
все приложения, ссылающиеся на <filename class='libraryfile'>libffi</filename>,
будут вызывать ошибку <quote>Illegal Operation - недопустимая операция</quote>.</para>
</note>
<para>Подготовьте libffi к компиляции:</para>
<para>Подготовьте Libffi к компиляции:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
--disable-static \
--with-gcc-arch=native \
--disable-exec-static-tramp</userinput></screen>
--with-gcc-arch=native</userinput></screen>
<variablelist>
<title>Значение параметров configure:</title>
@ -64,25 +69,14 @@
<term><parameter>--with-gcc-arch=native</parameter></term>
<listitem>
<para>Убедитесь, что GCC оптимизируется для текущей системы. Если значение
не указано, то архитектура системы угадывается, и созданный код может
быть неправильным для некоторых систем. Если созданный код будет скопирован
из родной системы в менее мощную, используйте менее мощную систему в качестве
параметра. Дополнительные сведения об альтернативных типах систем см. в <ulink
url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
не указано, то архитектура системы угадывается и сгенерированный код может
быть неправильным. Если сгенерированный код будет скопирован из родной
системы в менее мощную, используйте архитектуру менее мощной системы в качестве
параметра. Дополнительные сведения об альтернативных типах систем смотрите в
<ulink url='https://gcc.gnu.org/onlinedocs/gcc-&gcc-version;/gcc/x86-Options.html'>
описании параметров x86 в руководстве GCC</ulink>.</para>
</listitem>
</varlistentry>
<varlistentry>
<!-- To editors: try to remove it once GJS fixed (at GNOME 43) -->
<term><parameter>--disable-exec-static-tramp</parameter></term>
<listitem>
<para>Отключить поддержку предотвращения наращивания стека. Это новая функция
безопасности в libffi, но некоторые пакеты BLFS (в частности,
<application>GJS</application>) не были адаптированы для работы с ней</para>
</listitem>
</varlistentry>
</variablelist>
<para>Скомпилируйте пакет:</para>
@ -118,7 +112,7 @@
<varlistentry id="libffi">
<term><filename class="libraryfile">libffi</filename></term>
<listitem>
<para>содержит внешний интерфейс для API-функций</para>
<para>Содержит внешний интерфейс для API-функций</para>
<indexterm zone="ch-system-libffi">
<primary sortas="c-libffi">libffi</primary>
</indexterm>

View File

@ -24,8 +24,8 @@
<title/>
<para>Пакет Libtool содержит сценарий поддержки универсальной библиотеки GNU.
Он преобразует сложный механизм использования общих библиотек в согласованный
переносимый интерфейс.</para>
Это упрощает использование общих библиотек благодаря согласованному переносимому
интерфейсу.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@ -52,16 +52,17 @@
<para>Чтобы протестировать пакет<!--(about 11.0 SBU)-->, выполните:</para>
<screen><userinput remap="test">make check</userinput></screen>
<screen><userinput remap="test">make -k check</userinput></screen>
<note><para>Время тестирования libtool может быть значительно сокращено в системе
<note><para>Время тестирования Libtool может быть значительно сокращено в системе
с несколькими ядрами. Для этого добавьте <command>TESTSUITEFLAGS=-j&lt;N&gt;</command>
к строке выше. Например, использование -j4 может сократить время тестирования
более чем на 60 процентов.</para></note>
<para>Известно, что пять тестов в среде сборки LFS завершаются неудачно из-за
круговой зависимости, но все тесты проходят успешно, если они повторно запускаются
после установки automake.</para>
циклической зависимости, но эти тесты проходят успешно, если запустить их повторно
после установки automake. Кроме того, в grep-3.8 два теста вызовут предупреждение
для регулярных выражений, несовместимых с POSIX и завершатся с ошибкой.</para>
<para>Установите пакет:</para>
@ -121,7 +122,7 @@
<varlistentry id="libltdl">
<term><filename class="libraryfile">libltdl</filename></term>
<listitem>
<para>Скрывает различные трудности, связанные с динамически загружаемыми библиотеками</para>
<para>Скрывает различные проблемы, связанные с открытием динамически загружаемых библиотек</para>
<indexterm zone="ch-system-libtool libltdl">
<primary sortas="c-libltdl">libltdl</primary>
</indexterm>

View File

@ -81,7 +81,7 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h</userinput></screen>
<varlistentry id="m4">
<!-- Don't remove the extra space, it prevet a FOP warning. -->
<term><command>m4 </command></term>
<term><command>m4</command></term>
<listitem>
<para>Копирует указанные файлы, одновременно расширяя содержащиеся в них
макросы. Эти макросы являются либо встроенными, либо определяемыми
@ -89,7 +89,7 @@ echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h</userinput></screen>
выполнения макросов, <command>m4</command> имеет встроенные функции для
включения указанных файлов, выполнения команд Unix, выполнения целочисленной
арифметики, манипулирования текстом, рекурсии и т.д. Программа <command>m4</command>
может использоваться либо как интерфейс компилятора, либо как самостоятельный
может использоваться либо как интерфейс к компилятору, либо как самостоятельный
макропроцессор</para>
<indexterm zone="ch-system-m4 m4">
<primary sortas="b-m4">m4</primary>

View File

@ -39,11 +39,13 @@
<sect2 role="installation">
<title>Установка пакета Make</title>
<!--
<para>Again, work around an error caused by glibc-2.27 and later:</para>
<screen><userinput remap="pre">sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c</userinput></screen>
-->
<para>Во-первых, исправьте некоторые проблемы, выявленные разработчиками:</para>
<screen><userinput remap="pre">sed -e '/ifdef SIGPIPE/,+2 d' \
-e '/undef FATAL_SIG/i FATAL_SIG (SIGPIPE);' \
-i src/main.c</userinput></screen>
<para>Подготовьте Make к компиляции:</para>
<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
@ -82,7 +84,8 @@
<varlistentry id="make">
<term><command>make</command></term>
<listitem>
<para>Автоматически определяет, какие части пакета необходимо (пере)компилировать и запускает соответствующие команды.</para>
<para>Автоматически определяет, какие части пакета необходимо (пере)компилировать
и запускает соответствующие команды.</para>
<indexterm zone="ch-system-make make">
<primary sortas="b-make">make</primary>
</indexterm>

View File

@ -77,7 +77,7 @@
<varlistentry>
<term><parameter>--enable-cache-owner=bin</parameter></term>
<listitem>
<para>Устаналивает владельцем файлов общесистемного кеша пользователя
<para>Изменяет владельца файлов общесистемного кеша на пользователя
<systemitem class="username">bin</systemitem>.</para>
</listitem>
</varlistentry>

View File

@ -23,7 +23,7 @@
<sect2 role="package">
<title/>
<para>Пакет Man-pages содержит более 2,200 справочных руководств.</para>
<para>Пакет Man-pages содержит более 2400 справочных руководств.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>

View File

@ -43,7 +43,7 @@
<screen><userinput remap="make">pip3 wheel -w dist --no-build-isolation --no-deps $PWD</userinput></screen>
<para>С этим пакетом не поставляется набор тестов.</para>
<para>С этим пакетом не поставляется тестов.</para>
<para>Установите пакет:</para>

View File

@ -23,8 +23,8 @@
<sect2 role="package">
<title/>
<para>Meson — это система сборки с открытым исходным кодом, призванная быть
чрезвычайно быстрой и максимально удобной для пользователя.</para>
<para>Meson — это система сборки с открытым исходным кодом, разработанная таким
образом, чтобы быть очень быстрой и максимально удобной для пользователя.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
@ -36,10 +36,10 @@
</segmentedlist>
<tip revision="sysv">
<para>Этот раздел не является строго обязательным, если LFS не использует
systemd. С другой стороны, meson/ninja - это мощная система сборки,
которая, скорее всего, будет использоваться все чаще и чаще. Meson необходим для
нескольких пакетов в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
<para>Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
Meson вместе с Ninja составляет мощную комбинацию систем сборки, которая, вероятно,
будет использоваться все чаще и чаще. Meson необходим для нескольких пакетов
в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
</tip>
</sect2>
@ -69,7 +69,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
<varlistentry>
<term><parameter>-w dist</parameter></term>
<listitem>
<para> Поместить собранный wheels в каталог
<para>Помещает собранный wheels в каталог
<filename class='directory'>dist</filename>.</para>
</listitem>
</varlistentry>
@ -77,7 +77,7 @@ install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/
<varlistentry>
<term><parameter>--find-links dist</parameter></term>
<listitem>
<para>Установить wheels из каталога
<para>Устанавливает wheels из каталога
<filename class='directory'>dist</filename>.</para>
</listitem>
</varlistentry>

View File

@ -40,6 +40,20 @@
<sect2 role="installation">
<title>Установка пакета MPFR</title>
<!-- https://sympa.inria.fr/sympa/arc/mpfr/2023-01/msg00002.html
https://gitlab.inria.fr/mpfr/mpfr/-/commit/5172494c
Note that it's a different issue from Glibc #30068 we've fixed in
chapter08/glibc.xml with a sed. Normally we just document the
test failure, but in this case the particular subtest also serves
as an additional guard against Glibc #30068. So we apply the
upstream fix here. -->
<para>Исправьте тестовый пример, приводящий к ошибке в старых версиях Glibc:</para>
<screen><userinput remap="pre">sed -e 's/+01,234,567/+1,234,567 /' \
-e 's/13.10Pd/13Pd/' \
-i tests/tsprintf.c</userinput></screen>
<para>Подготовьте MPFR к компиляции:</para>
<screen><userinput remap="configure">./configure --prefix=/usr \
@ -57,7 +71,7 @@ make html</userinput></screen>
случае не пропускайте его.</para>
</important>
<para>Выполните тестирование и убедитесь, что все тесты пройдены:</para>
<para>Выполните тестирование и убедитесь, что все 197 тестов пройдены:</para>
<screen><userinput remap="test">make check</userinput></screen>

View File

@ -129,9 +129,7 @@
<filename class="libraryfile">libncursesw.so.&ncurses-version;</filename>. Это
может привести к сбою процесса оболочки, который использует код и данные из
файла библиотеки. Установите пакет с помощью <literal>DESTDIR</literal> и правильно
замените файл библиотеки с помощью команды <command>install</command>. Ненужный
статический архив, который не обрабатывается <command>configure</command>, также
удаляется:</para>
замените файл библиотеки с помощью команды <command>install</command>.</para>
<screen><userinput remap="install">make DESTDIR=$PWD/dest install
install -vm755 dest/usr/lib/libncursesw.so.&ncurses-version; /usr/lib
@ -211,6 +209,7 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
libformw.so,
libmenuw.so,
libncursesw.so,
libncurses++w.so,
libpanelw.so, и их аналоги без "w" в именах библиотек.</seg>
<seg>
/usr/share/tabset,
@ -363,6 +362,16 @@ cp -av lib/lib*.so.5* /usr/lib</userinput></screen>
</listitem>
</varlistentry>
<varlistentry id="libncurses__w">
<term><filename class="libraryfile">libncurses++w</filename></term>
<listitem>
<para>Содержит функции связывания C++ с другими библиотеками в пакете</para>
<indexterm zone="ch-system-ncurses libncurses__w">
<primary sortas="c-libncurses++w">libncurses++w</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libformw">
<term><filename class="libraryfile">libformw</filename></term>
<listitem>

View File

@ -36,10 +36,10 @@
</segmentedlist>
<tip revision="sysv">
<para>Этот раздел необязателен, если LFS не использует systemd.
С другой стороны, связка ninja/meson - это мощная система сборки,
которая, скорее всего, будет использоваться все чаще и чаще. Она
необходима для нескольких пакетов из <ulink url="&blfs-book;">книги BLFS</ulink>.</para>
<para>Этот раздел не обязателен, если LFS не использует systemd. С другой стороны,
Ninja вместе с Meson составляет мощную комбинацию систем сборки, которая, вероятно,
будет использоваться все чаще и чаще. Ninja требуется для нескольких пакетов
в <ulink url="&blfs-book;">книге BLFS</ulink>.</para>
</tip>
</sect2>
@ -47,12 +47,12 @@
<sect2 role="installation">
<title>Установка пакета Ninja</title>
<para>При работе ninja обычно запускает максимальное количество процессов
параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
случаях это может привести к перегреву процессора или к нехватке памяти в
системе. При запуске из командной строки передача параметра -jN ограничит
количество параллельных процессов, у некоторых пакетов запуск ninja встроен
и параметр -j не передается.</para>
<para>При запуске <command>ninja</command> обычно использует максимальное количество
процессов параллельно. По умолчанию это количество ядер в системе плюс два. В некоторых
случаях это может привести к перегреву процессора или нехватке памяти в системе.
Когда <command>ninja</command> вызывается из командной строки, передача параметра -jN
ограничит количество параллельных процессов. Некоторые пакеты встраивают выполнение
<command>ninja</command> и параметр -j не передается.</para>
<para>Использование приведенной ниже <emphasis>необязательной</emphasis> процедуры
позволяет пользователю ограничить количество параллельных процессов с помощью переменной
@ -60,9 +60,10 @@
<screen>export NINJAJOBS=4</screen>
ограничит ninja четырьмя параллельными процессами.</para>
ограничит <command>ninja</command> четырьмя параллельными процессами.</para>
<para>По желанию добавьте возможность использовать переменную окружения NINJAJOBS, запустив:</para>
<para>По желанию, добавьте возможность использовать переменную окружения NINJAJOBS, выполнив
следующую команду:</para>
<screen><userinput remap="pre">sed -i '/int Guess/a \
int j = 0;\
@ -81,7 +82,7 @@
<varlistentry>
<term><parameter>--bootstrap</parameter></term>
<listitem>
<para>Этот параметр перестраивает ninja под текущую систему.</para>
<para>Этот параметр перестраивает Ninja под текущую систему.</para>
</listitem>
</varlistentry>