diff options
Diffstat (limited to 'chapter06')
-rw-r--r-- | chapter06/chapter06.xml | 9 | ||||
-rw-r--r-- | chapter06/libffi.xml | 104 | ||||
-rw-r--r-- | chapter06/meson.xml | 89 | ||||
-rw-r--r-- | chapter06/ninja.xml | 108 | ||||
-rw-r--r-- | chapter06/python.xml | 244 |
5 files changed, 553 insertions, 1 deletions
diff --git a/chapter06/chapter06.xml b/chapter06/chapter06.xml index 8f4a8f46f..401ce50ee 100644 --- a/chapter06/chapter06.xml +++ b/chapter06/chapter06.xml @@ -38,6 +38,14 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="acl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libcap.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sed.xml"/> + + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="expat.xml"/> + + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libffi.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="python.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="ninja.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="meson.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="shadow.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="psmisc.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="iana-etc.xml"/> @@ -48,7 +56,6 @@ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="libtool.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gdbm.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="gperf.xml"/> - <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="expat.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="inetutils.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="perl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="xml-parser.xml"/> diff --git a/chapter06/libffi.xml b/chapter06/libffi.xml new file mode 100644 index 000000000..c04a39f69 --- /dev/null +++ b/chapter06/libffi.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-libffi" role="wrap"> + <?dbhtml filename="libffi.html"?> + + <sect1info condition="script"> + <productname>libffi</productname> + <productnumber>&libffi-version;</productnumber> + <address>&libffi-url;</address> + </sect1info> + + <title>libffi-&libffi-version;</title> + + <indexterm zone="ch-system-libffi"> + <primary sortas="a-libffi">libffi</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The libffi library provides a portable, high level programming + interface to various calling conventions. This allows a programmer to call + any function specified by a call interface description at run time.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&libffi-ch6-sbu;</seg> + <seg>&libffi-ch6-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of libffi</title> + + <para>Modify the Makefile to install headers into the standard + <filename class="directory">/usr/include</filename> directory instead of + <filename class="directory">/usr/lib/libffi-3.2.1/include</filename>.</para> + +<screen><userinput remap="pre">sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \ + -i include/Makefile.in + +sed -e '/^includedir/ s/=.*$/=@includedir@/' \ + -e 's/^Cflags: -I${includedir}/Cflags:/' \ + -i libffi.pc.in</userinput></screen> + + <para>Prepare libffi for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr --disable-static</userinput></screen> + + <para>Compile the package:</para> + +<screen><userinput remap="make">make</userinput></screen> + + <para>To test the results, issue:</para> + +<screen><userinput remap="test">make check</userinput></screen> + + <para>Install the package:</para> + +<screen><userinput remap="install">make install</userinput></screen> + + </sect2> + + <sect2 id="contents-libffi" role="content"> + <title>Contents of libffi</title> + + <segmentedlist> + <segtitle>Installed library</segtitle> + + <seglistitem> + <seg>libffi.so</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="libffi"> + <term><filename class="libraryfile">libffi</filename></term> + <listitem> + <para>contains the libffi API functions.</para> + <indexterm zone="ch-system-libffi"> + <primary sortas="c-libffi">libffi</primary> + </indexterm> + </listitem> + </varlistentry> + </variablelist> + + </sect2> + +</sect1> + diff --git a/chapter06/meson.xml b/chapter06/meson.xml new file mode 100644 index 000000000..5bc2fce6b --- /dev/null +++ b/chapter06/meson.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-meson" role="wrap"> + <?dbhtml filename="meson.html"?> + + <sect1info condition="script"> + <productname>meson</productname> + <productnumber>&meson-version;</productnumber> + <address>&meson-url;</address> + </sect1info> + + <title>Meson-&meson-version;</title> + + <indexterm zone="ch-system-meson"> + <primary sortas="a-Meson">Meson</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>Meson is an open source build system meant to be both extremely fast, + and, even more importantly, as user friendly as possible.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + <seglistitem> + <seg>&meson-ch6-sbu;</seg> + <seg>&meson-ch6-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Meson</title> + + <para>Compile Meson with the following command:</para> + +<screen><userinput remap="make">python3 setup.py build</userinput></screen> + + <para>This package does not come with a test suite.</para> + + <para>Install the package:</para> + +<screen><userinput remap="install">python3 setup.py install</userinput></screen> + + </sect2> + + + <sect2 id="contents-meson" role="content"> + <title>Contents of Meson</title> + + <segmentedlist> + <segtitle>Installed Libraries</segtitle> + <segtitle>Installed directory</segtitle> + + <seglistitem> + <seg>libmeson.so</seg> + <seg>/usr/share/doc/meson-&meson-version;</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="libmeson"> + <term><filename class="libraryfile">libmeson</filename></term> + <listitem> + <para>Contains multiple-precision math functions</para> + <indexterm zone="ch-system-meson libmeson"> + <primary sortas="c-libmeson">libmeson</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> + diff --git a/chapter06/ninja.xml b/chapter06/ninja.xml new file mode 100644 index 000000000..28db9df21 --- /dev/null +++ b/chapter06/ninja.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-ninja" role="wrap"> + <?dbhtml filename="ninja.html"?> + + <sect1info condition="script"> + <productname>ninja</productname> + <productnumber>&ninja-version;</productnumber> + <address>&ninja-url;</address> + </sect1info> + + <title>Ninja-&ninja-version;</title> + + <indexterm zone="ch-system-ninja"> + <primary sortas="a-Ninja">Ninja</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>Ninja is a small build system with a focus on speed.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&ninja-ch6-sbu;</seg> + <seg>&ninja-ch6-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Ninja</title> + + <para>Prepare Ninja for compilation:</para> + +<screen><userinput remap="configure">python3 configure.py --bootstrap</userinput></screen> + + <variablelist> + <title>The meaning of the configure options:</title> + + <varlistentry> + <term><parameter>--bootstrap</parameter></term> + <listitem> + <para>This parameter forces ninja to rebuild itself for the current + system.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>To test the results, issue:</para> + +<screen><userinput remap="test">python3 configure.py +./ninja ninja_test +./ninja_test --gtest_filter=-SubprocessTest.SetWithLots</userinput></screen> + + <para>Install the package:</para> + +<screen><userinput remap="install">install -vm755 ninja /usr/bin/ +install -vDm644 misc/ninja.vim \ + /usr/share/vim/vim&vim-majmin;/syntax/ninja.vim +install -vDm644 misc/bash-completion \ + /usr/share/bash-completion/completions/ninja +install -vDm644 misc/zsh-completion \ + /usr/share/zsh/site-functions/_ninja</userinput></screen> + + </sect2> + + <sect2 id="contents-ninja" role="content"> + <title>Contents of Ninja</title> + + <segmentedlist> + <segtitle>Installed programs</segtitle> + + <seglistitem> + <seg>ninja</seg> + </seglistitem> + </segmentedlist> + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="ninja"> + <term><command>ninja</command></term> + <listitem> + <para>is the Ninja build system.</para> + <indexterm zone="ch-system-ninja ninja"> + <primary sortas="b-ninja">ninja</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> + diff --git a/chapter06/python.xml b/chapter06/python.xml new file mode 100644 index 000000000..d680bc735 --- /dev/null +++ b/chapter06/python.xml @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-Python" role="wrap"> + <?dbhtml filename="Python.html"?> + + <sect1info condition="script"> + <productname>Python</productname> + <productnumber>&python-version;</productnumber> + <address>&python-url;</address> + </sect1info> + + <title>Python-&python-version;</title> + + <indexterm zone="ch-system-Python"> + <primary sortas="a-python">python</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The Python 3 package contains the Python development environment. It + is useful for object-oriented programming, writing scripts, prototyping + large programs or developing entire applications.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&python-ch6-sbu;</seg> + <seg>&python-ch6-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Python 3</title> + + <para>Prepare Python for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --with-system-ffi \ + --with-ensurepip=yes \ + --enable-unicode=ucs4</userinput></screen> + + <variablelist> + <title>The meaning of the configure options:</title> + + <varlistentry> + <term><parameter>--with-system-expat</parameter></term> + <listitem> + <para>This switch enables linking against system version of + <application>Expat</application>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--with-system-ffi</parameter></term> + <listitem> + <para>This switch enables linking against system version of + <application>libffi</application>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--with-ensurepip=yes</parameter></term> + <listitem> + <para>This switch enables building <command>pip</command> and + <command>setuptools</command> packaging programs.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><parameter>--enable-unicode=ucs4</parameter></term> + <listitem> + <para>This switch enables 32bit Unicode support in + <application>Python</application>.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Compile the package:</para> + +<screen><userinput remap="make">make</userinput></screen> + + <para>The test suite requires TK and and X Windows session and cannot + be run until Python 3 is reinstalled in BLFS.</para> + + <para>Install the package:</para> + +<screen><userinput remap="install">make install +chmod -v 755 /usr/lib/libpython3.6m.so +chmod -v 755 /usr/lib/libpython3.so</userinput></screen> + + <variablelist> + <title>The meaning of the install commands:</title> + + <varlistentry> + <term><command>chmod -v 755 /usr/lib/libpython3.{6m.,}so</command></term> + <listitem> + <para>Fix permissions for libraries to be consistent with other + libraries.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>If desired, install the preformatted documentation:</para> + +<screen><userinput remap="install">install -v -dm755 /usr/share/doc/python-&python-version;/html + +tar --strip-components=1 \ + --no-same-owner \ + --no-same-permissions \ + -C /usr/share/doc/python-&python-version;/html \ + -xvf ../python-&python-version;-docs-html.tar.bz2</userinput></screen> + + <variablelist> + <title>The meaning of the documentation install commands:</title> + + <varlistentry> + <term><option>--no-same-owner</option> and --no-same-permissions</term> + <listitem> + <para>Ensure the installed files have the correct ownership and + prermissions. Without these options, using <application>tar</application> + will install the package files with the upstream creator's values. + </para> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + + <sect2 id="contents-python" role="content"> + <title>Contents of Python 3</title> + + <segmentedlist> + <segtitle>Installed Programs</segtitle> + <segtitle>Installed Library</segtitle> + <segtitle>Installed Directories</segtitle> + + <seglistitem> + <seg> + 2to3, idle3, pydoc3, python3, python3-config, pyvenv + </seg> + <seg> + libpython3.6m.so and libpython3.so + </seg> + <seg> + /usr/include/python3.6m, /usr/lib/python3 and + /usr/share/doc/python-&python-version; + </seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="python-2to3"> + <term><command>2to3</command></term> + <listitem> + <para> + is a <application>Python</application> program that reads + <application>Python 2.x</application> source code and applies a + series of fixes to transform it into valid + <application>Python 3.x</application> code. + </para> + <indexterm zone="ch-system-Python"> + <primary sortas="b-2to3">2to3</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="idle3"> + <term><command>idle3</command></term> + <listitem> + <para> + is a wrapper script that opens a <application>Python</application> + aware GUI editor. For this script to run, you must have installed + <application>Tk</application> before Python so that the Tkinter + Python module is built. + </para> + <indexterm zone="ch-system-Python"> + <primary sortas="b-idle3">idle3</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="pydoc3"> + <term><command>pydoc3</command></term> + <listitem> + <para> + is the <application>Python</application> documentation tool. + </para> + <indexterm zone="ch-system-Python"> + <primary sortas="b-pydoc3">pydoc3</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="python3"> + <term><command>python3</command></term> + <listitem> + <para> + is an interpreted, interactive, object-oriented programming + language. + </para> + <indexterm zone="ch-system-Python"> + <primary sortas="b-python3">python3</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="pyvenv"> + <term><command>pyvenv</command></term> + <listitem> + <para> + creates virtual <application>Python</application> environments in + one or more target directories. + </para> + <indexterm zone="ch-system-Python"> + <primary sortas="b-pyvenv">pyvenv</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> + |