Version: build-in devel version comparisons

The heuristic used by the default version comparison is simple. A
version string is scanned for strings of digits, split into an array of
these strings, and then an element-wise comparison is done.

This fails when presented with something like

  Version.new("1.0.0beta7") <=> Version.new("1.0.0")

because the first three digits match, and the fourth digit of the
receiver (7) is greater than the assumed fourth digit of the parameter
(0).

Fix this by defining an element-wise comparator on a new VersionElement
class. This allows us to correctly compare "alpha", "beta", and "rc"
style version strings, and keeps the logic out of the main version
comparison.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Simplify version comparison tests

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Test version interrogation methods

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
netcdf: Update to 4.2.1.1

Also, use the new options DSL.
libwps: Update to 0.2.7
Ghostscript: Update to 9.06
Add ARGV.ignore_deps?

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
upgrade: filter ARGV when expanding deps

This serves the same purpose as similar code in FormulaInstaller, but we
duplicate it because we do the dependency expansion in an ad-hoc fashion
here.

Fixes #11863.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Don't lie about upgrading up-to-date formulae

Usually, the "foo-version already installed" error is printed by
FormulaInstaller. However, if an up-to-date formula that has outdated
deps is passed on the command line, we proceed to upgrade the deps and
then print a message saying that the formulae given on the command line
is already installed.

Catch this earlier, when the outdated list is being populated, print an
appropriate message, and skip the up-to-date formula.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
qscintilla2: Fix source code directory name

The directory was renamed from `Qt4` to `Qt4Qt5`.

Closes #14264.

Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
imagemagick: Install C++ interface by default.

Reasons:

  - It only adds 10 seconds to a deparallelized make job.
  - We do it for GraphicsMagick

A new option, `--without-magick-plus-plus` has been added for those who wish to
leave the C++ interface out.

Fixes #13559.
scons 2.2.0

Closes #14238.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
avro-c 1.7.1

Fixes #14196.
Closes #14205.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
coreutils 8.18

Closes #14213.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
gdk-pixbuf 2.26.2

Closes #14214.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
urweb 20120807

Closes #14212.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
clutter 1.10.8

Closes #14215.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
cogl 1.10.4

Closes #14215.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
python: ENV.minimal_optimization. Remove 2to3 fix

- Extras now in HOMEBREW_PREFIX/share/python/Extras instead of
  HOMEBREW_PREFIX/share/python2.7/Extras
- Assure no '-march=...' or '-msse4' or similar flags are there
  because `python-config --cflags` reports them later and can
  break certain c-extensions. (happend for SciPy).

Closes #14199.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
python3: ENV.minimal_optimization and cleanup

- Since 3.2.3, the "2to3" script has a version suffix already.
- Added `--without-gcc` to ensure python uses clang.
- Avoid optimization flags that are remembers by python
  (e.g. `python3.2-config --cflags`) and lead to problems
  with certain C-extensions.

Closes #14198.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>