Index: index.xml
===================================================================
--- index.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ index.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -3,7 +3,7 @@
 			"/usr/share/docbook/docbookx.dtd" [
 
-<!ENTITY version "CVS-20040421">
-<!ENTITY releasedate "April 21st, 2004">
-<!ENTITY pubdate "2004-04-21">
+<!ENTITY version "CVS-20040422">
+<!ENTITY releasedate "April 22nd, 2004">
+<!ENTITY pubdate "2004-04-22">
 <!ENTITY blfs-version "cvs">
 
Index: introduction/welcome/changelog.xml
===================================================================
--- introduction/welcome/changelog.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ introduction/welcome/changelog.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -11,4 +11,7 @@
 
 <itemizedlist>
+
+<listitem><para>April 22nd, 2004 [igor]: Added cracklib-2.7,
+contributed by DJ Lucas.</para></listitem>
 
 <listitem><para>April 21st, 2004 [igor]: Updated to OpenSSH-3.8.1p1,
Index: introduction/welcome/credits.xml
===================================================================
--- introduction/welcome/credits.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ introduction/welcome/credits.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -167,6 +167,5 @@
 STLport, tcl, tk and bind-utils: <emphasis>Tushar Teredesai</emphasis></para></listitem>
 
-<listitem><para>libpcap, ncpfs, netfs, ppp(update) and RP-PPPoE: <emphasis>DJ Lucas</emphasis></para>
-</listitem>
+<listitem><para>cracklib, libpcap, ncpfs, netfs, ppp(update) and RP-PPPoE: <emphasis>DJ Lucas</emphasis></para></listitem>
 
 <listitem><para>ntp: <emphasis>Eric Konopka</emphasis></para></listitem>
@@ -247,6 +246,6 @@
 of the various mozilla extensions.</para></listitem>
 
-<listitem><para><emphasis>Nathan Coulson</emphasis> for writing the mass
-majority of the new network bootscripts (pending).</para></listitem>
+<listitem><para><emphasis>Nathan Coulson</emphasis> for writing the new
+network bootscripts.</para></listitem>
 
 <listitem><para><emphasis>Alexander E. Patrakov</emphasis> for patches and
Index: postlfs/postlfs.ent
===================================================================
--- postlfs/postlfs.ent	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/postlfs.ent	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -25,4 +25,6 @@
 <!ENTITY % tripwire SYSTEM "security/tripwire/tripwire.ent">
 %tripwire;
+<!ENTITY % cracklib SYSTEM "security/cracklib/cracklib.ent">
+%cracklib;
 <!ENTITY % Linux_PAM SYSTEM "security/pam/linux_pam.ent">
 %Linux_PAM;
Index: postlfs/security/cracklib.xml
===================================================================
--- postlfs/security/cracklib.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
+++ postlfs/security/cracklib.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -0,0 +1,10 @@
+<sect1 id="cracklib" xreflabel="cracklib-&cracklib-version;">
+<?dbhtml filename="cracklib.html" dir="postlfs"?>
+<title>cracklib-&cracklib-version;</title>
+
+&cracklib-intro;
+&cracklib-inst;
+&cracklib-exp; 
+&cracklib-desc;
+
+</sect1>
Index: postlfs/security/cracklib/cracklib-desc.xml
===================================================================
--- postlfs/security/cracklib/cracklib-desc.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
+++ postlfs/security/cracklib/cracklib-desc.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -0,0 +1,17 @@
+<sect2>
+<title>Contents</title>
+
+<para>The <application>cracklib</application> package 
+contains the <filename class="libraryfile">libcrack</filename> 
+library.</para>
+
+</sect2>
+
+<sect2><title>Description</title>
+
+<sect3><title>libcrack library</title>
+<para>The <filename class="libraryfile">libcrack</filename> library
+provides a fast dictionary lookup method for strong password
+enforcement.</para></sect3>
+
+</sect2>
Index: postlfs/security/cracklib/cracklib-exp.xml
===================================================================
--- postlfs/security/cracklib/cracklib-exp.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
+++ postlfs/security/cracklib/cracklib-exp.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -0,0 +1,18 @@
+<sect2>
+<title>Command explanations</title>
+
+<para><command>make DICTPATH=/usr/lib/cracklib_dict SRCDICTS=/usr/share/dict/words install</command>:
+Builds the libcrack library and forces it to look at
+<filename class="directory">/usr/share/dict</filename> for word lists, and puts the
+cracklib dictionary in <filename>/usr/lib/cracklib_dict</filename>.</para>
+
+<para><command>install -m644 cracklib/libcrack.a /usr/lib</command>:
+Installs the library in <filename class="directory">/usr/lib</filename>.</para>
+
+<para><command>install -m644 cracklib/crack.h /usr/include</command>:
+Installs the header file in <filename class="directory">/usr/include</filename>.</para>
+
+<para><command>install -m754 util/{mkdict,packer,create_cracklib_dict} /usr/sbin</command>:
+Install the utils into <filename class="directory">/usr/sbin</filename>.</para>
+
+</sect2>
Index: postlfs/security/cracklib/cracklib-inst.xml
===================================================================
--- postlfs/security/cracklib/cracklib-inst.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
+++ postlfs/security/cracklib/cracklib-inst.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -0,0 +1,27 @@
+<sect2>
+<title>Installation of <application>cracklib</application></title>
+
+<para>First, we need to install the chosen word list for cracklib:</para>
+
+<screen><userinput><command>mkdir -p /usr/share/dict/ &amp;&amp;
+chmod 0644 /usr/share/dict &amp;&amp;
+cp <replaceable>[wordlist]</replaceable> /usr/share/dict &amp;&amp;
+chmod 0644 /usr/share/dict/<replaceable>[wordlist]</replaceable> &amp;&amp;
+ln -sf <replaceable>[wordlist]</replaceable> /usr/share/dict/words</command></userinput></screen>
+
+<para>Our word list is linked to
+<filename>/usr/share/dict/words</filename> as historically,
+<filename>words</filename> is the only file in the
+<filename class="directory">/usr/share/dict</filename> directory.  You are welcome to shun
+history and adjust for your own needs.</para>
+
+<para>Now install cracklib using the following commands:</para>
+
+<screen><userinput><command>patch -Np1 -i ../cracklib-&cracklib-version;-header-1.patch &amp;&amp;
+patch -Np1 -i ../cracklib-&cracklib-version;-missing-1.patch &amp;&amp;
+make DICTPATH=/usr/lib/cracklib_dict SRCDICTS=/usr/share/dict/words install &amp;&amp;
+install -m644 cracklib/libcrack.a /usr/lib &amp;&amp;
+install -m644 cracklib/crack.h /usr/include &amp;&amp;
+install -m754 util/{mkdict,packer,create_cracklib_dict} /usr/sbin</command></userinput></screen>
+
+</sect2>
Index: postlfs/security/cracklib/cracklib-intro.xml
===================================================================
--- postlfs/security/cracklib/cracklib-intro.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
+++ postlfs/security/cracklib/cracklib-intro.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -0,0 +1,42 @@
+<sect2>
+<title>Introduction to <application>cracklib</application></title>
+
+<para>The cracklib package contains a library used to enforce strong 
+passwords by comparing user selected passwords to words in a 
+chosen wordlist.</para>
+
+<sect3><title>Package information</title>
+<itemizedlist spacing='compact'>
+<listitem><para>Download (HTTP): <ulink
+url="&cracklib-download-http;"/></para></listitem>
+<listitem><para>Download (FTP): <ulink
+url="&cracklib-download-ftp;"/></para></listitem>
+<listitem><para>Download size: &cracklib-size;</para></listitem>
+<listitem><para>Estimated Disk space required (with cracklib wordlist):
+&cracklib-buildsize;</para></listitem>
+<listitem><para>Estimated build time:
+&cracklib-time;</para></listitem></itemizedlist>
+</sect3>
+
+<sect3><title>Additional downloads</title>
+
+<itemizedlist spacing='compact'>
+<listitem><para>Missing header patch:
+<ulink url="&patch-root;/cracklib-&cracklib-version;-header-1.patch"/></para></listitem>
+<listitem><para>Missing utility patch:
+<ulink url="&patch-root;/cracklib-&cracklib-version;-missing-1.patch"/></para></listitem>
+</itemizedlist>
+
+<para>You will also need to download a wordlist for use with cracklib.  
+There are two wordlists to choose from at the following location.
+Use the <filename>cracklib</filename> word list for good security,
+or opt for the <filename>allwords</filename> word list for
+lightweight machines short on <acronym>RAM</acronym>.  You can of course choose any other
+word list that you have at your disposal.</para>
+
+<para>cracklib: <ulink url="http://www.cotse.com/wordlists/cracklib"/></para>
+<para>allwords: <ulink url="http://www.cotse.com/wordlists/allwords"/></para>
+
+</sect3>
+
+</sect2>
Index: postlfs/security/cracklib/cracklib.ent
===================================================================
--- postlfs/security/cracklib/cracklib.ent	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
+++ postlfs/security/cracklib/cracklib.ent	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -0,0 +1,12 @@
+<!ENTITY cracklib SYSTEM "../cracklib.xml">
+<!ENTITY cracklib-intro SYSTEM "cracklib-intro.xml">
+<!ENTITY cracklib-inst SYSTEM "cracklib-inst.xml">
+<!ENTITY cracklib-exp SYSTEM "cracklib-exp.xml">
+<!ENTITY cracklib-desc SYSTEM "cracklib-desc.xml">
+<!ENTITY cracklib-version "2.7">
+<!ENTITY cracklib-download-http "http://www.crypticide.com/users/alecm/security/cracklib,&cracklib-version;.tar.gz">
+<!ENTITY cracklib-download-ftp "ftp://ftp.cerias.purdue.edu/pub/tools/unix/libs/cracklib/cracklib.&cracklib-version;.tar.gz">
+<!ENTITY cracklib-size "21 KB">
+<!ENTITY cracklib-buildsize "17 MB">
+<!ENTITY cracklib-time "0.10 SBU">
+
Index: postlfs/security/pam/linux_pam-inst.xml
===================================================================
--- postlfs/security/pam/linux_pam-inst.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/security/pam/linux_pam-inst.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -8,5 +8,5 @@
 <screen><userinput><command>patch -Np1 -i ../Linux-PAM-0.77-linkage-1.patch &amp;&amp;
 ./configure --enable-static-libpam --with-mailspool=/var/mail \
---enable-read-both-confs --sysconfdir=/etc &amp;&amp;
+    --enable-read-both-confs --sysconfdir=/etc &amp;&amp;
 make &amp;&amp;
 make install &amp;&amp;
@@ -16,5 +16,3 @@
 ln -sf ../../lib/libpamc.so.&Linux_PAM-version; /usr/lib/libpamc.so</command></userinput></screen>
 
-
 </sect2>
-
Index: postlfs/security/pam/linux_pam-intro.xml
===================================================================
--- postlfs/security/pam/linux_pam-intro.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/security/pam/linux_pam-intro.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -26,11 +26,7 @@
 </sect3>
 
-
-<sect3><title><application>Linux-<acronym>PAM</acronym></application> 
-dependencies</title>
+<sect3><title><application>Linux-<acronym>PAM</acronym></application> dependencies</title>
 <sect4><title>Optional</title>
-<para><ulink 
-url="http://www.crypticide.org/users/alecm/security/cracklib,2.7.tar.gz">
-cracklib v2.7</ulink></para></sect4>
+<para><xref linkend="cracklib"/></para></sect4>
 </sect3>
 
Index: postlfs/security/security.xml
===================================================================
--- postlfs/security/security.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/security/security.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -23,4 +23,5 @@
 "signatures" and compares for files that have been changed.</para>
 
+&cracklib;
 &Linux_PAM;
 &shadow;
Index: postlfs/security/shadow.xml
===================================================================
--- postlfs/security/shadow.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/security/shadow.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -26,5 +26,5 @@
 &shadow-intro;
 &shadow-inst;
-<!-- &shadow-exp; -->
+&shadow-exp;
 &shadow-config;
 
Index: postlfs/security/shadow/shadow-exp.xml
===================================================================
--- postlfs/security/shadow/shadow-exp.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/security/shadow/shadow-exp.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -2,7 +2,13 @@
 <title>Command explanations</title>
 
+<para><parameter>--without-libcrack</parameter>: This switch tells shadow
+not to use libcrack. This is desired as
+<application>Linux-<acronym>PAM</acronym></application> already
+contains libcrack.</para>
+
+<!--  Leftover from older instructions????
 <para><command>cp debian/securetty /etc/securetty</command>: This
 command sets the tty's that allow logins through <acronym>PAM</acronym>.</para>
+-->
 
 </sect2>
-
Index: postlfs/security/shadow/shadow-inst.xml
===================================================================
--- postlfs/security/shadow/shadow-inst.xml	(revision 3f6ebaeb8857445daac5f1c805dfaf77b99b8ad0)
+++ postlfs/security/shadow/shadow-inst.xml	(revision fa48bf3d6d81f5e1cb1e33936f94094791decfef)
@@ -6,5 +6,5 @@
 <screen><userinput><command>patch -Np1 -i ../shadow-&shadow-version;-pam-1.patch &amp;&amp;
 LIBS="-lpam -lpam_misc" ./configure --libdir=/usr/lib \
---enable-shared --with-libpam &amp;&amp;
+    --enable-shared --with-libpam --without-libcrack &amp;&amp;
 echo '#define HAVE_SETLOCALE 1' >> config.h &amp;&amp;
 make &amp;&amp;
@@ -18,3 +18,2 @@
 
 </sect2>
-
