Freebsd Porter's Handbook
Total Page:16
File Type:pdf, Size:1020Kb
FreeBSD Porter's Handbook Projeto de Documentação do FreeBSD FreeBSD Porter's Handbook por Revisão: 1a1b7f770e 2020-11-22 21:02:43 +0000 por Danilo G. Baio. Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Projeto de Documentação do FreeBSD Copyright Redistribution and use in source (XML DocBook) and 'compiled' forms (XML, HTML, PDF, PostScript, RTF and so forth) with or without modication, are permitted provided that the following conditions are met: 1. Redistributions of source code (XML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the rst lines of this le unmodied. 2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Importante THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. FreeBSD is a registered trademark of the FreeBSD Foundation. UNIX is a registered trademark of The Open Group in the United States and other countries. Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOce, SunOS and VirtualBox are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol. ii Índice 1. Introdução .............................................................................................................................. 1 2. Criando um Novo Port .............................................................................................................. 3 3. Port Rápido ............................................................................................................................ 5 3.1. Escrevendo o Makefile ................................................................................................ 5 3.2. Escrevendo os Arquivos de Descrição ................................................................................. 6 3.3. Criando o Arquivo Checksum ............................................................................................ 8 3.4. Testando o Port ............................................................................................................. 8 3.5. Vericando o Port com portlint ..................................................................................... 9 3.6. Enviando o Novo Port ..................................................................................................... 9 4. Port Lento ............................................................................................................................ 11 4.1. Como as Coisas Funcionam ............................................................................................. 11 4.2. Obtendo os Fontes Originais ........................................................................................... 12 4.3. Modicando o Port ....................................................................................................... 12 4.4. Patching ..................................................................................................................... 13 4.5. Congurando .............................................................................................................. 16 4.6. Manipulando a Entrada do Usuário .................................................................................. 16 5. Congurando o Makele .......................................................................................................... 17 5.1. O Código Fonte Original ................................................................................................. 17 5.2. Nomeando .................................................................................................................. 17 5.3. Categorização .............................................................................................................. 25 5.4. Os Arquivos de Distribuição ............................................................................................ 31 5.5. MAINTAINER ................................................................................................................ 54 5.6. COMMENT ..................................................................................................................... 55 5.7. Licenças ..................................................................................................................... 56 5.8. PORTSCOUT .................................................................................................................. 65 5.9. Dependências .............................................................................................................. 65 5.10. Ports Slaves e MASTERDIR ............................................................................................. 71 5.11. Páginas de Manual ...................................................................................................... 71 5.12. Arquivos de Informação ............................................................................................... 72 5.13. Opções do Makele ..................................................................................................... 72 5.14. Especicando o Diretório de Trabalho ............................................................................. 88 5.15. Manipulando Conitos ................................................................................................. 89 5.16. Instalando Arquivos .................................................................................................... 90 5.17. Use BINARY_ALIAS para Renomear Comandos Em Vez de Aplicar Patch na Compilação ................ 94 6. Considerações Especiais ........................................................................................................... 97 6.1. Staging ...................................................................................................................... 97 6.2. Bibliotecas Empacotadas (Bundled) .................................................................................. 98 6.3. Bibliotecas Compartilhadas ............................................................................................. 99 6.4. Ports com Restrições de Distribuição ou Preocupações Legais ................................................ 100 6.5. Mecanismos de Compilação ........................................................................................... 101 6.6. Usando o GNU Autotools .............................................................................................. 113 6.7. Usando o GNU gettext ............................................................................................... 113 6.8. Usando Perl ............................................................................................................... 114 6.9. Usando o X11 ............................................................................................................. 116 6.10. Usando o GNOME ...................................................................................................... 118 6.11. Componentes GNOME ................................................................................................. 120 6.12. Usando o Qt ............................................................................................................. 124 6.13. Usando o KDE ........................................................................................................... 129 6.14. Usando o LXQt .......................................................................................................... 135 6.15. Usando Java ............................................................................................................. 135 6.16. Aplicações Web, Apache e PHP ..................................................................................... 138 6.17. Usando Python ......................................................................................................... 141 6.18. Usando Tcl/Tk .......................................................................................................... 143 6.19. Usando Ruby ............................................................................................................ 144 6.20. Usando SDL .............................................................................................................