71 Commits

Author SHA1 Message Date
Mike McQuaid
dac66c4ada Add keg_only :versioned_formula.
This is used to indicate a formula is a version of another formula.
This will be used to provide a consistent interface for older formulae
versions and replaces the use of `conflicts_with`.
2017-01-17 10:50:04 +00:00
Mike McQuaid
3f9cce0a03 Use new "macOS" naming where appropriate.
Not quite a mass replacement as I've used OS X and Mac OS X where
describing specific older versions and added compatibility methods
for things in the DSL.
2016-09-18 19:57:19 +01:00
Mike McQuaid
6693915399 rubocop --auto-correct all remaining files.
But remove some manual `.freeze`s on constants that shouldn't be
constants.
2016-09-17 16:14:13 +01:00
Martin Afanasjew
25baaa61ac formula_support: don't fail without CLT/Xcode
`Formula#keg_only?` could fail if it was invoked on a formula with a
`:provided_until_xcode43` or `:provided_until_xcode5` reason given to
`keg_only`, if neither the Command Line Tools nor Xcode was installed.
Check whether Xcode is installed before querying the Xcode version.

Closes #317.
2016-06-05 12:49:38 +02:00
Baptiste Fontaine
be1ac34117 BottleDisableReason: enforce the use of :disable
Closes Homebrew/homebrew#45337.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-10-26 21:22:00 +01:00
Baptiste Fontaine
774a508d1a audit: warn about unknown bottle modifiers
This prevents typos like `bottle :uneeded` or `bottle :disable`

Closes Homebrew/homebrew#45264.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-10-23 19:44:19 +08:00
Xu Cheng
b5032ad2cb Formula: add bottle disable DSL 2015-10-19 21:41:36 +08:00
Dominyk Tiller
48ba192a3b formula_support: add Pre El Capitan keg_only 2015-09-08 15:28:22 +01:00
Dominyk Tiller
4f549da115 formula_support: add provided_pre_mavericks
Closes Homebrew/homebrew#42460.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2015-08-04 21:26:36 +01:00
Baptiste Fontaine
ea08e4fb16 KegOnlyReason: print only the explanation if there’s one
Closes Homebrew/homebrew#42073.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-07-28 20:40:28 +02:00
Jack Nagel
f4027cc9ac "Mac OS X" -> "OS X" in copy 2015-06-16 20:02:10 -04:00
Jack Nagel
ddeac0284b Don't use undent on keg-only reasons
It will cut off the beginning of any interpolated lines.

Fixes Homebrew/homebrew#32259.
2014-09-12 20:54:41 -05:00
Shaun Jackman
8e3e0be6d1 gettext, readline: Add keg_only :shadowed_by_osx
Closes Homebrew/homebrew#31951.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-08-28 17:01:38 -05:00
Jack Nagel
af804f7475 Remove another unnecessary default argument 2014-08-08 01:34:45 -05:00
Adam Vandenberg
88865416e9 document FormulaConflict 2014-05-12 21:22:01 -07:00
Jack Nagel
6b001f1e3b Add keg-only reason symbols for Xcode 4.3 and Xcode 5
Closes Homebrew/homebrew#28095.
2014-04-03 09:12:51 -05:00
Jack Nagel
8f1f1d8d8a Make keg_only validation lazy 2014-04-01 21:35:22 -05:00
Jack Nagel
a31fcb554c Move SoftwareSpec to a separate file 2013-09-14 10:16:52 -05:00
Jack Nagel
f6536e9c8b Reject versions that aren't strings 2013-06-28 21:18:04 -05:00
Jack Nagel
033ef09518 Detect versions in tag specs
Closes Homebrew/homebrew#18300.
Closes Homebrew/homebrew#20891.
2013-06-28 21:17:23 -05:00
Jack Nagel
74b60a561c Simplify custom version scheme handling 2013-06-28 21:17:12 -05:00
Jack Nagel
8b9a3a560f Separate formula conflicts from requirements
Closes Homebrew/homebrew#20357.
2013-06-09 13:45:25 -05:00
Mike McQuaid
bf828aa36b Bottle DSL: allow checksums access. 2013-06-08 16:41:44 +01:00
Jack Nagel
79a769215f Decouple bottle tags from MacOS.cat 2013-06-06 16:02:27 -05:00
Jack Nagel
856cebd9b4 Use ivar accessors 2013-06-06 12:10:41 -05:00
Jack Nagel
b97b013fce Extract attr_rw from Formula for reuse
Closes Homebrew/homebrew#20239.
2013-06-04 11:06:18 -05:00
Adam Vandenberg
903c340664 Audit url/devel/head for redundant :using 2013-05-27 22:25:34 -07:00
Mike McQuaid
a75aff246e Remove cat_without_underscores bottle methods. 2013-05-25 16:02:18 +01:00
Jack Nagel
9dda9339ad Remove dead code
This is initialized in #initialize.
2013-04-08 00:27:47 -05:00
Jack Nagel
dda22a3562 Rename checksums.rb to match class name 2013-04-04 12:34:24 -05:00
Jack Nagel
0d45c3c0f2 Suppress uninitialized instance variable warnings 2013-03-28 17:37:29 -05:00
Jack Nagel
c8168d8a4a Simplify SoftwareSpec checksum methods
Reader methods for specific checksum types have been absent from the
Formula class for some time, so there isn't any reason to expose them in
SoftwareSpec, either.

