WL#17361: Remove the RPM compatibility package
MySQL Connector/C++ provides a mysql-connector-c++-compat RPM package to preserve an upgrade path from Connector/C++ releases older than 9.0.0, whose ABI version was 9, to releases with ABI version 10. This worklog removes that package and all of its packaging definitions. Connector/C++ RPM distributions will no longer provide the legacy ABI compatibility libraries or advertise the compatibility package.
Functional Requirements:
FR.1: Connector/C++ RPM source packaging must no longer define or build the
mysql-connector-c++-compatsubpackage.FR.2: Connector/C++ RPM repositories must no longer publish the
mysql-connector-c++-compatpackage for new Connector/C++ releases.FR.3: The remaining Connector/C++ RPM packages must install, upgrade, and remove successfully without requiring or referring to the compatibility package.
FR.4: Package metadata must not contain
Provides,Requires,Obsoletes, or other references that describe the removed compatibility package or its legacy ABI libraries.
Non-functional Requirements:
NFR.1: The removal applies only to RPM packaging. It must not change the Connector/C++ public APIs or the libraries delivered by the regular RPM packages.
NFR.2: Existing installations of the compatibility package are not migrated automatically. Users that still depend on the pre-9.0 ABI must retain a suitable older package or rebuild their applications against a supported Connector/C++ ABI before upgrading.
NFR.3: RPM package dependencies and upgrade behavior for the regular Connector/C++ packages must remain internally consistent.
The RPM packaging configuration shall be changed to remove the definitions introduced in version 9.1.0 for mysql-connector-c++-compat. Consequently, a Connector/C++ RPM build shall produce only the regular, supported packages; there is no replacement package or compatibility interface.
This is a packaging-only removal. No Connector/C++ API, header, library ABI, or CMake interface is introduced, changed, or deprecated by this worklog.
Remove packaging/compat.patch. This patch applies only to the separately downloaded Connector/C++ 8.4.0 source archive used to build the compatibility libraries. Its changes disable CDK/X DevAPI construction, enable JDBC by default, stop the modern components from being built, and replace the legacy source version with the current Connector/C++ version. The subsequent updates to this patch only maintained its version and documentation number and must also be retired with the patch.
Remove the RPM spec's with_compat build argument and its documentation, the conditional Source1 declaration for the fixed 8.4.0 source archive, and all conditional handling of that source in %prep. In particular, remove the secondary-source extraction, the SRC1 working-directory variable, and the application of compat.patch to that directory.
Remove the build-compat configuration and build from %build, and its installation from %install. Preserve the normal static and dynamic builds and their current test-option handling, as well as the existing static-then-dynamic installation order.
Remove the %package compat, %description compat, and %files compat blocks. This removes the compatibility package's libmysqlcppconn9 provides, all compatibility/JDBC upgrade obsoletes declarations, and assignment of libmysqlcppconn.so.9* and related documentation to the RPM.
Do not alter historical %changelog entries solely because they record the previously shipped compatibility package.