BSD daemon

NetBSD Developer Documentation:

NetBSD pkgsrc Developer Information

Overview

Importing or updating packages

Bulk pkgsrc builds

Weekly pkgsrc checks

TODO List


Overview


Introduction (top)

This page contains pointers to various pkgsrc related material. The information here is likely to be most useful for pkgsrc developers.

Status (top)

The NetBSD Packages Collection is currently open.

Importing or updating packages


How to import a new package (top)

Once you have verified that the package you're about to import is correct (pkglint, tested it, etc.), use the following procedure: (Do NOT use a series of "cvs add" commands)

  1. Please use "pkglint -v" to test your package before importing it. There must not be any fatal error and there should not be any warning. If you disagree about any of these message please contact "packages@NetBSD.org".

  2. Chapter 10 of the pkgsrc documentation describes some debugging techniques. Especially the "make print-PLIST" test should be used to verify the completeness of the package list.

  3. If the package you are committing is based on a FreeBSD "port", then, please use:

    cvs import pkgsrc/category/pkg FREEBSD FreeBSD-current-1998-09-28

    (where the date and pkg category and name reflect your package).
    You should import the FreeBSD "port" unchanged, then commit the modifications needed to get it working on NetBSD.

  4. If the package is new, instead use:

    cvs import pkgsrc/category/pkg TNF pkgsrc-base

    (where the category and pkg name again reflect your package).

  5. The commit message should include the name, version number of the package and the COMMENT from "Makefile".

  6. If the new package does not conflict with any existing package, edit pkgsrc/category/Makefile and add it to SUBDIR. Otherwise, add a commented out entry, and add a comment on the same line explaining why it is commented out.

  7. Update "pkgsrc/doc/CHANGES" - note this file is parsed by automatic scripts so keep to the existing format. Times/dates are in UTC.

NOTE: the pkgsrc/category/pkg path is a relative path for the cvsroot, NOT FOR THE FILES YOU ARE IMPORTING. YOU MUST BE IN THE TOP LEVEL DIRECTORY OF YOUR PACKAGE WHEN IMPORTING!

NOTE: "cvs import" is preferred to "cvs add" because the former gets everything with a single command, and provides a consistent tag.

Updating a package (top)

  1. Use pkglint and verify the PLIST is correct.

  2. If any other package depends upon the one being updated it is important to ensure that their DEPENDS entries are correct, otherwise they will no longer be able to build. If in doubt run 'lintpkgsrc -d' (part of pkglint).

  3. Update "pkgsrc/doc/CHANGES" - note this file is parsed by automatic scripts so keep to the existing format. Times/dates are in UTC.

Pulling up updates to branches (top)

Critical bug fixes, security updates, and build fixes can be pulled up to the pkgsrc 1.6 branch. Please forward the 'cvs commit' mail from the pkgsrc-changes mailing list to the 1.6 pullup address.


Bulk pkgsrc builds


Setting up a bulk pkgsrc build (top)

Section 4.3 of the pkgsrc documentation describes how to set up a bulk pkgsrc build.

Currently Available Bulk Build Results (top)

The results of various bulk pkgsrc builds are available online.

Providing binary packages for ftp.NetBSD.org (bulk-packages) (top)

We need to coordinate providing a good set of binary packages for as many osrev/arch combinations as possible.

It is critical to ensure binary packages are built against the same set of depends to avoid install conflicts. The most practical way to arrange this is to use the bulk building system and upload the complete set of packages after every build.

Developers interested in assisting (all are invited), should subscribe to the bulk-packages@NetBSD.org list, and check localsrc/admin/bulk-packages for an available arch/osrev combination.

bulk-packages conventions:

Note: This does not address the issue of new versions of binary packages not installing against a user's existing set of installed depends, or a updated depend potentially requiring an update of many other packages already installed in their machine.

Current options for that would be either freezing binary packages at tagged values, or having multiple binary package trees per arch/osrev. The former significantly reduces the utility of the binary packages, and the latter is not worth considering until we can get _one_ consistent tree per arch/osrev.


Weekly pkgsrc checks


Weekly-pkgsrc script (top)

Dan McMahill maintains a script that is run once a week to perform various pkgsrc consistency checks. The current set of checks are: The results of these checks are emailed to NetBSD pkgsrc developers.

TODO List


Handling the TODO List (top)

There's a TODO list in the pkgsrc doc directory. Feel free to add, and especially remove items from there (after solving the mentioned problem, of course).

NetBSD Home Page
NetBSD Developer Documentation

(Contact us) $NetBSD: index.html,v 1.31 2004/02/08 01:35:11 minskim Exp $
Copyright © 1994-2003 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.