Not surprising, sadly. In 2022, a friend who did trekking, asked how to view files with national parks borders on a map. I recommended installing QGIS desktop (geospatial viewer/editor of files/database tables). He replied: "1 GB of download?! Seriously?!" I was surprised, because last time I had paid attention, maybe in 2016, it was ~200 megs. I checked, and indeed, it weighed 1 gig. I checked in 2025, and it's beyond 1,3 gig now. And it's FOSS, not commercial bloatware you might think. I have no idea what they stuff it with.
Just yesterday, I wanted to generate a GeoTiff on a macbook. To do it in a simple way, you need libGDAL, a geo-spatial abstraction library that exists since maybe the '90 and supports all thinkable formats. Under Linux, you just install it together with QGIS as a dependency. Mac is still unix, so you may think, a 3-decades old library, with few patches to support modern formats, should be just a couple of megs, right? Brew suggested downloading ~2 GB of ~100 packages!!!! Half of them were aws-* (yes, AWS tools), and 1 GB of LLVM!!! (is it their whole GIT repo with 10M SLOC?)
For geotiff, I ended just using standard Tiff library, inserting my 4 geospatial tags with a few lines of code.
I just downloaded QGIS to take a look. On my Mac, it takes 2.1GB of disk space after installation, which has some notable space sinks:
* 562mb of Python 3.11 and libraries (of which 240mb goes to the qgis python library, 101mb goes to duckdb, and 50mb to PyQt5) * 130mb to i18n * 140mb to `libclntsh.dylib` which I think is the Oracle DB client library? * 80mb to libduckdb.dylib, separate from the Python version * 80mb to libQtWebKit
I am not sure QGIS is a good comparison to this. The projection information dataset is nearly 800 MB on its own. But it's not really PROJ's fault that there are so many projections to manage.
The brew LLVM situation is crazy and even more noticeable when you're on older macOS for which they no longer ship precompiled stuff.
I know they don't want stuff breaking because users have a GCC version that's 6 months behind and the homebrew folks can't be sure that package XYZ doesn't use any newer features. But when installing anything built with C++ I really don't expect to wait half a day for the whole LLVM+CMake toolchain to compile from scratch.
You can pin LLVM but it's useless as there's no bypass to the version check. They've also closed all relevant issues as "won't fix" as it's not "their way of doing things".