This file is indexed.

/usr/share/doc/ubuntu-packaging-guide-html-pt-br/packaging-new-software.html is in ubuntu-packaging-guide-html-pt-br 0.3.6.

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
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
<!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>6. Empacotando um novo software &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.6',
        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="7. Atualizações de segurança de versão estável" href="security-and-stable-release-updates.html" />
    <link rel="prev" title="5. Tutorial: corrigindo uma falha no Ubuntu" href="fixing-a-bug-example.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="security-and-stable-release-updates.html" title="7. Atualizações de segurança de versão estável"
	        accesskey="N">próximo</a></li>
	        <li class="page_item"><a  
	        href="fixing-a-bug-example.html" title="5. Tutorial: corrigindo uma falha no Ubuntu"
	        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="packaging-new-software">
<h1>6. Empacotando um novo software<a class="headerlink" href="#packaging-new-software" title="Link permanente para este título"></a></h1>
<p>Mesmo que haja milhares de pacotes no arquivo do Ubuntu, ainda há os que ninguém pegou ainda. Se houver um programa que você acha que deva ganhar uma exposição maior, talvez você queira colocar a mão na massa e criar um pacote para o Ubuntu ou um <a class="reference external" href="https://help.launchpad.net/Packaging/PPA">PPA</a>. Este guia irá mostrar passo-a-passo o processo de empacotamento e um novo programa.</p>
<p>Você deverá ler o artigo <a class="reference internal" href="getting-set-up.html"><em>Preparando</em></a> para preparar o seu ambiente de desenvolvimento.</p>
<div class="section" id="checking-the-program">
<h2>6.1. Verificando o programa<a class="headerlink" href="#checking-the-program" title="Link permanente para este título"></a></h2>
<p>O primeiro estágio no empacotamento é obter o tar da versão a partir do upstream (nós chamamos os autores dos aplicativos de &#8220;upstream&#8221;) e verificar se ele compila e executa.</p>
<p>Este guia irá mostrar como empacotar um aplicativo simples chamado GNU Hello que foi postado em <a class="reference external" href="http://www.gnu.org/software/hello/">GNU.org</a>.</p>
<p>Se você não tiver as ferramentas para compilação, vamos nos certificar de que você as obtenha antes. E se você não possui as dependências necessárias, vamos instalá-las também.</p>
<p>Instalar ferramentas de construção:</p>
<div class="highlight-python"><div class="highlight"><pre>$ sudo apt-get install build-essential
</pre></div>
</div>
<p>Baixar pacote principal:</p>
<div class="highlight-python"><div class="highlight"><pre>$ wget -O hello-2.7.tar.gz &quot;http://ftp.gnu.org/gnu/hello/hello-2.7.tar.gz&quot;
</pre></div>
</div>
<p>Agora descompacte o pacote principal:</p>
<div class="highlight-python"><div class="highlight"><pre>$ tar xf hello-2.7.tar.gz
$ cd hello-2.7
</pre></div>
</div>
<p>Este aplicativo utiliza um sistema de compilação de autoconfiguração, então nós devemos executar &#8221;./configure&#8221; para preparar para a compilação.</p>
<p>This will check for the required build dependencies. As <tt class="docutils literal"><span class="pre">hello</span></tt> is a simple
example, <tt class="docutils literal"><span class="pre">build-essential</span></tt> should provide everything we need. For more
complex programs, the command will fail if you do not have the needed libraries
and development files. Install the needed packages and repeat until the command
runs successfully.:</p>
<div class="highlight-python"><div class="highlight"><pre>$ ./configure
</pre></div>
</div>
<p>Agora você pode compilar o fonte:</p>
<div class="highlight-python"><div class="highlight"><pre>$ make
</pre></div>
</div>
<p>Se a compilação concluir com sucesso você poderá instalar e executar o programa:</p>
<div class="highlight-python"><div class="highlight"><pre>$ sudo make install
$ hello
</pre></div>
</div>
</div>
<div class="section" id="starting-a-package">
<h2>6.2. Iniciando um pacote<a class="headerlink" href="#starting-a-package" title="Link permanente para este título"></a></h2>
<p><tt class="docutils literal"><span class="pre">bzr-builddeb</span></tt> includes a plugin to create a new package from a template. The
plugin is a wrapper around the <tt class="docutils literal"><span class="pre">dh_make</span></tt> command. You should already have
these if you installed <tt class="docutils literal"><span class="pre">packaging-dev</span></tt>. Run the command providing the package
name, version number, and path to the upstream tarball:</p>
<div class="highlight-python"><div class="highlight"><pre>$ sudo apt-get install dh-make
$ cd ..
$ bzr dh-make hello 2.7 hello-2.7.tar.gz
</pre></div>
</div>
<p>Quando for perguntado o tipo de pacote, digite &#8220;s&#8221; para um único binário. Isto irá importar o código para um ramo e adicionar o diretório de empacotamento &#8220;debian/&#8221;. Dê uma olhada no conteúdo. A maioria dos arquivos adicionados são necessários somente para pacotes especializados (como módulos Emacs), então você pode começar removendo os arquivos de exemplo opcionais:</p>
<div class="highlight-python"><div class="highlight"><pre>$ cd hello/debian
$ rm *ex *EX
</pre></div>
</div>
<p>Agora você deve customizar cada um dos arquivos.</p>
<p>In <tt class="docutils literal"><span class="pre">debian/changelog</span></tt> change the
version number to an Ubuntu version: <tt class="docutils literal"><span class="pre">2.7-0ubuntu1</span></tt> (upstream version 2.7,
Debian version 0, Ubuntu version 1).  Also change <tt class="docutils literal"><span class="pre">unstable</span></tt> to the current
development Ubuntu release such as <tt class="docutils literal"><span class="pre">trusty</span></tt>.</p>
<p>Much of the package building work is done by a series of scripts
called <tt class="docutils literal"><span class="pre">debhelper</span></tt>.  The exact behaviour of <tt class="docutils literal"><span class="pre">debhelper</span></tt> changes
with new major versions, the compat file instructs <tt class="docutils literal"><span class="pre">debhelper</span></tt> which
version to act as.  You will generally want to set this to the most
recent version which is <tt class="docutils literal"><span class="pre">9</span></tt>.</p>
<p><tt class="docutils literal"><span class="pre">control</span></tt> contains all the metadata of the package.  The first paragraph
describes the source package. The second and following paragraphs describe
the binary packages to be built.  We will need to add the packages needed to
compile the application to <tt class="docutils literal"><span class="pre">Build-Depends:</span></tt>. For <tt class="docutils literal"><span class="pre">hello</span></tt>, make sure that it
includes at least:</p>
<div class="highlight-python"><div class="highlight"><pre>Build-Depends: debhelper (&gt;= 9)
</pre></div>
</div>
<p>Você também precisará preencher a descrição do programa no campo &#8220;Description:&#8221;.</p>
<p>&#8220;copyright&#8221; deve ser preenchido de acordo com a licença do código upstream. De acordo com o arquivo hello/COPYING, ela é GNU GPL 3 ou mais recente.</p>
<p>&#8220;docs&#8221; contém todos os arquivos de documentação do upstream que você acha que devam ser incluídos no pacote final.</p>
<p>&#8220;README.source&#8221; e &#8220;README.Debian&#8221; são necessários somente se o seu pacote tiver quaisquer características fora do padrão. Nós não temos, você pode excluí-los.</p>
<p>&#8220;source/format&#8221; pode ser deixado como está, ele descreve o formato da versão do pacote fonte e deve ser &#8220;3.0 (quilt)&#8221;.</p>
<p>O &#8220;rules&#8221; é o arquivo mais complexo. É um makefile que compila o código e o transforma em um pacote binário. Felizmente, a maior parte do trabalho hoje em dia é feita automaticamente pelo &#8220;debhelper 7&#8221; para que o alvo makefile universal &#8220;%&#8221; apenas execute o script &#8220;dh&#8221;, que irá executar tudo que for necessário.</p>
<p>Todos estes arquivos são explicados mais detalhadamente no artigo <a class="reference internal" href="debian-dir-overview.html"><em>resumo do diretório debian</em></a>.</p>
<p>Finalmente submeta o código para seu ramo de empacotamento:</p>
<div class="highlight-python"><div class="highlight"><pre>$ bzr add debian/source/format
$ bzr commit -m &quot;Initial commit of Debian packaging.&quot;
</pre></div>
</div>
</div>
<div class="section" id="building-the-package">
<h2>6.3. Construindo o pacote<a class="headerlink" href="#building-the-package" title="Link permanente para este título"></a></h2>
<p>Agora precisamos verificar se nosso empacotamento compila o pacote com sucesso e constrói o pacote binário .deb:</p>
<div class="highlight-python"><div class="highlight"><pre>$ bzr builddeb -- -us -uc
$ cd ../../
</pre></div>
</div>
<p>&#8220;bzr builddeb&#8221; é um comando para construir o pacote no local atual. As opções &#8220;-us -uc&#8221; dizem que não é preciso que o GPG assine o pacote. O resultado será colocado em &#8221;..&#8221;.</p>
<p>Você pode visualizar o conteúdo do pacote com:</p>
<div class="highlight-python"><div class="highlight"><pre>$ lesspipe hello_2.7-0ubuntu1_amd64.deb
</pre></div>
</div>
<p>Install the package and check it works (later you will be able to uninstall it
using <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">apt-get</span> <span class="pre">remove</span> <span class="pre">hello</span></tt> if you want):</p>
<div class="highlight-python"><div class="highlight"><pre>$ sudo dpkg --install hello_2.7-0ubuntu1_amd64.deb
</pre></div>
</div>
<p>You can also install all packages at once using:</p>
<div class="highlight-python"><div class="highlight"><pre>$ sudo debi
</pre></div>
</div>
</div>
<div class="section" id="next-steps">
<h2>6.4. Próximos passos<a class="headerlink" href="#next-steps" title="Link permanente para este título"></a></h2>
<p>Even if it builds the .deb binary package, your packaging may have
bugs.  Many errors can be automatically detected by our tool
<tt class="docutils literal"><span class="pre">lintian</span></tt> which can be run on the source .dsc metadata file, .deb
binary packages or .changes file:</p>
<div class="highlight-python"><div class="highlight"><pre>$ lintian hello_2.7-0ubuntu1.dsc
$ lintian hello_2.7-0ubuntu1_amd64.deb
</pre></div>
</div>
<p>To see verbose description of the problems use <tt class="docutils literal"><span class="pre">--info</span></tt> lintian flag
or <tt class="docutils literal"><span class="pre">lintian-info</span></tt> command.</p>
<p>Results of Ubuntu archive checks can be found online on
<a class="reference external" href="http://lintian.ubuntuwire.org">http://lintian.ubuntuwire.org</a>.</p>
<p>For Python packages, there is also a <tt class="docutils literal"><span class="pre">lintian4python</span></tt> tool that provides
some additional lintian checks.</p>
<p>Depois de efetuar uma correção no empacotamento, você pode reconstruí-lo usando &#8220;-nc&#8221; (no clean) não precisando construir tudo novamente:</p>
<div class="highlight-python"><div class="highlight"><pre>$ bzr builddeb -- -nc -us -uc
</pre></div>
</div>
<p>Having checked that the package builds locally you should ensure it builds on a
clean system using <tt class="docutils literal"><span class="pre">pbuilder</span></tt>. Since we are going to upload to a PPA
(Personal Package Archive) shortly, this upload will need to be <em>signed</em> to
allow Launchpad to verify that the upload comes from you (you can tell the
upload will be signed because the <tt class="docutils literal"><span class="pre">-us</span></tt> and <tt class="docutils literal"><span class="pre">-uc</span></tt> flags are not passed to
<tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">builddeb</span></tt> like they were before). For signing to work you need to have
set up GPG. If you haven&#8217;t set up <tt class="docutils literal"><span class="pre">pbuilder-dist</span></tt> or GPG yet, <a class="reference internal" href="getting-set-up.html"><em>do so
now</em></a>:</p>
<div class="highlight-python"><div class="highlight"><pre>$ bzr builddeb -S
$ cd ../build-area
$ pbuilder-dist trusty build hello_2.7-0ubuntu1.dsc
</pre></div>
</div>
<p>Quando você estiver feliz com seu pacote você irá querer que outros revisem-o. Você pode enviar para o ramo no Launchpad para revisão:</p>
<div class="highlight-python"><div class="highlight"><pre>$ bzr push lp:~&lt;lp-username&gt;/+junk/hello-package
</pre></div>
</div>
<p>Enviá-lo ao PPA irá assegurar que ele pode ser construído e irá fornecer uma maneira fácil para você e os outros testarem os pacotes binários. Você deverá configurá um PPA no Launchpad e então enviar o pacote com &#8220;dput&#8221;:</p>
<div class="highlight-python"><div class="highlight"><pre>$ dput ppa:&lt;lp-username&gt;/&lt;ppa-name&gt; hello_2.7-0ubuntu1.changes
</pre></div>
</div>
<p>Veja <a class="reference internal" href="udd-uploading.html"><em>uploading</em></a> para maiores informações.</p>
<p>You can ask for reviews in <tt class="docutils literal"><span class="pre">#ubuntu-motu</span></tt> IRC channel, or on the
<a class="reference external" href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-motu">MOTU mailing list</a>.  There might also be a more specific
team you could ask such as the GNU team for more specific questions.</p>
</div>
<div class="section" id="submitting-for-inclusion">
<h2>6.5. Submetendo para inclusão<a class="headerlink" href="#submitting-for-inclusion" title="Link permanente para este título"></a></h2>
<p>Há várias maneira pelas quais um pacote pode entrar no Ubuntu. Na maioria dos casos, ir através do Debian primeiro pode ser a melhor maneira. Isto assegurará que o seu pacote alcançará o maior número de usuários, porque estará disponível não somente no Debian e no Ubuntu, mas também em todas as distribuições derivadas. Aqui estão alguns links úteis para enviar novos pacotes para o Debian:</p>
<blockquote>
<div><ul class="simple">
<li><a class="reference external" href="https://wiki.debian.org/DebianMentorsFaq">Debian Mentors FAQ</a> - debian-mentors is for the mentoring of new and
prospective Debian Developers. It is where you can find a sponsor
to upload your package to the archive.</li>
<li><a class="reference external" href="http://www.debian.org/devel/wnpp/">Work-Needing and Prospective Packages</a> - Information on how to file
&#8220;Intent to Package&#8221; and &#8220;Request for Package&#8221; bugs as well as list
of open ITPs and RFPs.</li>
<li><a class="reference external" href="http://www.debian.org/doc/manuals/developers-reference/pkgs.html#newpackage">Debian Developer&#8217;s Reference, 5.1. New packages</a> - The entire
document is invaluable for both Ubuntu and Debian packagers. This
section documents processes for submitting new packages.</li>
</ul>
</div></blockquote>
<p>In some cases, it might make sense to go directly into Ubuntu first. For
instance, Debian might be in a freeze making it unlikely that your
package will make it into Ubuntu in time for the next release. This
process is documented on the <a class="reference external" href="https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages">&#8220;New Packages&#8221;</a> section of the Ubuntu wiki.</p>
</div>
<div class="section" id="screenshots">
<h2>6.6. Screenshots<a class="headerlink" href="#screenshots" title="Link permanente para este título"></a></h2>
<p>Once you have uploaded a package to debian, you should add screenshots
to allow propective users to see what the program is like. These should
be uploaded to <a class="reference external" href="http://screenshots.debian.net/upload">http://screenshots.debian.net/upload</a> .</p>
</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="#">6. Empacotando um novo software</a><ul>
<li><a class="reference internal" href="#checking-the-program">6.1. Verificando o programa</a></li>
<li><a class="reference internal" href="#starting-a-package">6.2. Iniciando um pacote</a></li>
<li><a class="reference internal" href="#building-the-package">6.3. Construindo o pacote</a></li>
<li><a class="reference internal" href="#next-steps">6.4. Próximos passos</a></li>
<li><a class="reference internal" href="#submitting-for-inclusion">6.5. Submetendo para inclusão</a></li>
<li><a class="reference internal" href="#screenshots">6.6. Screenshots</a></li>
</ul>
</li>
</ul>

        </div>

      <div class="browse-guide">
        <h3>Browse The Guide:</h3>
        <ul>
          <li class="prev">
            <a href="fixing-a-bug-example.html"
                      title="Tópico anterior: 5. Tutorial: corrigindo uma falha no Ubuntu">Go Previous</a>
          </li>
          
          <li class="center">
            <a title="Back to Index" href="index.html">Index Guide</a>
          </li>
        
          <li class="next">
            <a href="security-and-stable-release-updates.html"
                      title="Próximo tópico: 7. Atualizações de segurança de versão estável">Go Next</a>
          </li>
        </ul>
        <span>Esta Página:</span> <a href="./_sources/packaging-new-software.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.6.
    <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.3.
      <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>