This file is indexed.

/usr/share/doc/ubuntu-packaging-guide-html-pt-br/fixing-a-bug.html is in ubuntu-packaging-guide-html-pt-br 0.3.5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>4. Corrigindo um erro no Ubuntu &mdash; Ubuntu Packaging Guide</title>
    <link rel="shortcut icon" href="./_static/images/favicon.ico" type="image/x-icon" />
    <link rel="stylesheet" href="./_static/reset.css" type="text/css" />
    <link rel="stylesheet" href="./_static/960.css" type="text/css" />
    <link rel="stylesheet" href="./_static/base.css" type="text/css" />
    <link rel="stylesheet" href="./_static/home.css" type="text/css" />
    <link rel="stylesheet" href="./_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="./_static/guide.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '0.3.5',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="./_static/jquery.js"></script>
    <script type="text/javascript" src="./_static/underscore.js"></script>
    <script type="text/javascript" src="./_static/doctools.js"></script>
    <script type="text/javascript" src="./_static/translations.js"></script>
    
    <script type="text/javascript" src="./_static/main.js"></script>
    <link rel="top" title="Ubuntu Packaging Guide" href="./index.html" />
    <link rel="next" title="5. Tutorial: corrigindo uma falha no Ubuntu" href="fixing-a-bug-example.html" />
    <link rel="prev" title="3. Desenvolvimento distribuído do Ubuntu — Introdução" href="udd-intro.html" /> 
  </head>
  <body class="home">
  <a name="top"></a>

<div class="header-navigation">
    <div>
      <nav role="navigation">
        <ul>
          <li class="page_item current_page_item"><a title="Conteúdo" href="index.html">Conteúdo</a>
          <li>
            <form id="form-search" method="get" action="search.html">
              <fieldset>
                <input id="input-search" type="text" name="q" value="Search" />
              </fieldset>
            </form>
          </li>
        </ul>
      </nav>
      <a class="logo-ubuntu" href="http://packaging.ubuntu.com/">
        <img src="./_static/images/logo-ubuntu.png" width="119" height="27" alt="Ubuntu logo" />
      </a>
      <a href="http://packaging.ubuntu.com/"><h2>Packaging Guide</h2></a>
    </div>
  </div>
<div class="header-content">
    <div class="clearfix">
  <div class="header-navigation-secondary">
    <div>
          <nav role="navigation">
            <ul class="clearfix">
	        <li class="page_item"><a style="margin-right: 10px" 
	        href="fixing-a-bug-example.html" title="5. Tutorial: corrigindo uma falha no Ubuntu"
	        accesskey="N">próximo</a></li>
	        <li class="page_item"><a  
	        href="udd-intro.html" title="3. Desenvolvimento distribuído do Ubuntu — Introdução"
	        accesskey="P">anterior</a></li>
        <li class="page_item"><a class="sub-nav-item" href="index.html">Ubuntu Packaging Guide  &raquo;</a></li> 
      </ul>
    </nav>
  </div>
</div>
</div>
</div>
  
<div id="content" class="body container_12">
  <div class="grid_12">  

     <!--<section id="main-section">-->

    <div class="grid_9 alpha">
		
    
  <div class="section" id="fixing-a-bug-in-ubuntu">
