91 Commits

Author SHA1 Message Date
Andrew Janke
094f6f47dd Formula: include bad value in invalid-option error message
Makes identifying which line in a formula has the bad use of 'option' easier.

Closes #120.

Signed-off-by: Andrew Janke <andrew@apjanke.net>
2016-04-21 15:21:44 -04:00
Xu Cheng
478f18a8f5 software_spec: add ExternalPatch to dependency_collector
Since we support `apply` DSL in the `patch` block, external
patch files could be any compressed archive. As result, it
could introduce dependencies like xz, 7z etc.

Add the resource of ExternalPatch to dependency_collector, so
we could track these resource dependencies.

Closes Homebrew/homebrew#50318.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-03-22 19:44:16 +08:00
Mike McQuaid
26ec9f9ea0 formula: add new pour_bottle DSL with reason.
This allows there to be a user-visible description of why a bottle is
not being installed.
2016-02-18 10:21:20 +00:00
Mike McQuaid
74858b28c5 software_spec: add new bottle check class. 2016-02-18 10:21:20 +00:00
Xu Cheng
6c8c56a689 build: store source modified time in tabfile 2016-01-15 16:26:04 +08:00
Mike McQuaid
e5ba31fcdc Allow multiple option_names in dep/reqs.
This means that dependencies can be merged but still maintain all
their option names.

Closes Homebrew/homebrew#46916.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-12-15 08:37:16 +00:00
Xu Cheng
ff9fdc078f add Formula#bottle_defined? 2015-11-01 08:22:18 -08:00
Xu Cheng
b5032ad2cb Formula: add bottle disable DSL 2015-10-19 21:41:36 +08:00
William Woodruff
8793a68ee4 Add no-Xcode documentation for all classes, methods 2015-08-21 11:02:33 -07:00
William Woodruff
1face808f5 Add guards to calls that would trigger Xcode install requests
add guard in Formula#file_modified? to prevent git popup

add guard in Superenv.bin before calling MacOS::Xcode.version

add guard against missing Xcode/CLT in Xcode.uncached_version

return nil instread of 0 in uncached_version when Xcode/CLT are not present, to distinguish from linuxbrew behavior

checks against pour_bottle? and needs_relocation?, add guard around keg.relocate_install_names to check pour_bottle?/needs_relocation? as well

needs_relocation? becomes skip_relocation?, use cellar attr to indicate relocation instead of does_not_need_relocation

MacOS.can_build? becomes MacOS.has_apple_developer_tools?
2015-08-21 11:02:33 -07:00
William Woodruff
ab10ab42fa BottleSpecification: add does_not_need_relocation field
Toggled with does_not_need_relocation method in bottle block.
Also declare needs_relocation? accessors in software/bottle specs.
2015-08-21 10:56:23 -07:00
BrewTestBot
13d544e11e Core files style updates.
Closes Homebrew/homebrew#42354.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-08-03 13:22:35 +01:00
Xu Cheng
ab9a62370f support downloading bottles through 3rd-party mirror
Closes Homebrew/homebrew#41328.

Closes Homebrew/homebrew#41332.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-07-06 18:05:00 +08:00
Xu Cheng
024c2d508b auto resolve bottle root_url based on tap 2015-07-06 18:04:59 +08:00
Xu Cheng
10bc99ff7b SoftwareSpec: add full_name field 2015-05-29 17:01:53 +08:00
Tim D. Smith
5a0ec0c491 add SoftwareSpec#go_resource
by analogy to similar code in formula.rb.

Permits Homebrew/homebrew#37877. Closes Homebrew/homebrew#38330.
2015-04-06 20:26:52 -07:00
Xu Cheng
c46e2dc196 software_spec: ignore bottles compatibility if --force-bottle is passed
Closes Homebrew/homebrew#38123.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-03-28 13:06:15 +08:00
Mike McQuaid
3933b84dea software_spec: check if bottles are compatible.
The `bottled?` method makes more sense when it also checks for
compatibility.

This is particularly useful for the case in `brew info` so it prints out
`(bottled)` correctly depending on the `Cellar`.

Closes Homebrew/homebrew#37636.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-03-17 09:16:57 +00:00
Mike McQuaid
17bfb0f804 Remove SourceForge references.
It was fun but we just love Bintray more than you.

Closes Homebrew/homebrew#37211.

