Source Repository

A source repository is a version control repository, that contains the necessary files to build a package. At the bare minimum this includes a PKGBUILD and a .SRCINFO file, but may also contain an install script as well as patches or other arbitrary files.

Using makepkg, the sources are used to build a package, which can be installed with pacman. With the help of package splitting it is possible to create more than one package from a single PKGBUILD.

Note

Due to dbscripts and makepkg limitations it is currently not possible to target more than one Binary Repository with a single PKGBUILD.

.SRCINFO

The .SRCINFO files contained in a Source Repository are data representations of the accompanying PKGBUILD files and as such describe the sources of any Package build from it.

The files are read and parsed and can be described by the SrcInfoV1 JSON schema.

Pkgbase section

This section of a .SRCINFO file describes the data common to all packages in the PKGBUILD (this is similar to how OutputPackageBase describes the data common to a set of packages in a Management Repository).

The section is read and parsed when reading .SRCINFO files and must exist. It can be described by the PkgBaseSectionV1 JSON schema.

Pkgname section

This section of a .SRCINFO file describes the data of a single package in the PKGBUILD, which is different from the common data described by the Pkgbase section (this is similar to how OutputPackage describes the data of a single package in a Management Repository).

The section may occur multiple times, but must exist at least once. It is read and parsed when reading .SRCINFO files and can be described by the PkgNameSectionV1 JSON schema.

JSON schema

SrcInfoV1

