pidgin/old.pidgin.im

Parents dd4f3753bc87
Children d66ce012c67c
(12:18:01) rekkanoryo: LSchiere2, nosnilmot: FAQssl is done completely, finally.
(12:18:56) rekkanoryo: LSchiere2: the faq-ssl stuff can be killed in mtn if you so desire
  • +0 -157
    faq-ssl.php
  • +0 -564
    faq-ssl.txt
  • --- a/faq-ssl.php Wed May 23 19:13:49 2007 +0000
    +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
    @@ -1,157 +0,0 @@
    -<?
    - $page->title = 'FAQ - SSL';
    - require('inc/template.inc.php');
    -
    - require_once('inc/faq-functions.inc.php');
    -?>
    -
    -<h1>Frequently Asked Questions - SSL</h1>
    -
    -<?
    - /* The Q&A begins here */
    - $faq = file("./faq-ssl.txt");
    - $faq_lines = count($faq);
    - $sections = array();
    -
    - $qa = 1;
    - $in_section = 0;
    - $in_question = 0;
    -
    - /* Loop through once to get all the questions. */
    - for ($i = 0; $i < $faq_lines; $i++)
    - {
    - $line = $faq[$i];
    -
    - if ($line == "" || $line == "\n" || substr($line, 0,3) == "A:\t")
    - {
    - if ($in_question)
    - {
    - print "</a></li>\n";
    - $in_question = 0;
    - }
    -
    - continue;
    - }
    - elseif (substr($line, 0, 3) == "Q:\t")
    - {
    - if ($in_question)
    - {
    - print "</a></li>\n";
    - $in_question = 0;
    - }
    -
    - $question = substr($line, 3);
    - $question = preg_replace(
    - "/(<\/?(br|code|pre|div)( ?\/)?>|[\r\n\t])/", " ", $question);
    -
    - print " <li><a href=\"#q" . $qa . "\">";
    - print $question;
    -
    - $in_question = 1;
    -
    - $qa++;
    - }
    - elseif (substr($line, 0, 9) == "!SECTION\t")
    - {
    - if ($in_question)
    - {
    - print "</a></li>\n";
    - $in_question = 0;
    - }
    -
    - if ($in_section)
    - print "</ul>\n";
    -
    - print "<b>" . trim(substr($line, 9)) . "</b>\n";
    - print "<ul>\n";
    -
    - $in_section = 1;
    - }
    - elseif (substr($line, 0, 9) == "!COMMENT\t")
    - {
    - }
    - elseif ($in_question)
    - {
    - print preg_replace(
    - "/(<\/?(br|code|pre|div)( ?\/)?>|[\r\n\t])/", " ", $line);
    - }
    - }
    -
    - if ($in_question == 1)
    - {
    - print "</a></li>\n";
    - }
    -
    - if ($in_section == 1)
    - {
    - print "</ul>\n";
    - }
    -
    - /* Now we'll loop through again to print out the questions and answers. */
    - $qa = 1;
    - $in_section = 0;
    - $in_question = 0;
    - $in_answer = 0;
    - $anchor = "";
    -
    - for ($i = 0; $i < $faq_lines; $i++)
    - {
    - $line = $faq[$i];
    -
    - if (substr($line, 0, 3) == "Q:\t")
    - {
    - check_in_qa();
    -
    - start_q();
    - print substr($line, 3);
    -
    - $qa++;
    -
    - $in_question = 1;
    - }
    - elseif (substr($line, 0, 3) == "A:\t")
    - {
    - check_in_qa();
    -
    - start_a();
    - print substr($line, 3);
    -
    - $in_answer = 1;
    - }
    - elseif (substr($line, 0, 9) == "!SECTION\t")
    - {
    - check_in_qa();
    -
    - if ($in_section == 1)
    - {
    - print "</dl>\n";
    - }
    -
    - $name = trim(substr($line, 9));
    -
    - print "<h2 id=\"" . build_section_name($name) . "\">$name</h2>";
    - print "<dl>\n";
    -
    - $in_section = 1;
    - }
    - elseif (substr($line, 0, 8) == "!ANCHOR\t")
    - {
    - $anchor = trim(substr($line, 8));
    - }
    - elseif (substr($line, 0, 9) == "!COMMENT\t")
    - {
    - }
    - elseif ($in_question || $in_answer)
    - {
    - print $line;
    - }
    - }
    -
    - check_in_qa();
    -
    - if ($in_section == 1)
    - {
    - print "</dl>\n";
    - }
    -
    -?>
    --- a/faq-ssl.txt Wed May 23 19:13:49 2007 +0000
    +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
    @@ -1,564 +0,0 @@
    -!SECTION General
    -
    -Q: Introduction
    -A: This information was compiled by <a href="mailto:stu@nosnilmot.com">Stu Tomlinson</a>
    -with much help from #pidgin
    -<p>
    -Read the ChanServ notice? Read the Topic? Read the FAQ?
    -Still having problems getting SSL to work with Pidgin?
    -read on, maybe you're in luck. but probably not.
    -</p>
    -
    -Q: General Notes
    -A: Purple needs to be compiled with SSL support to work with MSN, and for
    -SSL connections on Jabber (where the server supports it). You will need either
    -GnuTLS (and all its dependencies) or Mozilla NSS &amp; NSPR.
    -<p>Mozilla 1.5 will not provide all the pieces for NSPR &amp; NSS due to breakage in
    -Mozilla that misses out some .h files (or something...). You might be able to
    -install mozilla-{nss,nspr}{,-devel} from 1.4, or install nss from source, in
    -parallel and link against those for purple. Or just use GnuTLS.</p>
    -<p>
    -OpenSSL is not an option for SSL support in purple because the OpenSSL
    -<a href="http://www.openssl.org/source/license.html">license</a>
    -(BSD-style with advertising clause) is not compatible with the Purple license
    -(<a href="http://www.gnu.org/licenses/gpl.html">GPL</a>).
    -</p>
    -
    -!SECTION Distribution Specific Tips
    -
    -Q: Debian
    -A: Use the debs
    -<p>
    -If you want to compile from source, make sure you have
    -<code>libgnutls11-dev</code> installed. You can ensure you have all the
    -necessary build dependencies installed by running: <code>apt-get build-dep
    -pidgin</code>.
    -</p>
    -<p>
    -Note: libgnutls &amp; libgnutls-dev (from woody) are known to NOT work
    -</p>
    -
    -Q: Fedora Core (3 &amp; 4)
    -A: Use the official Fedora Core packages from <a href="http://fedora.redhat.com/download/mirrors.html">
    -a Fedora Core mirror</a>
    -
    -Q: Fedora Core (1 &amp; 2)
    -A: Use the Pidgin provided packages : <a href="http://sourceforge.net/project/showfiles.php?group_id=235">
    -http://sourceforge.net/project/showfiles.php?group_id=235</a>
    -
    -Q: Gentoo
    -A: Gentoo's ebuilds for Pidgin should &quot;Just Work&quot;. Before you do
    -anything, sync your Portage package database:
    -<pre><code>emerge sync</code></pre>
    -<p>
    -The most recent Pidgin version is usually not in Gentoo stable. To ensure you
    -are using the most recent release in Portage, you may add the following line to
    -<code>/etc/portage/package.keywords</code>. If you are not using x86, replace
    -"~x86" with your CPU type, such as "~ppc" or "~sparc":
    -</p>
    -<pre><code>net-im/pidgin ~x86</code></pre>
    -<p>
    -Portage will build and install the NSS and NSPR packages automatically if you
    -do not have them. Altenatively, if you add the following line to
    -<code>/etc/portage/package.use</code>, Portage will automatically use GnuTLS
    -instead, building and installing it if necessary:
    -</p>
    -<pre><code>net-im/pidgin gnutls</code></pre>
    -<p>
    -After you are satisfied with your configuration, run the following command
    -to install the latest version available in Portage and any dependencies that
    -you need:
    -</p>
    -<pre><code>emerge pidgin</code></pre>
    -<p>
    -Also, don't forget that emerge is <b>not</b> a <a href="http://dictionary.reference.com/search?q=transitive%20verb">transitive verb</a>!
    -</p>
    -
    -Q: Linux From Scratch
    -A: If you're crazy enough to actually use LFS surely you're crazy enough to
    -figure this out on your own? (or just see below on compiling from source)
    -
    -Q: Mandrake (10.1)
    -A: There are 3rd party RPMs for Mandrake 10.1 here:
    -<a href="http://gaim.jesuschrist.be/">http://gaim.jesuschrist.be/</a>
    -
    -Q: Mandrake (9.2 &amp; 10.0)
    -A: Use the Pidgin provided packages : <a href="http://sourceforge.net/project/showfiles.php?group_id=235">
    -http://sourceforge.net/project/showfiles.php?group_id=235</a>
    -
    -Q: Red Hat Linux (9)
    -A: Use the Pidgin provided packages : <a href="http://sourceforge.net/project/showfiles.php?group_id=235">
    -http://sourceforge.net/project/showfiles.php?group_id=235</a>
    -
    -Q: Red Hat Linux (&lt;9)
    -A: Please join this century.
    -
    -
    -Q: Slackware (9.1, 10.0 &amp; 10.1)
    -A: There are sometimes 3rd party packages for Slackware 9.1, 10.0 and 10.1 here:
    -<a href="http://www.linuxpackages.net/">http://www.linuxpackages.net/</a>).
    -These packages may depend on other packages available from the same site.
    -
    -<p>
    -Or you can use the Pidgin source, with mozilla-1.4 installed (if you have another
    -version of mozilla, try replacing 1.4 with your version number):
    -</p>
    -<pre><code>./configure --with-nss-includes=/usr/include/mozilla-1.4/nss \
    ---with-nspr-includes=/usr/include/mozilla-1.4/nspr \
    ---with-nss-libs=/usr/lib/mozilla-1.4 \
    ---with-nspr-libs=/usr/lib/mozilla-1.4</code></pre>
    -<p>
    -We are told that recently, Slack removed Mozilla-1.7.5 from Slackware-Current
    -and replaced it with Mozilla-Firefox-1.0.1. This may change the exact
    -location for the paths above.
    -</p>
    -<p>
    -Also, you'll need to add /usr/lib/mozilla-1.4 to /etc/ld.so.conf and run ldconfig
    -as root
    -</p>
    -<p>
    -If you have Mozilla Firebird installed instead of plain Mozilla 1.4, you
    -<i>might</i> be able to use the packages mentioned above by adding this
    -directory to <code>/etc/ld.so.conf</code> and running <code>ldconfig</code> as
    -root:</p>
    -<pre><code>/usr/lib/MozillaFirebird-0.7</code></pre>
    -<p>This has been reported to work with Mozilla Firebird 0.7, other versions
    -might work but this has not been thoroughly tested.</p>
    -<p>Firefox also includes the necessary libraries, so if you have a binary package
    -of Pidgin that was built with SSL support you may be able to add
    -<code>/usr/lib/firefox</code> to <code>/etc/ld.so.conf</code> and run
    -<code>ldconfig</code> as root.
    -</p>
    -
    -Q: SuSE (8.2, 9.0, 9.1, 9.2 &amp; 9.3)
    -A: There are 3rd party RPMs for SuSE 8.2, 9.0, 9.1 &amp; 9.2 here :
    -<a href="http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=Network%2Fgaim/">
    -http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=Network%2Fgaim/</a>
    -<p>
    -<b>Note</b>: These RPMs use GnuTLS for SSL support, but GnuTLS is not shipped
    -with SuSE. You can get RPMs of GnuTLS (and OpenCDK &amp; libtasn1, which are
    -required by GnuTLS) from the same site.
    -</p>
    -<p>
    -<b>Note2</b>: SuSE >= 9.1 <i>does</i> include GnuTLS, and you should
    -use the SuSE provided GnuTLS with the Pidgin RPM from the above site.
    -</p>
    -<p>
    -If you wish to compile Pidgin from source using Mozilla NSS, there
    -are Mozilla NSS packages available on the same site, here:
    -<a href="http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=%2FLibraries%2Fmozilla-nss/">
    -http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=%2FLibraries%2Fmozilla-nss/</a>
    -</p>
    -
    -Q: Ubuntu (Warty 4.10 &amp; Hoary 5.04)
    -A: If you want to compile from source, make sure you have
    -<code>libgnutls10-dev</code> installed.<br/>
    -Lars-Erik Labori provided a nice easy to follow guide:
    -<p>
    -First of all, you need to remove the old ubuntu Pidgin version:
    -</p>
    -<pre><code>$ sudo apt-get remove pidgin</code></pre>
    -<p>
    -1. You need to download the latest Pidgin source from <a href="/downloads.php">here</a>.<br/>
    -
    -2. You need to install the GNU TLS library development files:
    -</p>
    -<pre><code>$ sudo apt-get install libgnutls10-dev</code></pre>
    -<p>3. Compile Pidgin:</p>
    -<pre><code>$ ./configure --enable-gnutls=yes
    -$ sudo make
    -$ sudo make install </code></pre>
    -<p>
    -Your new Pidgin should be up and running.
    -</p>
    -
    -Q: FreeBSD (5.1)
    -A: Compile from source. See the note below on GnuTLS versions that have
    -been reported to work with *BSD, these tips might also help you:
    -<p>
    -For i18n to work, you need to have gettext installed. It will probably stuff
    -itself in /usr/local, so you need to configure like this:
    -</p>
    -<pre><code>./configure --with-libintl-prefix=/usr/local</code></pre>
    -<p>
    -Alternatively, if you only need to use English, you can disable i18n (and the
    -dependancy on gettext) by configuring like so:
    -</p>
    -<pre><code>./configure --disable-nls</code></pre>
    -<p>
    -Apparently GnuTLS is no longer working for FreeBSD users (and possibly
    -others), but it (apparently, again) does work with NSS/NSPR from ports
    -(nss-3.8):
    -</p>
    -<pre><code>cd /usr/ports/net/pidgin ; make WITHOUT_GNUTLS=t WITH_NSS=t WITHOUT_AUDIO=t package clean</code></pre>
    -Q: OpenBSD (3.4)
    -A: Compile from source. See the note below on GnuTLS versions that have
    -been reported to work with *BSD, these tips might also help you:
    -<p>
    -For i18n to work, you need to have gettext installed. It will probably stuff
    -itself in /usr/local, so you need to configure like this:
    -</p>
    -<pre><code>./configure --with-libintl-prefix=/usr/local</code></pre>
    -<p>
    -Alternatively, if you only need to use English, you can disable i18n (and the
    -dependancy on gettext) by configuring like so:
    -</p>
    -<pre><code>./configure --disable-nls</code></pre>
    -
    -Q: IRIX (6.5)
    -A: GnuTLS will get you SSL support, but with some caveats.
    -See <a href="http://www.pidgin.im/faq2.php#q9">
    -this faq entry</a> at our Sourceforge forum for some steps towards getting Pidgin running on IRIX.
    -</p>
    -
    -Q: HP-UX (11.11)
    -A: GnuTLS will get you SSL support.
    -See <a href="http://www.pidgin.im/faq2.php#q10">
    -this faq entry</a> at our Sourceforge forum for some steps towards getting
    -Pidgin running on HP-UX.
    -</p>
    -
    -Q: Solaris
    -A: There are 3rd party packages for Solaris here :
    -<a href="http://www.blastwave.org/">http://www.blastwave.org/</a>
    -and here : <a href="http://sourceforge.net/project/showfiles.php?group_id=19386&amp;package_id=98537">
    -http://sourceforge.net/project/showfiles.php?group_id=19386&amp;package_id=98537</a>
    -<p>
    -If you use the package from blastwave.org and get this error: "Fatal: no
    -entropy gathering module detected", make sure that you have the Solaris
    -/dev/random patch installed (Solaris 8 (sparc): 112438, (x86): 112439), and
    -that /dev/random is world readable.
    -</p>
    -<p>
    -If you're compiling from source, you must make sure everything is compiled
    -using gcc and not Sun's cc
    -</p>
    -
    -Q: Mac OS X (10.3.1)
    -A: Information on setting up GnuTLS can be found at: <a href="http://alphamonkey.org/view.php?type=notes&amp;id=309">
    -http://alphamonkey.org/view.php?type=notes&amp;id=309</a>
    -
    -Q: Win32
    -A: Use the Pidgin provided packages : <a href="http://sourceforge.net/project/showfiles.php?group_id=235">
    -http://sourceforge.net/project/showfiles.php?group_id=235</a>
    -
    -Q: Autopackage
    -A: The Pidgin Autopackage needs either GnuTLS, or Mozilla NSS &amp; NSPR, just like any other form of Pidgin.
    -However, currently it requires a version of GnuTLS with an soversion of 11. A good way to find out is:
    -<pre><code>/sbin/ldconfig -p | grep libgnutls</code></pre>
    -and to look for a "libgnutls.so.11".
    -If you have some other version (version 10 is common), it won't install, unless you have Mozilla NSS &amp; NSPR
    -for it to use instead. You may need to edit either the file /etc/ld.so.conf or the enviromental variable
    -LD_LIBRARY_PATH in order for it to find NSS &amp; NSPR, however, because Mozilla NSS &amp; NSPR are often installed
    -at some place like /usr/lib/mozilla-{version} or /usr/lib/firefox-{version}. See also the hints here for your specific
    -distribution.
    -
    -Q: SCO (anything, anyversion)
    -A: You're kidding, right? This stuff is licensed under the GPL, and SCO don't
    -respect that.
    -<p>If that isn't enough to get you to use a decent OS, consider this:</p>
    -<blockquote><p>"If Darl McBride was in charge, he'd probably make marriage
    -unconstitutional too, since clearly it de-emphasizes the commercial nature
    -of normal human interaction, and probably is a major impediment to the
    -commercial growth of prostitution."</p>
    -<div style="text-align: right;">- Linus Torvalds, December 5th 2003.</div>
    -</blockquote>
    -
    -<p>(Darl McBride is CEO of The SCO Group)</p>
    -
    -
    -!SECTION Compiling from source
    -
    -Q: Note
    -A: I strongly recommend you use pre-packaged binaries where possible, however if you MUST
    -use source, these tips might help you. GnuTLS is the (developers) preferred
    -option, but I've witnessed more success with Mozilla NSS &amp; NSPR
    -
    -Q: Mozilla NSS &amp; NSPR
    -A: Mozilla NSS &amp; NSPR can be found here:<br />
    -<a href="ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_9_2_RTM/src/nss-3.9.2.tar.gz ">
    -ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_9_2_RTM/src/nss-3.9.2.tar.gz</a>
    -(despite it's name, it contains both NSS &amp; NSPR)
    -<pre><code>--with-{nss,nspr}-includes should point to the directory with the .h files in (eg. nspr.h)
    ---with-{nss,nspr}-libs should point to the directory with the .so files in (eg. libnss3.so)</code></pre>
    -
    -<p>If you can't add to <code>/etc/ld.so.conf</code> (or your (*nix) OS doesn't have one) set
    -the <code>LD_LIBRARY_PATH</code> environment variable instead, either before running Pidgin or
    -(for bourne shell &amp; bash) on the Pidgin command line, eg.
    -csh:
    -</p>
    -<pre><code>setenv LD_LIBRARY_PATH /usr/lib/mozilla-1.4</code></pre>
    -<p>
    -sh/bash:
    -</p>
    -<pre><code>LD_LIBRARY_PATH=/usr/lib/mozilla-1.4 ; export LD_LIBRARY_PATH</code></pre>
    -<p>
    -or sh/bash: run Pidgin with this command:
    -</p>
    -<pre><code>LD_LIBRARY_PATH=/usr/lib/mozilla-1.4 pidgin</code></pre>
    -<p>
    -If you have multiple versions of Mozilla installed, you might have some
    -problems with which version is detected by <code>./configure</code> and which
    -libs are used at runtime. This is because, by default,
    -<code>./configure</code> uses pkg-config to find the Mozilla NSS &amp; NSPR
    -libs and includes. If you explicitly specify the Mozilla libs and includes
    -to use with the --with-nss etc. options to <code>./configure</code> then
    -pkg-config will not be used, and you might have more success.
    -</p>
    -<p>
    -The notes below on installing Mozilla NSS &amp; NSPR might also help.
    -</p>
    -
    -Q: GnuTLS
    -A: Thanks to sofar on #pidgin for this:
    -<p>
    -Here's a list in the proper order which you need to install/compile, the
    -versions and links I give compile normally on a reasonably clean system.
    -</p>
    -<p>
    -libgpg-error (needed by libgcrypt):
    -<a href="ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/libgpg-error-0.5.tar.gz">
    -ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/libgpg-error-0.5.tar.gz</a>
    -</p>
    -<p>
    -libgcrypt (needed by GnuTLS):
    -<a href="ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/libgcrypt-1.1.43.tar.gz">
    -ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/libgcrypt-1.1.43.tar.gz</a>
    -</p>
    -<p>
    -libtasn1 (needed by GnuTLS):
    -<a href="ftp://ftp.gnutls.org/pub/gnutls/libtasn1/attic/libtasn1-0.2.6.tar.gz">
    -ftp://ftp.gnutls.org/pub/gnutls/libtasn1/attic/libtasn1-0.2.6.tar.gz</a>
    -</p>
    -<p>
    -GnuTLS (needed by Pidgin):
    -<a href="ftp://ftp.gnutls.org/pub/gnutls/attic/gnutls-0.9.91.tar.gz">
    -ftp://ftp.gnutls.org/pub/gnutls/attic/gnutls-0.9.91.tar.gz</a>
    -</p>
    -<p>
    -libopencdk is a PITA, don't use it, GnuTLS will break. Also version 0.9.92 of
    -GnuTLS doesn't compile because the maintainer forgot to add 1 file needed. 0.9.91
    -works, so just do that.
    -</p>
    -<p>
    -You shouldn't need to pass any --with-xxx-libs/include to Pidgin since everything is
    -by default put in the normal include/lib dirs on my system. If you put any of the libs in
    -obscure places you are daft, just don't do that ;^).
    -</p>
    -<p>
    -sofar
    -</p>
    -<p>
    -For FreeBSD (and, it seems, OpenBSD) users:
    -</p>
    -<blockquote><p>&lt;synic&gt; ok, gnutls 0.8.10 officially works on FreeBSD<br />
    -&lt;synic&gt; and 0.8.6 doesn't :)</p></blockquote>
    -Thanks synic.
    -<p>
    -The notes below on installing GnuTLS as non-root might also help.
    -</p>
    -
    -Q: Non-root (mozilla-{nss,nspr} or GnuTLS already installed)
    -A: If you don't have root access on the system you're trying to install Pidgin
    -on, you need to configure Pidgin to install under your home directory.
    -<p>
    -eg:
    -</p>
    -<pre><code>./configure --prefix=$HOME</code></pre>
    -<p>
    -If there are additional dependancies required that are not installed on
    -the system, you'll need to install those in a similar manner and pass the
    -correct locations to Pidgin's ./configure as shown in the next sections.
    -</p>
    -
    -Q: Non-root including mozilla-{nss,nspr}
    -A: Download NSS &amp; NSPR source from here:
    -<a href="ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_9_2_RTM/src/nss-3.9.2.tar.gz ">
    -ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_9_2_RTM/src/nss-3.9.2.tar.gz</a>
    -<p>
    -Extract nss-3.9.2.tar.gz
    -</p>
    -<pre><code>cd nss-3.9.2/mozilla/security/nss
    -make nss_build_all
    -make install</code></pre>
    -<p>If compiling on Solaris (and maybe other Unixes), the Mozilla build system
    -defaults to using the OS supplied cc even if it's not in the path. You must
    -force the build to use gcc using these make commands instead of the above.
    -Also, make sure you have a relatively recent gcc (3.2.x has been reported to
    -work, 3.1.x has been reported to fail). Thanks to Bill Tompkins for these
    -pointers.</p>
    -<pre><code>
    -NS_USE_GCC=1 make nss_build_all
    -NS_USE_GCC=1 make install</code></pre>
    -<p>
    -On systems where make is not GNU make, use gmake. The above commands will
    -build the libraries without optimizations and with debugging enabled. To build
    -optimized libraries use these commands:
    -</p>
    -<pre><code>
    -make BUILD_OPT=1 nss_build_all
    -make BUILD_OPT=1 install</code></pre>
    -<p>Then:</p>
    -<pre><code>mkdir -p $HOME/lib
    -mkdir -p $HOME/include/nspr
    -find ../../dist/*/lib -type l \
    - \( -name "*.so" -o -name "*.chk" \) \
    - -exec cp -L {} $HOME/lib \;
    -cp -Lr ../../dist/public/* $HOME/include
    -cp -Lr ../../dist/*/include/* $HOME/include/nspr</code></pre>
    -<p>
    -The above lines require GNU find &amp; GNU cp, on Solaris you can get these from
    -<a href="http://www.sunfreeware.com/">Sunfreeware.com</a> in the findutils and
    -coreutils packages (remember to make sure the GNU commands are in your path
    -before the OS versions).
    -</p>
    -<p>
    -Pidgin:
    -</p>
    -<pre><code>./configure --prefix=$HOME \
    ---with-nss-includes=$HOME/include/nss \
    ---with-nspr-includes=$HOME/include/nspr \
    ---with-nss-libs=$HOME/lib \
    ---with-nspr-libs=$HOME/lib
    -make
    -make install</code></pre>
    -<p>
    -You should now be able to use Pidgin by running <code>$HOME/bin/pidgin</code><br />
    -In some cases, it might be necessary to set
    -<code>LD_LIBRARY_PATH=$HOME/lib</code>
    -before running Pidgin
    -</p>
    -
    -
    -Q: Non-root including GnuTLS
    -A: This has been tested using the exact same versions of applications specified
    -above in the GnuTLS section, with the exception of libtasn1 (GnuTLS actually
    -includes a version of libtasn1 which seems to work).
    -<p>
    -libgpg-error:
    -</p>
    -<pre><code>./configure --prefix=$HOME
    -make
    -make install</code></pre>
    -<p>
    -libgcrypt:
    -</p>
    -<pre><code># fix the configure script!
    -perl -pi -e 's/ --prefix=\$gpg_error_config_prefix//' configure
    -./configure --prefix=$HOME --with-gpg-error-prefix=$HOME
    -make
    -make install</code></pre>
    -<p>
    -gnutls:
    -</p>
    -<pre><code>LD_LIBRARY_PATH=$HOME/lib ./configure \
    - --prefix=$HOME --with-libgcrypt=$HOME
    -make
    -make install</code></pre>
    -<p>
    -Pidgin:
    -</p>
    -<pre><code>./configure --prefix=$HOME --enable-gnutls=yes \
    ---with-gnutls-libs=$HOME/lib \
    ---with-gnutls-includes=$HOME/include
    -make
    -make install</code></pre>
    -<p>
    -You should now be able to use Pidgin by running <code>$HOME/bin/pidgin</code><br />
    -In some cases, it might be necessary to set
    -<code>LD_LIBRARY_PATH=$HOME/lib</code>
    -before running Pidgin (this was not necessary on the tested system)
    -</p>
    -!SECTION Troubleshooting
    -Q: ./configure
    -A: ./configure will tell you when it is finished what SSL implementation
    -is going to be used. You will get one of these 4 lines:
    -<pre><code>SSL Library/Libraries......... : None
    -SSL Library/Libraries......... : Mozilla NSS
    -SSL Library/Libraries......... : GnuTLS
    -SSL Library/Libraries......... : Mozilla NSS and GnuTLS</code></pre>
    -<p>
    -It should be fairly obvious that if it says "None", it is not going to work
    -for you, so you should fix that by making sure you're passing the right
    ---with-xxx-libs &amp; --with-xxx-includes as described above before even bothering
    -to try &quot;make&quot;.
    -</p>
    -Q: Compiling
    -A: If <code>./configure</code> said it was going to compile with SSL but
    -the make fails to build, it is likely that you have a broken installation of
    -the chosen SSL libs. If you did not specify any --with-xxx-libs or
    ---with-xxx-includes when running configure, try explicitly pointing it at your
    -SSL libs &amp; includes.
    -<p>
    -If it still fails during <code>make</code>, you should probably try the other
    -SSL option and explictly disable the one that failed with
    -<code>--enable-nss=no</code> or <code>--enable-gnutls=no</code> as appropriate.
    -</p>
    -Q: Runtime
    -A: If you've managed to build Pidgin, with SSL support reported by
    -<code>./configure</code> and without any build failures, but when running it
    -still complains, there are a few things you can try.
    -<p>
    -Make sure that you only have one copy of Pidgin installed, it is possible that
    -there is another one in your path that does not have SSL support. You can
    -check which Pidgin is being run with &quot;<code>which pidgin</code>&quot;, or you
    -can be sure to run the version you've just compiled by specifiying the full
    -path to it. Note: <code>./configure</code> will warn you if it finds an old
    -version of Pidgin already installed.
    -</p>
    -<p>
    -If you are sure that you are running your freshly compiled Pidgin, check Pidgin's
    -SSL plugin is actually linked to the necessary libs. If you compiled with
    -Mozilla NSS, you can do this (replace /usr/local/lib with the prefix you
    -installed to):
    -
    -</p>
    -<pre><code>$ ldd /usr/local/lib/purple/ssl-nss.so
    -libnsl.so.1 => /lib/libnsl.so.1 (0x40023000)
    -libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
    -/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)</code></pre>
    -<p>
    -That one is NOT linked against NSS, and will not work. Go back to the
    -beginning and try again (or, if you also compiled with GnuTLS, keep reading).
    -</p>
    -<pre><code>$ ldd /usr/local/lib/purple/ssl-nss.so
    -libnss3.so => /usr/lib/libnss3.so (0x4004e000)
    -libsmime3.so => /usr/lib/libsmime3.so (0x400b0000)
    -libssl3.so => /usr/lib/libssl3.so (0x400d0000)
    -libsoftokn3.so => /usr/lib/libsoftokn3.so (0x400f0000)
    -libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40155000)
    -libdl.so.2 => /lib/libdl.so.2 (0x401a5000)
    -libnsl.so.1 => /lib/libnsl.so.1 (0x401a8000)
    -libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
    -libplc4.so => /usr/lib/libplc4.so (0x401bf000)
    -libplds4.so => /usr/lib/libplds4.so (0x401c4000)
    -libnspr4.so => /usr/lib/libnspr4.so (0x401c7000)
    -/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)</code></pre>
    -<p>
    -That one is linked against the necessary things, and all libs were found. If
    -any of the bits on the right say "not found", then the compile worked but the
    -libs cannot be found by the dynamic loader. See notes above about
    -<code>/etc/ld.so.conf</code>, <code>ldconfig</code> and the LD_LIBRARY_PATH
    -environment variable.
    -</p>
    -<p>
    -If you compiled with GnuTLS (or both), the steps to check the purple SSL plugin
    -are similar to above, except the file to check is <code>ssl-gnutls.so</code>.
    -The output should look like this if all is good:
    -</p>
    -<pre><code>$ ldd /usr/local/lib/purple/ssl-gnutls.so
    -libgnutls.so.8 => /usr/lib/libgnutls.so.8 (0x40003000)
    -libgcrypt.so.7 => /usr/lib/libgcrypt.so.7 (0x4005e000)
    -libnsl.so.1 => /lib/libnsl.so.1 (0x400c6000)
    -libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
    -libz.so.1 => /usr/lib/libz.so.1 (0x400dc000)
    -libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x400ea000)
    -/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)</code></pre>
    -<p>
    -For completeness, here's the output if it can't find some of the libs:
    -</p>
    -<pre><code>libgnutls.so.8 => not found
    -libgcrypt.so.7 => not found
    -libnsl.so.1 => /lib/libnsl.so.1 (0x002b7000)
    -libc.so.6 => /lib/tls/libc.so.6 (0x004f4000)
    -/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0088d000)</code></pre>