| 
					
				 | 
			
			
				@@ -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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |