The pkgsrc developer's guide

Table of Contents

7. Package components - files, directories and contents
7.1. Makefile
7.2. distinfo
7.3. patches/*
7.4. Other mandatory files
7.5. Optional files
7.6. work*
7.7. files/*
8. PLIST issues
8.1. RCS ID
8.2. Semi-automatic PLIST generation
8.3. Tweaking output of make print-PLIST
8.4. Variable substitution in PLIST
8.5. Manpage-compression
8.6. Changing PLIST source with PLIST_SRC
8.7. Platform specific and differing PLISTs
8.8. Sharing directories between packages
9. Buildlink methodology
9.1. Converting packages to use buildlink3
9.2. Writing buildlink3.mk files
9.2.1. Anatomy of a buildlink3.mk file
9.2.2. Updating BUILDLINK_DEPENDS.pkg in buildlink3.mk files
9.3. Writing builtin.mk files
9.3.1. Anatomy of a builtin.mk file
9.3.2. Global preferences for native or pkgsrc software
10. Options handling
10.1. Global default options
10.2. Converting packages to use bsd.options.mk
11. The build process
11.1. Program location
11.2. Main targets
11.3. Other helpful targets
12. Notes on fixes for packages
12.1. General operation
12.1.1. How to pull in variables from /etc/mk.conf
12.1.2. Restricted packages
12.1.3. Handling dependencies
12.1.4. Handling conflicts with other packages
12.1.5. Packages that cannot or should not be built
12.1.6. Packages which should not be deleted, once installed
12.1.7. Handling packages with security problems
12.1.8. How to handle compiler bugs
12.1.9. How to handle incrementing versions when fixing an existing package
12.1.10. Portability of packages
12.2. Possible downloading issues
12.2.1. Packages whose distfiles aren't available for plain downloading
12.2.2. How to handle modified distfiles with the 'old' name
12.3. Configuration gotchas
12.3.1. Shared libraries - libtool
12.3.2. Using libtool on GNU packages that already support libtool
12.3.3. GNU Autoconf/Automake
12.4. Building considerations
12.4.1. CPP defines
12.5. Package specific actions
12.5.1. Package configuration files
12.5.2. User interaction
12.5.3. Handling licenses
12.5.4. Creating an account from a package
12.5.5. Installing score files
12.5.6. Packages providing login shells
12.5.7. Packages containing perl scripts
12.5.8. Packages with hardcoded paths to other interpreters
12.5.9. Packages installing perl modules
12.5.10. Packages installing info files
12.5.11. Packages installing GConf2 data files
12.5.12. Packages installing scrollkeeper data files
12.5.13. Packages installing X11 fonts
12.5.14. Packages installing GTK2 modules
12.5.15. Packages installing SGML or XML data
12.5.16. Packages installing extensions to the MIME database
12.5.17. Packages using intltool
12.6. Feedback to the author
13. Debugging
14. Submitting and Committing
14.1. Submitting your packages
14.2. Committing: Importing a package into CVS
14.3. Updating a package to a newer version
14.4. Moving a package in pkgsrc