Since the ports tree is now open again, let's start the "Adopt an orphaned port" project.
What is it?
According to http://freshports.org/ 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?
That's pretty easy: If you want a list of all unmaintained ports, run
If you want to see which of your installed ports are unmaintained run
What can I do then?
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: http://www.freebsd.org/doc/en/books/porters-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@FreeBSD.org mailing list.
What benefits do I have?
Actually there a several benefits:
What is it?
According to http://freshports.org/ 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?
That's pretty easy: If you want a list of all unmaintained ports, run
# nawk -F"|" '$6 == "ports@FreeBSD.org" {print $2}' /usr/ports/INDEX-`uname -r | cut -d'.' -f1`
If you want to see which of your installed ports are unmaintained run
- for PKGNG:
# pkg query -e "%m == 'ports@FreeBSD.org'" %o
- for pkg_*:
Code:#!/bin/sh INDEX="/usr/ports/INDEX-$(uname -r | cut -d'.' -f1)" MAINTAINER="ports@FreeBSD.org" grep -h ORIGIN /var/db/pkg/*/+CONTENTS | cut -d: -f2 | nawk -v INDEX="$INDEX" -v MAINTAINER="$MAINTAINER" \ '{ installed_ports[$0] = 1 } END { FS="|" 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
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 available upstream.
- Check if the WWW line in pkg-descr still points to a valid site.
- Check for broken distfile mirrors, take a look at http://people.freebsd.org/~ehaupt/distilator/ports@FreeBSD.org-bad.html.
- 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 Makefile.
- If the updated port works, create a patchfile and send a problem report (PR) with send-pr(1) or via the web interface http://www.freebsd.org/send-pr.html.
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: http://www.freebsd.org/doc/en/books/porters-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@FreeBSD.org 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 name gets added to the list of FreeBSD Contributors: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/index.html.
- 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/