What is pkgsrc-wip?

pkgsrc-wip (work in progress) is a project to get more people actively involved with creating packages for pkgsrc, a portable packaging system coming from NetBSD, but ported to many other operating systems, including Solaris, Linux, Darwin, FreeBSD, OpenBSD, and others.

What's in it?

You can get an overview of the packages currently in pkgsrc-wip on the cvsweb page for pkgsrc-wip, or a nicer-looking page at pkgsrc.netbsd.se.

Getting started

This project already assumes you know what pkgsrc is and how to use it, so if you don't, please read the reference and use it. We'll also assume a basic knowledge of CVS.

You should consider subscribing to the mailing lists.

There are three of them:

If you're interested in committing packages (and not only testing), send mail to Thomas Klausner with your SourceForge user id and perhaps ideas for your first packages.

Getting the "source"

Downloading a snapshot

The easiest way probably is to download a snapshot. Just select the newest one from the snapshot directory and extract it in /usr/pkgsrc:

Getting via CVS -- without a SourceForge account

Assuming you have a pkgsrc checkout in /usr/pkgsrc and you're currently in your home directory, do the following:

That's all.

Getting via CVS -- with a SourceForge account

Assuming you have a pkgsrc checkout in /usr/pkgsrc, you're currently in your home directory, and you have commit rights to pkgsrc-wip (see "Getting started" above for details), do the following:

username is of course your username on sourceforge. That's all.

Web-based CVS browsing

Of course, you can also browse the CVS repository on the web.

Keeping up-to-date

In case you downloaded a snapshot, you'll probably have to do cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pkgsrc-wip login (just press ENTER) once (not once per update, just once).

Trying packages

cd /usr/pkgsrc/wip/<packagename>, take a look at the TODO file there. If the package seems finished enough, do make install and try it out. Report your experiences to the package discussion mailing list.

Creating packages

If you haven't read it yet, take a look at Packages.txt (also in /usr/pkgsrc/Packages.txt).

Create a package.

Test it with pkglint -- not all reported warnings and errors need to be fixed, but you should try to at least understand the reported ones. In case of trouble, ask on the package discussion mailing list.

Import it into wip/<packagename>. If the complete package is e.g. in wip/newpkg.import then you would do the following:

Note: be sure to replace "newpkg" references (as shown above) with your package's real name.

Include a TODO file detailing what you think is missing or needs more work, or just noting that it's finished.

If you have questions, ask on the package discussion mailing list; or in case it's already finished, ask for reviews on the review mailing list. If other people with enough knowledge judge your package ready, it'll probably get committed to the main pkgsrc repository soon afterwards -- enjoy your fame in that case!


Adrian Portelli created a page with some statistics for pkgsrc-wip.

Similar projects

winsrc build structure for Windows, based on pkgsrc.

portrookies for FreeBSD, see the invitation mail.

Thomas Klausner

Supported by SourceForge.net.