The 'boost' package doesn't install anything, it just pulls in most
of the subpackages built from boost.spec:
# boost is an "umbrella" package that pulls in all boost shared library
# components, except for MPI and Python sub-packages. Those are special
# in that there are alternative implementations to choose from
# (Open MPI and MPICH, and Python 2 and 3), and it's not a big burden
# to have interested parties install them explicitly.
# The subpackages that don't install shared libraries are also not pulled in
# (doc, doctools, examples, jam, static).
Requires: %{name}-atomic%{?_isa} = %{version}-%{release}
Requires: %{name}-chrono%{?_isa} = %{version}-%{release}
Requires: %{name}-container%{?_isa} = %{version}-%{release}
Requires: %{name}-contract%{?_isa} = %{version}-%{release}
...
It's no longer true that there are two Python versions to choose from,
because Python2 was dropped so there is only boost-python3.
Is there any reason not to add Requires: for boost-python3 and
boost-numpy3 now?