Some pocket lint, found in my jeans when I did this putback.

With the recent putback to the IPS gate:

changeset:   2046:2522cde7adc2
tag:         tip
user:        Tim Foster 
date:        Thu Aug 26 13:11:20 2010 +1200
description:
	13536 We need a way to audit one or more packages
	15860 publication api needs auditing phase
	15862 pkglint tool needed aid in package creation and auditing
	16828 ProgressTracker should make it easier for others to interleave output
	16875 we should be able to execute tests directly from the source
	16800 pkglint should allow signature actions in obsolete and renamed manifests

we now have pkglint(1), a tool that can check package metadata for common errors before publishing. We never really had an equivalent for SVR4 packages, although many have written scripts to do so. The pkglint man page documents how the tool works.

Out of the box, the below checks are performed on manifests, either retrieved from a repository, or passed as local files on the command line. It’s also pretty easy to extend pkglint(1) with your own checks (details in the man page) If you think there might be something missing out of this default list, do please let me know.

timf@linn[2808] pkglint -L
pkglint.action.005           pkg.lint.pkglint_action.PkgActionChecker.dep_obsolete
pkglint.action.003           pkg.lint.pkglint_action.PkgActionChecker.legacy
pkglint.action.005           pkg.lint.pkglint_action.PkgActionChecker.license
pkglint.action.001           pkg.lint.pkglint_action.PkgActionChecker.underscores
pkglint.action.004           pkg.lint.pkglint_action.PkgActionChecker.unknown
pkglint.action.002           pkg.lint.pkglint_action.PkgActionChecker.unusual_perms
pkglint.action.006           pkg.lint.pkglint_action.PkgActionChecker.valid_fmri
pkglint.dupaction.002        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_drivers
pkglint.dupaction.006        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_gids
pkglint.dupaction.005        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_groupnames
pkglint.dupaction.008        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_path_types
pkglint.dupaction.001        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_paths
pkglint.dupaction.007        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_refcount_path_attrs
pkglint.dupaction.004        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_uids
pkglint.dupaction.003        pkg.lint.pkglint_action.PkgDupActionChecker.duplicate_usernames
pkglint.manifest.005         pkg.lint.pkglint_manifest.PkgManifestChecker.duplicate_deps
pkglint.manifest.006         pkg.lint.pkglint_manifest.PkgManifestChecker.duplicate_sets
pkglint.manifest.004         pkg.lint.pkglint_manifest.PkgManifestChecker.naming
pkglint.manifest.001         pkg.lint.pkglint_manifest.PkgManifestChecker.obsoletion
pkglint.manifest.002         pkg.lint.pkglint_manifest.PkgManifestChecker.renames
pkglint.manifest.003         pkg.lint.pkglint_manifest.PkgManifestChecker.variants
opensolaris.action.001       pkg.lint.opensolaris.OpenSolarisActionChecker.username_format
opensolaris.manifest.001     pkg.lint.opensolaris.OpenSolarisManifestChecker.missing_attrs

Excluded checks:
opensolaris.manifest.002     pkg.lint.opensolaris.OpenSolarisManifestChecker.print_fmri

Over the coming weeks, I’ll be addressing some additional bugs and RFEs for pkglint. Once we’re sure it’s stable, I hope to start working with the right folks to see if we can get pkglint(1) runs performed on their gates during their builds.

Many thanks to everyone who helped code review and provide feedback – it was very much appreciated!

Advertisements