31889 Commits

Author SHA1 Message Date
Dawid Dziurla
e75218c0e9
Dockerfile: yes apt 2022-04-24 23:31:03 +02:00
Dawid Dziurla
7d1a97f015
Dockerfile: purge unneeded packages 2022-04-24 23:25:30 +02:00
Dawid Dziurla
ac57c4bb89
Dockerfile: gpg-agent only 2022-04-24 23:05:46 +02:00
Dawid Dziurla
7972c332e8
Dockerfile: install gpg 2022-04-24 22:46:31 +02:00
Dawid Dziurla
7ffaaf8c9a
Dockerfile: install gpg agent 2022-04-24 22:43:09 +02:00
Dawid Dziurla
9fab6ae7d9
Dockerfile: install gnupg 2022-04-24 22:39:03 +02:00
Dawid Dziurla
3e88dcb7f7
workflows/docker: add 22.04 2022-04-24 22:33:47 +02:00
Sam Ford
3f7d9f82fc
#curl_download: default try_partial to false
When its `try_partial` argument is `true`, `#curl_download` makes a
`HEAD` request before downloading the file using `#curl`. Currently
`try_partial` defaults to `true`, so any `#curl_download` call that
doesn't explicitly specify `try_partial: false` will make a `HEAD`
request first. This can potentially involve several requests if the
URL redirects, so it can be a bit of unnecessary overhead when a
partial download isn't needed.

Partial downloads are generally only useful when we're working with
larger files, however there's currently only one place in brew where
`#curl_download` is used and this is the case:
`CurlDownloadStrategy`. The other `#curl_download` calls are fetching
smaller [text] files and don't need to support partial downloads.

This commit changes the default `try_partial` value to `false`,
making partial downloads opt-in rather than opt-out.

We want `try_partial` to continue to default to `true` in
`CurlDownloadStrategy` and there are various ways to accomplish this.
In this commit, I've chosen to update its `#initialize` method to
accept a `try_partial` argument that defaults to `true`, as this
value can also be used in classes that inherit from
`CurlDownloadStrategy` (e.g., `HomebrewCurlDownloadStrategy`). This
instance variable is passed to `#curl_download` in related methods,
effectively maintaining the previous `try_partial: true` value, while
also allowing this value to be overridden when necessary.

Other uses of `#curl_download` in brew are
`Formulary::FromUrlLoader#load_file` and
`Cask::CaskLoader::FromURILoader#load`, which did not provide a
`try_partial` argument but should have been using
`try_partial: false`. With the `try_partial: false` default in this
commit, these calls are now fine without a `try_partial` argument.

The only other use of `#curl_download` in brew is
`SPDX#download_latest_license_data!`. These calls were previously
using `try_partial: false` but we can now omit this argument with
the new `false` default (aligning with the above).
2022-04-22 14:23:08 -04:00
Sam Ford
ef5d8ed8b0
Strategy: Add --max-redirs to DEFAULT_CURL_ARGS
The default redirection maximum for `curl` is 50 but we should use
something more reasonable in livecheck. It's rare but a misconfigured
server with an endless redirection loop will hit the 50 redirection
limit. Unfortunately, we've encountered this in the wild (e.g., the
server for `getmail` and `memtester` endlessly redirects), so it's
not an idle concern. This commit basically adds `--max-redirs 5` to
`Livecheck::Strategy::DEFAULT_CURL_ARGS` to enforce a more reasonable
redirection maximum.

To be clear, the `max_iterations` logic in `#parse_curl_output`
(which was previously found in `Strategy#page_content`) doesn't
restrict the number of redirections that `curl` follows. At the point
the `curl` output is being parsed, the requests have already been
made and `max_iterations` simply restricts the number of responses
`#parse_curl_output` is willing to parse. If we use `--max-redirs`
and properly set `max_iterations` to `max-redirs + 1`, we shouldn't
encounter the "Too many redirects" error in `#parse_curl_output`.
2022-04-22 13:39:02 -04:00
Sam Ford
2722fbe30e
#parse_curl_output: add max_iterations parameter
In cases where there may be more than five responses in `curl`
output to parse, we need to be able to control the `max_iterations`
of the `while` loop in `#parse_curl_output` to properly parse all
the responses.

