Fixing libxml2, php, WordPress, and the missing angle brackets

Someone posted a temporary fix for WordPress that takes the raw xml and replaces the offending entities with characters. He found three places. The fix looks like:

//xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch
if(LIBXML_DOTTED_VERSION == '2.7.0' ||
  LIBXML_DOTTED_VERSION == '2.7.1' ||
  LIBXML_DOTTED_VERSION == '2.7.2') {
  $xml =str_replace("&lt;","<",$xml );
  $xml =str_replace("&gt;",">",$xml );
  $xml =str_replace("&amp;","&",$xml );
}
//end Fix
xml_parse($parser, $xml);

Fixing libxml2, php, WordPress, and the missing angle brackets

I was having problems with MarsEdit after updating to OpenSuse 11.1 because of a bug in php aggravated by a recent release of libxml2 (details here).
I was waiting for a real fix but lost my patience today. The advice was to “fall back to libxml2-2.6.32” so here’s what I did:

  1. Grabbed the RPM from the OpenSuse 11.0 cd. Or, if you trust me you can download it from here: libxml2-2.6.32-11.1.i586.rpm
  2. Install the RPM overriding any recent release which is what the “–force” flag does. Do the following as “root” from a terminal window:
    rpm -i --force libxml2-2.6.32-11.1.i586.rpm
    
  3. Now fix the symlinks in /usr/lib so everyone uses the new (but old) library:

    cd /usr/lib
    rm libxml2.so libxml2.so.2
    ln -s libxml2.so.2.6.32 libxml2.so
    ln -s libxml2.so.2.6.32 libxml2.so.2
    
  4. Actually, I didn’t do the above but instead replaced the actual 2.7.2 library:

    mv libxml2.so.2.7.2 libxml2.so.2.7.2.orig
    ln -s libxml2.so.2.6.32 libxml2.so.2.7.2
    
  5. Restart apache so that PHP uses the new libraries:

    /etc/init.d/apache2 restart
    

WordPress, libxml2 bug

I just upgraded to OpenSuse 11.1 and it’s giving WordPres grief. MarsEdit looses the left angle bracket characters when the article is transmitted via xmlrpc. I don’t have a solution but here’s what’s going on:

I downloaded libxml2-2.7.2 and installed. It didn’t help.

WordPress migration

I switched from blogger, which is the google hosted blogs to my own self hosted blog running WordPress. To be precise, I’m running WPMU or WordPress multi-user.
I did it mostly because my home-brewed website wasn’t being fully utilized. WordPress gave me the basics of what I wanted: provide some static contact, make it easy to link to anything I have under development, and provide the dynamic content (aka blog entries).
Wordpress offers a decent number of themes and lots of ways to customize. I also wanted to be able to upload photos and videos more directly instead of going through Picasa or Fickr.
The migration is easy — you can import directly into WordPress from Blogger. While in WordPress:
I’m not sure what went wrong for me but I lost all the formatting the articles had.
There were some problems with funky characters that caused MarsEdit issues but some editting took care of that.