# 4. Obtendo o fonte

## 4.1. URL dos pacotes de fonte

O Bazaar fornece alguns atalhos bem interessantes para acessar os ramos fonte de pacotes do Launchpad tanto do Ubuntu como do Debian.

Para se referir a ramos-fonte digite:

    ubuntu:package

Onde pacote se refere ao nome do pacote em que você está interessado. Esta URL se refere ao pacote na versão atualmente em desenvolvimento do Ubuntu. Para se referir ao ramo do Tomboy na versão em desenvolvimento, você usaria:

    ubuntu:tomboy

To refer to the version of a source package in an older release of Ubuntu, just prefix the package name with the release’s code name. E.g. to refer to Tomboy’s source package in Saucy use:

    ubuntu:saucy/tomboy

Uma vez que são únicos, você pode abreviar o nome da série da distribuição:

    ubuntu:s/tomboy

Você pode utilizar um procedimento semelhante para acessar os ramos fonte no Debian, embora não haja atalhos para os nomes de séries de distribuição do Debian. Para acessar um ramo do Tomboy na série de desenvolvimento atual do Debian, utilize:

    debianlp:tomboy

and to access Tomboy in Debian Wheezy use:

    debianlp:wheezy/tomboy

## 4.2. Obtendo o fonte

Todo pacote fonte no Ubuntu tem um ramo fonte associado no Launchpad. Estes ramos fonte são atualizados automaticamente pelo Launchpad, embora o processo não seja tão fácil de usar atualmente.

Há algumas coisas que fazemos primeiro para que o fluxo de trabalho seja mais eficiente depois. Quando você estiver acostumado com o processo, você irá saber quando faz sentido pular estas etapas.

### 4.2.1. Criando um repositório compartilhado

Digamos que você quer trabalhar no pacote do Tomboy, e você verificou que o nome do pacote fonte é “tomboy”. Antes de ramificar realmente o código do Tomboy, crie um repositório compartilhado para colocar os ramos deste pacote. O repositório compartilhado irá deixar o trabalho futuro mais eficiente.

Faça isto usando o comando “bzr init-repo”, passando a ele o nome do diretório que gostaríamos de usar:

    $ bzr init-repo tomboy

Você verá que um diretório “tomboy” foi criado na sua área de trabalho atual. Altere para esse novo diretório para o restante de seu trabalho:

    $ cd tomboy

### 4.2.2. Obtendo o ramo trunk

Nós usamos o comando “bzr branch” para criar um ramo local do pacote. Nós nomearemos o diretório destino de “tomboy.dev” só para que seja fácil de lembrar:

    $ bzr branch ubuntu:tomboy tomboy.dev

O diretório tomboy.dev representa a versão do Tomboy na versão de desenvolvimento do Ubuntu, e você pode sempre ir a este diretório e executar um “bzr pull” para obter quaisquer atualizações futuras.

### 4.2.3. Assegurando que a versão está atualizada

Quando você fizer o seu ramo bzr você irá receber uma mensagem informando se o ramo de empacotamento está atualizado. Por exemplo:

    $ bzr branch ubuntu:tomboy
    Most recent Ubuntu version: 1.8.0-1ubuntu1.2
    Packaging branch status: CURRENT
    Branched 86 revisions.

Ocasionalmente o importador falha e os ramos de empacotamento não correspondem com o que está no arquivo. Uma mensagem dizendo:

    Packaging branch status: OUT-OF-DATE

significa que houve falha na importação. Você pode descobrir o porquê em http://package-import.ubuntu.com/status/ e file a bug on the UDD project para ter esse problema resolvido.

### 4.2.4. Tar do upstream

Você pode obter um tar do upstream executando:

    bzr get-orig-source

Isto irá tentar vários métodos para obter o tar do upstream, primeiro recriando-o a partir da tag “usptream-x.y” no arquivo do bzr, depois baixando do arquivo do Ubuntu e, por último, executando “debian/rules get-orig-source”. O tar do upstream também será recriado quando o bzr for usado para construir o pacote:

    bzr builddeb

O plug-in “builddeb” tem várias opções de configuração.

### 4.2.5. Obtendo um ramo para uma versão em particular

When you want to do something like a stable release update (SRU), or you just want to examine the code in an old release, you’ll want to grab the branch corresponding to a particular Ubuntu release. For example, to get the Tomboy package for Quantal do:

    $ bzr branch ubuntu:m/tomboy quantal

### 4.2.6. Importando um pacote de fontes do Debian

Se o pacote no qual você quer trabalhar estiver disponível no Debian mas não no Ubuntu, ainda assim é fácil importar o código para um ramo bzr local para desenvolvimento. Digamos que você quer importar o pacote fonte “novopacote”. Nós iremos começar criando um repositório compartilhado como de costume, mas também temos que criar uma árvore de trabalho para a qual o pacote fonte será importado (lembre-se de sair do diretório do “tomboy” criado acima):

    $ bzr init-repo newpackage
    $ cd newpackage
    $ bzr init debian
    $ cd debian
    $ bzr import-dsc http://ftp.de.debian.org/debian/pool/main/n/newpackage/newpackage_1.0-1.dsc

Como você pode ver, nós só precisamos fornecer a localização remota do arquivo dsc, e o Bazaar fará o resto. Agora você tem um ramo fonte no Bazaar.