arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
92 lines (61 loc) • 4.41 kB
Markdown
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.