Changeset fa21b3d for chapter06/ncurses.xml
- Timestamp:
- 01/06/2006 01:59:08 AM (18 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- abf1f62
- Parents:
- 60e34b5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter06/ncurses.xml
r60e34b5 rfa21b3d 29 29 <sect2 role="installation"> 30 30 <title>Installation of Ncurses</title> 31 <!-- Uncomment if using a dated ncurses release instead of a numbered one. 32 33 <para>Since the release of Ncurses-&ncurses-version;, some bugs have been fixed 34 and features added. The most important news are ....... 35 To get these fixes and features, apply the rollup patch:</para> 36 37 <screen><userinput>bzcat ../&ncurses-rollup-patch; | patch -Np1</userinput></screen> 38 --> 39 40 <para>Since the release of Ncurses-&ncurses-version;, a memory leak and some 41 display bugs were found and fixed upstream. Apply those fixes:</para> 42 43 <screen><userinput>patch -Np1 -i ../&ncurses-fixes-patch;</userinput></screen> 31 44 32 45 <para>Prepare Ncurses for compilation:</para> 33 46 34 <screen><userinput>./configure --prefix=/usr --with-shared --without-debug</userinput></screen> 47 <screen><userinput>./configure --prefix=/usr --with-shared --without-debug --enable-widec</userinput></screen> 48 49 <para>The meaning of the configure options:</para> 50 51 <variablelist> 52 <varlistentry> 53 <term><parameter>--enable-widec</parameter></term> 54 <listitem><para>This switch causes wide-character libraries 55 (e.g., <filename class="libraryfile">libncursesw.so.&ncurses-version;</filename>) 56 to be built instead of normal ones 57 (e.g., <filename class="libraryfile">libncurses.so.&ncurses-version;</filename>). 58 These wide-character libraries are usable in both multibyte and traditional 8-bit 59 locales, while normal libraries work properly only in 8-bit locales. 60 Wide-character and normal libraries are source-compatible, but not 61 binary-compatible.</para> 62 </listitem> 63 </varlistentry> 64 <!-- 65 <varlistentry> 66 <term><parameter>- -without-cxx-binding</parameter></term> 67 <listitem><para>This optional switch causes the 68 <filename class="libraryfile">libncurses++w.a</filename> library 69 not to be built. Nothing in LFS and BLFS uses this library.</para> 70 </listitem> 71 </varlistentry> 72 --> 73 </variablelist> 35 74 36 75 <para>Compile the package:</para> … … 50 89 <para>Fix a library that should not be executable:</para> 51 90 52 <screen><userinput>chmod -v 644 /usr/lib/libncurses++ .a</userinput></screen>91 <screen><userinput>chmod -v 644 /usr/lib/libncurses++w.a</userinput></screen> 53 92 54 93 <para>Move the libraries to the <filename class="directory">/lib</filename> directory, 55 94 where they are expected to reside:</para> 56 95 57 <screen><userinput>mv -v /usr/lib/libncurses.so.5* /lib</userinput></screen> 58 59 <para>Because the libraries have been moved, a few symlinks point to 60 non-existent files. Recreate those symlinks:</para> 61 62 <screen><userinput>ln -sfv ../../lib/libncurses.so.5 /usr/lib/libncurses.so 63 ln -sfv libncurses.so /usr/lib/libcurses.so</userinput></screen> 96 <screen><userinput>mv -v /usr/lib/libncursesw.so.5* /lib</userinput></screen> 97 98 <para>Because the libraries have been moved, one symlink points to 99 a non-existent file. Recreate it:</para> 100 101 <screen><userinput>ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so</userinput></screen> 102 103 <para>Many applications still expect the linker to be able to find 104 non-wide-character Ncurses libraries. Trick such applications into linking with 105 wide-character libraries by means of symlinks and linker scripts:</para> 106 107 <screen><userinput>for lib in curses ncurses form panel menu ; do \ 108 rm -vf /usr/lib/lib${lib}.so ; \ 109 echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \ 110 ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \ 111 done && 112 ln -sfv libncurses++w.a /usr/lib/libncurses++.a</userinput></screen> 113 114 <para>Finally, make sure that old applications that look for 115 <filename class="libaryfile">-lcurses</filename> at build time are still 116 buildable:</para> 117 118 <screen><userinput>echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so && 119 ln -sfv libncurses.so /usr/lib/libcurses.so && 120 ln -sfv libncursesw.a /usr/lib/libcursesw.a && 121 ln -sfv libncurses.a /usr/lib/libcurses.a</userinput></screen> 122 123 <note><para>The instructions above don't create non-wide-character Ncurses 124 libraries since no package installed by compiling from sources would link 125 against them at runtime. 126 If you must have such libraries because of some binary-only application, 127 build them with the following commands:</para> 128 <screen role="nodump"><userinput>make distclean && 129 ./configure --prefix=/usr --with-shared --without-normal \ 130 --without-debug --without-cxx-binding && 131 make sources libs && 132 cp -av lib/lib*.so.5* /usr/lib</userinput></screen> 133 </note> 64 134 </sect2> 65 135 … … 72 142 <seglistitem><seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic), 73 143 reset (link to tset), tack, tic, toe, tput, and tset</seg> 74 <seg>libcurses.[a,so] (link to libncurses.[a,so]), libform.[a,so], libmenu.[a,so], 75 libncurses++.a, libncurses.[a,so], and libpanel.[a,so]</seg></seglistitem> 144 <seg>libcursesw.[a,so] (symlink and linker script to libncursesw.[a,so]), 145 libformw.[a,so], libmenuw.[a,so], 146 libncurses++w.a, libncursesw.[a,so], libpanelw.[a,so] and their 147 non-wide-character counterparts without "w" in the library names.</seg></seglistitem> 76 148 </segmentedlist> 77 149 … … 213 285 214 286 </sect1> 215
Note:
See TracChangeset
for help on using the changeset viewer.