diff options
author | Gerard Beekmans <gerard@linuxfromscratch.org> | 2003-02-04 05:18:40 +0000 |
---|---|---|
committer | Gerard Beekmans <gerard@linuxfromscratch.org> | 2003-02-04 05:18:40 +0000 |
commit | a20bfb4974c368cc695108d03dbfbddd423b28d0 (patch) | |
tree | 3030ba4eab865f3fc80c7465783e5716b9f81615 | |
parent | 31435cae54451e90dd29c14bed3464f9a381e0b2 (diff) |
updated findutils + gawk patch explanations
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2423 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r-- | chapter05/findutils-inst.xml | 21 | ||||
-rw-r--r-- | chapter06/findutils-inst.xml | 30 | ||||
-rw-r--r-- | chapter06/gawk-inst.xml | 33 |
3 files changed, 71 insertions, 13 deletions
diff --git a/chapter05/findutils-inst.xml b/chapter05/findutils-inst.xml index b05c8089f..985242b33 100644 --- a/chapter05/findutils-inst.xml +++ b/chapter05/findutils-inst.xml @@ -5,8 +5,25 @@ <para>The Findutils package is quite old and it has problems compiling against newer Glibc versions (Glibc-2.0.x and up). You need to apply the -patch that fixes some variable conflicts you'd otherwise end up -with:</para> +patch which fixes the following issues:</para> + +<itemizedlist> +<listitem><para>Findutils declares a function called basename, but this +function name is already used by the C standard libraries. This patch +changes the Findutils version of basename function so that it is called +basename2 instead.</para></listitem> + +<listitem><para>Findutils uses an incorrect way to use library files. It +declares library functions, to tell the compiler what the name of the +function will be when the libraries are linked in. This syntax is invalid +and causes compiler warnings/errors. This patch removes this improper +syntax.</para></listitem> + +<listitem><para>Every GNU package is supposed use a macro called _GNU_SOURCE. +This macro enables declarations of GNU library extension functions and so the +compiler will be able to detect name conflicts between functions more easily. +This patch adds this macro to the source code.</para></listitem> +</itemizedlist> <para><screen><userinput>patch -Np1 -i ../findutils-&findutils-patch-version;.patch</userinput></screen></para> diff --git a/chapter06/findutils-inst.xml b/chapter06/findutils-inst.xml index 90d38edb0..122acf259 100644 --- a/chapter06/findutils-inst.xml +++ b/chapter06/findutils-inst.xml @@ -3,14 +3,34 @@ <sect2> <title>Installing Findutils</title> -<para>A patch must be applied in order to prevent compilation -errors. The patch fixes a variable conflict and some bad syntax:</para> +<para>The Findutils package is quite old and it has problems compiling +against newer Glibc versions (Glibc-2.0.x and up). You need to apply the +patch which fixes the following issues:</para> + +<itemizedlist> +<listitem><para>Findutils declares a function called basename, but this +function name is already used by the C standard libraries. This patch +changes the Findutils version of basename function so that it is called +basename2 instead.</para></listitem> + +<listitem><para>Findutils uses an incorrect way to use library files. It +declares library functions, to tell the compiler what the name of the +function will be when the libraries are linked in. This syntax is invalid +and causes compiler warnings/errors. This patch removes this improper +syntax.</para></listitem> + +<listitem><para>Every GNU package is supposed use a macro called _GNU_SOURCE. +This macro enables declarations of GNU library extension functions and so the +compiler will be able to detect name conflicts between functions more easily. +This patch adds this macro to the source code.</para></listitem> +</itemizedlist> <para><screen><userinput>patch -Np1 -i ../findutils-&findutils-patch-version;.patch</userinput></screen></para> -<para>The <userinput>locate</userinput> program from Findutils may -segfault if it encounters a long path name. To correct this, apply -the second patch:</para> +<para>There is a bug in locate.c of Findutils that causes a segmentation +fault to occur on very long path names. The problem is caused by the +get_short() function calculating negative numbers incorrectly. This patch +corrects this bug.</para> <para><screen><userinput>patch -Np1 -i ../findutils-&findutils-segfault-patch-version;-segfault.patch</userinput></screen></para> diff --git a/chapter06/gawk-inst.xml b/chapter06/gawk-inst.xml index d426e38a3..2c5d72266 100644 --- a/chapter06/gawk-inst.xml +++ b/chapter06/gawk-inst.xml @@ -3,15 +3,36 @@ <sect2> <title>Installation of Gawk</title> -<para>This package requires its patch to be applied before you can -install it:</para> +<para>Before installing the Gawk package you have to apply a patch to it +which fixes the following issues:</para> + +<itemizedlist> +<listitem><para>Gawk's default location for libexecdir is <filename +class="directory">$prefix/libexecdir/awk</filename>. This location doesn't +comply with FHS (FHS never mentions a directory called +libexecdir).</para></listitem> + +<listitem><para>The patch allows us to pass +<emphasis>--libexecdir</emphasis> to the configure script (without gawk +tacking on /awk to the end), so that we can use a more appropriate location +for gawk's libexecdir (<filename class="directory">/usr/bin</filename> in +the book).</para></listitem> + +<listitem><para>The default data directory for gawk is <filename +class="directory">$prefix/share/awk</filename>. A package specific +directory should be named after the package and the version (gawk-3.1.1 +instead of awk) because there may be more than one awk interpreter on a +system (and more than one version of gawk). The patch changes this to +<filename class="directory">$prefix/share/gawk-3.1.1</filename> to be more +correct.</para></listitem> + +<listitem><para>The patch ensures that this directory (<filename +class="directory">$prefix/share/gawk-3.1.1</filename>) is removed along +with its contents on a make uninstall.</para></listitem> +</itemizedlist> <para><screen><userinput>patch -Np1 -i ../gawk-&gawk-patch-version;.patch</userinput></screen></para> -<para>This patch alters the code that determines the location of the -libexec directory. The patch will allow us to override it by passing -<emphasis>--libexecdir</emphasis> to the configure script.</para> - <para>Prepare Gawk to be compiled:</para> <para><screen><userinput>./configure --prefix=/usr --libexecdir=/usr/bin</userinput></screen></para> |