For example, if we pass `--max-redirs 5` to `curl` and there are
exactly five redirections before the final response, the output would
contain a total of six responses and `#parse_curl_output` wouldn't
properly handle this (it would give a `Too many redirects` error).
`max_iterations` should be the maximum number of redirections + 1
(to account for any final response after the redirections), so we
need to be able to override this value when necessary.
2022-04-22 13:17:45 -04:00
Mike McQuaid
c2eaeed0b5
Merge pull request #13167 from MikeMcQuaid/governance
docs/governance: import from homebrew-governance.
3.4.8
2022-04-22 17:18:21 +01:00
Mike McQuaid
a8f77b5638
docs/governance: import from homebrew-governance.
Saves us having Yet Another Public Repository.
2022-04-22 11:48:32 -04:00
Mike McQuaid
33398d7710
Merge pull request #13178 from Homebrew/update-man-completions
Update maintainers, manpage and completions.
2022-04-22 14:51:59 +01:00
Alexander Bayandin
3f95cdd80f
Merge pull request #13177 from bayandin/allow_underscore_in_cask_names
tap_constants: allow to use underscore in cask names
2022-04-22 14:28:06 +01:00
BrewTestBot
2c46163414
Update maintainers, manpage and completions.
Autogenerated by the [update-man-completions](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/update-man-completions.yml) workflow.
2022-04-22 13:24:57 +00:00
Mike McQuaid
add2991d4f
Merge pull request #13147 from pmrowla/update-python-resources-env
bump-formula-pr: expose update-python-resources CLI flags
2022-04-22 14:23:15 +01:00
Mike McQuaid
aaa4f5ec7e
Merge pull request #13172 from Homebrew/dependabot/github_actions/codecov/codecov-action-3.1.0
build(deps): bump codecov/codecov-action from 3.0.0 to 3.1.0
2022-04-22 14:17:45 +01:00
Alexander Bayandin
8dbbb20f08
tap_constants: allow to use underscore in cask names 2022-04-22 12:24:31 +01:00
Bo Anderson
a8bb0d6581
Merge pull request #13174 from Bo98/gcc-major
extend/os/linux/keg_relocate: restore checking only GCC major versions
2022-04-22 02:09:47 +01:00
Bo Anderson
6db3ee6b0a
extend/os/linux/keg_relocate: restore checking only GCC major versions 2022-04-22 01:41:23 +01:00
Bo Anderson
b2a896eec6
Merge pull request #13065 from xxyzz/skip_build_deps
Skip build deps to avoid downloading bottles
2022-04-22 01:33:44 +01:00
dependabot[bot]
9a9704a96e
build(deps): bump codecov/codecov-action from 3.0.0 to 3.1.0
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](e3c560433a...81cd2dc814)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 18:04:00 +00:00
Mike McQuaid
c1a9ce62aa
Merge pull request #13163 from Homebrew/dependabot/bundler/Library/Homebrew/rubocop-rspec-2.10.0
build(deps): bump rubocop-rspec from 2.9.0 to 2.10.0 in /Library/Homebrew
2022-04-21 15:33:54 +01:00
Sam Ford
92e4a5e583
Merge pull request #11252 from samford/curl-add-response-parsing-methods
Curl: Add methods to parse response
2022-04-21 10:25:01 -04:00
Peter Rowlands
e794b913c8 bump-formula-pr: expose update-python-resources CLI flags 2022-04-21 16:12:37 +09:00
Sam Ford
1c4faaa5d5
Strategy: Use Curl output parsing methods 2022-04-20 23:49:18 -04:00
Sam Ford
13e3f704c9
Cask::Audit: Account for nil appcast_contents 2022-04-20 23:47:51 -04:00
Sam Ford
9355da5291
DownloadStrategy: Use #curl_response_last_location 2022-04-20 23:47:51 -04:00
Sam Ford
c5eeff941e
Curl: Update to use response parsing methods 2022-04-20 23:47:51 -04:00
Sam Ford
9171eb2e16
Curl: Add methods to parse response 2022-04-20 23:47:51 -04:00
BrewTestBot
4ffc69764a
Update RBI files for rubocop-rspec. 2022-04-20 12:40:31 +00:00
BrewTestBot
5e64a50464
brew vendor-gems: commit updates. 2022-04-20 12:36:06 +00:00
dependabot[bot]
99af12597b
build(deps): bump rubocop-rspec in /Library/Homebrew
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.9.0...v2.10.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-20 12:33:30 +00:00
Bo Anderson
ce5cb9b745
Merge pull request #13165 from Homebrew/update-man-completions
Update maintainers, manpage and completions.
2022-04-20 02:36:56 +01:00
BrewTestBot
3249082165
Update maintainers, manpage and completions.
Autogenerated by the [update-man-completions](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/update-man-completions.yml) workflow.
2022-04-20 00:09:30 +00:00
Mike McQuaid
2d9bfc62be
Merge pull request #13158 from apainintheneck/tests-changed-switch
Added --changed option to "brew tests" dev cmd
2022-04-19 19:11:51 +01:00
apainintheneck
b7d88225bb Added --changed option to "brew tests" dev cmd
This option allows the user to run tests on all
files that have been changed from the master
branch.
2022-04-19 09:53:45 -07:00
Issy Long
baceee9d24
Merge pull request #13149 from issyl0/add-code-scanning-workflow 2022-04-18 19:49:38 +01:00
Bo Anderson
5d28c5166b
linkage_checker: deprecate linkage to libcrypt.so.1 2022-04-18 16:42:08 +01:00
Bo Anderson
6ec9095946
utils: add disable_for_developers option for odeprecated 2022-04-18 16:41:58 +01:00
Issy Long
6dd6758824
workflows/codeql: Improve branch triggers and remove fail-fast
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2022-04-18 15:17:17 +01:00
Michka Popoff
09e766f83c
Merge pull request #13156 from iMichka/security
SECURITY.md: delete
3.4.7
2022-04-18 10:37:59 +02:00
Michka Popoff
53a2e062da
SECURITY.md: delete
This is being replaced by https://github.com/Homebrew/.github/pull/58
2022-04-18 10:10:52 +02:00
Issy Long
0016baa1cd
workflows/codeql: Don't run on schedule, and no need for a matrix
- These were the defaults generated when I clicked the "enable Code
  Scanning" button on GitHub, but...
