Doing so was the result of a quick hack to fix the "deps installed as
upgrades don't get linked" bug, but it was a mistake. Instead, always
return the LinkedKegs entry as a Pathname object, and let callers be
responsible for checking that it exists.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This reverts commit 2eabe2cbc84649696aeb6fa842a70f3794955597.
When Keg#unlink looks for symlinks relative to the keg, it can hit false
positives that actually belong to a different keg and unlink them
anyway. This breaks our "force identical directory symlinks to be shared
real directory" case.
This may be a problem in general with the unlinking code and should be
investigated.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
If a formula makes it all the way to the actual install step, it is safe
to unlink the keg before linking; this will prune dead symlinks in the
case where a keg was removed with `rm -rf <keg>` but not unlinked with
`brew unlink`.
FixesHomebrew/homebrew#10077.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Symptom: If no python/ruby/perl is in your path, then `which x`.chomp
returns an empty string and `unless ""` is still true. So, N/A is never
displayed. Instead, ruby's Pathname.new("").realpath returns the cwd.
(I consider this realpath behavior a ruby bug) Fix: use empty?
ClosesHomebrew/homebrew#10027.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
These will be used to unify the label namespaces in embedded plists,
i.e. 'homebrew.mxcl.<formula>'.
plist_path returns the full path to a plist file located at the top
level of the keg; plist_path.basename can be used if just the filename
is needed.
c.f. Homebrew/homebrew#9346.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
If HOMEBREW_KEEP_INFO environment variable is set:
- Do not symlink the info directory file (aka 'share/info/dir')
otherwise it gets overwritten by next installed brew.
- Install an entry in the directory for each linked info file when the
brew is linked.
- Uninstall the entry when the brew is unlinked.
ClosesHomebrew/homebrew#9700.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Ocaml packages that need to install here will cause the site-lib
directory to be created, and the symlink in the ocaml keg will work as
intended. This is necessary for the ocaml bottle to work properly.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Now we handle some things more explicitly and in the process get rid of
the blanket rescue on the mktemp block, which is something of an
antipattern.
By unloading the class *after* determining the version, we avoid the
case where the class had previously been unloaded but Formula.factory
failed, and trying to unload the nonexistent class results in a
NameError. Doing it this way, we avoid having to rescue NameError and
thereby avoid hiding other cases where it may occur.
We also rescue TypeError which gets us past a few more bad formula in
the history in some instances.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Regexp#source retains escape sequences as is, so searching for formulae
like 'pure-ftpd' doesn't work.
ClosesHomebrew/homebrew#9597.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit adds a `devel` entry to the DSL, allowing formulae to
specify an unstable branch.
`devel` takes a block, which should contain standard `url` and `md5`
fields (and `version`, if necessary). This must come after the standard
DSL fields.
This commit also migrates over all formulae currently using `devel` to
the new syntax, as well as formulae which used `head` for non-VCS urls.
The new syntax is also available for `stable` and `bottle`. `stable` is
an option alongside the old syntax. `bottle` replaces the old syntax.
Note that the @stable ivar in Formula has been renamed to @standard,
and the @bottle ivar has been renamed to @bottle_url.
ClosesHomebrew/homebrew#9735.
Signed-off-by: Misty De Meo <mistydemeo@gmail.com>