Top Level Namespace

Defined Under Namespace

Modules: APIHashable, Attrable, Cachable, Cask, Commands, CompilerConstants, Context, Debrew, Dependable, DependenciesHelpers, DeprecateDisable, DiskUsageExtension, ELFShim, Enumerable, EnvActivation, EnvMethods, Formatter, FormulaCellarChecks, FormulaClassUnavailableErrorModule, FormulaUnreadableErrorModule, Formulary, GitHub, Hardware, Homebrew, IRB, Ignorable, InstallRenamed, InstalledDependents, Kernel, Language, MacOSVersionErrorCompat, MacOSVersions, MachOShim, Metafiles, OS, ObserverPathnameExtension, OnSystem, Patch, PyPI, Readall, Repology, RuboCop, SPDX, SharedAudits, SharedEnvExtension, Singleton, Stdenv, Superenv, SystemConfig, Tapioca, Tty, UnpackStrategy, Utils, Warnings Classes: AbstractCoreTap, AbstractDownloadStrategy, AbstractFileDownloadStrategy, ArchRequirement, Array, Attr, BazaarDownloadStrategy, Bottle, BottleFormulaUnavailableError, BottleSpecification, Build, BuildEnvironment, BuildError, BuildFlagsError, BuildOptions, CVSDownloadStrategy, CacheStore, CacheStoreDatabase, CannotInstallFormulaError, CaskDependent, CaskDescriptionCacheStore, CaskLock, Caveats, Checksum, ChecksumMismatchError, ChecksumMissingError, ChildProcessError, Cleaner, CodesignRequirement, CompilerFailure, CompilerSelectionError, CompilerSelector, CoreCaskTap, CoreTap, CurlApacheMirrorDownloadStrategy, CurlDownloadStrategy, CurlDownloadStrategyError, CurlGitHubPackagesDownloadStrategy, CurlPostDownloadStrategy, CxxStdlib, CyclicDependencyError, DATAPatch, Dependencies, Dependency, DependencyCollector, DeprecatedOption, DescriptionCacheStore, Descriptions, DevelopmentTools, DownloadError, DownloadStrategyDetector, Downloadable, DuplicateResourceError, ENV, EmbeddedPatch, ErrorDuringExecution, ExternalPatch, FalseClass, File, Formula, FormulaAmbiguousPythonError, FormulaClassUnavailableError, FormulaConflict, FormulaConflictError, FormulaInfo, FormulaInstallationAlreadyAttemptedError, FormulaInstaller, FormulaLock, FormulaOrCaskUnavailableError, FormulaOrCaskUnspecifiedError, FormulaPin, FormulaSpecificationError, FormulaUnavailableError, FormulaUnknownPythonError, FormulaUnreadableError, FormulaUnspecifiedError, FormulaValidationError, FormulaVersions, FossilDownloadStrategy, GitDownloadStrategy, GitHubArtifactDownloadStrategy, GitHubGitDownloadStrategy, GitHubPackages, GitHubReleases, GitHubRunner, GitHubRunnerMatrix, GitRepository, Hash, HeadSoftwareSpec, HomebrewCurlDownloadStrategy, HomebrewCurlDownloadStrategyError, IO, Keg, KegOnlyReason, KegUnspecifiedError, LazyObject, LinkageCacheStore, LinkageChecker, LinuxRequirement, LinuxRunnerSpec, Livecheck, LocalBottleDownloadStrategy, Locale, LockFile, MacOSRequirement, MacOSRunnerSpec, MacOSVersion, Mechanize, MercurialDownloadStrategy, Messages, Method, MethodDeprecatedError, Migrator, MissingApplyError, Mktemp, Module, MultipleVersionsInstalledError, NilClass, NoSuchKegError, NoUnzipCurlDownloadStrategy, NotAKegError, Numeric, Object, OperationInProgressError, Option, Options, PATH, Pathname, PkgVersion, PourBottleCheck, Reporter, ReporterHub, Requirement, Requirements, Resource, ResourceMissingError, ResourceStageContext, Sandbox, ShebangDetectionError, SoftwareSpec, Sorbet, String, StringInreplaceExtension, StringPatch, SubversionDownloadStrategy, Symbol, SystemCommand, Tab, Tap, TapAlreadyTappedError, TapConfig, TapCoreRemoteMismatchError, TapFormulaAmbiguityError, TapFormulaClassUnavailableError, TapFormulaOrCaskUnavailableError, TapFormulaUnavailableError, TapFormulaUnreadableError, TapNoCustomRemoteError, TapRemoteMismatchError, TapUnavailableError, TestRunnerFormula, Time, TrueClass, URL, UnbottledError, UnboundMethod, UnsatisfiedRequirements, UnsupportedInstallationMethod, UsageError, User, UsesFromMacOSDependency, VCSDownloadStrategy, Version, XcodeRequirement

