Type object
File match **/metadata/*.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/f-droid-data-metadata/latest.json
Source https://gitlab.com/fdroid/fdroiddata/-/raw/master/schemas/metadata.json

Validate with Lintel

npx @lintel/lintel check
Type: object

For every app on F-Droid a metadata file in the format of .yml have to be provided, in order to build an app or check or if it has been updated. See https://f-droid.org/docs/Build_Metadata_Reference for a complete reference of a metadata file.

Properties

Categories string[] required

Any number of categories for the application to be placed in.

minItems=1uniqueItems=true
License string required
Values: "0BSD" "AAL" "AFL-1.1" "AFL-1.2" "AFL-2.0" "AFL-2.1" "AFL-3.0" "AGPL-3.0-only" "AGPL-3.0-or-later" "APL-1.0" "APSL-1.0" "APSL-1.1" "APSL-1.2" "APSL-2.0" "Apache-1.0" "Apache-1.1" "Apache-2.0" "Artistic-1.0" "Artistic-1.0-Perl" "Artistic-1.0-cl8" "Artistic-2.0" "Beerware" "BSD-1-Clause" "BSD-2-Clause" "BSD-2-Clause-FreeBSD" "BSD-2-Clause-Patent" "BSD-3-Clause" "BSD-3-Clause-Clear" "BSD-3-Clause-LBNL" "BSD-4-Clause" "BSL-1.0" "BitTorrent-1.1" "CAL-1.0" "CAL-1.0-Combined-Work-Exception" "CATOSL-1.1" "CC-BY-4.0" "CC-BY-SA-4.0" "CC0-1.0" "CDDL-1.0" "CECILL-2.0" "CECILL-2.1" "CECILL-B" "CECILL-C" "CNRI-Python" "CPAL-1.0" "CPL-1.0" "CUA-OPL-1.0" "ClArtistic" "Condor-1.1" "ECL-1.0" "ECL-2.0" "EFL-1.0" "EFL-2.0" "EPL-1.0" "EPL-2.0" "EUDatagrid" "EUPL-1.1" "EUPL-1.2" "Entessa" "FSFAP" "FTL" "Fair" "Frameworx-1.0" "GFDL-1.1-only" "GFDL-1.1-or-later" "GFDL-1.2-only" "GFDL-1.2-or-later" "GFDL-1.3-only" "GFDL-1.3-or-later" "GPL-2.0-only" "GPL-2.0-or-later" "GPL-3.0-only" "GPL-3.0-or-later" "HPND" "IJG" "IPA" "IPL-1.0" "ISC" "Imlib2" "Intel" "LGPL-2.0-only" "LGPL-2.0-or-later" "LGPL-2.1-only" "LGPL-2.1-or-later" "LGPL-3.0-only" "LGPL-3.0-or-later" "LPL-1.0" "LPL-1.02" "LPPL-1.2" "LPPL-1.3a" "LPPL-1.3c" "LiLiQ-P-1.1" "LiLiQ-R-1.1" "LiLiQ-Rplus-1.1" "MIT" "MIT-0" "MIT-CMU" "MPL-1.0" "MPL-1.1" "MPL-2.0" "MPL-2.0-no-copyleft-exception" "MS-PL" "MS-RL" "MirOS" "Motosoto" "MulanPSL-2.0" "Multics" "NASA-1.3" "NCSA" "NGPL" "NOSL" "NPL-1.0" "NPL-1.1" "NPOSL-3.0" "NTP" "Naumen" "Nokia" "OCLC-2.0" "ODbL-1.0" "OFL-1.0" "OFL-1.1" "OFL-1.1-RFN" "OFL-1.1-no-RFN" "OGTSL" "OLDAP-2.3" "OLDAP-2.7" "OLDAP-2.8" "OSET-PL-2.1" "OSL-1.0" "OSL-1.1" "OSL-2.0" "OSL-2.1" "OSL-3.0" "OpenSSL" "PHP-3.0" "PHP-3.01" "PostgreSQL" "Python-2.0" "QPL-1.0" "RPL-1.1" "RPL-1.5" "RPSL-1.0" "RSCPL" "Ruby" "SGI-B-2.0" "SISSL" "SMLNJ" "SPL-1.0" "SimPL-2.0" "Sleepycat" "UCL-1.0" "UPL-1.0" "Unicode-DFS-2016" "Unlicense" "VSL-1.0" "Vim" "W3C" "WTFPL" "Watcom-1.0" "X11" "XFree86-1.1" "Xnet" "XSkat" "YPL-1.1" "ZPL-2.0" "ZPL-2.1" "Zend-2.0" "Zimbra-1.3" "Zlib" "gnuplot" "iMatix" "xinetd" "PublicDomain"
Builds object[] required

Any number of sub-entries can be present, each specifying a version to automatically build from source.

minItems=1uniqueItems=true
AutoUpdateMode string required

This determines the method used for auto-generating new builds when new releases are available - in other words, adding a new Build Version line to the metadata.

Any of: enum enum, variant
UpdateCheckMode string required

This determines the method using for determining when new releases are available - in other words, the updating of the CurrentVersion and CurrentVersionCode fields in the metadata by the fdroid checkupdates process.

Any of: enum enum, variant, variant
CurrentVersion string required

The name of the version that is the recommended release. There may be newer versions of the application than this (e.g. unstable versions), and there will almost certainly be older ones.

CurrentVersionCode integer required

The version code corresponding to the CurrentVersion field.

AntiFeatures string[] | object
AuthorName string

The name of the author, either full, abbreviated or pseudonym.

AuthorEmail string

The e-mail address of the author(s).

pattern=^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
AuthorWebSite string
pattern=^https?://.*$
WebSite string
pattern=^https?://.*$
SourceCode string
pattern=^https?://.*$
IssueTracker string
pattern=^https?://.*$
Translation string
pattern=^https?://.*$
Changelog string
pattern=^https?://.*$
Donate string

The URL to donate to the project.

pattern=^https://.*$
Liberapay string

The project's Liberapay (https://liberapay.com) user or group name.

OpenCollective string

The project's OpenCollective (https://opencollective.com) user or group name.

Bitcoin string

A Bitcoin address for donating to the project.

pattern=^([13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[02-9ac-hj-np-z]{39,59})$
Litecoin string

A Litecoin address for donating to the project.

pattern=^([LM3][a-km-zA-HJ-NP-Z1-9]{26,33}|ltc1[02-9ac-hj-np-z]{39,59})$
Name string

The title of the application, with optional descriptive phrase.

AutoName string

The name of the application as can best be retrieved from the source code.

Summary string

DEPRECATED. A brief summary of what the application is. Should rather be provided via Fastlane.

maxLength=80
Description string

DEPRECATED. A full description of the application, relevant to the latest version. Should rather be provided via Fastlane.

maxLength=4000
AllowedAPKSigningKeys string | string[]

The lowercase hex value of the SHA-256 fingerprint of the signing certificate of an app. If an APK of that app is not signed by one of these keys, it will not be included in the repository.

MaintainerNotes string

This is a multi-line field using the same rules and syntax as the description. It's used to record notes for F-Droid maintainers to assist in maintaining and updating the application in the repository.

maxLength=4000
RepoType string

The type of repository - for automatic building from source.

Values: "git" "git-svn" "hg" "srclib"
Repo string

The repository location. Usually a https:// URL, for example.

Binaries string

The location of binaries used in verification process.

pattern=^https://.*%(v|c).*$
Disabled string

If this field is present, the application does not get put into the public index. The value should be a description of why the application is disabled.

RequiresRoot boolean

Whether the application requires root privileges to be usable.

ArchivePolicy integer

This determines the number of versions to keep. The older versions of the app are moved to the archive repo, if one is configured. Defaults to 3.

VercodeOperation string[]

A list of operations to be applied to the vercode obtained by the defined UpdateCheckMode. %c will be replaced by the actual vercode, and each string will be passed to python's eval function to calculate a version code.

minItems=1uniqueItems=true
UpdateCheckIgnore string

When checking for updates (via UpdateCheckMode) this can be used to specify a regex which, if matched against the version name, causes that version to be ignored.

UpdateCheckName string | string

When checking for updates (via UpdateCheckMode) this can be used to specify the package name to search for. Useful when apps have a static package name but change it programmatically in some app flavors, by e.g. appending “.open” or “.free” at the end of the package name.

UpdateCheckData string

Used in conjunction with UpdateCheckMode for certain modes.

pattern=.*|.*|.*|.*
NoSourceSince string

In case we are missing the source code for the CurrentVersion reported by Upstream, or that Non-Free elements have been introduced, this defines the first version that began to miss source code.

All of

1. variant
2. variant
3. variant
4. variant
5. variant
6. variant
7. variant
8. variant
9. variant

Definitions

anti_features string[] | object
string_list string | string[]
localized_string object
url string
https string
path
path_list path[]