FreeBSD Porter's Handbook

FreeBSD 文件計劃

修訂: 43184
Legal Notice
Copyright
April 2000 由 .
[ 章節模式 / 完整模式 ]

內容目錄
1. 楔子
2. 自行打造 port
3. 打造 Port 快速上手篇
3.1. 編寫 Makefile
3.2. 撰寫該軟體的說明檔
3.3. 產生 checksum 用途的 distinfo 檔
3.4. 檢驗 port 是否完整、可行
3.5. 以 portlint 來作檢驗
3.6. 提交(Submit) port
4. Slow Porting
4.1. How things work
4.2. 取得原始的 source 檔
4.3. 量身打造 port
4.4. Patching
4.5. 設定
4.6. 處理使用者輸入
5. 設定 Makefile
5.1. The original source
5.2. Naming
5.3. Categorization
5.4. The distribution files
5.5. MAINTAINER
5.6. COMMENT
5.7. Dependencies
5.8. MASTERDIR
5.9. Manpages
5.10. Info files
5.11. Makefile Options
5.12. Specifying the working directory
5.13. CONFLICTS
5.14. Installing files
6. Special considerations
6.1. Shared Libraries
6.2. Ports with distribution restrictions
6.3. Building mechanisms
6.4. Using GNU autotools
6.5. Using GNU gettext
6.6. Using perl
6.7. Using X11
6.8. Using GNOME
6.9. Using KDE
6.10. Using Java
6.11. Web applications, Apache and PHP
6.12. Using Python
6.13. Using Emacs
6.14. Using Ruby
6.15. Using SDL
6.16. Using wxWidgets
6.17. Using Lua
6.18. Using Xfce
6.19. Using databases
6.20. Starting and stopping services (rc scripts)
7. Advanced pkg-plist practices
7.1. Changing pkg-plist based on make variables
7.2. Empty directories
7.3. Configuration files
7.4. Dynamic vs. static package list
7.5. 自動產生 package list
8. The pkg-* files
8.1. pkg-message
8.2. pkg-install
8.3. pkg-deinstall
8.4. pkg-req
8.5. Changing the names of pkg-* files
8.6. Making use of SUB_FILES and SUB_LIST
9. Testing your port
9.1. Running make describe
9.2. Portlint
9.3. Port Tools
9.4. PREFIX 以及 DESTDIR
9.5. Tinderbox
10. Upgrading
11. Ports security
11.1. Why security is so important
11.2. Fixing security vulnerabilities
11.3. Keeping the community informed
12. Dos and Don'ts
12.1. Introduction
12.2. WRKDIR
12.3. WRKDIRPREFIX
12.4. Differentiating operating systems and OS versions
12.5. FreeBSD 版本速查表(__FreeBSD_version)
12.6. Writing something after bsd.port.mk
12.7. 在 wrapper scripts 中使用 exec 述句
12.8. UIDs 及 GIDs
12.9. Do things rationally
12.10. Respect both CC and CXX
12.11. Respect CFLAGS
12.12. Threading libraries
12.13. Feedback
12.14. README.html
12.15. Marking a port not installable with BROKEN, FORBIDDEN, or IGNORE
12.16. Marking a port for removal with DEPRECATED or EXPIRATION_DATE
12.17. Avoid use of the .error construct
12.18. sysctl 使用時機
12.19. Rerolling distfiles
12.20. Necessary workarounds
12.21. Miscellanea
13. A Sample Makefile
14. Keeping Up
14.1. FreshPorts
14.2. The Web Interface to the Source Repository
14.3. The FreeBSD Ports Mailing List
14.4. The FreeBSD Port Building Cluster on pointyhat.FreeBSD.org
14.5. The FreeBSD Port Distfile Survey
14.6. The FreeBSD Ports Monitoring System
附表目錄
5.1. The USE_* variables
5.2. Common WITH_* and WITHOUT_* variables
6.1. Variables for ports related to gmake
6.2. Variables for ports that use configure
6.3. Variables for ports that use scons
6.4. Variables for ports that use perl
6.5. Variables for ports that use X
6.6. Variables for depending on individual parts of X11
6.7. Variables for ports that use KDE
6.8. Variables for ports that use Qt
6.9. Additional variables for ports that use Qt 4.x
6.10. Available Qt4 library components
6.11. Available Qt4 tool components
6.12. Available Qt4 plugin components
6.13. Variables that may be set by ports that use Java
6.14. Variables provided to ports that use Java
6.15. Constants defined for ports that use Java
6.16. Variables for ports that use Apache
6.17. port Apache 模組時好用的變數
6.18. Variables for ports that use PHP
6.19. Most useful variables for ports that use Python
6.20. Useful variables for ports that use Ruby
6.21. Selected read-only variables for ports that use Ruby
6.22. Variables to select wxWidgets versions
6.23. Available wxWidgets versions
6.24. wxWidgets version specifications
6.25. Variables to select preferred wxWidgets versions
6.26. Available wxWidgets components
6.27. Available wxWidgets dependency types
6.28. Default wxWidgets dependency types
6.29. Variables to select Unicode in wxWidgets versions
6.30. Variables defined for ports that use wxWidgets
6.31. Legal values for WX_CONF_ARGS
6.32. Variables to select Lua versions
6.33. Available Lua versions
6.34. Lua version specifications
6.35. Variables to select preferred Lua versions
6.36. Available Lua components
6.37. Available Lua dependency types
6.38. Default Lua dependency types
6.39. Variables defined for ports that use Lua
6.40. Variables for ports using databases
12.1. __FreeBSD_version values
範例目錄
5.1. Simplified use of MASTER_SITES:n with 1 file per site
5.2. Simplified use of MASTER_SITES:n with more than 1 file per site
5.3. Detailed use of MASTER_SITES:n in MASTER_SITE_SUBDIR
5.4. Detailed use of MASTER_SITES:n with comma operator, multiple files, multiple sites and multiple subdirectories
5.5. Detailed use of MASTER_SITES:n with MASTER_SITE_SOURCEFORGE
5.6. Simplified use of MASTER_SITES:n with PATCH_SITES.
5.7. Use of ALWAYS_KEEP_DISTFILES.
5.8. Simple use of OPTIONS
5.9. Wrong handling of an option
5.10. Correct handling of an option
6.1. USE_XORG example
6.2. Using some X11 related variables in port
6.3. Selecting Qt4 components
6.4. Example Makefile for PEAR class
6.5. Selecting wxWidgets components
6.6. Detecting installed wxWidgets versions and components
6.7. Using wxWidgets variables in commands
6.8. Selecting the Lua version
6.9. Selecting Lua components
6.10. Detecting installed Lua versions and components
6.11. Telling the port where to find Lua
6.12. Using Lua variables in commands
12.1. How to avoid using .error

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.