Summary
When building with bundled libmongoc, the PHP driver supports various dependencies. Some of these are optional and can be disabled, but other optional dependencies are always used when available. For example, PHPC-2236 only recently made compression libraries configurable.
We should expose all dependencies as configure options. After new configure options have been added, they can then be exposed to PECL (PHPC-1017).
This will also present an opportunity to clean up our Autoconf scripts (PHPC-2194, PHPC-2225) and add test coverage (PHPC-1187).
Motivation
Who is the affected end user?
Users that install the driver with PECL or compile from source.
Note: Windows users are not impacted by this since they use pre-built DLLs.
How does this affect the end user?
In some cases, the user's environment is incompatible with the driver and they may have no way to disable an optional dependency.
How likely is it that this problem or use case will occur?
Relatively rare, but we do get reports from time to time.
If the problem does occur, what are the consequences and how severe are they?
In some cases, a dependency issue can make the driver unusable. However, this is usually something faced when starting a project so it's unlikely to block applications that are already using the driver.
Is this ticket required by a downstream team?
No.
Cast of Characters
Engineering Lead: jmikola@mongodb.com
Document Author:
POCers:
Product Owner:
Program Manager:
Stakeholders: