We're not sure this is working as it was intended to, and the primary
end product so far has been making every Ruby 1.8.7 build, which is the Ruby
we use on Mavericks for compatibility, take 5-15 minutes longer per build
than 2.x Rubies.
Cumulatively this is responsible for the vast majority of CI slowness over the
last couple months as Mavericks plays catch-up and everything else waits for it
to do so.
We may revisit this in future, but for now the harm is greater than the "risk".
This technically reverts 7b26c585c2.
Remove broken symlinks from `/Applications` and `~/Applications` that
were previously created by `brew linkapps`, but are no longer valid
because formulae were uninstalled or the provided apps have changed.
Add `--dry-run` option as is customary for destructive commands. Update
`bash` completion and man page accordingly. Also correct and update
documentation for both `brew linkapps` and `brew unlinkapps` in more
general terms.
Simplify code by using `Pathname` methods as much as possible. Also
avoid calling external commands for basic functionality like unlinking,
reduce code duplication by using a method from `cmd/linkapps.rb`, count
unlinked symlinks with `ObserverPathnameExtension`, and adjust output
for consistency with `brew linkapps`.
Simplify code by using `Pathname` methods as much as possible. Also
avoid calling external commands for basic functionality like symlink
creation, refactor code that can be shared with `brew unlinkapps`, and
print a summary line at the end (if symlinks were created).
If analytics are enabled and `brew` is used in a command substitution
context, e.g. `brew search` for tab completion, the result is that even
though the Google Analytics `curl` process runs in the background it
still is attached to the captured `stdout`, thus could theoretically
contribute to the result of the command substitution and consequently
makes the command substitution block on the completion of this process.
Redirecting `stdout` (and `stderr` for good measure) to `/dev/null`
makes this process truly asynchronous in these contexts.
Furthermore, even if the process is in the background, it is still
included in the shell's job list and thus shell internals like `wait`
(used in `cmd/update.sh`) have to wait on this process, even if they
never intended to do so. Removing the analytics process from the job
list via `disown` avoids this unintended effect.
Fixes#29.
Closes#34.
Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
The method `fix_encoding!` is private to `Homebrew::Step` but is also
required by the `Homebrew.sanitize_output_for_xml` method for truncating
overly long logs. Move `fix_encoding!` into the `Homebrew` module to
make it accessible from both this method and the `Homebrew::Step` class.
This amends commit 343091c828d1e572829b86253d79b326c1986bcd.
Makes `tap` re-runnable and unshallows when requested with `--full`.
Tapping with a different URL raises an exception.
The homebrew/core tap cannot be untapped with `untap` so running
`brew tap --full homebrew/core` is now a built-in way to get a full
clone of this tap without resorting to workarounds.
Closes#17.
Signed-off-by: ilovezfs <ilovezfs@icloud.com>
When invoking `brew tap homebrew/core`, the input options will be like
`{ :clone_target => nil }`. This renders `Hash#merge` a dead operation.
It doesn't impact Homebrew itself, but could cause problem for
downstream projects Linxubrew/Tigerbrew when they adopt core/formula
separation.
This reverts commit ceed6636d6986bb2b993ba4680ae484deb76ae29.
```
==> git clean -ffdx
HEAD is now at ceed663 test-bot: revise Step output transcoding and XML character filtering
Removing Library/Homebrew/test/.bundle/
Removing Library/Homebrew/test/fs_leak_log
Removing Library/Homebrew/test/vendor/
Error: invalid regular expression: /[^
-uD7FFuE000-uFFFDu{10000}-u{10FFFF}]/
```
Using Ruby 1.8.
Previously, superenv did not try to filter -I or -L flags
based on the list of requested dependencies; as a result, buildsystems
which opportunistically discover Homebrew-installed libraries were able
to link against them even under superenv.
This adds a list of all requested dependencies to the superenv environment,
and compares all -I and -L flags against those; any Cellar and opt paths
found which resolve to unrequested dependencies are filtered out.
Generally it seems user agents are all `software/version` but ours is
not. Also, set the user agent in a way that it's shared between Bash
and Ruby code.
Closes https://github.com/Homebrew/legacy-homebrew/pull/50480.
* move shell completion scripts to where can be auto picked up
Let's use switching new remote as opportunity to put shell completion
scripts to where they should be and avoid git conflict during the process.
* add Library/Formula and Library/Aliases symlinks
Formulae and Aliases has been relocated to homebrew/core tap.
The symlinks are pointed to new location to keep backward compatibility.
* remove formula_renames and tap_migrations
They have been replaced by the json files in the core tap.
* update: set new remote
* bump Homebrew version to 0.9.9
This reverts commit 51e4e6490bda0d981afd1787a6392ab588b0601c. This did
not work as intended, as the `git` command is executed in the context of
the tap the current job operates on, never for Homebrew/homebrew itself.