@sergey-safarov OK, I agree this is confusing - it took me a minute to re-read all I wrote. `--with geoip2` means "disable GeoIP 1" (unlike `--without geoip` which means "disable *all* GeoIP"). This is probably not a great API... 😑
So for RHEL up to and including 8, the defaults are changed to: `%bcond_without geoip` (build with GeoIP, both 1 and 2) and `%bcond_with geoip2` (do not modify the status of GeoIP build). If you look at the `$package geoip` declaration you can see that when `with geoip2` is **not set**, both `GeoIP` and `libmaxminddb` are used.
For RHEL 9 (and up), the default is then changed to: `%bcond_without geoip` (build with GeoIP, both 1 and 2) and `%bcond_without geoip2` (build only GeoIP 2, drop GeoIP 1).
The `%bcond_with/out` macros are confusing enough as it is an I added double the confusion (so, now it is triple strength), where `--with geoip2` actually means `--without geoip1`. OK, now that I think about it - that makes more sense? If you want I can rewrite this patch - instead of adding a "build just geoip2" flag, a "do not build geoip1" flag.