Adopt an orphaned port project

Lars Engels lars.engels at
Mon Dec 10 16:29:31 UTC 2012

Since the ports tree is now open again, let's start the "Adopt an orphaned port"

=== What is it? ===

According to we currently have 23,940 ports in our tree,
that's really great!
But: There are 4,751 unmaintained ports (approx. 20%), that need _your_ love.

=== What can I do? ===

Adopt one or more ports!

You think it's a lot of work? 

That's not necessarily the case, the ports are already there and just need
someone to track the latest upstream versions and someone who keeps the port in
a good shape.

=== How do I know which ports are unmaintained? ===

Thats pretty easy: If you want a list of all unmaintained ports, run

# nawk -F"|" '$6 == "ports at" {print $2}' /usr/ports/INDEX-`uname -r |\
  cut -d'.' -f1`

If you want to see which of your installed ports are unmaintained run

a) for pkgng

# pkg query -e "%m == 'ports at'" %o

b) for pkg_*

--- 8< ---- 8< ---------- 8< --------- 8< -------- 8< -

INDEX="/usr/ports/INDEX-$(uname -r | cut -d'.' -f1)"
MAINTAINER="ports at"

grep -h ORIGIN /var/db/pkg/*/+CONTENTS | cut -d: -f2 |
    '{ installed_ports[$0] = 1 }
    END {
    	while (getline < INDEX) {
    		if ($6 == MAINTAINER) {
    	   		sub(/\/usr\/ports\//, "", $2)
    			unmaintained_ports[$2] = 1 
    		for (port in installed_ports) {
    			if (unmaintained_ports[port]) {
    				print port
    }' | sort
--- 8< ---- 8< ---------- 8< --------- 8< -------- 8< -

=== What can I do then? ===

Pick a port, take a look at the port's Makefile and pkg-descr, see if a new
version is avaiable upstream, check if the WWW line in pkg-descr still points
to a valid site.
Check for broken distfile mirrors, take a look at

Find other mirrors, or mirror the distfiles yourself, remove the dead mirrors
from the port's Makefile.

Try to update the port to the new version, add yourself as MAINTAINER in the
If the updated port works, create a patchfile and send a problem
report (PR) with send-pr(1) or via the web interface

All you need then is some patience until some committer grabs the PR and
eventually commits it or ask you to re-work the patch, if there are some issues

=== I'd really like to do that, but how do I actually do it? ===

There's very good documentation for porters: The porter's handbook:

Don't worry. It's called a book, but it's not a very thick book. Even so it
explains porting very good.
While it's recommended to read the whole book you can also pick the chapters
first that you need to update the port.
If you still have problems or questions then, there are many helpful people at
the ports at mailing list.

=== What benefits do I have? ===

Actually there a several benefits:
- You give something back to the community. That's the idea of open source.
- You earn experience with Makefiles, diff(1), patch(1) and other useful tools.
- You and everyone benefits from updated ports
- Your names get added to the list of FreeBSD Contributors

- If you create enough PRs and maintain a bunch of ports, it's quite possible that
  you get punished with a ports commit bit! \o/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <>

More information about the freebsd-ports mailing list