# Procedimentos para Construção de Pacotes

### Equipe de Gerenciamento da Coleção de Ports do FreeBSD

$FreeBSD: release/8.4.0/pt_BR.ISO8859-1/articles/portbuild/article.xml 39892 2012-11-01 11:06:14Z ebrandi $

Copyright © 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Equipe de Gerenciamento da Coleção de Ports do FreeBSD

$FreeBSD: release/8.4.0/pt_BR.ISO8859-1/articles/portbuild/article.xml 39892 2012-11-01 11:06:14Z ebrandi $

[ Split HTML / Single HTML ]

# 1 Introdução

Com o objetivo de disponibilizar binários pré-compilados de aplicações de terceiros para o FreeBSD, a Coleção de `Ports` é regularmente compilada em um dos “`Clusters` de Compilação de Pacotes”. Atualmente o principal `cluster` em uso é o http://pointyhat.FreeBSD.org.

Este artigo documenta os trabalhos internos do `cluster`

> Nota: Muitos dos detalhes deste artigo serão do interesse apenas dos membros da equipe que faz o Gerenciamento da Coleção de `Ports`

## 1.1 O código base

A maior parte da mágica na compilação de pacotes ocorre sob o diretório `/var/portbuild`. A menos que seja especificado o contrário, todos os caminhos serão relativos à este diretório. O `${arch}` será usado para determinar uma das arquiteturas de pacotes (amd64, i386™, ia64, powerpc, e SPARC64®), e `${branch}` será usado para determinar o `branch` (ramo de desenvolvimento) de compilação (7, 7-exp, 8, 8-exp, 9, 9-exp, 10, 10-exp).

> Nota: Não são mais compilados pacotes para as versões 4, 5 ou 6, e para a arquitetura alpha

Os `scripts` que controlam todo o processo estão localizados em `/var/portbuild/scripts/`. Eles são cópias obtidas do repositório Subversion `base/projects/portbuild/scripts/`.

Normalmente são feitas compilações incrementais que usam pacotes anteriores como dependências; isso toma menos tempo, e coloca menos carga nos sites espelho. Normalmente são feitas compilações completas apenas quando:

- logo depois de uma nova versão, para o ramo `-STABLE`

- periodicamente, para testar mudanças realizadas no `-CURRENT`

- para compilações experimentais

## 1.2 Observações sobre o código base

Até meados de 2010, os `scripts` apontavam especificamente para `pointyhat` como o nó principal (dispatch). Durante o verão de 2010, mudanças significativas foram feitas a fim de aceitar outros `hosts` como nós principais. Entre estas mudanças estão:

- remoção da `string` `pointyhat` embutida no código

- fatoração de todas as constantes de configuração (que antes estavam espalhadas por todo o código) em arquivos de configuração (veja abaixo)

- adicionar o `hostname` aos diretórios especificados pelo `buildid` (isto vai permitir que os diretórios sejam inequívocos quando copiados entre máquinas.)

- tornar os `scripts` mais robustos em termos de criação de diretórios e `links` simbólicos

- se necessário, alterar a forma de execução dos `scripts` para tornar os itens acima mais fáceis.

Este documento foi escrito originalmente antes destas mudanças serem feitas. Nas partes em que algo foi modificado, como nas invocações de `scripts`, elas estão denotadas como `novo código base:` em oposição à `antigo código base:`.

> Nota: Como em dezembro de 2010, o `pointyhat` ainda está rodando sobre o antigo código base, até que o novo código base seja considerado estável.

> Nota: Também durante esse processo, o código base foi migrado para o repositório Subversion. Para referência, a versão anterior ainda pode ser encontrada no CVS.

|  | Próxima
|  | Gerenciamento dos Clientes de Compilação

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.