# 11. Empacotamento tradicional

The majority of this guide deals with Ubuntu Distributed Development (UDD) which utilizes the distributed version control system (DVCS) Bazaar for retrieving package sources and submitting fixes with merge proposals. This article will discuss what we will call traditional packaging methods for lack of a better word. Before Bazaar was adopted for Ubuntu development, these were the typical methods for contributing to Ubuntu.

In some cases, you may need to use these tools instead of UDD. So it is good to be familiar with them. Before you begin, you should already have read the article Getting Set Up.

## 11.1. Obtendo o fonte

Em ordem para obter o pacote fonte, você pode simplesmente executar:

    $ apt-get source <package_name>

This method has some draw backs though. It downloads the version of the source that is available on your system. You are likely running the current stable release, but you want to contribute your change against the package in the development release. Luckily, the `ubuntu-dev-tools` package provides a helper script:

    $ pull-lp-source <package_name>

Por padrão, a última versão do pacote na versão de desenvolvimento do Ubuntu será baixada. Você pode também especificar a versão do pacote ou do Ubuntu assim:

    $ pull-lp-source <package_name> trusty

to pull the source from the `trusty` release, or:

    $ pull-lp-source <package_name> 1.0-1ubuntu1

para baixar a versão `1.0-1ubuntu1` do pacote. Para mais informações sobre o comando, consulte `man pull-lp-source`.

Para o nosso exemplo, vamos supor que temos um relatório de erro dizendo que “colour” na descrição de `xicc` deveria ser “color”, e que queremos corrigir isto. (Nota: Este é apenas um exemplo de algo a ser alterado e não um erro real.) Para obter o fonte, execute:

    $ pull-lp-source xicc 0.2-3

## 11.2. Criando um Debdiff

Um “debdiff” exibe a diferença entre dois pacotes Debian. O nome do comando usado para gerá-lo também é “debdiff”, que faz parte do pacote “devscripts”. Consulte “man debdiff” para todos os detalhes. Para comparar dois pacotes fonte, passe os dois arquivos “dsc” como argumentos:

    $ debdiff <package_name>_1.0-1.dsc <package_name>_1.0-1ubuntu1.dsc

Para continuar com nosso exemplo, vamos editar o “debian/control” e “corrigir” nosso “erro”:

    $ cd xicc-0.2
    $ sed -i 's/colour/color/g' debian/control

Nós também devemos aderir ao Debian Maintainer Field Spec e editar `debian/control` para substituir:

    Maintainer: Ross Burton <ross@debian.org>

com:

    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    XSBC-Original-Maintainer: Ross Burton <ross@debian.org>

Você pode usar a ferramenta “update-maintainer” (no pacote “unbuntu-dev-tools”) para fazer isso.

Lembre-se de documentar suas alterações em “debian/changelog” usando “dch -i” e entaõ podemos gerar um novo pacote fonte:

    $ debuild -S

Agora podemos examinar nossas alterações usando “debdiff”:

    $ cd ..
    $ debdiff xicc_0.2-3.dsc xicc_0.2-3ubuntu1.dsc | less

Para criar um arquivo patch que você possa enviar para outros ou anexar a um relatório de erros para orientação, execute:

    $ debdiff xicc_0.2-3.dsc xicc_0.2-3ubuntu1.dsc > xicc_0.2-3ubuntu1.debdiff

## 11.3. Aplicando um Debdiff

Para aplicar um debdiff, primeiramente assegure-se de que possou o código fonte da versão com a qual foi criado:

    $ pull-lp-source xicc 0.2-3

Then in a terminal, change to the directory where the source was uncompressed:

    $ cd xicc-0.2

Um debdiff é como um arquivo de patch normal. Aplique-o como de costume com:

    $ patch -p1 < ../xicc_0.2.2ubuntu1.debdiff