Artigos relacionados

*   [Padrões de empacotamento do Arch](/index.php/Padr%C3%B5es_de_empacotamento_do_Arch "Padrões de empacotamento do Arch")
*   [Arch Build System](/index.php/Arch_Build_System_(Portugu%C3%AAs) "Arch Build System (Português)")
*   [Criando pacotes](/index.php/Criando_pacotes "Criando pacotes")
*   [PKGBUILD](/index.php/PKGBUILD_(Portugu%C3%AAs) "PKGBUILD (Português)")
*   [Category:Package development (Português)](/index.php/Category:Package_development_(Portugu%C3%AAs) "Category:Package development (Português)")
*   [Arch User Repository](/index.php/Arch_User_Repository_(Portugu%C3%AAs) "Arch User Repository (Português)")
*   [makepkg](/index.php/Makepkg_(Portugu%C3%AAs) "Makepkg (Português)")
*   [pacman](/index.php/Pacman_(Portugu%C3%AAs) "Pacman (Português)")
*   [pacman/Dicas e truques](/index.php/Pacman/Dicas_e_truques "Pacman/Dicas e truques")

Arquivos `.SRCINFO` contêm metadados de pacote em um formato simples e não ambíguo, de forma que as ferramentas como o *backend* do [AUR](/index.php/AUR_(Portugu%C3%AAs) "AUR (Português)") ou [auxiliares do AUR](/index.php/Auxiliares_do_AUR "Auxiliares do AUR") possam obter os metadados de um pacote sem analisar o [PKGBUILD](/index.php/PKGBUILD_(Portugu%C3%AAs) "PKGBUILD (Português)") diretamente. Veja [FS#25210](https://bugs.archlinux.org/task/25210), [FS#15043](https://bugs.archlinux.org/task/15043) e [FS#16394](https://bugs.archlinux.org/task/16394) para exemplos de questões que podem surgir de tentar analisar scripts shell.

**Atenção:** Alterações a metadados do `PKGBUILD`, tal como atualizações de [pkgver()](/index.php/PKGBUILD_(Portugu%C3%AAs)#pkgver "PKGBUILD (Português)"), não se propagam automaticamente para o `.SRCINFO`. Fazer o *push* de um `PKGBUILD` editado para o AUR sem atualizar também seu `.SRCINFO` fará com que o AUR forneça metadados antigos.

## Criação

Arquivos `.SRCINFO` podem ser gerados usando makepkg.

```
$ makepkg --printsrcinfo > .SRCINFO

```

## Sintaxe

Arquivos `.SRCINFO` são listas de pares de `chave = valor`, separados em seções.

Chaves levam seus nomes e significados de [variáveis do PKGBUILD](https://www.archlinux.org/pacman/PKGBUILD.5.html#_options_and_directives). Nem as chaves nem valores são colocados entre aspas. Dados que, em um `PKGBUILD`, seriam representados por um vetor são especificados múltiplas vezes. Por exemplo, os conteúdos a seguir são equivalentes.

```
# PKGBUILD
arch=(i686 x86_64)

```

```
# .SRCINFO
arch = i686
arch = x86_64

```

A seção principal do arquivo é iniciada por uma declaração de [pkgbase](/index.php/PKGBUILD_(Portugu%C3%AAs)#pkgbase "PKGBUILD (Português)") e contém dados aplicáveis ao pacote como um todo. Em um `PKGBUILD` padrão descrevendo um pacote simples, essa será a única seção, seguida por uma declaração de [pkgname](/index.php/PKGBUILD_(Portugu%C3%AAs)#pkgname "PKGBUILD (Português)") contendo o mesmo valor que o pkgbase precedente.

```
pkgbase = foo
	pkgdesc = Um exemplo de pacote.
	...
	md5sums = SKIP

pkgname = foo

```

Em um `PKGBUILD` dividido, cada seção é iniciada por um `pkgname`, seguido por quaisquer dados específicos daquele pacote.

## Especificação

Os seguintes campos podem aparecer apenas uma vez em cada arquivo `.SRCINFO`, na seção `pkgbase`:

*   `pkgver`, `pkgrel`, `epoch`

Os seguintes campos podem aparecer mais de uma vez em qualquer seção.

*   `pkgdesc`, `url`, `install`, `changelog`

Os seguintes campos podem ser repetidos dentro de uma seção para especificar múltiplos valores:

*   `arch`
*   `groups`
*   `license`
*   `noextract`
*   `options`
*   `backup`
*   `validpgpkeys`

Os seguintes campos podem, adicionalmente, especificar múltiplas [arquiteturas](/index.php/PKGBUILD_(Portugu%C3%AAs)#arch "PKGBUILD (Português)") como mostrado abaixo:

```
source*_x86_64* = [https://foo.bar/arquivo.tar.gz](https://foo.bar/arquivo.tar.gz)
source*_i686* = [https://foo.bar/arquivo_i686_patch.tar.gz](https://foo.bar/arquivo_i686_patch.tar.gz)

```

*   `source`
*   `depends`, `checkdepends`, `makedepends`, `optdepends`
*   `provides`, `conflicts`, `replaces`
*   `md5sums`, `sha1sums`, `sha224sums`, `sha256sums`, `sha384sums`, `sha512sums`

Campos com outros nomes são ignorados. Linhas em branco e linhas de comentários iniciando com sinais de cerquilha (`#`) também são ignoradas. Linhas podem ter recuo.