Constant Summary collapse

TEST_TIMEOUT_SECONDS =
5 * 60
HOMEBREW_API_DEFAULT_DOMAIN =
ENV.fetch("HOMEBREW_API_DEFAULT_DOMAIN").freeze
HOMEBREW_BOTTLE_DEFAULT_DOMAIN =
ENV.fetch("HOMEBREW_BOTTLE_DEFAULT_DOMAIN").freeze
HOMEBREW_BREW_DEFAULT_GIT_REMOTE =
ENV.fetch("HOMEBREW_BREW_DEFAULT_GIT_REMOTE").freeze
HOMEBREW_CORE_DEFAULT_GIT_REMOTE =
ENV.fetch("HOMEBREW_CORE_DEFAULT_GIT_REMOTE").freeze
HOMEBREW_DEFAULT_CACHE =
ENV.fetch("HOMEBREW_DEFAULT_CACHE").freeze
HOMEBREW_DEFAULT_LOGS =
ENV.fetch("HOMEBREW_DEFAULT_LOGS").freeze
HOMEBREW_DEFAULT_TEMP =
ENV.fetch("HOMEBREW_DEFAULT_TEMP").freeze
HOMEBREW_REQUIRED_RUBY_VERSION =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

ARGV.first.freeze
HOMEBREW_PRODUCT =
ENV.fetch("HOMEBREW_PRODUCT").freeze
HOMEBREW_VERSION =
ENV.fetch("HOMEBREW_VERSION").freeze
HOMEBREW_WWW =
"https://brew.sh"
HOMEBREW_API_WWW =
"https://formulae.brew.sh"
HOMEBREW_DOCS_WWW =
"https://docs.brew.sh"
HOMEBREW_SYSTEM =
ENV.fetch("HOMEBREW_SYSTEM").freeze
HOMEBREW_PROCESSOR =
ENV.fetch("HOMEBREW_PROCESSOR").freeze
HOMEBREW_PHYSICAL_PROCESSOR =
ENV.fetch("HOMEBREW_PHYSICAL_PROCESSOR").freeze
HOMEBREW_BREWED_CURL_PATH =
Pathname(ENV.fetch("HOMEBREW_BREWED_CURL_PATH")).freeze
HOMEBREW_USER_AGENT_CURL =
ENV.fetch("HOMEBREW_USER_AGENT_CURL").freeze
HOMEBREW_USER_AGENT_RUBY =
"#{ENV.fetch("HOMEBREW_USER_AGENT")} ruby/#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}".freeze
HOMEBREW_USER_AGENT_FAKE_SAFARI =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 " \
"(KHTML, like Gecko) Version/17.0 Safari/605.1.15"
HOMEBREW_GITHUB_PACKAGES_AUTH =
ENV.fetch("HOMEBREW_GITHUB_PACKAGES_AUTH").freeze
HOMEBREW_DEFAULT_PREFIX =
ENV.fetch("HOMEBREW_GENERIC_DEFAULT_PREFIX").freeze
HOMEBREW_DEFAULT_REPOSITORY =
ENV.fetch("HOMEBREW_GENERIC_DEFAULT_REPOSITORY").freeze
HOMEBREW_MACOS_ARM_DEFAULT_PREFIX =
ENV.fetch("HOMEBREW_MACOS_ARM_DEFAULT_PREFIX").freeze
HOMEBREW_MACOS_ARM_DEFAULT_REPOSITORY =
ENV.fetch("HOMEBREW_MACOS_ARM_DEFAULT_REPOSITORY").freeze
HOMEBREW_LINUX_DEFAULT_PREFIX =
ENV.fetch("HOMEBREW_LINUX_DEFAULT_PREFIX").freeze
HOMEBREW_LINUX_DEFAULT_REPOSITORY =
ENV.fetch("HOMEBREW_LINUX_DEFAULT_REPOSITORY").freeze
HOMEBREW_PREFIX_PLACEHOLDER =
"$HOMEBREW_PREFIX"
HOMEBREW_CELLAR_PLACEHOLDER =
"$HOMEBREW_CELLAR"
HOMEBREW_HOME_PLACEHOLDER =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Needs a leading slash to avoid File.expand.path complaining about non-absolute home.

