Since `system` escapes its own spaces, cabal was interpreting
`--flags='webapp s3'` as `+'webapp +s3'` rather than `+webapp +s3`.
Closes#267.
Signed-off-by: ilovezfs <ilovezfs@icloud.com>
* add Language::Node helper module
This adds a language module for Node module based formulas.
It contains the 2 public methods `std_npm_install_args(libexec)` and
`local_npm_install_args`:
* `std_npm_install_args` is intended to be used in formulas for
standard node modules and returns `npm install` args for a global
style module installation to libexec.
* `local_npm_install_args` is for formulas, in which the `npm install`
step is only one of multiple parts of the installation process and
returns `npm install` args for a default local installation in place.
Both methods have in common, that they are
* making sure that a working copy of npm and node-gyp from node's
libexec is prepended to the PATH (to not rely of a user managed npm)
* seting the npm cache to HOMEBREW_CACHE/npm, which fixes issues caused
by overriding $HOME resulting in long install times + high disk usage
(see https://github.com/Homebrew/brew/pull/37#issuecomment-208840366)
* audit: update npm install check for Language::Node
* cleanup: remove npm_cache too
* doc: add Node-for-Formula-Authors.md
Fixes a regression introduced by Homebrew/homebrew#47950 in 9e3ee3e causing build
failures with the error
cabal: The file does not exist ''.
This will occur whenever the optional :flags key isn't in the options
hash passed to install_cabal_package.
ClosesHomebrew/homebrew#49425.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
To address issue Homebrew/homebrew#47346 (git-annex-webapp missing), we explicitly
enable the "webapp" flag for git-annex. This should prevent git-annex
from being built without the webapp and make the build fail if there is
e.g. a dependency issue.
ClosesHomebrew/homebrew#47950.
Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
The default max-backjumps can be too low, especially since
Language::Haskell::Cabal doesn't guarantee an LTS config.
In particular, this fixes a git-annex build failure in Homebrew/homebrew#47950ClosesHomebrew/homebrew#49158.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Removes the need to call setup_ghc_compilers in every Haskell language
formula, by automatically calling fails_with.
Adds a :home option to the cabal_sandbox method. This option allows a
specific temporary HOME to be used instead of the current working
directory, and in turn allows a single Cabal package database to be reused
between multiple calls to this method.
Avoids updating the Cabal package database more than once if cabal_sandbox
is called multiple times.
Removes the need to call cabal_clean_lib whenever cabal_sandbox is called,
by automatically cleaning the lib directory.
Adds a :keep_lib option to the cabal_sandbox method. This option allows
opting out of the automatic cleaning.
Ensures build products are always removed from the current working
directory.
Removes a workaround for versions of cabal-install older than 1.20.0.0.
Adds a cabal_sandbox_add_source method.
Adds a :using option to the install_cabal_package method. This option
allows specifying the Haskell language tools that are required to install
a particular formula, and in turn allows formulae to be simplified by
replacing calls to multiple methods with a single call to this method.
Allows customizing the call to install_cabal_package by giving a block.
Removes empty method shells.
ClosesHomebrew/homebrew#47293.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Remove duplication, link to the API documentation more often,
tweak wording, add `@UniqMartin` as a maintainer, note `@jacknagel`'s
and `@adamv`'s significant past contributions to Homebrew, delete some
outdated or unneeded documentation, add some missing `Formula` API.
entries and simplify/improve `CONTRIBUTING.md`.
ClosesHomebrew/homebrew#46179.
ClosesHomebrew/homebrew#46618.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
- Fix static GMP
- Remove --32-bit option (ghc 7.6 or newer is needed to build).
- Building with llvm-gcc and 7.6.3 works on Snow Leopard and Lion.
ClosesHomebrew/homebrew#39134.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Add a helper like std_cmake_args that returns the correct incantation
for invoking setup.py in a consistent way and with our preferred
arguments. Replaces setup_install.
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.
installing git-annex with cabal-install is quite long and requires to install
some heavy packages. It also has several external lib dependencies and needs a
few configuration flags to build so it is quite difficult to install too.
This formula should make it easy and quick to install with a bottle.
The huge number of haskell dependencies is built within the formula and statically
linked to git-annex. The haskell libraries built are discarded - cabal-install
should be used instead of this package in order to keep them.