pidgin/pidgin

Use LT_LIB_M to determine if we need to link to the math library and link Pidgin to the X11 libraries

Gentoo ran into an issue with the gold linker without -lm. The original patch
and work came from Justin Lechner. https://bugs.gentoo.org/386079

Gentoo also ran into an issue with X11_LIBS not being added to pidgin. This
should already be implicit everywhere except for homebrew which patches X11
out of their build. Original patch/work came from and. https://bugs.gentoo.org/500762

Testing Done:
Installed and ran locally.

Reviewed at https://reviews.imfreedom.org/r/608/
#include <string.h>
#include "tests.h"
#include "../xmlnode.h"
/*
* If we really wanted to test the billion laughs attack we would
* need to have more than just 4 ha's. But as long as this shorter
* document fails to parse, the longer one should also fail to parse.
*/
START_TEST(test_xmlnode_billion_laughs_attack)
{
const char *malicious_xml_doc = "<!DOCTYPE root [ <!ENTITY ha \"Ha !\"><!ENTITY ha2 \"&ha; &ha;\"><!ENTITY ha3 \"&ha2; &ha2;\"> ]><root>&ha3;</root>";
/* Uncomment this line if you want to see the error message given by
the parser for the above XML document */
/* purple_debug_set_enabled(TRUE); */
fail_if(xmlnode_from_str(malicious_xml_doc, -1),
"xmlnode_from_str() returned an XML tree, but we didn't want it to");
}
END_TEST
Suite *
xmlnode_suite(void)
{
Suite *s = suite_create("Utility Functions");
TCase *tc = tcase_create("xmlnode");
tcase_add_test(tc, test_xmlnode_billion_laughs_attack);
suite_add_tcase(s, tc);
return s;
}