{
  "$defs": {
    "PkgBaseSectionV1": {
      "description": "The representation of a pkgbase section in a .SRCINFO file (version 1).\n\nAttributes\n----------\narch: str\n    A package architecture\nb2sums: list[str] | None\n    An optional list of blake2 checksum or 'SKIP' strings\nbackup: list[str] | None\n    An optional list of relative file names to backup\nchangelog: str | None\n    An optional changelog file string\ncheckdepends: list[str] | None\n    An optional list of check dependencies\ncksums: list[str] | None\n    An optional list of CRC-32 checksum or 'SKIP' strings\nconflicts: list[str] | None\n    An optional list of packages conflicting with a package\ndepends: list[str] | None\n    An optional list of dependency package names\nepoch: PositiveInt | None\n    An optional positive integer representing the epoch of a package\ngroups: list[str] | None\n    An optional list of groups that a package belongs to\ninstall: str | None\n    An optional install file string\nlicense: list[str]\n    A list of license identifier strings, that describe the license(s) of a package\nmakedepends: list[str] | None\n    An optional list of package names required for building a package\nmd5sums: list[str] | None\n    An optional list of MD5 checksum or 'SKIP' strings\nnoextract: list[str] | None\n    An optional list of file string marked for no extraction\noptdepends: list[str] | None\n    And optional list of optional dependencies of a package\noptions: list[str] | None\n    An optional list of strings representing makepkg.conf OPTIONS used during the creation of a package\npkgbase: str\n    A string representing the pkgbase of a package\npkgdesc: str\n    A string used as package description\npkgrel: str\n    A string representing the pkgrel (package release version) of a package\npkgver: str\n    A string representing the pkgver (upstream package version) of a package\nprovides: list[str] | None\n    An optional list of packages, that are virtually provided by a package\nreplaces: list[str] | None\n    An optional list of packages, that are virtually replaced by a package\nsha1sums: list[str] | None\n    An optional list of SHA-1 checksum or 'SKIP' strings\nsha224sums: list[str] | None\n    An optional list of SHA-224 checksum or 'SKIP' strings\nsha256sums: list[str] | None\n    An optional list of SHA-256 checksum or 'SKIP' strings\nsha384sums: list[str] | None\n    An optional list of SHA-384 checksum or 'SKIP' strings\nsha512sums: list[str] | None\n    An optional list of SHA-512 checksum or 'SKIP' strings\nsource: list[str] | None\n    An optional list of source (file or remote artifact) strings\nurl: str\n    A URL string representing the upstream project of a package\nvalidpgpkeys: list[str] | None\n    An optional list of PGP key ID strings",
      "properties": {
        "arch": {
          "pattern": "^(aarch64|any|arm|armv6h|armv7h|i486|i686|pentium4|riscv32|riscv64|x86_64|x86_64_v2|x86_64_v3|x86_64_v4)$",
          "title": "Arch",
          "type": "string"
        },
        "b2sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{128}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "B2Sums"
        },
        "backup": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Backup"
        },
        "changelog": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Changelog"
        },
        "checkdepends": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Checkdepends"
        },
        "cksums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[0-9]{10}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cksums"
        },
        "conflicts": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Conflicts"
        },
        "depends": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Depends"
        },
        "epoch": {
          "anyOf": [
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Epoch"
        },
        "groups": {
          "anyOf": [
            {
              "items": {
                "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Groups"
        },
        "install": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Install"
        },
        "license": {
          "items": {
            "type": "string"
          },
          "title": "License",
          "type": "array"
        },
        "makedepends": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Makedepends"
        },
        "md5sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{32}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Md5Sums"
        },
        "noextract": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Noextract"
        },
        "optdepends": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Optdepends"
        },
        "options": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(!|)[\\w\\-.]+$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Options"
        },
        "pkgbase": {
          "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
          "title": "Pkgbase",
          "type": "string"
        },
        "pkgdesc": {
          "title": "Pkgdesc",
          "type": "string"
        },
        "pkgrel": {
          "pattern": "^[1-9]+[0-9]*(|[.]{1}[1-9]+[0-9]*)$",
          "title": "Pkgrel",
          "type": "string"
        },
        "pkgver": {
          "pattern": "^(([A-Za-z\\d]+)[_+.]?[A-Za-z\\d_+.]*)$",
          "title": "Pkgver",
          "type": "string"
        },
        "provides": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Provides"
        },
        "replaces": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Replaces"
        },
        "sha1sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{40}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sha1Sums"
        },
        "sha224sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{56}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sha224Sums"
        },
        "sha256sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{64}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sha256Sums"
        },
        "sha384sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{96}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sha384Sums"
        },
        "sha512sums": {
          "anyOf": [
            {
              "items": {
                "pattern": "^(^[a-f0-9]{128}$|SKIP)$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sha512Sums"
        },
        "source": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Source"
        },
        "url": {
          "format": "uri",
          "maxLength": 2083,
          "minLength": 1,
          "title": "Url",
          "type": "string"
        },
        "validpgpkeys": {
          "anyOf": [
            {
              "items": {
                "pattern": "^[A-F0-9]{40}$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Validpgpkeys"
        }
      },
      "required": [
        "url",
        "pkgver",
        "pkgrel",
        "pkgdesc",
        "pkgbase",
        "license",
        "arch"
      ],
      "title": "PkgBaseSectionV1",
      "type": "object"
    },
    "PkgNameSectionV1": {
      "description": "The representation of a pkgname section in a .SRCINFO file (version 1).\n\nAttributes\n----------\narch: str | None\n    An optional architecture string of a package\nbackup: list[str] | None\n    An optional list of relative file names to backup\nchangelog: str | None\n    An optional changelog file string\nconflicts: list[str] | None\n    An optional list of packages conflicting with a package\ndepends: list[str] | None\n    An optional list of dependency package names\ngroups: list[str] | None\n    An optional list of groups that a package belongs to\ninstall: str | None\n    An optional .install file string\noptdepends: list[str] | None\n    And optional list of optional dependencies of a package\npkgdesc: str | None\n    An optional package description string\npkgname: str\n    A string representing the pkgname of a package\nprovides: list[str] | None\n    An optional list of packages, that are virtually provided by a package\nreplaces: list[str] | None\n    An optional list of packages, that are virtually replaced by a package\nurl: HttpUrl | None\n    An optional URL string representing the upstream project of a package",
      "properties": {
        "arch": {
          "anyOf": [
            {
              "pattern": "^(aarch64|any|arm|armv6h|armv7h|i486|i686|pentium4|riscv32|riscv64|x86_64|x86_64_v2|x86_64_v3|x86_64_v4)$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Arch"
        },
        "backup": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Backup"
        },
        "changelog": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Changelog"
        },
        "conflicts": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Conflicts"
        },
        "depends": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Depends"
        },
        "groups": {
          "anyOf": [
            {
              "items": {
                "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Groups"
        },
        "install": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Install"
        },
        "optdepends": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Optdepends"
        },
        "pkgdesc": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Pkgdesc"
        },
        "pkgname": {
          "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
          "title": "Pkgname",
          "type": "string"
        },
        "provides": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Provides"
        },
        "replaces": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Replaces"
        },
        "url": {
          "anyOf": [
            {
              "format": "uri",
              "maxLength": 2083,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Url"
        }
      },
      "required": [
        "pkgname"
      ],
      "title": "PkgNameSectionV1",
      "type": "object"
    }
  },
  "description": "The representation of a .SRCINFO file (version 1).\n\nAttributes\n----------\npkgbase: PkgBaseSectionV1\n    A PkgBaseSectionV1 describing the pkgbase section of the .SRCINFO file\npkgnames: list[PkgNameSectionV1]\n    A list of PkgNameSectionV1 (with at least one item) describing the pkgname sections of the .SRCINFO file",
  "properties": {
    "pkgbase": {
      "$ref": "#/$defs/PkgBaseSectionV1"
    },
    "pkgnames": {
      "items": {
        "$ref": "#/$defs/PkgNameSectionV1"
      },
      "minItems": 1,
      "title": "Pkgnames",
      "type": "array"
    }
  },
  "required": [
    "pkgbase",
    "pkgnames"
  ],
  "title": "SrcInfoV1",
  "type": "object"
}

