Chapter 3. Quick Porting

Table of Contents
3.1. Writing the Makefile
3.2. Writing the Description Files
3.3. Creating the Checksum File
3.4. Testing the Port
3.5. Checking Your Port with portlint
3.6. Submitting the New Port

This section tells you how to quickly create a new port. In many cases, it is not sufficient, so you will have to read further on into the document.

First, get the original tarball and put it into DISTDIR, which defaults to /usr/ports/distfiles.

Note:

The following assumes that the software compiled out-of-the-box, i.e., there was absolutely no change required for the port to work on your FreeBSD box. If you needed to change something, you will have to refer to the next section too.

Note:

It is recommended to set the DEVELOPER make(1) variable in /etc/make.conf before getting into porting.

# echo DEVELOPER=yes >> /etc/make.conf

This setting enables the developer mode that displays deprecation warnings and activates some further quality checks on calling make.

3.1. Writing the Makefile

The minimal Makefile would look something like this:

# $FreeBSD$

PORTNAME=	oneko
PORTVERSION=	1.1b
CATEGORIES=	games
MASTER_SITES=	ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/

MAINTAINER=	youremail@example.com
COMMENT=	Cat chasing a mouse all over the screen

.include <bsd.port.mk>

Note:

In some cases, the Makefile of an existing port may contain additional lines in the header, such as the name of the port and the date it was created. This additional information has been declared obsolete, and is being phased out.

See if you can figure it out. Do not worry about the contents of the $FreeBSD$ line, it will be filled in automatically by Subversion when the port is imported to our main ports tree. You can find a more detailed example in the sample Makefile section.

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>.