Not every Linux system has a pre-installed `uuidgen` command (Debian
has a package `uuid-runtime` but doesn't install it by default). In
contrast, `/proc/sys/kernel/random/uuid` is always available on a modern
Linux system and produces type/version 4 UUIDs, just like `uuidgen`.
Closes#416.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Move dylib_path and bundle_path from test_mach to testing_env to
accommodate the new tests.
Closes#400.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
This is inspired by `safe_system` with basically the same implication
(fail on error), making the name a lot less confusing and avoiding a
clash with the `chdir` function previously defined in `bin/brew`.
Closes#414.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
The `ensure` block can be reached before the tab is modified (and thus
before `original_tab` gets populated). Avoid raising an exception when
attempting to restore a tab that hasn't been modified yet, e.g. because
relocating some of the Mach-O binaries failed.
* audit.rb: require https for ftpmirror.gnu.org
The situation is similar to other mirror redirectors: the server
may subsequently redirect to an insecure url. But it's a step.
* manpage: update HOMEBREW_NO_INSECURE_REDIRECT section
Don't force installation of the `hub` formula if it can be found in the
search path. (Avoids unnecessary installation when switching between
multiple Homebrew installations for different tasks.)
Closes#384.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Allow boneyarding a formula locally, i.e. make all the necessary changes
in the local repositories but don't push them to a remote and don't open
a pull request automatically.
Move check for emptiness into the display method, avoiding repetitive
checks on the call site.
Closes#381.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Prevent raising an error when `HOMEBREW_RUBY_MACHO=1` is set. Skipping
symlinks and directories while iterating over a directory structure to
find Mach-O binaries makes sense and similar logic is applied elsewhere.
Prefer `Utils.git_version` instead of duplicating version detection
logic. Decouple unnecessary conflated availability and version checks.
Closes#351.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
Due to our SCM wrapper in `Library/ENV/scm/git`, lookup is a bit more
complicated than just picking the first match in `PATH`. Make debugging
easier by printing the version and path of the Git actually used by us.
If we're bumping the formula's stable version, then we also must reset
the formula revision to zero.
Note that if and only if a revision is being removed, this commit will
enforce the convention that there should be a blank line before a simple
head spec if and only if there is a formula revision. Any preexisting
violation of the convention (in particular, a blank line before a simple
head spec in the absence of a formula revision) won't be proactively
corrected since we'd not be removing a formula revision in that case.
Closes#369.
Signed-off-by: ilovezfs <ilovezfs@icloud.com>
- simulate version change for dry-run
- make sure we're using :devel version if called with --devel
Closes#318.
Signed-off-by: ilovezfs <ilovezfs@icloud.com>
Add SharedEnvExtension#gcc_with_cxx11_support? to centralise the
logic for checking whether a compiler is known to support C++11.
Update logic to accept GCC 4.8 and above (including 6). Thereby also
address oversight in #163 where support for GCC 6 was added without
updating the C++11 compiler whitelist.
Add tests for Superenv#cxx11.
Closes#346.