- Since we only have Ruby in this repo, we don't need a matrix, we can
  just specify `languages: ruby`.
- And this repo gets enough usage that the schedule is not very useful -
  who would look at the scheduled run vs. it running every day on PRs?
2022-04-15 17:36:18 +01:00
Issy Long
94d8bd5d32
download_strategy: In regexps, only allow valid hostname characters
> This regular expression has an unrestricted wildcard '.+?' which may cause 'googlecode\.com/svn' to be matched anywhere in the URL, outside the hostname.
2022-04-15 16:45:42 +01:00
Issy Long
f8d9a5c2db
rubocops/urls: In regexps, only allow valid hostname characters
> This regular expression has an unrestricted wildcard '.*' which may cause 'googlecode\.com/files' to be matched anywhere in the URL, outside the hostname.
2022-04-15 16:45:41 +01:00
Issy Long
aa36b343ca
rubocops/urls: Escape .s in hostnames in regexps 2022-04-15 16:45:25 +01:00
Issy Long
ffe0c18b2a
rubocops/homepage: Escape .s in hostnames in regexps 2022-04-15 15:46:36 +01:00
Issy Long
63742cd480
dev-cmd/bump-formula-pr: Escape .s in hostnames in regexps
> This regular expression has an unescaped '.' before 'apache.org/dyn/closer', so it might match more hosts than expected.
2022-04-15 15:36:46 +01:00
Issy Long
266daffbd1
workflows: Add Code Scanning
- https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning
- I just joined the Code Scanning team at work and I figured I'd test out the actual product in the real world by seeing what things it points out for Homebrew, a reasonably large Ruby project.
- This adds a config file to exclude `Library/Homebrew/vendor` as we can't fix problems within gems. :-)
2022-04-15 15:24:49 +01:00