222 | | == Random Questions == |
223 | | |
224 | | (Reconstruction of this page is currently in progress. More to come soon!) |
| 220 | === ./configure === |
| 221 | ./configure will print summary information at the end of its execution that tells you what SSL implementation will be used. You will get one of these four lines: |
| 222 | {{{ |
| 223 | SSL Library/Libraries......... : None |
| 224 | SSL Library/Libraries......... : Mozilla NSS |
| 225 | SSL Library/Libraries......... : GnuTLS |
| 226 | SSL Library/Libraries......... : Mozilla NSS and GnuTLS |
| 227 | }}} |
| 228 | It should be fairly obvious that if it says "None," SSL will not work for you. Fix that by making sure you're passing the right --with-xxx-libs and --with-xxx-includes as described above or that you have the correct -dev or -devel packages installed, also as described above where applicable. Make sure you do this before you even bother to run `make`. |
| 229 | |
| 230 | === Compiling === |
| 231 | If `./configure` said it was going to compile with SSL but the make fails to build, it is likely 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 and includes. If it still fails during `make`, you should probably try the other SSL option and explicitly disable the one that failed with `--enable-nss=no` or --enable-gnutls=no` as appropriate. |
| 232 | |
| 233 | === Runtime === |
| 234 | If you've managed to build Pidgin with SSL support reported by `./configure` and no build failures, but when running it still complains, there are a few things you can try. |
| 235 | |
| 236 | 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 "`which pidgin`", or you can be sure to run the version you've just compiled by specifiying the full path to it. Note: `./configure` will warn you if it finds an old version of Pidgin already installed. |
| 237 | |
| 238 | 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 with the prefix you installed to): |
| 239 | {{{ |
| 240 | ~$ ldd /usr/local/lib/purple/ssl-nss.so |
| 241 | libnsl.so.1 => /lib/libnsl.so.1 (0x40023000) |
| 242 | libc.so.6 => /lib/i686/libc.so.6 (0x42000000) |
| 243 | /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) |
| 244 | }}} |
| 245 | 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). |
| 246 | {{{ |
| 247 | ~$ ldd /usr/local/lib/purple/ssl-nss.so |
| 248 | libnss3.so => /usr/lib/libnss3.so (0x4004e000) |
| 249 | libsmime3.so => /usr/lib/libsmime3.so (0x400b0000) |
| 250 | libssl3.so => /usr/lib/libssl3.so (0x400d0000) |
| 251 | libsoftokn3.so => /usr/lib/libsoftokn3.so (0x400f0000) |
| 252 | libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40155000) |
| 253 | libdl.so.2 => /lib/libdl.so.2 (0x401a5000) |
| 254 | libnsl.so.1 => /lib/libnsl.so.1 (0x401a8000) |
| 255 | libc.so.6 => /lib/i686/libc.so.6 (0x42000000) |
| 256 | libplc4.so => /usr/lib/libplc4.so (0x401bf000) |
| 257 | libplds4.so => /usr/lib/libplds4.so (0x401c4000) |
| 258 | libnspr4.so => /usr/lib/libnspr4.so (0x401c7000) |
| 259 | /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) |
| 260 | }}} |
| 261 | 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 `/etc/ld.so.conf`, `ldconfig` and the LD_LIBRARY_PATH environment variable. |
| 262 | |
| 263 | 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 `ssl-gnutls.so`. The output should look like this if all is good: |
| 264 | {{{ |
| 265 | ~$ ldd /usr/local/lib/purple/ssl-gnutls.so |
| 266 | libgnutls.so.8 => /usr/lib/libgnutls.so.8 (0x40003000) |
| 267 | libgcrypt.so.7 => /usr/lib/libgcrypt.so.7 (0x4005e000) |
| 268 | libnsl.so.1 => /lib/libnsl.so.1 (0x400c6000) |
| 269 | libc.so.6 => /lib/i686/libc.so.6 (0x42000000) |
| 270 | libz.so.1 => /usr/lib/libz.so.1 (0x400dc000) |
| 271 | libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x400ea000) |
| 272 | /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) |
| 273 | }}} |
| 274 | |
| 275 | For completeness, here's the output if it can't find some of the libs: |
| 276 | {{{ |
| 277 | libgnutls.so.8 => not found |
| 278 | libgcrypt.so.7 => not found |
| 279 | libnsl.so.1 => /lib/libnsl.so.1 (0x002b7000) |
| 280 | libc.so.6 => /lib/tls/libc.so.6 (0x004f4000) |
| 281 | /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x0088d000) |
| 282 | }}} |