Fix failing test
test_dependency_expansion: dep names should always be strings
Add Requirement#inspect
cfengine: use opt_prefix for pcre
CurlDownloadStrategy no longer uses `?` in downloaded filenames

Strip `?` and trailing characters from URL extensions and basenames.

This makes some install methods cleaner, and prevents staging of files
with `?` in the name, as that is a weird character.

Affects 2 formulae in core (though potentially externals will need to be fixed.)
Use ScriptFileFormula

Switch these to use ScriptFileFormula, since they no longer
need to munge the installed filenames.
miniupnpc 1.8.20130503
Adobe-Air-SDK: SHA1 fix. Revised SDK, still v. 3.7

Closes #20342.

Signed-off-by: Samuel John <github@SamuelJohn.de>
libspatialite 4.1.0 libgaiagraphics, librasterlite

* Gdal: Use includes from brewed sqlite
* spatialite-tools 4.1.0
* librasterlite 1.1g
* libgaiagraphics 0.5
* Update to use new style `build.with?`

Closes #20341.

Signed-off-by: Samuel John <github@SamuelJohn.de>
denominator 1.2.1

Closes #20350.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Raise bottle exceptions for Homebrew developers.
Use new download strategy for local bottles.

Fixes installation of e.g. ScriptFileFormula/denominator bottles.
brew-test: add five minute timeout.
Bottle DSL: allow checksums access.
brew-test-bot: write bottle metadata files.
brew-bottle: split output and use a bottle object.
brew-bottle: merge arg for bottle metadata files.

Closes #20266.
MySQL: allow compilation with Xcode-only setups

Closes #20185.
Add Enumerable#group_by
Merge repeated deps with differing options

When expanding dependencies, repeated deps are treated as equal and all
but the first are discarded when #uniq is called on the resulting array.
However, they may have different sets of options attached, so we cannot
assume they are the same.

After the initial expansion, we group them by name and then create a new
Dependency object for each name, merging the options from each group.

Fixes #20335.