"/$HOME"
HOMEBREW_CASK_APPDIR_PLACEHOLDER =
"$APPDIR"
HOMEBREW_MACOS_NEWEST_UNSUPPORTED =
ENV.fetch("HOMEBREW_MACOS_NEWEST_UNSUPPORTED").freeze
HOMEBREW_MACOS_OLDEST_SUPPORTED =
ENV.fetch("HOMEBREW_MACOS_OLDEST_SUPPORTED").freeze
HOMEBREW_MACOS_OLDEST_ALLOWED =
ENV.fetch("HOMEBREW_MACOS_OLDEST_ALLOWED").freeze
HOMEBREW_PULL_API_REGEX =
%r{https://api\.github\.com/repos/([\w-]+)/([\w-]+)?/pulls/(\d+)}
HOMEBREW_PULL_OR_COMMIT_URL_REGEX =
%r[https://github\.com/([\w-]+)/([\w-]+)?/(?:pull/(\d+)|commit/[0-9a-fA-F]{4,40})]
HOMEBREW_BOTTLES_EXTNAME_REGEX =
/\.([a-z0-9_]+)\.bottle\.(?:(\d+)\.)?tar\.gz$/
ORIGINAL_PATHS =
PATH.new(ENV.fetch("HOMEBREW_PATH")).filter_map do |p|
  Pathname.new(p).expand_path
rescue
  nil
end.freeze
SOURCE_PATH =
(HOMEBREW_LIBRARY_PATH/"manpages").freeze
TARGET_MAN_PATH =
(HOMEBREW_REPOSITORY/"manpages").freeze
TARGET_DOC_PATH =
(HOMEBREW_REPOSITORY/"docs").freeze
BUG_REPORTS_URL =
"https://github.com/Homebrew/homebrew-cask#reporting-bugs"
GZIP_BUFFER_SIZE =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Apple’s gzip also uses zlib so use the same buffer size here. https://github.com/apple-oss-distributions/file_cmds/blob/file_cmds-400/gzip/gzip.c#L147

64 * 1024
FORMULA_COMPONENT_PRECEDENCE_LIST =
T.let([
  [{ name: :include,   type: :method_call }],
  [{ name: :desc,      type: :method_call }],
  [{ name: :homepage,  type: :method_call }],
  [{ name: :url,       type: :method_call }],
  [{ name: :mirror,    type: :method_call }],
  [{ name: :version,   type: :method_call }],
  [{ name: :sha256,    type: :method_call }],
  [{ name: :license, type: :method_call }],
  [{ name: :revision, type: :method_call }],
  [{ name: :version_scheme, type: :method_call }],
  [{ name: :head,      type: :method_call }],
  [{ name: :stable,    type: :block_call }],
  [{ name: :livecheck, type: :block_call }],
  [{ name: :bottle,    type: :block_call }],
  [{ name: :pour_bottle?, type: :block_call }],
  [{ name: :head,      type: :block_call }],
  [{ name: :bottle,    type: :method_call }],
  [{ name: :keg_only,  type: :method_call }],
  [{ name: :option,    type: :method_call }],
  [{ name: :deprecated_option, type: :method_call }],
  [{ name: :disable!, type: :method_call }],
  [{ name: :deprecate!, type: :method_call }],
  [{ name: :depends_on, type: :method_call }],
  [{ name: :uses_from_macos, type: :method_call }],
  [{ name: :on_macos, type: :block_call }],
  *MacOSVersion::SYMBOLS.keys.map do |os_name|
    [{ name: :"on_#{os_name}", type: :block_call }]
  end,
  [{ name: :on_system, type: :block_call }],
  [{ name: :on_linux, type: :block_call }],
  [{ name: :on_arm, type: :block_call }],
  [{ name: :on_intel, type: :block_call }],
  [{ name: :conflicts_with, type: :method_call }],
  [{ name: :skip_clean, type: :method_call }],
  [{ name: :cxxstdlib_check, type: :method_call }],
  [{ name: :link_overwrite, type: :method_call }],
  [{ name: :fails_with, type: :method_call }, { name: :fails_with, type: :block_call }],
  [{ name: :go_resource, type: :block_call }, { name: :resource, type: :block_call }],
  [{ name: :patch, type: :method_call }, { name: :patch, type: :block_call }],
  [{ name: :needs, type: :method_call }],
  [{ name: :allow_network_access!, type: :method_call }],
  [{ name: :deny_network_access!, type: :method_call }],
  [{ name: :install, type: :method_definition }],
  [{ name: :post_install, type: :method_definition }],
  [{ name: :caveats, type: :method_definition }],
  [{ name: :plist_options, type: :method_call }, { name: :plist, type: :method_definition }],
  [{ name: :test, type: :block_call }],
].freeze, T::Array[[{ name: Symbol, type: Symbol }]])
OFFICIAL_CASK_TAPS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

%w[
  cask
  cask-fonts
  cask-versions
].freeze
OFFICIAL_CMD_TAPS =
{
  "homebrew/aliases"           => ["alias", "unalias"],
  "homebrew/bundle"            => ["bundle"],
  "homebrew/command-not-found" => ["command-not-found-init", "which-formula", "which-update"],
  "homebrew/test-bot"          => ["test-bot"],
  "homebrew/services"          => ["services"],
}.freeze
DEPRECATED_OFFICIAL_TAPS =
%w[
  apache
  binary
  cask-drivers
  cask-eid
  completions
  devel-only
  dupes
  emacs
  fuse
  games
  gui
  head-only
  livecheck
  nginx
  php
  python
  science
  tex
  versions
  x11
].freeze
HOMEBREW_TAP_FORMULA_NAME_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match a formula name.

T.let(/(?<name>[\w+\-.@]+)/, Regexp)
HOMEBREW_TAP_FORMULA_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match taps’ formulae, e.g. someuser/sometap/someformula.

T.let(
  %r{\A(?<user>[^/]+)/(?<repo>[^/]+)/#{HOMEBREW_TAP_FORMULA_NAME_REGEX.source}\Z},
  Regexp,
)
HOMEBREW_DEFAULT_TAP_FORMULA_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match default formula taps’ formulae, e.g. homebrew/core/someformula or someformula.

T.let(
  %r{\A(?:[Hh]omebrew/(?:homebrew-)?core/)?(?<name>#{HOMEBREW_TAP_FORMULA_NAME_REGEX.source})\Z},
  Regexp,
)
HOMEBREW_TAP_CASK_TOKEN_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match a cask token.

T.let(/(?<token>[a-z0-9\-_]+(?:@[a-z0-9\-_.]+)?)/, Regexp)
HOMEBREW_TAP_CASK_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match taps’ casks, e.g. someuser/sometap/somecask.

T.let(
  %r{\A(?<user>[^/]+)/(?<repo>[^/]+)/#{HOMEBREW_TAP_CASK_TOKEN_REGEX.source}\Z},
  Regexp,
)
HOMEBREW_DEFAULT_TAP_CASK_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match default cask taps’ casks, e.g. homebrew/cask/somecask or somecask.

T.let(
  %r{\A(?:[Hh]omebrew/(?:homebrew-)?cask/)?#{HOMEBREW_TAP_CASK_TOKEN_REGEX.source}\Z},
  Regexp,
)
HOMEBREW_TAP_DIR_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match taps’ directory paths, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap.

T.let(
  %r{#{Regexp.escape(HOMEBREW_LIBRARY.to_s)}/Taps/(?<user>[^/]+)/(?<repo>[^/]+)},
  Regexp,
)
HOMEBREW_TAP_PATH_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match taps’ formula paths, e.g. HOMEBREW_LIBRARY/Taps/someuser/sometap/someformula.

T.let(Regexp.new(HOMEBREW_TAP_DIR_REGEX.source + %r{(?:/.*)?\Z}.source).freeze, Regexp)
HOMEBREW_CASK_TAP_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match official cask taps, e.g homebrew/cask.

T.let(
  %r{(?:([Cc]askroom)/(cask|versions)|([Hh]omebrew)/(?:homebrew-)?(cask|cask-[\w-]+))},
  Regexp,
)
HOMEBREW_CASK_TAP_CASK_REGEX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Match official taps’ casks, e.g. homebrew/cask/somecask or homebrew/cask-versions/somecask.

T.let(
  %r{\A#{HOMEBREW_CASK_TAP_REGEX.source}/#{HOMEBREW_TAP_CASK_TOKEN_REGEX.source}\Z},
  Regexp,
)
HOMEBREW_OFFICIAL_REPO_PREFIXES_REGEX =
T.let(/\A(home|linux)brew-/, Regexp)
HOMEBREW_BREW_FILE =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Path to bin/brew main executable in HOMEBREW_PREFIX

Pathname(ENV.fetch("HOMEBREW_BREW_FILE")).freeze
HOMEBREW_PREFIX =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where we link under

Pathname(ENV.fetch("HOMEBREW_PREFIX")).freeze
HOMEBREW_REPOSITORY =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where .git is found

Pathname(ENV.fetch("HOMEBREW_REPOSITORY")).freeze
HOMEBREW_LIBRARY =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where we store most of Homebrew, taps, and various metadata

Pathname(ENV.fetch("HOMEBREW_LIBRARY")).freeze
HOMEBREW_SHIMS_PATH =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where shim scripts for various build and SCM tools are stored

(HOMEBREW_LIBRARY/"Homebrew/shims").freeze
HOMEBREW_DATA_PATH =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where external data that has been incorporated into Homebrew is stored

(HOMEBREW_LIBRARY/"Homebrew/data").freeze
HOMEBREW_LINKED_KEGS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where we store symlinks to currently linked kegs

(HOMEBREW_PREFIX/"var/homebrew/linked").freeze
HOMEBREW_PINNED_KEGS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where we store symlinks to currently version-pinned kegs

(HOMEBREW_PREFIX/"var/homebrew/pinned").freeze
HOMEBREW_LOCKS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where we store lock files

(HOMEBREW_PREFIX/"var/homebrew/locks").freeze
HOMEBREW_CELLAR =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where we store built products

Pathname(ENV.fetch("HOMEBREW_CELLAR")).freeze
HOMEBREW_CACHE =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where downloads (bottles, source tarballs, etc.) are cached

Pathname(ENV.fetch("HOMEBREW_CACHE")).freeze
HOMEBREW_CACHE_FORMULA =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where formulae installed via URL are cached

(HOMEBREW_CACHE/"Formula").freeze
HOMEBREW_LOGS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Where build, postinstall, and test logs of formulae are written to

Pathname(ENV.fetch("HOMEBREW_LOGS")).expand_path.freeze
HOMEBREW_MAINTAINER_JSON =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Path to the list of Homebrew maintainers as a JSON file

(HOMEBREW_REPOSITORY/".github/maintainers.json").freeze
HOMEBREW_TEMP =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

Must use /tmp instead of TMPDIR because long paths break Unix domain sockets

Pathname(ENV.fetch("HOMEBREW_TEMP")).then do |tmp|
  tmp.mkpath unless tmp.exist?
  tmp.realpath
end.freeze
HOMEBREW_RUBY_EXEC_ARGS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

The Ruby path and args to use for forked Ruby calls

[
  RUBY_PATH,
  ENV.fetch("HOMEBREW_RUBY_WARNINGS"),
  ENV.fetch("HOMEBREW_RUBY_DISABLE_OPTIONS"),
].freeze
HOMEBREW_LIBRARY_PATH =
Pathname(dir).parent.realpath.freeze
RUBY_PATH =
Pathname.new(RbConfig.ruby).freeze
RUBY_BIN =
RUBY_PATH.dirname.freeze
UPGRADE_REINSTALL_SKIP_DIRECTIVES =
[:quit, :signal].freeze
LINUXBREW_CORE_MIGRATION_LIST =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

List of formulae that had a revision in linuxbrew-core that was different than in homebrew-core We will use this list to modify the version_scheme during the migration from linuxbrew-core to homebrew-core.

%w[
  afuse
  apng2gif
  apr-util
  archivemount
  argon2
  arpack
  asciinema
  atdtool
  augustus
  avfs
  bandcamp-dl
  cairo
  ccls
  codemod
  cquery
  credstash
  csvtomd
  cvs
  cxxtest
  datetime-fortran
  ddd
  diceware
  docbook2x
  docker-squash
  doitlive
  double-conversion
  exif
  expect
  fades
  fastme
  fbi-servefiles
  foma
  fontconfig
  freeglut
  ftgl
  gcc@5
  gettext
  gflags
  ghc@8.6
  ghc@8.8
  git-remote-hg
  gitfs
  gitless
  gitup
  glade
  glew
  glui
  goolabs
  gperftools
  grip
  gtkmm
  hdf5@1.8
  htop
  intltool
  io
  jed
  jinja2-cli
  legit
  libebml
  libexif
  libffi
  libgetdata
  libhttpseverywhere
  libproxy
  libtool
  libxslt
  literate-git
  llvm@11
  llvm@7
  llvm@8
  llvm@9
  lua
  lua@5.1
  lua@5.3
  magic-wormhole
  mecab
  mosh
  mps-youtube
  ncview
  notifiers
  openmotif
  osmfilter
  pachi
  packmol
  passpie
  pius
  pkg-config
  plotutils
  plplot
  postgresql@9.4
  postgresql@9.5
  pssh
  pup
  pyvim
  ratfor
  remarshal
  reprepro
  rtv
  s3cmd
  scalapack
  securefs
  softhsm
  statik
  stormssh
  superlu
  tasksh
  termtosvg
  tinyxml
  vsts-cli
  xclip
  xerces-c
  xmlto
  xmltoman
  xmount
  xxhash
  zabbix-cli
].freeze