-
Dridi Boukelmoune authored
When versioning appeared in the VRT API, the goal was to allow loose ABI compliance on loaded VMODs based on the major/minor revision against which it was built. Strict checking was performed if Varnish was built from the master branch in the VCC code, but omitted by the child. This however has two flaws: 1) Release management might go wrong like it happened in 5.1.2 that got released from the master branch. 2) This doesn't solve the original problem that some VMODs might rely on supported symbols encompassed by the VRT major/minor while others may choose to integrate deeper with Varnish and lose guarantees. This patch retires the `VCS_Branch` macro that is no longer needed and provides a new `$ABI` stanza that defaults to strict when omitted. To help discovery, in-tree modules advertise a strict match. To indicate that a VMOD needs the exact Varnish build to be loaded, the VMOD's metadata contains 0.0 for the VRT major/minor revision. In addition, both the VCC and child now perform the full ABI compliance check, picking the strict or vrt option depending on the VMOD's metadata. Closes #2330
3199e694