Skip to content


PKGBUILD is the Arch Linux package build description file, which we inherit by using pacman. See for details on the format.

We have some minor extensions to the format, which are documented here.

Extra Metadata

Variables starting with msys2_ and mingw_ can be used to add additional metadata to a package, which will be read and used by our tools. The following datatypes are supported:

  • Strings: msys2_myvar="example" 🠆 {"myvar": "example"}
  • Arrays of strings: msys2_myvar=("example1" "example2") 🠆 {"myvar": ["example1", "example2"]}
  • Mappings of strings to an optional string, separated by ":", values are stripped: msys2_myvar=("example1: value1" "example2") 🠆 {"myvar": {"example1": "value1", "example2": null}}
  • Booleans (either true or false): msys2_myvar=true 🠆 {"myvar": true}

The following variables are recognized:

  • mingw_arch - array - a list of MSYS2 environments the package is built for. Defaults to an empty list.
  • msys2_internal - boolean - whether the package is an internal or meta package, and shouldn't be linked to external sources. Defaults to false.
  • msys2_references - mapping - maps the package to external resources, for example other package repositories. Defining a key without a value means there is no mapping. The following keys exist:
  • msys2_changelog_url - string - NEWS file in git or the github releases page. In case there are multiple, the one that is more useful for packagers
  • msys2_documentation_url - string - Documentation for the API, tools, etc. provided, in case it's a different website than the homepage.
  • msys2_repository_url - string - Web view of the repository, e.g. on github or gitlab
  • msys2_issue_tracker_url - string - The bug tracker, mailing list, etc.
  • msys2_pgp_keys_url - string - A website containing which keys are used to sign releases