With support for Red Hat Enterprise Linux 4 introduced by ColdFusion MX 7.01, a C++ compatibility pack warning may be erroneously presented during ColdFusion installation. The ColdFusion MX installation script uses the command rpm --query compat-libstdc++ to ascertain if the C++ compatibility pack is installed on the system. The actual RPM package name is not compat-libstdc++ so the rpm command does not return a successful result and the CFMX installation script produces warning.

To more accurately determine the status of a C++ compatibility pack on the system, the ColdFusion MX installation script should either query all packages and use the grep command as a filter or query the exact package name. For example, the command rpm -qa | grep compat-libstdc++ queries all packages and filters or greps on the string compat-libstdc++. On my RHEL4 system, this command produced two results, compat-libstdc++-33-3.2.3-47.3 and compat-libstdc++-296-2.96-132.7.2.

Normally, when using the rpm -q command the argument should be the package name which is not to be confused with the package name and version or the file name of the original rpm file. So for example, glibc-2.3.4-2 is installed on my system but I must use rpm -q glibc to query the package information from the system but not the package name and version rpm -q glibc-2.3.4-2 which would return a message that the package is not installed.

When querying for the C++ compatibility pack this is a little confusing at first because the package name includes some version information in the actual package name. For example, rpm -q compat-libstdc++-33 produces the result compat-libstdc++-33-3.2.3-47.3 which has detailed version information. The C++ compatibility pack package name convention seems to have changed in RHEL4 compared to RHEL3 because on RHEL 3 the command rpm --query compat-libstdc++ would produce a successful result where on my RHEL3 system package compat-libstdc++-7.3-2.96.122 was identified without having to refer to the package with partial version information such as rpm --query compat-libstdc++-7.3 .

The erroneous warning presented by the ColdFusion MX installation script reveals the reason why the C++ compatibility pack would be required on the system as well as the command the script is using to check for package installation:

Pre-Installation Check
----------------------
The installer has found the following errors/warnings:

Warning: C++ compatibility pack

The installer was unable to determine if the C++ compatibility pack is installed by running the following command: rpm --query compat-libstdc++. If this machine uses a version of glibc that is 2.2.5.x or higher the compatibility pack is necessary for C++ custom tags, Verity, and web server connectors to work properly.

For more information see the installation manual at http://www.macromedia.com/go/livedocs_cfmx7docs

PRESS TO CONTINUE WITH THE INSTALLER:


And the install log also reflects the warning:

[root@RHEL4DEV1 ~]# cat /opt/coldfusionmx7/Macromedia_ColdFusion_MX_7_InstallLog.log | grep WARNING
1 WARNINGS
Status: WARNING
Additional Notes: WARNING - C++ compatibility pack


For completeness, here is how to interrogate the system for package installation and information.

Query compat-libstdc++ package installation
[root@RHEL4DEV1 ~]# rpm -q compat-libstdc++
package compat-libstdc++ is not installed

[root@RHEL4DEV1 ~]# rpm -qa | grep compat-libstdc++
compat-libstdc++-33-3.2.3-47.3
compat-libstdc++-296-2.96-132.7.2

[root@RHEL4DEV1 ~]# rpm -q compat-libstdc++-33
compat-libstdc++-33-3.2.3-47.3

[root@RHEL4DEV1 ~]# rpm -q compat-libstdc++-296
compat-libstdc++-296-2.96-132.7.2


Query compat-libstdc++ package information
[root@RHEL4DEV1 ~]# rpm -qi compat-libstdc++-33
Name : compat-libstdc++-33 Relocations: (not relocatable)
Version : 3.2.3 Vendor: Red Hat, Inc.
Release : 47.3 Build Date: Wed 01 Dec 2004 11:12:34 AM EST
Install Date: Thu 13 Oct 2005 12:31:52 PM EDT Build Host: tweety.build.redhat.com
Group : System Environment/Libraries Source RPM: compat-gcc-32-3.2.3-47.3.src.rpm
Size : 733488 License: GPL
Signature : DSA/SHA1, Wed 05 Jan 2005 05:04:31 PM EST, Key ID 219180cddb42a60e
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>;
URL : http://gcc.gnu.org
Summary : Compatibility standard C++ libraries
Description :
The libstdc++ package contains compatibility standard C++ library
from GCC 3.3.4.

[root@RHEL4DEV1 ~]# rpm -qi compat-libstdc++-296
Name : compat-libstdc++-296 Relocations: (not relocatable)
Version : 2.96 Vendor: Red Hat, Inc.
Release : 132.7.2 Build Date: Tue 14 Dec 2004 08:01:44 AM EST
Install Date: Thu 13 Oct 2005 12:36:13 PM EDT Build Host: decompose.build.redhat.com
Group : System Environment/Libraries Source RPM: compat-gcc-296-2.96-132.7.2.src.rpm
Size : 526716 License: GPL
Signature : DSA/SHA1, Wed 05 Jan 2005 05:04:26 PM EST, Key ID 219180cddb42a60e
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>;
URL : http://gcc.gnu.org
Summary : Compatibility 2.96-RH standard C++ libraries
Description :
The compat-libstdc++-296 package contains 2.96-RH compatibility standard
C++ libraries.


Query glibc package installation and information
[root@RHEL4DEV1 ~]# rpm -q glibc
glibc-2.3.4-2
[root@RHEL4DEV1 ~]# rpm -qi glibc
Name : glibc Relocations: (not relocatable)
Version : 2.3.4 Vendor: Red Hat, Inc.
Release : 2 Build Date: Mon 20 Dec 2004 05:16:22 AM EST
Install Date: Thu 13 Oct 2005 12:28:24 PM EDT Build Host: decompose.build.redhat.com
Group : System Environment/Libraries Source RPM: glibc-2.3.4-2.src.rpm
Size : 12007275 License: LGPL
Signature : DSA/SHA1, Wed 05 Jan 2005 03:51:45 PM EST, Key ID 219180cddb42a60e
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>;
Summary : The GNU libc libraries.
Description :
The glibc package contains standard libraries which are used by
multiple programs on the system. In order to save disk space and
memory, as well as to make upgrading easier, common system code is
kept in one place and shared between programs. This particular package
contains the most important sets of shared libraries: the standard C
library and the standard math library. Without these two libraries, a
Linux system will not function.


In conclusion, you can ignore this warning during installation, but if you plan to use Verity or C++ based custom CFX tags then you should interrogate your system for compat-libstdc++ and glibc packages and install them if necessary.