(itstool) path: sect2/screen
<prompt>%</prompt> <userinput>diff -u <replaceable>file</replaceable>.orig <replaceable>file</replaceable> &gt; patch-<replaceable>pathname-file</replaceable></userinput>
Context English Portuguese (Brazil) State
<prompt>%</prompt> <userinput>cp <replaceable>file</replaceable> <replaceable>file</replaceable>.orig</userinput>
<prompt>%</prompt> <userinput>cp <replaceable>file</replaceable> <replaceable>file</replaceable>.orig</userinput>
After all changes have been made, <command>cd</command> back to the port directory. Use <command>make makepatch</command> to generate updated patch files in the <filename>files</filename> directory.
Depois que todas as alterações forem realizadas, <command>cd</command> de volta ao diretório do port. Execute <command>make makepatch</command> para gerar arquivos de patch atualizados no diretório <filename>files</filename>.
Use <varname>BINARY_ALIAS</varname> to substitute hardcoded commands during the build and avoid patching build files. See <xref linkend="binary-alias"/> for more information.
Usar <varname>BINARY_ALIAS</varname> para substituir comandos codificados durante a compilação e para evitar patching de arquivos de compilação. Veja <xref linkend="binary-alias"/> para maiores informações.
General Rules for Patching
Regras Gerais para Patching
Patch files are stored in <varname>PATCHDIR</varname>, usually <filename>files/</filename>, from where they will be automatically applied. All patches must be relative to <varname>WRKSRC</varname>. Typically <varname>WRKSRC</varname> is a subdirectory of <varname>WRKDIR</varname>, the directory where the distfile is extracted. Use <command>make -V WRKSRC</command> to see the actual path. The patch names are to follow these rules:
Arquivos patch são armazenados em <varname>PATCHDIR</varname>, geralmente <filename>files/</filename>, de onde serão aplicados automaticamente. Todas os patches devem ser relativos ao <varname>WRKSRC</varname>. Tipicamente <varname>WRKSRC</varname> é um subdiretório de <varname>WRKDIR</varname>, o diretório onde o distfile é extraído. Execute <command>make -V WRKSRC</command> para ver o caminho real. Os nomes dos patches devem seguir estas regras:
Avoid having more than one patch modify the same file. For example, having both <filename>patch-foobar.c</filename> and <filename>patch-foobar.c2</filename> making changes to <filename>${WRKSRC}/foobar.c</filename> makes them fragile and difficult to debug.
Evite ter mais de um patch modificando o mesmo arquivo. Por exemplo, ter os dois <filename>patch-foobar.c</filename> e <filename>patch-foobar.c2</filename> fazendo alterações em <filename>${WRKSRC}/foobar.c</filename> torna-os frágeis e difíceis de serem depurados.
When creating names for patch files, replace each underscore (<literal>_</literal>) with two underscores (<literal>__</literal>) and each slash (<literal>/</literal>) with one underscore (<literal>_</literal>). For example, to patch a file named <filename>src/freeglut_joystick.c</filename>, name the corresponding patch <filename>patch-src_freeglut__joystick.c</filename>. Do not name patches like <filename>patch-aa</filename> or <filename>patch-ab</filename>. Always use the path and file name in patch names. Using <command>make makepatch</command> automatically generates the correct names.
Ao criar nomes para arquivos de patch, substitua cada underline (<literal>_</literal>) com dois underlines (<literal>__</literal>) e cada barra (<literal>/</literal>) com um underline (<literal>_</literal>). Por exemplo, para corrigir um arquivo chamado <filename>src/freeglut_joystick.c</filename> nomeie o patch correspondente <filename>patch-src_freeglut__joystick.c</filename>. Não nomeie patches como <filename>patch-aa</filename> ou <filename>patch-ab</filename>. Sempre use o caminho e o nome do arquivo nos nomes dos patches. O <command>make makepatch</command> gera automaticamente os nomes corretos.
A patch may modify multiple files if the changes are related and the patch is named appropriately. For example, <filename>patch-add-missing-stdlib.h</filename>.
Um patch pode modificar vários arquivos se as alterações estiverem relacionadas e o patch tiver o nome apropriado. Por exemplo, <filename>patch-add-missing-stdlib.h</filename>.
Only use characters <literal>[-+._a-zA-Z0-9]</literal> for naming patches. In particular, <emphasis>do not use <literal>::</literal> as a path separator,</emphasis> use <literal>_</literal> instead.
Use apenas caracteres <literal>[-+._ a-zA-Z0-9]</literal> para nomear patches. Em particular, <emphasis>não use <literal>::</literal> como um separador de path, </emphasis> use <literal>_</literal> no lugar.
Minimize the amount of non-functional whitespace changes in patches. It is common in the Open Source world for projects to share large amounts of a code base, but obey different style and indenting rules. When taking a working piece of functionality from one project to fix similar areas in another, please be careful: the resulting patch may be full of non-functional changes. It not only increases the size of the ports repository but makes it hard to find out what exactly caused the problem and what was changed at all.
Minimize a quantidade de mudanças de espaço em branco não funcionais em patches. É comum no mundo Open Source para projetos compartilhar grandes quantidades de uma base de código, mas obedecer a regras de recuo e estilo diferentes. Ao usar uma funcionalidade funcional de um projeto para consertar áreas similares em outra, por favor, tenha cuidado: o patch resultante pode estar cheio de mudanças não-funcionais. Ele não só aumenta o tamanho do repositório do ports, mas torna difícil descobrir o que exatamente causou o problema e o que foi alterado em todos.
If a file must be deleted, do it in the <_:buildtarget-1/> target rather than as part of the patch.
Se um arquivo precisar ser excluído, faça-o no target <_:buildtarget-1/> em vez de como parte do patch.
Manual Patch Generation
Geração Manual de Patches
Manual patch creation is usually not necessary. Automatic patch generation as described earlier in this section is the preferred method. However, manual patching may be required occasionally.
A criação manual de patches geralmente não é necessária. A geração automática de patches, conforme descrito anteriormente nesta seção, é o método preferido. No entanto, patches manuais podem ser necessários ocasionalmente.
Patches are saved into files named <filename>patch-*</filename> where <replaceable>*</replaceable> indicates the pathname of the file that is patched, such as <filename>patch-Imakefile</filename> or <filename>patch-src-config.h</filename>.
Patches são salvos em arquivos nomeados como <filename>patch-*</filename> onde <replaceable>*</replaceable> indica o nome do caminho do arquivo que está sendo feito o patch, como <filename>patch-imakefile</filename> ou <filename>patch-src-config.h</filename>.
After the file has been modified, <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> is used to record the differences between the original and the modified version. <option>-u</option> causes <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> to produce <quote>unified</quote> diffs, the preferred form.
Depois que o arquivo foi modificado, <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> é usado para registrar as diferenças entre a versão original e a modificada. <option>-u</option> faz com que o <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> produza diffs <quote>unificados</quote>, a forma preferida.
<prompt>%</prompt> <userinput>diff -u <replaceable>file</replaceable>.orig <replaceable>file</replaceable> &gt; patch-<replaceable>pathname-file</replaceable></userinput>
<prompt>%</prompt> <userinput>diff -u <replaceable>file</replaceable>.orig <replaceable>file</replaceable> &gt; patch-<replaceable>pathname-file</replaceable></userinput>
When generating patches for new, added files, <option>-N</option> is used to tell <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> to treat the non-existent original file as if it existed but was empty:
Ao gerar patches para novos arquivos adicionados, <option>-N</option> é usado para dizer ao <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> para tratar o arquivo original inexistente como se existisse, mas estava vazio:
<prompt>%</prompt> <userinput>diff -u -N <replaceable>newfile</replaceable>.orig <replaceable>newfile</replaceable> &gt; patch-<replaceable>pathname-newfile</replaceable></userinput>
<prompt>%</prompt> <userinput>diff -u -N <replaceable>newfile</replaceable>.orig <replaceable>newfile</replaceable> &gt; patch-<replaceable>pathname-newfile</replaceable></userinput>
Do not add <literal>$FreeBSD$</literal> RCS strings in patches. When patches are added to the <application>Subversion</application> repository with <command>svn add</command>, the <literal>fbsd:nokeywords</literal> property is set to <literal>yes</literal> automatically so keywords in the patch are not modified when committed. The property can be added manually with <command>svn propset fbsd:nokeywords yes <replaceable>files...</replaceable></command>.
Não adicione Strings RCS <literal>$FreeBSD$</literal> em patches. Quando os patches são adicionados ao repositório <application>Subversion</application> com <command>svn add</command>, a propriedade <literal>fbsd:nokeywords</literal> é definida para <literal>yes</literal> automaticamente para que as keywords no patch não sejam modificadas no commit. A propriedade pode ser adicionada manualmente <command>svn propset fbsd:nokeywords yes <replaceable>files...</replaceable></command>.
Using the recurse (<option>-r</option>) option to <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> to generate patches is fine, but please look at the resulting patches to make sure there is no unnecessary junk in there. In particular, diffs between two backup files, <filename>Makefile</filename>s when the port uses <command>Imake</command> or GNU <command>configure</command>, etc., are unnecessary and have to be deleted. If it was necessary to edit <filename></filename> and run <command>autoconf</command> to regenerate <command>configure</command>, do not take the diffs of <command>configure</command> (it often grows to a few thousand lines!). Instead, define <literal>USES=autoreconf</literal> and take the diffs of <filename></filename>.
Usar a opção (<option>-r</option>) do <citerefentry><refentrytitle>diff</refentrytitle><manvolnum>1</manvolnum></citerefentry> para gerar patches é razoável, mas por favor, analise os patches resultantes para se certificar de que não há nenhum lixo desnecessário neles. Em particular, diffs entre dois arquivos de backup, quando o port usa <command>Imake</command> ou GNU <command>configure</command>, etc., diffs de <filename>Makefile</filename>s são desnecessários e devem ser eliminados. Se for necessário editar o <filename></filename> e executar o <command>autoconf</command> para regerar o <command>configure</command>, não gere diffs do <command>configure</command> (ele geralmente cresce para algumas milhares de linhas!). Em vez disso, defina <literal>USES=autoreconf</literal> e gere os diffs no <filename></filename>.
Simple Automatic Replacements
Substituições Automáticas Simples
Simple replacements can be performed directly from the port <filename>Makefile</filename> using the in-place mode of <citerefentry><refentrytitle>sed</refentrytitle><manvolnum>1</manvolnum></citerefentry>. This is useful when changes use the value of a variable:
Substituições simples podem ser realizadas diretamente do <filename>Makefile</filename> do port usando o modo in-loco do <citerefentry><refentrytitle>sed</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Isso é útil quando as alterações usam o valor de uma variável:
@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile
@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${WRKSRC}/Makefile
Only use <citerefentry><refentrytitle>sed</refentrytitle><manvolnum>1</manvolnum></citerefentry> to replace variable content. You must use patch files instead of <citerefentry><refentrytitle>sed</refentrytitle><manvolnum>1</manvolnum></citerefentry> to replace static content.
Use o <citerefentry><refentrytitle>sed</refentrytitle><manvolnum>1</manvolnum></citerefentry> apenas para substituir conteúdo de variáveis. Você deve usar arquivos patch em vez do <citerefentry><refentrytitle>sed</refentrytitle><manvolnum>1</manvolnum></citerefentry> para substituir conteúdo estático.
Quite often, software being ported uses the CR/LF convention in source files. This may cause problems with further patching, compiler warnings, or script execution (like <literal>/bin/sh^M not found</literal>.) To quickly convert all files from CR/LF to just LF, add this entry to the port <filename>Makefile</filename>:
Muitas vezes, o software sendo portado usa a convenção CR/LF nos arquivos fonte. Isso pode causar problemas com correções adicionais, avisos do compilador ou execução de scripts (como <literal>/bin/sh^M não encontrado</literal>.) Para converter rapidamente todos os arquivos de CR/LF para apenas LF, adicione essa entrada ao <filename>Makefile</filename> do port:
USES= dos2unix
USES= dos2unix
A list of specific files to convert can be given:
Uma lista de arquivos específicos para conversão pode ser informada:
USES= dos2unix
DOS2UNIX_FILES= util.c util.h
USES= dos2unix
DOS2UNIX_FILES= util.c util.h
Use <varname>DOS2UNIX_REGEX</varname> to convert a group of files across subdirectories. Its argument is a <citerefentry><refentrytitle>find</refentrytitle><manvolnum>1</manvolnum></citerefentry>-compatible regular expression. More on the format is in <citerefentry><refentrytitle>re_format</refentrytitle><manvolnum>7</manvolnum></citerefentry>. This option is useful for converting all files of a given extension. For example, convert all source code files, leaving binary files intact:
Use <varname>DOS2UNIX_REGEX</varname> para converter um grupo de arquivos em subdiretórios. Seu argumento é um <citerefentry><refentrytitle>find</refentrytitle><manvolnum>1</manvolnum></citerefentry> compatível com expressão regular. Mais sobre o formato está em <citerefentry><refentrytitle>re_format</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Esta opção é útil para converter todos os arquivos de uma determinada extensão. Por exemplo, converta todos os arquivos de código-fonte, deixando os arquivos binários intactos:
USES= dos2unix
DOS2UNIX_REGEX= .*\.([ch]|cpp)
USES= dos2unix
DOS2UNIX_REGEX= .*\.([ch]|cpp)
A similar option is <varname>DOS2UNIX_GLOB</varname>, which runs <command>find</command> for each element listed in it.
Uma opção similar é <varname>DOS2UNIX_GLOB</varname>, que executa o <command>find</command> para cada elemento listado nele.


New source string 11 months ago
Browse all component changes

Things to check

Unchanged translation

Source and translation are identical



English Portuguese (Brazil)
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: sect2/screen
No labels currently set.
Source string location
Source string age
11 months ago
Translation file
books/pt_BR/porters-handbook.po, string 165