The translation is temporarily closed for contributions due to maintenance, please come back later.
Context English Portuguese (Brazil) State
This paper describes the approach used by the FreeBSD release engineering team to make production quality releases of the FreeBSD Operating System. It details the methodology used for the official FreeBSD releases and describes the tools available for those interested in producing customized FreeBSD releases for corporate rollouts or commercial productization. Este artigo descreve a abordagem usada pela equipe de engenharia de release do FreeBSD para produzir versões do Sistema Operacional FreeBSD com qualidade de produção. Ele detalha a metodologia utilizada para as versões oficiais do FreeBSD e descreve as ferramentas disponíveis para aqueles interessados em produzir versões customizadas do FreeBSD para uso corporativo ou para uso em produtos comerciais.
The rapid pace of <systemitem>FreeBSD</systemitem> development makes the main development branch unsuitable for the everyday use by the general public. In particular, stabilizing efforts are required for polishing the development system into a production quality release. To solve this conflict, development continues on several parallel tracks. The main development branch is the <emphasis>HEAD</emphasis> or <emphasis>trunk</emphasis> of our Subversion tree, known as <quote>FreeBSD-CURRENT</quote> or <quote>-CURRENT</quote> for short. O ritmo acelerado de desenvolvimento do <systemitem>FreeBSD</systemitem> torna a principal branch de desenvolvimento inadequada para o uso diário pelo público em geral. Em particular, são necessários esforços de estabilização para polir o sistema de desenvolvimento em uma release de qualidade apropriada para uso em ambiente produtivo. Para resolver este conflito, o desenvolvimento continua em várias trilhas paralelas. A principal branch de desenvolvimento é a <emphasis>HEAD</emphasis> ou <emphasis>trunk</emphasis> da nossa árvore do Subversion, conhecida como <quote>FreeBSD-CURRENT</quote> ou <quote>-CURRENT</quote> quando abreviado.
<acronym>MFC</acronym> stands for <quote>Merge From CURRENT</quote> and it describes the process of merging a tested change from our -CURRENT development branch to our -STABLE branch. Project policy requires any change to be first applied to trunk, and merged to the -STABLE branches after sufficient external testing was done by -CURRENT users (developers are expected to extensively test the change before committing to -CURRENT, but it is impossible for a person to exercise all usages of the general-purpose operating system). Minimal MFC period is 3 days, which is typically used only for trivial or critical bugfixes. <acronym>MFC</acronym> significa <quote>Merge From CURRENT</quote> e descreve o processo de fusão de uma alteração testada de nossa branch de desenvolvimento -CURRENT com a nossa branch -STABLE. A política do projeto requer que qualquer mudança seja aplicada pela primeira vez ao trunk, e aplicada às branches -STABLE após testes externos suficientes serem feitos pelos usuários no -CURRENT (espera-se que os desenvolvedores testem extensivamente a mudança antes de enviarem a mesma para o -CURRENT, mas é impossível para uma pessoa exercer todos os usos de um sistema operacional de propósito geral). O período mínimo de MFC é de 3 dias, que normalmente é usado apenas para correções de bugs triviais ou críticas.
The layout of FreeBSD branches in Subversion is described in the <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/committers-guide/subversion-primer.html#subversion-primer-base-layout">Committer's Guide</link>. The first step in creating a branch is to identify the revision of the <literal>stable/<replaceable>X</replaceable></literal> sources that you want to branch <emphasis>from</emphasis>. O layout das branchs do FreeBSD no Subversion é descrito no <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/committers-guide/subversion-primer.html#subversion-primer-base-layout">Guia do Commiter</link>. O primeiro passo na criação de uma branch é identificar a revisão do código fonte do <literal>stable/<replaceable>X</replaceable></literal>, a partir do qual você deseja criar a nova <emphasis>branch</emphasis>.
FreeBSD <quote>releases</quote> can be built by anyone with a fast machine and access to a source repository. (That should be everyone, since we offer Subversion access! See the <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/svn.html">Subversion section in the Handbook</link> for details.) The <emphasis>only</emphasis> special requirement is that the <citerefentry><refentrytitle>md</refentrytitle><manvolnum>4</manvolnum></citerefentry> device must be available. If the device is not loaded into your kernel, then the kernel module should be automatically loaded when <citerefentry><refentrytitle>mdconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> is executed during the boot media creation phase. All of the tools necessary to build a release are available from the Subversion repository in <filename>src/release</filename>. These tools aim to provide a consistent way to build FreeBSD releases. A complete release can actually be built with only a single command, including the creation of <acronym>ISO</acronym> images suitable for burning to CDROM or DVD, and an FTP install directory. <citerefentry><refentrytitle>release</refentrytitle><manvolnum>7</manvolnum></citerefentry> fully documents the <command>src/release/generate-release.sh</command> script which is used to build a release. <command>generate-release.sh</command> is a wrapper around the Makefile target: <command>make release</command>. As <quote>releases</quote> do FreeBSD podem ser construídas por qualquer pessoa com uma máquina rápida e acesso a um repositório de código-fonte. (Isso deveria ser todo mundo, já que oferecemos acesso ao Subversion! Veja a seção sobre <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/svn.html">Subversion</link> no Handbook para detalhes.) O <emphasis>único</emphasis> requisito especial é que o dispositivo <citerefentry><refentrytitle>md</refentrytitle><manvolnum>4</manvolnum></citerefentry> esteja disponível. Se o dispositivo não estiver carregado em seu kernel, então o módulo do kernel deve ser carregado automaticamente quando o <citerefentry><refentrytitle>mdconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> for executado durante a fase de criação da mídia de boot. Todas as ferramentas necessárias para construir uma release estão disponíveis no repositório Subversion em <filename>src/release</filename>. Essas ferramentas visam fornecer uma maneira consistente de construir versões do FreeBSD. Uma release completa pode ser construída com apenas um único comando, incluindo a criação de imagens <acronym>ISO</acronym> adequadas para gravação em CD-ROM ou DVD e um diretório para instalação por FTP. A pagina de manual <citerefentry><refentrytitle>release</refentrytitle><manvolnum>7</manvolnum></citerefentry> documenta completamente o script <command>src/release/generate-release.sh</command> que é usado para construir uma release. O <command>generate-release.sh</command> é um invólucro em torno do target do Makefile: <command>make release</command>.
The ISO images. The <quote>*</quote> is <filename>disc1</filename>, <filename>disc2</filename>, etc. Only if there is a <filename>disc1</filename> and there is an alternative first installation CD (for example a stripped-down install with no windowing system) there may be a <filename>mini</filename> as well. As imagens ISO. O <quote>*</quote> é o <filename>disc1</filename>, <filename> disc2 </filename>, etc. Somente se houver um <filename>disc1</filename> e houver um CD alternativo para o primeiro disco de instalação (por exemplo, uma instalação simplificada sem sistema de janelas) também pode haver um <filename>mini</filename>.
I would like to thank Jordan Hubbard for giving me the opportunity to take on some of the release engineering responsibilities for FreeBSD 4.4 and also for all of his work throughout the years making FreeBSD what it is today. Of course the release would not have been possible without all of the release-related work done by Satoshi Asami <email>asami@FreeBSD.org</email>, Steve Price <email>steve@FreeBSD.org</email>, Bruce A. Mah <email>bmah@FreeBSD.org</email>, Nik Clayton <email>nik@FreeBSD.org</email>, David O'Brien <email>obrien@FreeBSD.org</email>, Kris Kennaway <email>kris@FreeBSD.org</email>, John Baldwin <email>jhb@FreeBSD.org</email> and the rest of the FreeBSD development community. I would also like to thank Rodney W. Grimes <email>rgrimes@FreeBSD.org</email>, Poul-Henning Kamp <email>phk@FreeBSD.org</email>, and others who worked on the release engineering tools in the very early days of FreeBSD. This article was influenced by release engineering documents from the CSRG <_:footnote-1/> , the NetBSD Project, <_:footnote-2/> , and John Baldwin's proposed release engineering process notes. <_:footnote-3/> Eu gostaria de agradecer a Jordan Hubbard por me dar a oportunidade de assumir algumas das responsabilidades de engenharia de release do FreeBSD 4.4 e também por todo o seu trabalho ao longo dos anos fazendo do FreeBSD o que é hoje. É claro quea Release não teria sido possível sem todo o trabalho relacionado a release feito por Satoshi Asami <email>asami@FreeBSD.org</email>, Steve Price <email>steve@FreeBSD.org</email>, Bruce A. Mah <email>bmah@FreeBSD.org</email>, Nik Clayton <email>nik@FreeBSD.org</email>, David O'Brien <email>obrien@FreeBSD.org</email>, Kris Kennaway <email>kris@FreeBSD.org</email>, John Baldwin <email>jhb@FreeBSD.org</email> e o resto da comunidade de desenvolvimento do FreeBSD. Eu também gostaria de agradecer a Rodney W. Grimes <email>rgrimes@FreeBSD.org</email>, Poul-Henning Kamp <email>phk@FreeBSD.org</email>, e outros que trabalharam nas ferramentas de engenharia de release nos primeiros dias do FreeBSD. Este artigo foi influenciado por documentos de engenharia de release do CSRG <_:footnote-1/>, o Projeto NetBSD, <_:footnote-2/>, e as notas de processo de engenharia de release propostas por John Baldwin. <_:footnote-3/>