[OpenBSD]

OpenBSD ports tree is currently tracking OpenBSD 2.7 (release)


Ports and Packages

History

OpenBSD is a fairly complete system of its own, but still there is a lot of software that one might want see added. However there is the problem on where to draw the line as to what to include, as well as the occasional licensing and export restriction problems. As OpenBSD is supposed to be a small stand-alone UNIX-like operating system, some things just can't be shipped with the system.

We wanted to find a way for users to easily get software we don't provide and started to look around. We didn't have to look far, as sibling project FreeBSD already had an excellent mechanism for exactly this purpose called "The ports collection".

At first we tried to use their collection as-is, but due to incompatibility problems between FreeBSD and OpenBSD we decided to branch out and create our very own OpenBSD Ports Project using FreeBSD's as a starting point. This also allows us to tune the ports better to our system.

Short description and setup

The ports idea is to have, for each piece of software, a Makefile that controls

This information is kept in a directory hierarchy under the /usr/ports directory.

Getting the Ports tree

You can ftp the release version from the pub/OpenBSD/[version] (where [version] is the release number) directory on any of the ftp mirror sites. The release versions are the ones we ship on our CDROM, and have gone through more testing than any snapshot.

Further information is available in the ports(7) man page.

Ports versus packages

For common architectures, you don't necessarily have to compile anything in the ports tree. With the advent of OpenBSD 2.7, a large set of pre-compiled packages will be available:

OpenBSD documentation includes more information on the proper use of packages.

Ports update for an OpenBSD release

The ports tree, like the rest of OpenBSD, is constantly changing. While we try to maintain ports compatibility through the lifetime of a particular release, sometimes issues beyond our control occur. For example, particular versions of the ported package might no longer be available (But this specific problem should be solved now).

The normal life cycle of the ports tree is as follows:

The change of status will be widely publicized on the Mailing lists.

The ports tree works as a single entity. Updating a single directory is not guaranteed to work, as package dependencies may force you to update and recompile vast portions of the ports tree.

It is strongly suggested that people don't track ports-current unless they're prepared to deal with various problems. Mailing lists such as source-changes or tech will probably be invaluable.

The ports-current tree can be retrieved via:

Example use of the Ports tree

Let's say you managed to get a ports tree and you want to compile and install the archiving utility unzip. You should be able to do something like this:

% cd /usr/ports/archivers/unzip
% su
# make
# make install
# exit
Easy, huh?

Creating new ports

If you are interested in helping to expand the OpenBSD ports tree you should first read porting.html. That page references the porting section of the FreeBSD handbook as well as OpenBSD specific policies and hints.

Problems and contacts

If you have trouble with ports please send e-mail to the OpenBSD ports mailing list, ports@openbsd.org. Corrections are always welcome, but in any case do please provide:


OpenBSD www@openbsd.org
$OpenBSD: ports.html,v 1.30 2000/05/27 14:51:26 espie Exp $