diff --git a/appendices/dependencies.xml b/appendices/dependencies.xml index 9f5929bfb..5c2538346 100644 --- a/appendices/dependencies.xml +++ b/appendices/dependencies.xml @@ -1474,6 +1474,41 @@ + + Libffi + + + &dependencies; + + + Bash, Binutils, Coreutils, GCC, Glibc, Make, and Sed + + + + + &testsuites; + + + DejaGnu + + + + + &before; + + + Python + + + + + &external; + + + None + + + Libpipeline @@ -1725,6 +1760,41 @@ + + Meson + + + &dependencies; + + + Ninja and Python + + + + + &testsuites; + + + No test suite available + + + + + &before; + + + None + + + + + &external; + + + None + + + MPC @@ -1834,6 +1904,41 @@ + + Ninja + + + &dependencies; + + + Binutils, Coreutils, Gcc, Python + + + + + &testsuites; + + + None + + + + + &before; + + + Meson + + + + + &external; + + + Asciidoc, Doxygen, Emacs, and re2c + + + Patch @@ -2047,6 +2152,42 @@ + + Python + + + &dependencies; + + + Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, + Libffi, Make, Ncurses, and Sed + + + + + &testsuites; + + + GDB and Valgrind + + + + + &before; + + + Ninja + + + + + &external; + + + Berkeley DB, OpenSSL, SQLite, and Tk + + + Readline diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 22a64b069..58fa69fe9 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -42,6 +42,28 @@ or as appropriate for the entry or if needed the entire day's listitem. --> + + 2017-09-23 + + + [bdubbs] - Add Meson-0.42.1. + + + [bdubbs] - Add Ninja-1.8.2. + + + [bdubbs] - Add Python-3.6.2. + + + [bdubbs] - Add libffi-3.2.1. + + + [bdubbs] - Update to eudev-3.2.4. Fixes + #4140. + + + + 2017-09-22 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index b4de26d39..9faf53bad 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -254,11 +254,21 @@ Added: - diff --git a/chapter03/packages.xml b/chapter03/packages.xml index 8a5d162b0..d2674a40b 100644 --- a/chapter03/packages.xml +++ b/chapter03/packages.xml @@ -396,6 +396,15 @@ + + Libffi (&libffi-version;) - &libffi-size;: + + Home page: + Download: + MD5 sum: &libffi-md5; + + + Libpipeline (&libpipeline-version;) - &libpipeline-size;: @@ -473,6 +482,15 @@ + + Meson (&meson-version;) - &meson-size;: + + Home page: + Download: + MD5 sum: &meson-md5; + + + MPC (&mpc-version;) - &mpc-size;: @@ -491,6 +509,15 @@ + + Ninja (&ninja-version;) - &ninja-size;: + + Home page: + Download: + MD5 sum: &ninja-md5; + + + Ncurses (&ncurses-version;) - &ncurses-size;: @@ -545,6 +572,23 @@ + + Python (&python-version;) - &python-size;: + + Home page: + Download: + MD5 sum: &python-md5; + + + + + Python Documentation (&python-version;) - &python-docs-size;: + + Download: + MD5 sum: &python-docs-md5; + + + Readline (&readline-version;) - &readline-size;: 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 @@ + + + + + + + + @@ -48,7 +56,6 @@ - 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 @@ + + + %general-entities; +]> + + + + + + libffi + &libffi-version; +
&libffi-url;
+
+ + libffi-&libffi-version; + + + libffi + + + + + + <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 + + Modify the Makefile to install headers into the standard + /usr/include directory instead of + /usr/lib/libffi-3.2.1/include. + +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 + + Prepare libffi for compilation: + +./configure --prefix=/usr --disable-static + + Compile the package: + +make + + To test the results, issue: + +make check + + Install the package: + +make install + + + + + Contents of libffi + + + Installed library + + + libffi.so + + + + + Short Descriptions + + + + + libffi + + contains the libffi API functions. + + libffi + + + + + + + +
+ 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 @@ + + + %general-entities; +]> + + + + + + meson + &meson-version; +
&meson-url;
+
+ + Meson-&meson-version; + + + Meson + + + + + + <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 + + Compile Meson with the following command: + +python3 setup.py build + + This package does not come with a test suite. + + Install the package: + +python3 setup.py install + + + + + + Contents of Meson + + + Installed Libraries + Installed directory + + + libmeson.so + /usr/share/doc/meson-&meson-version; + + + + + Short Descriptions + + + + + libmeson + + Contains multiple-precision math functions + + libmeson + + + + + + + + +
+ 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 @@ + + + %general-entities; +]> + + + + + + ninja + &ninja-version; +
&ninja-url;
+
+ + Ninja-&ninja-version; + + + Ninja + + + + + + <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 + + Prepare Ninja for compilation: + +python3 configure.py --bootstrap + + + The meaning of the configure options: + + + --bootstrap + + This parameter forces ninja to rebuild itself for the current + system. + + + + + + To test the results, issue: + +python3 configure.py +./ninja ninja_test +./ninja_test --gtest_filter=-SubprocessTest.SetWithLots + + Install the package: + +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 + + + + + Contents of Ninja + + + Installed programs + + + ninja + + + + Short Descriptions + + + + + ninja + + is the Ninja build system. + + ninja + + + + + + + + +
+ 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 @@ + + + %general-entities; +]> + + + + + + Python + &python-version; +
&python-url;
+
+ + Python-&python-version; + + + python + + + + + + <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 + + Prepare Python for compilation: + +./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --with-system-ffi \ + --with-ensurepip=yes \ + --enable-unicode=ucs4 + + + The meaning of the configure options: + + + --with-system-expat + + This switch enables linking against system version of + Expat. + + + + + --with-system-ffi + + This switch enables linking against system version of + libffi. + + + + + --with-ensurepip=yes + + This switch enables building pip and + setuptools packaging programs. + + + + + --enable-unicode=ucs4 + + This switch enables 32bit Unicode support in + Python. + + + + + + Compile the package: + +make + + The test suite requires TK and and X Windows session and cannot + be run until Python 3 is reinstalled in BLFS. + + Install the package: + +make install +chmod -v 755 /usr/lib/libpython3.6m.so +chmod -v 755 /usr/lib/libpython3.so + + + The meaning of the install commands: + + + chmod -v 755 /usr/lib/libpython3.{6m.,}so + + Fix permissions for libraries to be consistent with other + libraries. + + + + + + If desired, install the preformatted documentation: + +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 + + + The meaning of the documentation install commands: + + + and --no-same-permissions + + Ensure the installed files have the correct ownership and + prermissions. Without these options, using tar + will install the package files with the upstream creator's values. + + + + + + + + + + Contents of Python 3 + + + Installed Programs + Installed Library + Installed Directories + + + + 2to3, idle3, pydoc3, python3, python3-config, pyvenv + + + libpython3.6m.so and libpython3.so + + + /usr/include/python3.6m, /usr/lib/python3 and + /usr/share/doc/python-&python-version; + + + + + + Short Descriptions + + + + + 2to3 + + + is a Python program that reads + Python 2.x source code and applies a + series of fixes to transform it into valid + Python 3.x code. + + + 2to3 + + + + + + idle3 + + + is a wrapper script that opens a Python + aware GUI editor. For this script to run, you must have installed + Tk before Python so that the Tkinter + Python module is built. + + + idle3 + + + + + + pydoc3 + + + is the Python documentation tool. + + + pydoc3 + + + + + + python3 + + + is an interpreted, interactive, object-oriented programming + language. + + + python3 + + + + + + pyvenv + + + creates virtual Python environments in + one or more target directories. + + + pyvenv + + + + + + + + +
+ diff --git a/general.ent b/general.ent index b97c14a64..b072e20b6 100644 --- a/general.ent +++ b/general.ent @@ -1,13 +1,13 @@ - + - + - + diff --git a/packages.ent b/packages.ent index 9ad11672c..e769b38ba 100644 --- a/packages.ent +++ b/packages.ent @@ -145,10 +145,10 @@ - + - + @@ -382,6 +382,14 @@ + + + + + + + + @@ -454,6 +462,14 @@ + + + + + + + + @@ -462,10 +478,10 @@ - - + + - + @@ -480,6 +496,14 @@ + + + + + + + + @@ -524,6 +548,17 @@ + + + + + + + + + + + @@ -626,6 +661,7 @@ + diff --git a/prologue/why.xml b/prologue/why.xml index 761cf138d..b85281842 100644 --- a/prologue/why.xml +++ b/prologue/why.xml @@ -326,6 +326,19 @@
+ + Libffi + + This package implements a portable, high level programming + interface to various calling conventions. Some programs may not know + at the time of compilation what arguments are to be passed to a + function. For instance, an interpreter may be told at run-time about + the number and types of arguments used to call a given function. Libffi + can be used in such programs to provide a bridge from the interpreter + program to compiled code. + + + Libpipeline @@ -380,6 +393,16 @@ Linux man pages. + + Meson + + This package provides a software tool for automating the building + of software. The main goal for Meson is to minimize the amount of time + that software developers need to spend configuring their build + system. + + + MPC @@ -394,6 +417,15 @@ arithmetic. It is required by Gcc. + + Ninja + + This package contains a small build system with a focus on speed. + It is designed to have its input files generated by a higher-level build + system, and to run builds as fast as possible. + + + Ncurses @@ -443,6 +475,14 @@ administration. + + Python 3 + + This package provides an interpreted language that has a design + philosophy that emphasizes code readability. + + + Readline