First up, thank you for deciding to dedicate your time and effort to the FreeBSD community and to make things better.

This guide is designed to be lightweight, get you ramped up quickly, and save you time and effort. Is it not exhaustive.

  • Optional: Create a dedicated email address. Contributor/maintainer emails are public, and you can expect some spam Gmail is good)
  • Create a Bugzilla account.
    • Set your Full Name in Bugzilla User Preferences (for credit in commit logs!)
  • Set DEVELOPER=yes in /etc/make.conf, which enables extra QA, error, & sanity checks.

At a minimum:

For bonus points:

  • Optional but highly recommended: GitHub or similar account for managing a ports tree. Allows for easy review if you need help, and others to contribute.
  • Libera.Chat IRC: #freebsd-ports, #freebsd (You'll need to register your nickname: /ns help register)
  • Discord: #ports channel
  • Twitter: @FreeBSDHelp

This is a basic process for making changes to one port. If you plan to do longer-term ports work, or across multiple ports, we suggest cloning an entire ports tree with git, so you have all of those tools and features available to you (like branching, stashing, etc).

  • Create a place where you'll keep your local ports, ~username/ports is fine.
  • Setup your ~username/.porttools configuration (Read man 5 porttools)
  1. Copy the category/port you want to modify from /usr/ports into a local tree.
  2. Make your changes.
  3. Test your changes (portlint, poudriere, unit tests, etc).
  4. Submit your changes.

Here it is in action:

cp -Rp /usr/ports/category/portname ~username/ports/category
<make some changes>
port test
<fix reported issues>
port test
port diff
  • Looks good!
port diff > patch.diff
  • Create new Bugzilla issue
  • Attach patch.diff to issue

  • kubilaykocak/portscheatsheet.txt
  • Last modified: 2022/08/16 00:12
  • by KubilayKocak