Freebsd Porters Handbook

Freebsd Porters Handbook

FreeBSD Porter's Handbook The FreeBSD Documentation Project FreeBSD Porter's Handbook by Revision: 50842 2017-09-15 02:20:06 by marius. Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 The FreeBSD Documentation Project Copyright Redistribution and use in source (XML DocBook) and 'compiled' forms (XML, HTML, PDF, PostScript, RTF and so forth) with or without modification, 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 dis- claimer as the rst lines of this le unmodified. 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. Important THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EX- PRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREE- BSD 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, StarOffice, 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 Table of Contents 1. Introduction ........................................................................................................................... 1 2. Making a New Port .................................................................................................................. 3 3. Quick Porting .......................................................................................................................... 5 3.1. Writing the Makefile .................................................................................................. 5 3.2. Writing the Description Files ............................................................................................ 6 3.3. Creating the Checksum File .............................................................................................. 7 3.4. Testing the Port ............................................................................................................ 8 3.5. Checking the Port with portlint ..................................................................................... 8 3.6. Submitting the New Port ................................................................................................. 8 4. Slow Porting .......................................................................................................................... 11 4.1. How Things Work ......................................................................................................... 11 4.2. Getting the Original Sources ........................................................................................... 12 4.3. Modifying the Port ....................................................................................................... 12 4.4. Patching ..................................................................................................................... 13 4.5. Configuring ................................................................................................................. 15 4.6. Handling User Input ..................................................................................................... 15 5. Configuring the Makefile .......................................................................................................... 17 5.1. The Original Source ...................................................................................................... 17 5.2. Naming ...................................................................................................................... 17 5.3. Categorization ............................................................................................................. 25 5.4. The Distribution Files .................................................................................................... 30 5.5. MAINTAINER ................................................................................................................. 48 5.6. COMMENT ...................................................................................................................... 49 5.7. Licenses ..................................................................................................................... 49 5.8. PORTSCOUT ................................................................................................................... 57 5.9. Dependencies .............................................................................................................. 58 5.10. Slave Ports and MASTERDIR ............................................................................................ 63 5.11. Man Pages ................................................................................................................. 64 5.12. Info Files ................................................................................................................... 64 5.13. Makefile Options ......................................................................................................... 64 5.14. Specifying the Working Directory ................................................................................... 79 5.15. Conflict Handling ........................................................................................................ 79 5.16. Installing Files ............................................................................................................ 80 6. Special Considerations ............................................................................................................. 85 6.1. Staging ...................................................................................................................... 85 6.2. Bundled Libraries ......................................................................................................... 86 6.3. Shared Libraries ........................................................................................................... 87 6.4. Ports with Distribution Restrictions or Legal Concerns .......................................................... 88 6.5. Building Mechanisms .................................................................................................... 89 6.6. Using GNU Autotools .................................................................................................... 92 6.7. Using GNU gettext ...................................................................................................... 93 6.8. Using Perl ................................................................................................................... 94 6.9. Using X11 ................................................................................................................... 95 6.10. Using GNOME ............................................................................................................ 97 6.11. GNOME Components ................................................................................................... 99 6.12. Using Qt .................................................................................................................. 103 6.13. Using KDE ................................................................................................................ 106 6.14. Using LXQt .............................................................................................................. 107 6.15. Using Java ............................................................................................................... 107 6.16. Web Applications, Apache and PHP ............................................................................... 110 6.17. Using Python ........................................................................................................... 112 6.18. Using Tcl/Tk ............................................................................................................ 114 6.19. Using Emacs ............................................................................................................. 114 6.20. Using Ruby .............................................................................................................. 114 6.21. Using

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us