Closes Homebrew/homebrew#37213.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-02-26 11:32:42 +00:00
Mike McQuaid
77d47de3b4 Switch bottle provider over to Bintray. 2015-02-19 16:57:30 +00:00
Mike McQuaid
635681401e software_spec: use homebrew Bintray subdomain.
Also: split into two variables so they can be used for taps.
2015-02-19 12:58:53 +00:00
Mike McQuaid
38f9a78c29 Add initial Bintray upload support. 2015-02-17 18:57:59 +00:00
Jack Nagel
0f01e9ff43 Remove the direct url writer from Resource 2015-01-08 14:18:41 -05:00
Mike McQuaid
d0240e7cd4 formula: add spec deprecated_option DSL. 2014-10-19 13:58:52 +01:00
Mike McQuaid
02e10beb7c Add deprecated_option to software_spec.
Allows remapping one option name to another and updates build options
and flags accordingly.
2014-10-19 13:58:52 +01:00
Jack Nagel
ae88549797 Remove fails_with? from the formula instance 2014-09-18 15:50:54 -05:00
Misty De Meo
4743fc1662 Add Go language module, resources
This introduces a new GoResource category of resource. GoResources
have a specialized stage method which allows a resource to stage
itself into a gopath.

The new Go language module provides a one-liner to stage all
GoResources present in the formula.
2014-09-01 19:56:43 -07:00
Jack Nagel
b14851903c Add a method for retrieving only flags from ARGV 2014-08-29 19:38:32 -05:00
Jack Nagel
7adbb1ccb9 Single character options should not be used in a formula 2014-08-28 23:54:00 -05:00
Jack Nagel
023f02b90a Make fails_with available in spec blocks
Closes Homebrew/homebrew#31706.
2014-08-19 17:14:02 -05:00
Jack Nagel
268cd143be Replace Options.coerce with an alternate constructor 2014-08-13 11:09:57 -05:00
Jack Nagel
c5a888fb3a Always pass an Options instance to the BuildOptions constructor 2014-08-13 11:09:57 -05:00
Mike McQuaid
9f14262d92 Revert "Always pass an Options instance to the BuildOptions constructor"
This reverts commit e143bcef259ca76b2124e6e73bd9bdf872418723.

Closes Homebrew/homebrew#31557.
Closes Homebrew/homebrew#31559.
Closes Homebrew/homebrew#31561.
Closes Homebrew/homebrew#31562.
2014-08-13 08:46:17 +01:00
Mike McQuaid
a61c3615d2 Revert "Replace Options.coerce with an alternate constructor"
This reverts commit 8d2ef974a3a87bf4207f71ccb8a7b4776e16a016.
2014-08-13 08:45:06 +01:00
Jack Nagel
25395c6de6 Replace Options.coerce with an alternate constructor 2014-08-12 23:55:28 -05:00
Jack Nagel
ecaf1592a0 Always pass an Options instance to the BuildOptions constructor 2014-08-12 20:09:35 -05:00
Jack Nagel
d122ae8eea Handle legacy options in the method_added hook
We only need to process the legacy options at load time, not each time
the class is instantiated, and only when there is an options method
defined.
2014-08-10 21:45:23 -05:00
Jack Nagel
0c51cf1245 Use predefined options for universal, cxx11, and 32-bit options
:universal and :cxx11 are now handled directly, so we don't need to
always convert symbols to strings in this method. Symbols should be
reserved for future use.
2014-08-07 10:45:32 -05:00
Jack Nagel
efd63447d8 Move management of options collection to the spec object 2014-08-07 10:45:32 -05:00
Jack Nagel
acc1c35f35 Raise ArgumentError for argument errors 2014-08-07 00:48:13 -05:00
Jack Nagel
f4ae1c9e1b Hide the options data structure better 2014-07-31 19:59:09 -05:00
Jack Nagel
abdff27cd7 Make options available on the spec objects 2014-07-31 19:37:39 -05:00
Jack Nagel
bc937f56e7 Rename resource? to resource_defined? 2014-07-30 18:56:37 -05:00
Jack Nagel
a55e196f5f Simplify internal representation of patches
- remove support for IO objects, since we no longer access ::DATA
   directly
 - since we don't need to support IO objects, use a separate class for
   string patches and stop wrapping strings in StringIO ojects
2014-07-29 16:22:06 -05:00
Jack Nagel
c3a5b1152e Stop exposing the downloader as an attribute 2014-07-22 19:14:30 -05:00
Jack Nagel
d99379bc63 Hide the downloader implementation from the installer 2014-07-22 19:14:30 -05:00
Jack Nagel
6f02314cba Add a factory method that accepts a formula object 2014-07-18 15:15:12 -05:00
Jack Nagel
49a97c280a Ask the filename object for the prefix 2014-07-18 15:15:12 -05:00
Jack Nagel
1cc3747094 Move bottle URL construction to the bottle object 2014-07-18 15:15:11 -05:00
Jack Nagel
a87d2108ea Move bottle filename construction to a class 2014-07-18 15:14:57 -05:00