diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 57ff3695e..699b008ac 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -38,6 +38,11 @@ 2013-12-13 + + [bdubbs] - Fix kmod, procps-ng, zlib, readline, ncurses, + and xz methods of establishing correct symbolic links + for libraries. + [bdubbs] - Update to procps-ng-3.3.9. Fixes #3439. diff --git a/chapter06/kmod.xml b/chapter06/kmod.xml index f87024868..0b84f5b3a 100644 --- a/chapter06/kmod.xml +++ b/chapter06/kmod.xml @@ -95,10 +95,7 @@ ln -sv kmod /bin/lsmod Make sure that all libraries are in the correct directory: mv -v /usr/lib/libkmod.so.* /lib -ln -svf ../../lib/libkmod.so.2.2.5 /usr/lib/libkmod.so - - +ln -svf ../../lib/$(readlink /usr/lib/libkmod.so) /usr/lib/libkmod.so diff --git a/chapter06/ncurses.xml b/chapter06/ncurses.xml index 6f9cc3792..df362d4bd 100644 --- a/chapter06/ncurses.xml +++ b/chapter06/ncurses.xml @@ -110,7 +110,7 @@ Because the libraries have been moved, one symlink points to a non-existent file. Recreate it: -ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so +ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so Many applications still expect the linker to be able to find non-wide-character Ncurses libraries. Trick such applications into linking with diff --git a/chapter06/procps.xml b/chapter06/procps.xml index 2deebf10d..0114b1e6b 100644 --- a/chapter06/procps.xml +++ b/chapter06/procps.xml @@ -82,9 +82,7 @@ make check mv -v /usr/bin/pidof /bin mv -v /usr/lib/libprocps.so.* /lib -ln -sfv ../../lib/libprocps.so.3.0.0 /usr/lib/libprocps.so - - +ln -sfv ../../lib/$(readlink /usr/lib/libprocps.so) /usr/lib/libprocps.so diff --git a/chapter06/readline.xml b/chapter06/readline.xml index f56bb7a60..6ad6ecaaa 100644 --- a/chapter06/readline.xml +++ b/chapter06/readline.xml @@ -55,7 +55,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install Prepare Readline for compilation: -./configure --prefix=/usr --libdir=/lib +./configure --prefix=/usr Compile the package: @@ -81,17 +81,12 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install make install - Now move the static libraries to a more appropriate location: + Now move the dynamic libraries to a more appropriate location + and fix up some symbolic links: -mv -v /lib/lib{readline,history}.a /usr/lib - - Next, remove the .so files in - /lib and relink them into /usr/lib: - -rm -v /lib/lib{readline,history}.so -ln -sfv ../../lib/libreadline.so.6 /usr/lib/libreadline.so -ln -sfv ../../lib/libhistory.so.6 /usr/lib/libhistory.so +mv -v /usr/lib/lib{readline,history}.so.* /lib +ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so +ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so If desired, install the documentation: diff --git a/chapter06/xz.xml b/chapter06/xz.xml index 65420b81c..dff29f9ff 100644 --- a/chapter06/xz.xml +++ b/chapter06/xz.xml @@ -63,7 +63,7 @@ make install mv -v /usr/bin/{unlzma,unxz,xzcat,lzma,xz} /bin mv -v /usr/lib/liblzma.so.* /lib -ln -svf ../../lib/liblzma.so.&xz-version; /usr/lib/liblzma.so +ln -svf ../../lib/$(readlink liblzma.so) /usr/lib/liblzma.so diff --git a/chapter06/zlib.xml b/chapter06/zlib.xml index 1dfa3a9bc..2dcc49413 100644 --- a/chapter06/zlib.xml +++ b/chapter06/zlib.xml @@ -63,7 +63,7 @@ /usr/lib will need to be recreated: mv -v /usr/lib/libz.so.* /lib -ln -sfv ../../lib/libz.so.&zlib-version; /usr/lib/libz.so +ln -sfv ../../lib/$(readlink /usr/lib/libz.so) /usr/lib/libz.so