<h1>4. Corrigindo um erro no Ubuntu<a class="headerlink" href="#fixing-a-bug-in-ubuntu" title="Link permanente para este título"></a></h1>
<div class="section" id="introduction">
<h2>4.1. Introdução<a class="headerlink" href="#introduction" title="Link permanente para este título"></a></h2>
<p>Se você seguiu as instruções do <a class="reference internal" href="getting-set-up.html"><em>prepare-se para o Desenvolvimento do Ubuntu</em></a>, você deve estar pronto para começar.</p>
<img alt="./_images/fixing-a-bug.png" src="./_images/fixing-a-bug.png" />
<p>Como você pode observar na imagem acima, não há surpresas no processo de correção de erros no Ubuntu: você encontra um problema, obtém o código, trabalha para corrigi-lo, testa, envia as alterações para o Launchpad e pede para que sejam revisadas e incorporadas. Neste guia nós passaremos por todas as etapas necessárias, uma por uma.</p>
</div>
<div class="section" id="finding-the-problem">
<h2>4.2. Encontrando o problema<a class="headerlink" href="#finding-the-problem" title="Link permanente para este título"></a></h2>
<p>Há várias maneiras diferentes de encontrar coisas nas quais trabalhar. Pode ser um relatório de erro que você mesmo encontrou (o que lhe dá uma boa oportunidade para testar a correção), ou um problema que você encontrou em outro lugar, talvez num relatório de erro.</p>
<p><a class="reference external" href="http://harvest.ubuntu.com/">Harvest</a> é onde podemos seguir as várias listas de afazeres relacionadas ao desenvolvimento do Ubuntu. Ele lista erros que já foram corrigidos no upstream ou no Debian, lista pequenos erros (que chamamos de &#8220;bitezise&#8221;), e assim por diante. Confira o site e encontre o seu primeiro bug para trabalhar.</p>
</div>
<div class="section" id="figuring-out-what-to-fix">
<span id="what-to-fix"></span><h2>4.3. Descobrindo o que corrigir<a class="headerlink" href="#figuring-out-what-to-fix" title="Link permanente para este título"></a></h2>
<p>Se você não sabe qual o pacote fonte que contém o código que tem o problema, mas você sabe o caminho para o programa afetado no seu sistema, você pode descobrir o pacote fonte no qual você precisa trabalhar.</p>
<p>Digamos que você tenha encontrado um erro no Tomboy, um aplicativo para tomar notas na área de trabalho. O Tomboy pode ser iniciado executando &#8220;/usr/bin/tomboy&#8221; na linha de comando. Para encontrar o pacote binário que contém esse aplicativo, use este comando:</p>
<div class="highlight-python"><div class="highlight"><pre>$ apt-file find /usr/bin/tomboy
</pre></div>
</div>
<p>Isso deverá imprimir:</p>
<div class="highlight-python"><div class="highlight"><pre>tomboy: /usr/bin/tomboy
</pre></div>
</div>
<p>Note que a parte que precede o ponto-e-vírgula é o nome do pacote binário. Frequentemente, o pacote fonte e o pacote binário terão nomes diferentes. Isto é mais comum quando um único pacote fonte é utilizado para construir diferentes pacotes binários. Para encontrar o pacote fonte de um pacote binário em particular, digite:</p>
<div class="highlight-python"><div class="highlight"><pre>$ apt-cache showsrc tomboy | grep ^Package:
Package: tomboy
$ apt-cache showsrc python-vigra | grep ^Package:
Package: libvigraimpex
</pre></div>
</div>
<p><tt class="docutils literal"><span class="pre">apt-cache</span></tt> é parte da instalação padrão do Ubuntu.</p>
</div>
<div class="section" id="getting-the-code">
<h2>4.4. Obtendo o código<a class="headerlink" href="#getting-the-code" title="Link permanente para este título"></a></h2>
<p>Uma vez que você saiba em qual pacote fonte trabalhar, você deverá obter uma cópia do código para o seu sistema, para que você possa depurá-lo. No Desenvovimento distribuído do Ubuntu, isto é feito <a class="reference internal" href="udd-getting-the-source.html#branching"><em>ramificando o ramo do pacote fonte</em></a> correspondente ao pacote fonte. O Launchpad mantém ramos de pacotes fontes para todos os pacotes do Ubuntu.</p>
<p>Once you&#8217;ve got a local branch of the source package, you can investigate the
bug, create a fix, and upload your proposed fix to Launchpad, in the form of a
Bazaar branch.  When you are happy with your fix, you can <a class="reference internal" href="udd-sponsorship.html#merge-proposal"><em>submit a
merge proposal</em></a>, which asks other Ubuntu developers to
review and approve your change.  If they agree with your changes, an Ubuntu
developer will upload the new version of the package to Ubuntu so that
everyone gets the benefit of your excellent fix - and you get a little bit of
credit.  You&#8217;re now on your way to becoming an Ubuntu developer!</p>
<p>Nós vamos descrever especificações sobre como ramificar um código, enviar sua correção e solicitar uma revisão nas próximas seções.</p>
</div>
<div class="section" id="work-on-a-fix">
<span id="working-on-a-fix"></span><h2>4.5. trabalhar em uma correção<a class="headerlink" href="#work-on-a-fix" title="Link permanente para este título"></a></h2>
<p>Há livros inteiros escritos sobre encontrar erros, corrigi-los, testá-los, etc. Se você for um programador novato, tente corrigir erros fáceis primeiro, como erros de digitação óbvios. Tente alterar o mínimo possível, e documente sua alteração e suposições com clareza.</p>
<p>Antes de trabalhar na correção você mesmo, tenha certeza de investigar se ninguém já corrigiu ou está trabalhando na correção para a falha. Boas fontes para verificar são:</p>
<ul class="simple">
<li><p class="first">Rastreamento de erros upstream (e Debian) de erros abertos e fechados,</p>
</li>
<li><p class="first">Histórico de revisão do upstream (ou lançamento recente) poderia ter corrigido o problema,</p>
</li>
<li><p class="first">bugs ou envio de pacotes do Debian ou outras distribuições.</p>
</li>
</ul>
<p>Você agora quer criar um patch que inclui a correção.  O comando <tt class="docutils literal"><span class="pre">edit-patch</span></tt> é um caminho fácil para adicionar um patch em um pacote. Execute:</p>
<div class="highlight-python"><div class="highlight"><pre>$ edit-patch 99-new-patch
</pre></div>
</div>
<p>Isso copiará o empacotamento para um diretório temporário.  Agora você pode editar arquivos com um editor de textos ou aplicar patches do upstream, por exemplo:</p>
<div class="highlight-python"><div class="highlight"><pre>$ patch -p1 &lt; ../bugfix.patch
</pre></div>
</div>
<p>Após editar o tipo de arquivo <tt class="docutils literal"><span class="pre">exit</span></tt> ou pressione <tt class="docutils literal"><span class="pre">control-d</span></tt> para sair do shell temporário. O novo patch será adicionado em <tt class="docutils literal"><span class="pre">debian/patches</span></tt>.</p>
</div>
<div class="section" id="testing-the-fix">
<h2>4.6. Testando a correção<a class="headerlink" href="#testing-the-fix" title="Link permanente para este título"></a></h2>
<p>Para construir um pacote de teste com suas alterações, e execute estes comandos:</p>
<div class="highlight-python"><div class="highlight"><pre>$ bzr builddeb -- -S -us -uc
$ pbuilder-dist &lt;release&gt; build ../&lt;package&gt;_&lt;version&gt;.dsc
</pre></div>
</div>
<p>Isto irá criar um pacote fonte a partir do conteúdo do ramo (&#8220;-us -uc&#8221; irá apenas omitir o passo para assinar o pacote fonte) e &#8220;pbuilder-dist&#8221; irá construir o pacote a partir da fonte para qualquer &#8220;versão&#8221; que você escolher.</p>
<p>Uma vez que a construção for concluída, instale o pacote do <tt class="docutils literal"><span class="pre">~/pbuilder/&lt;lançamento&gt;_result/</span></tt> (usando <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">dpkg</span> <span class="pre">-i</span> <span class="pre">&lt;pacote&gt;_&lt;versão&gt;.deb</span></tt>).  Então teste para ver se a falha está corrigida.</p>
<div class="section" id="documenting-the-fix">
<h3>4.6.1. Documentando a correção<a class="headerlink" href="#documenting-the-fix" title="Link permanente para este título"></a></h3>
<p>É muito importante documentar a sua alteração suficientemente de maneira que os desenvolvedores que olharem o código no futuro não terão que adivinhar qual foi o seu raciocínio e quais foram a suposições. Todo pacote fonte do Debian e do Ubuntu inclui o &#8220;debian/changelog&#8221;, onde alterações em cada pacote enviado são rastreadas.</p>
<p>A maneira mais fácil de atualizar isto é executar:</p>
<div class="highlight-python"><div class="highlight"><pre>$ dch -i
</pre></div>
</div>
<p>Isto irá adicionar um modelo entrada de registro de alteração para você e iniciar um editor onde você possa preencher os espaços em branco. Um exemplo disso poderia ser:</p>
<div class="highlight-python"><div class="highlight"><pre>specialpackage (1.2-3ubuntu4) trusty; urgency=low

  * debian/control: updated description to include frobnicator (LP: #123456)

 -- Emma Adams &lt;emma.adams@isp.com&gt;  Sat, 17 Jul 2010 02:53:39 +0200
</pre></div>
</div>
<p><tt class="docutils literal"><span class="pre">dch</span></tt> should fill out the first and last line of such a changelog entry for
you already. Line 1 consists of the source package name, the version number,
which Ubuntu release it is uploaded to, the urgency (which almost always is
&#8216;low&#8217;). The last line always contains the name, email address and timestamp
(in <span class="target" id="index-0"></span><a class="rfc reference external" href="http://tools.ietf.org/html/rfc5322.html"><strong>RFC 5322</strong></a> format) of the change.</p>
<p>Com isso fora do caminho, vamos nos concentrar na entrada do registro de alteração propriamente dita: é muito importante documentar:</p>
<blockquote>
<div><ol class="arabic simple">
<li><p class="first">onde a alteração foi realizada</p>
</li>
<li><p class="first">o que foi alterado</p>
</li>
<li><p class="first">onde a discussão da mudança aconteceu</p>
</li>
</ol>
</div></blockquote>
<p>In our (very sparse) example the last point is covered by <tt class="docutils literal"><span class="pre">(LP:</span> <span class="pre">#123456)</span></tt>
which refers to Launchpad bug 123456. Bug reports or mailing list threads or
specifications are usually good information to provide as a rationale for a
change. As a bonus, if you use the <tt class="docutils literal"><span class="pre">LP:</span> <span class="pre">#&lt;number&gt;</span></tt> notation for Launchpad
bugs, the bug will be automatically closed when the package is uploaded to
Ubuntu.</p>
</div>
<div class="section" id="committing-the-fix">
<h3>4.6.2. Submetendo uma correção<a class="headerlink" href="#committing-the-fix" title="Link permanente para este título"></a></h3>
<p>Com a entrada escrita e salva no registro de mudanças, você pode apenas executar:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">debcommit</span>
</pre></div>
</div>
<p>e a mudança será submetida (localmente) com sua entrada no registro de mudanças como uma mensagem de submissão.</p>
<p>Para enviar ele para o Launchpad, como um nome de ramo remoto, você precisa manter a seguinte nomenclatura:</p>
<div class="highlight-python"><div class="highlight"><pre>lp:~&lt;yourlpid&gt;/ubuntu/&lt;release&gt;/&lt;package&gt;/&lt;branchname&gt;
</pre></div>
</div>
<p>Isto poderia por exemplo ser:</p>
<div class="highlight-python"><div class="highlight"><pre>lp:~emmaadams/ubuntu/trusty/specialpackage/fix-for-123456
</pre></div>
</div>
<p>Então se apenas você executar:</p>
<div class="highlight-python"><div class="highlight"><pre>bzr push lp:~emmaadams/ubuntu/trusty/specialpackage/fix-for-123456
bzr lp-propose
</pre></div>
</div>
<p>você deve estar preparado. O comando push deve enviá-lo ao Launchpad e o segundo comando irá abrir a página do Launchpad do ramo remoto no seu navegador. Lá, encontre o link &#8220;(+) Propose for merging&#8221;, clique nele para que a alteração seja revisada por alguém e incluída no Ubuntu.</p>
<p>Nosso artigo sobre <a class="reference internal" href="udd-sponsorship.html"><em>buscando orientação</em></a>  entra em mais detalhes sobre a obtenção de retorno para as suas alterações propostas.</p>
<p>Se o seu ramo corrigir problemas em uma versão estável ou for uma correção de segurança, você pode querer dar uma olhada no nosso artigo <a class="reference internal" href="security-and-stable-release-updates.html"><em>Atualizações de segurança e de versões estáveis</em></a>.</p>
</div>
</div>
</div>


	<div class="divide"></div>

          </div>

  <div id="sidebar" class="grid_3 omega">
    <div class="container-tweet">
        <h3>Tabela de Conteúdo</h3>
        <div class="toc">
          <ul>
<li><a class="reference internal" href="#">4. Corrigindo um erro no Ubuntu</a><ul>
<li><a class="reference internal" href="#introduction">4.1. Introdução</a></li>
<li><a class="reference internal" href="#finding-the-problem">4.2. Encontrando o problema</a></li>
<li><a class="reference internal" href="#figuring-out-what-to-fix">4.3. Descobrindo o que corrigir</a></li>
<li><a class="reference internal" href="#getting-the-code">4.4. Obtendo o código</a></li>
<li><a class="reference internal" href="#work-on-a-fix">4.5. trabalhar em uma correção</a></li>
<li><a class="reference internal" href="#testing-the-fix">4.6. Testando a correção</a><ul>
<li><a class="reference internal" href="#documenting-the-fix">4.6.1. Documentando a correção</a></li>
<li><a class="reference internal" href="#committing-the-fix">4.6.2. Submetendo uma correção</a></li>
</ul>
</li>
</ul>
</li>
</ul>

        </div>

      <div class="browse-guide">
        <h3>Browse The Guide:</h3>
        <ul>
          <li class="prev">
            <a href="udd-intro.html"
                      title="Tópico anterior: 3. Desenvolvimento distribuído do Ubuntu — Introdução">Go Previous</a>
          </li>
          
          <li class="center">
            <a title="Back to Index" href="index.html">Index Guide</a>
          </li>
        
          <li class="next">
            <a href="fixing-a-bug-example.html"
                      title="Próximo tópico: 5. Tutorial: corrigindo uma falha no Ubuntu">Go Next</a>
          </li>
        </ul>
        <span>Esta Página:</span> <a href="./_sources/fixing-a-bug.txt"
               rel="nofollow">Exibir Fonte</a>
      </div>
     </div>
     <div id="back_top"><a href="#top">Back to Top</a></div>
    </div>
    <!--</section>-->
  </div>
</div>
<div class="shadow"></div>
<footer>
  <div>
      Version: 0.3.5.
    <a href="https://bugs.launchpad.net/ubuntu-packaging-guide">Report bugs</a> or 
    <a href="https://code.launchpad.net/~ubuntu-packaging-guide-team/ubuntu-packaging-guide/trunk">grab the source code</a> from Launchpad.
      Criado usando <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
      <br />
        &copy; Copyright 2010-2014 , Ubuntu Developers, Creative Commons Attribution-ShareAlike 3.0.
        <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
        Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
        <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
        <img alt="Creative Commons License" style="border-width:0" 
        src="./_static/images/cc-by-sa.png" /></a>
    <br />
    <a href="http://people.ubuntu.com/~mitya57/ubuntu-packaging-guide-readme.html#translating">Help translate</a> or
    <a href="./_static/translators.html">view the list of translators</a>.

  </div>
</footer>
  </body>
</html>