upgrade

Reliable Yum Repo for Easy Upgrades to the Latest Packages, on RedHat and CentOS

Yum is a great update manager for RedHat/CentOS Linux. Unfortunately, default repos are typically way behind the stable releases of the packages contained in them. If you need to install PHP, MySQL, Python or other major package, you will find that the versions in default repos are old to the extent of being useless. This used to force Yum users to resort to third-party repositories and many open-source volunteers have hosted latest versions of packages as yum repositories, helping and assisting the community.

While most efforts were noble and honest contributions, it's always tricky to install packages from unknown sources. The dark fear of "what if" will nag you and your security team (if you have one) will point you to the door. Now there's a good solution, however. One of the most trusted names in the industry, Rackspace hosting now has a Yum repo for popular RedHat packages.

The wiki documentation for how to install and use it can be found at: http://wiki.iuscommunity.org/Doc/ClientUsageGuide

Drupal: Fatal error: Unsupported operand types in

If you have misfortune of having to upgrade Drupal5 website to Drupal6, there's a very good chance that at some point you will run into a fatal error:

Fatal error: Unsupported operand types in...

Fatal errors are never fun, but this one is particularly annoying and hard to hunt down. It helps to understand the cause of the problem, thought. Basically, the main problem is that Drupal url() and l() functions have changed their signatures in a major way. Function operands that used to be literals are supposed to be an array now.

Solution

You need to hunt-down all url() and l() functions and change their signature to Drupal6-compliant format. The functions can be used (and causing problem from) multiple locations: a tpl.php file, a module file or a code in a block in the database! This last one is particularly troublesome to hunt down and can cause the most problem. We suggest disabling all blocks for the time of upgrade by running:

UPDATE blocks set status=0

Also, to find which function causes the problem. open includes/common.inc and at the begining of url() and l() function definitions paste following code:

    if (!is_array($options)) {
      echo "<pre>";
      $backtrace = debug_backtrace();
      var_export($backtrace);
      exit();
    }

Typically first function call in the backtrace is the offender function.

Syndicate content