aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerard Beekmans <gerard@linuxfromscratch.org>2003-02-04 05:18:40 +0000
committerGerard Beekmans <gerard@linuxfromscratch.org>2003-02-04 05:18:40 +0000
commita20bfb4974c368cc695108d03dbfbddd423b28d0 (patch)
tree3030ba4eab865f3fc80c7465783e5716b9f81615
parent31435cae54451e90dd29c14bed3464f9a381e0b2 (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.xml21
-rw-r--r--chapter06/findutils-inst.xml30
-rw-r--r--chapter06/gawk-inst.xml33
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>