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!
Pingback: The IPS System Repository « Tim Foster's Web Log