PkgBaseSectionV1

{
  "description": "The representation of a pkgbase section in a .SRCINFO file (version 1).\n\nAttributes\n----------\narch: str\n    A package architecture\nb2sums: list[str] | None\n    An optional list of blake2 checksum or 'SKIP' strings\nbackup: list[str] | None\n    An optional list of relative file names to backup\nchangelog: str | None\n    An optional changelog file string\ncheckdepends: list[str] | None\n    An optional list of check dependencies\ncksums: list[str] | None\n    An optional list of CRC-32 checksum or 'SKIP' strings\nconflicts: list[str] | None\n    An optional list of packages conflicting with a package\ndepends: list[str] | None\n    An optional list of dependency package names\nepoch: PositiveInt | None\n    An optional positive integer representing the epoch of a package\ngroups: list[str] | None\n    An optional list of groups that a package belongs to\ninstall: str | None\n    An optional install file string\nlicense: list[str]\n    A list of license identifier strings, that describe the license(s) of a package\nmakedepends: list[str] | None\n    An optional list of package names required for building a package\nmd5sums: list[str] | None\n    An optional list of MD5 checksum or 'SKIP' strings\nnoextract: list[str] | None\n    An optional list of file string marked for no extraction\noptdepends: list[str] | None\n    And optional list of optional dependencies of a package\noptions: list[str] | None\n    An optional list of strings representing makepkg.conf OPTIONS used during the creation of a package\npkgbase: str\n    A string representing the pkgbase of a package\npkgdesc: str\n    A string used as package description\npkgrel: str\n    A string representing the pkgrel (package release version) of a package\npkgver: str\n    A string representing the pkgver (upstream package version) of a package\nprovides: list[str] | None\n    An optional list of packages, that are virtually provided by a package\nreplaces: list[str] | None\n    An optional list of packages, that are virtually replaced by a package\nsha1sums: list[str] | None\n    An optional list of SHA-1 checksum or 'SKIP' strings\nsha224sums: list[str] | None\n    An optional list of SHA-224 checksum or 'SKIP' strings\nsha256sums: list[str] | None\n    An optional list of SHA-256 checksum or 'SKIP' strings\nsha384sums: list[str] | None\n    An optional list of SHA-384 checksum or 'SKIP' strings\nsha512sums: list[str] | None\n    An optional list of SHA-512 checksum or 'SKIP' strings\nsource: list[str] | None\n    An optional list of source (file or remote artifact) strings\nurl: str\n    A URL string representing the upstream project of a package\nvalidpgpkeys: list[str] | None\n    An optional list of PGP key ID strings",
  "properties": {
    "arch": {
      "pattern": "^(aarch64|any|arm|armv6h|armv7h|i486|i686|pentium4|riscv32|riscv64|x86_64|x86_64_v2|x86_64_v3|x86_64_v4)$",
      "title": "Arch",
      "type": "string"
    },
    "b2sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{128}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "B2Sums"
    },
    "backup": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Backup"
    },
    "changelog": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Changelog"
    },
    "checkdepends": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Checkdepends"
    },
    "cksums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[0-9]{10}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cksums"
    },
    "conflicts": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Conflicts"
    },
    "depends": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Depends"
    },
    "epoch": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Epoch"
    },
    "groups": {
      "anyOf": [
        {
          "items": {
            "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Groups"
    },
    "install": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Install"
    },
    "license": {
      "items": {
        "type": "string"
      },
      "title": "License",
      "type": "array"
    },
    "makedepends": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Makedepends"
    },
    "md5sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{32}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Md5Sums"
    },
    "noextract": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Noextract"
    },
    "optdepends": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Optdepends"
    },
    "options": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(!|)[\\w\\-.]+$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Options"
    },
    "pkgbase": {
      "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
      "title": "Pkgbase",
      "type": "string"
    },
    "pkgdesc": {
      "title": "Pkgdesc",
      "type": "string"
    },
    "pkgrel": {
      "pattern": "^[1-9]+[0-9]*(|[.]{1}[1-9]+[0-9]*)$",
      "title": "Pkgrel",
      "type": "string"
    },
    "pkgver": {
      "pattern": "^(([A-Za-z\\d]+)[_+.]?[A-Za-z\\d_+.]*)$",
      "title": "Pkgver",
      "type": "string"
    },
    "provides": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Provides"
    },
    "replaces": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replaces"
    },
    "sha1sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{40}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sha1Sums"
    },
    "sha224sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{56}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sha224Sums"
    },
    "sha256sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{64}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sha256Sums"
    },
    "sha384sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{96}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sha384Sums"
    },
    "sha512sums": {
      "anyOf": [
        {
          "items": {
            "pattern": "^(^[a-f0-9]{128}$|SKIP)$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sha512Sums"
    },
    "source": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Source"
    },
    "url": {
      "format": "uri",
      "maxLength": 2083,
      "minLength": 1,
      "title": "Url",
      "type": "string"
    },
    "validpgpkeys": {
      "anyOf": [
        {
          "items": {
            "pattern": "^[A-F0-9]{40}$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Validpgpkeys"
    }
  },
  "required": [
    "url",
    "pkgver",
    "pkgrel",
    "pkgdesc",
    "pkgbase",
    "license",
    "arch"
  ],
  "title": "PkgBaseSectionV1",
  "type": "object"
}

PkgNameSectionV1

{
  "description": "The representation of a pkgname section in a .SRCINFO file (version 1).\n\nAttributes\n----------\narch: str | None\n    An optional architecture string of a package\nbackup: list[str] | None\n    An optional list of relative file names to backup\nchangelog: str | None\n    An optional changelog file string\nconflicts: list[str] | None\n    An optional list of packages conflicting with a package\ndepends: list[str] | None\n    An optional list of dependency package names\ngroups: list[str] | None\n    An optional list of groups that a package belongs to\ninstall: str | None\n    An optional .install file string\noptdepends: list[str] | None\n    And optional list of optional dependencies of a package\npkgdesc: str | None\n    An optional package description string\npkgname: str\n    A string representing the pkgname of a package\nprovides: list[str] | None\n    An optional list of packages, that are virtually provided by a package\nreplaces: list[str] | None\n    An optional list of packages, that are virtually replaced by a package\nurl: HttpUrl | None\n    An optional URL string representing the upstream project of a package",
  "properties": {
    "arch": {
      "anyOf": [
        {
          "pattern": "^(aarch64|any|arm|armv6h|armv7h|i486|i686|pentium4|riscv32|riscv64|x86_64|x86_64_v2|x86_64_v3|x86_64_v4)$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Arch"
    },
    "backup": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Backup"
    },
    "changelog": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Changelog"
    },
    "conflicts": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Conflicts"
    },
    "depends": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Depends"
    },
    "groups": {
      "anyOf": [
        {
          "items": {
            "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Groups"
    },
    "install": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Install"
    },
    "optdepends": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Optdepends"
    },
    "pkgdesc": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pkgdesc"
    },
    "pkgname": {
      "pattern": "^[a-z\\d_@+]+[a-z\\d\\-._@+]*$",
      "title": "Pkgname",
      "type": "string"
    },
    "provides": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Provides"
    },
    "replaces": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Replaces"
    },
    "url": {
      "anyOf": [
        {
          "format": "uri",
          "maxLength": 2083,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    }
  },
  "required": [
    "pkgname"
  ],
  "title": "PkgNameSectionV1",
  "type": "object"
}