cPanel Blog

cPanel & WHM 56 and the Internal Perl upgrade: 5.22

In cPanel & WHM version 56 we updated the internal version (and only the internal version) of Perl from 5.14 to 5.22. This has a couple of potential consequences that we want to make sure our users are aware of.

Memory use, and dormant mode processes

Memory use is always a concern in server environments, and we have worked very hard to ensure that the upgrades have had minimal effect on your environment. With our first release of version 56 to the EDGE tier it was immediately clear: systems running v56 (with Perl 5.22) were consuming slightly more memory than similar systems running v54 (with Perl 5.14). We have taken steps to help bring the memory footprint of v56 closer to what memory consumption in the same environments using v54, ensuring it will have less of an impact on our end users. In addition to those steps, we have expanded and improved our use of dormant mode in v56, which you can read about in another post on the cPanel blog.

Compatibility, and CPAN Perl Modules

Upgrades across versions of programming languages does require some work on the behalf of 3rd party application developers that build plugins for cPanel & WHM. Plugin developers should be aware of the upgrade already, so most users won’t see any problems at all. In the unlikely event that a 3rd party application that uses Perl modules installed through cPanel’s internal CPAN installer, they may need to have those modules reinstalled after the upgrade to v56 to ensure compatibility after the Perl version change.

If you want to check to see what version of Perl is being used by cPanel right now, you can check that with the command used below:

[~] # /usr/local/cpanel/3rdparty/bin/perl -v |grep version
 This is perl 5, version 14, subversion 4 (v5.14.4) built for x86_64-linux-64int
[~] #

After the upgrade to cPanel & WHM v56, you will see this:

[~] # /usr/local/cpanel/3rdparty/bin/perl -v |grep version
 This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-64int
[~] #

If your third party plugin or addon starts having problems after the upgrade, you may need to reinstall the application or any related Perl modules. It’s also possible that the application will have errors related to code compatibility with the updated version of Perl. Either way, the quickest way to a fix will be to contact the provider of your third party application.

A Word of Caution, and Retaining Perl 5.14

Though most developers should be upgrading their plugins to remain compatible, you may wish to retain Perl 5.14 on your server during your upgrade to v56. As a root level system administrator you can choose to retain Perl 5.14 on your system by running the below command prior to the upgrade. Please do be aware that retaining Perl version 5.14 on your server will prevent you from being able to upgrade to v58 and beyond.

/usr/local/cpanel/scripts/update_local_rpm_versions --add target_settings.perl514 installed

After the upgrade you will see Perl 5.14 is still on the server, but please do note that if you are doing this to allow an out of date plugin to continue to function, you will need to adjust the files of the plugin to reference the appropriate binary:

[~] # /usr/local/cpanel/3rdparty/bin/perl514 -v |grep version
This is perl 5, version 14, subversion 4 (v5.14.4) built for x86_64-linux-64int
[~] #

You can also install Perl 5.14 after the upgrade by running the two commands below. I want to again mention that retaining Perl version 5.14 on your server will block upgrades to v58, and that v58 will not allow you to install Perl 5.14 for cPanel.

/usr/local/cpanel/scripts/update_local_rpm_versions --add target_settings.perl514 installed
/scripts/check_cpanel_rpms --fix

If you want to revert that change, and allow your server the ability to upgrade to v58 once it is released, use this command:

/usr/local/cpanel/scripts/update_local_rpm_versions --remove target_settings.perl514

Developer resources

It is the responsibility of plugin or addon developers to test their applications on the newest version of cPanel & WHM. As a plugin developer if there is a module that you need that we are currently not shipping with cPanel, letting us know will increase the liklihood that we include it for you in future version updates. If you are just getting started the best place to look for help is in our Quickstart Guide.

If you are an existing developer, cPanel offers you access to the EDGE version of cPanel, and can provide you with a development license. In addition, you can keep abreast of all of the changes related to new versions of cPanel & WHM by signing up for our development-related mailing lists. If you aren’t already a member of those mailing lists, reach out to me, and I’ll get you signed up!

benny@cpanel.net

@cPaneldev

benny Vasquez

scripter, crafter, cPanel's Community Manager. Facilitating communication between cPanel's amazing development team, and cPanel's amazing community. Find me on twitter: @cpaneldev