Thus, these methods now only act as setters, and #checksum should be
used to access the constructed Checksum object.
2013-03-18 15:10:36 -05:00
Jack Nagel
79a67fd097 Pass filename and lineno arguments to class_eval 2013-03-12 00:38:52 -05:00
Mike McQuaid
0f9910d352 Relocate bottles using install_name_tool.
This has two parts:

1. Bottles are temporarily relocated on bottling and tested if that is
sufficient for them to contain no longer reference the prefix or
cellar. If so, they are marked as relocatable.
2. On installation if bottles are marked as relocatable they will be
relocated using install_name_tool to the current prefix and cellar.

Closes Homebrew/homebrew#18374.
2013-03-11 18:58:37 +00:00
Jack Nagel
00f05eafe9 Remove redundant attr_readers
These are redefined later for use in the bottle DSL.
2013-03-09 22:44:53 -06:00
Mike McQuaid
5a2874c652 bottles: remove unused 'version' from DSL. 2013-03-09 21:27:41 +00:00
Mike McQuaid
20c0ddc401 Add non-/usr/local bottles support.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-03-01 17:49:09 +00:00
Mike McQuaid
22aec1d0d9 Add custom bottle URL support.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-03-01 17:49:09 +00:00
Mike McQuaid
360af367a8 Cleanup bottle DSL.
* Remove legacy url syntax.
* Use revision instead of version.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-03-01 17:49:09 +00:00
Jack Nagel
248891fde1 Avoid nil in URL specs 2013-02-11 20:52:07 -06:00
Mike McQuaid
b58077b3e8 Don't use underscores in (new) bottle filenames.
Closes Homebrew/homebrew#14270
2013-01-29 17:14:09 -08:00
Jack Nagel
5088fdd543 Move BuildOptions to a separate file 2013-01-26 11:37:02 -06:00
Jack Nagel
70ff06c827 Refactor option handling internals
Currently we handle options in several ways, and it is hard to remember
what code needs an option string ("--foo"), what needs only the name
("foo") and what needs an Option object.

Now that Option objects can act as strings and be converted to JSON, we
can start using them instead of passing around strings between Formula
objects, Tab objects, and ARGV-style arrays.

The Options class is a special collection that can be queried for the
inclusion of options in any form: '--foo', 'foo', or Option.new("foo").
2013-01-26 11:37:01 -06:00
Jack Nagel
26b1b88c97 BuildOptions: check has_option? for universal and 32-bit 2013-01-26 11:37:01 -06:00
Jack Nagel
cbf0fe6549 BuildOptions: simplify setting description 2013-01-26 11:37:01 -06:00
Jack Nagel
4062559acb Options can be dumped as JSON 2013-01-26 11:37:01 -06:00
Jack Nagel
a5471a0cb0 Options can be used interchangeably with Strings
We want to be able to use Option objects in place of strings and have
this be transparent. Defining to_str means that methods like
Kernel#system and Kernel#exec will be able to perform an implicit
conversion.
2013-01-26 11:37:01 -06:00
Jack Nagel
f3d3bc4368 Move option comparison into BuildOptions 2013-01-26 11:37:00 -06:00
Jack Nagel
39ec66614b Test coverage for DownloadStrategyDetector
While at it, make it use class methods instead; no reason to instantiate
an object for this.

Eventually there should be some functional tests for the individual
strategies as well.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-10-15 17:45:48 -05:00
Mike McQuaid
6400f41a77 Fix keg-only on pre-Mountain Lion formulae. 2012-08-23 09:49:08 -07:00