file.xml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  4. <!ENTITY % general-entities SYSTEM "../general.ent">
  5. %general-entities;
  6. ]>
  7. <sect1 id="ch-tools-file" role="wrap">
  8. <?dbhtml filename="file.html"?>
  9. <sect1info condition="script">
  10. <productname>file</productname>
  11. <productnumber>&file-version;</productnumber>
  12. <address>&file-url;</address>
  13. </sect1info>
  14. <title>File-&file-version;</title>
  15. <indexterm zone="ch-tools-file">
  16. <primary sortas="a-File">File</primary>
  17. <secondary>tools</secondary>
  18. </indexterm>
  19. <sect2 role="package">
  20. <title/>
  21. <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
  22. href="../chapter08/file.xml"
  23. xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
  24. <segmentedlist>
  25. <segtitle>&buildtime;</segtitle>
  26. <segtitle>&diskspace;</segtitle>
  27. <seglistitem>
  28. <seg>&file-tmp-sbu;</seg>
  29. <seg>&file-tmp-du;</seg>
  30. </seglistitem>
  31. </segmentedlist>
  32. </sect2>
  33. <sect2 role="installation">
  34. <title>Installation of File</title>
  35. <para>
  36. The <command>file</command> command on the build host needs
  37. to be same version as the one we are building in order to
  38. create the signature file. Run the following commands to build it:
  39. </para>
  40. <screen><userinput remap="pre">mkdir build
  41. pushd build
  42. ../configure --disable-bzlib \
  43. --disable-libseccomp \
  44. --disable-xzlib \
  45. --disable-zlib
  46. make
  47. popd</userinput></screen>
  48. <variablelist>
  49. <title>The meaning of the new configure option:</title>
  50. <varlistentry>
  51. <term><parameter>--disable-*</parameter></term>
  52. <listitem>
  53. <para>The configuration script attempts to use some packages from
  54. the host distribution if the corresponding library files exist.
  55. It may cause compilation failure if a library file exists, but
  56. the corresponding header files do not. These options prevent
  57. using these unneeded capabilities from the host.</para>
  58. </listitem>
  59. </varlistentry>
  60. </variablelist>
  61. <para>Prepare File for compilation:</para>
  62. <screen><userinput remap="configure">./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)</userinput></screen>
  63. <!-- devs: if using - -build here, the build system wants to compile
  64. the signature file with "file" on the build system, but stops if it is not
  65. the same version. One possibility would be to build "file" on the build
  66. system first, but it is simpler to have the system think it is not
  67. cross-compiling, and use the just built "file". -->
  68. <para>Compile the package:</para>
  69. <screen><userinput remap="make">make FILE_COMPILE=$(pwd)/build/src/file</userinput></screen>
  70. <para>Install the package:</para>
  71. <screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
  72. <para>Move a shared library into its final location in the LFS system,
  73. and recreate the symlink for it:</para>
  74. <screen><userinput remap="install">mv -v $LFS/usr/lib/libmagic.so.* $LFS/lib
  75. ln -sfv ../../lib/$(readlink /usr/lib/libmagic.so) $LFS/usr/lib/libmagic.so</userinput></screen>
  76. </sect2>
  77. <sect2 role="content">
  78. <title/>
  79. <para>Details on this package are located in <xref linkend="contents-file" role="."/></para>
  80. </sect2>
  81. </sect1>