195 lines
5.2 KiB
Groff
195 lines
5.2 KiB
Groff
.\" $NetBSD: lintpkgsrc.1,v 1.5 2016/03/12 09:05:22 wiz Exp $
|
|
.\"
|
|
.\" Copyright (c) 1999 by David Brownlee (abs@netbsd.org)
|
|
.\" Absolutely no warranty.
|
|
.\"
|
|
.Dd March 12, 2016
|
|
.Dt LINTPKGSRC 1
|
|
.Sh NAME
|
|
.Nm lintpkgsrc
|
|
.Nd verifier for the pkgsrc tree
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl BDdLlmOopRrSuyz
|
|
.Op Fl E Ar file
|
|
.Op Fl g Ar pkgsrcmap
|
|
.Op Fl I Ar file
|
|
.Op Fl K Ar PACKAGES
|
|
.Op Fl M Ar DISTDIR
|
|
.Op Fl P Ar PKGSRCDIR
|
|
.Op Pa makefile ...
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
tries to verify the entire contents of the pkgsrc tree.
|
|
.Nm
|
|
uses simple regular-expression matching for verifying
|
|
files that make up a pkgsrc directory.
|
|
Note that it does NOT implement a complete Makefile parser.
|
|
.Ss Options
|
|
.Bl -tag -width xxxxxxxxxxxx
|
|
.It Fl B
|
|
List packages marked as BROKEN.
|
|
.It Fl D Ar paths
|
|
Parse Makefiles and output contents (useful for debugging).
|
|
.It Fl d
|
|
Extract the
|
|
.Ql DEPENDS
|
|
listing from each pkgsrc package Makefile, then
|
|
verify the version specified in each DEPEND correctly matches a current
|
|
pkgsrc package.
|
|
.It Fl E Ar file
|
|
Exports the internal database generated from the pkgsrc Makefiles to a
|
|
file for faster loading at a later time.
|
|
Note that some of the stored data is, in all likelihood, dependent on
|
|
the architecture and operating system of the machine where it is
|
|
generated.
|
|
However, the database does make the task of, eg, checking for out of
|
|
date packages on a set of similarly configured machines (in the
|
|
absence of extra copies of the pkgsrc tree) both quick and possible.
|
|
.It Fl g Ar pkgsrcmap
|
|
Generate pkgsrcmap file containing an entry for each package of
|
|
.Ql pkgname pkgdir pkgver .
|
|
.It Fl h
|
|
Basic help and usage.
|
|
.It Fl I Ar file
|
|
Imports the data to construct the internal database for checking the
|
|
installed versions of packages, among other things, against the
|
|
current version found in pkgsrc.
|
|
This database provides most or all of the data required for running
|
|
.Nm
|
|
with any combination of
|
|
.Fl B ,
|
|
.Fl O ,
|
|
.Fl R ,
|
|
.Fl S ,
|
|
.Fl d ,
|
|
.Fl g ,
|
|
.Fl i ,
|
|
.Fl p ,
|
|
or
|
|
.Fl u .
|
|
.It Fl i
|
|
Check the version of each installed package against the current version in
|
|
pkgsrc.
|
|
.It Fl K Ar PACKAGES
|
|
Override binary packages base directory, normally set from
|
|
.Pa /etc/mk.conf
|
|
or defaulted to
|
|
.Pa ${PKGSRCDIR}/packages .
|
|
.Pp
|
|
Note: lintpkgsrc treats
|
|
.Em PACKAGES
|
|
slightly differently to the pkgsrc build system.
|
|
.Fl p
|
|
and
|
|
.Fl R
|
|
check for
|
|
binary packages in any depth of PACKAGES subdirs - this allows packages for all
|
|
architectures/OS versions to be checked simultaneously with an
|
|
.Pa /etc/mk.conf
|
|
construct of the form:
|
|
.Bd -literal
|
|
\&.ifdef LINTPKGSRC
|
|
PACKAGES=${PKGSRCDIR}/packages
|
|
\&.else
|
|
PACKAGES=${PKGSRCDIR}/packages/${OS_VERSION}/${MACHINE_ARCH}
|
|
\&.endif
|
|
.Ed
|
|
.Pp
|
|
Which would be an alternative to
|
|
.Fl K .
|
|
.It Fl L
|
|
List the filenames of Makefiles as they are parsed (for debugging).
|
|
.It Fl M Ar DISTDIR
|
|
Set directory for distfiles, defaults to
|
|
.Pa ${PKGSRCDIR}/distfiles .
|
|
.It Fl m
|
|
For each current distfile, verify its checksum against the appropriate
|
|
package's distinfo file.
|
|
Also report if any package's distinfo file references
|
|
the same distfile with a different distinfo checksum.
|
|
.It Fl O
|
|
Report any binary packages in any subdirs of
|
|
.Em PACKAGES ,
|
|
for whom the source Makefile lists
|
|
.Em OSVERSION_SPECIFIC .
|
|
This is intended to help those making binary packages available for ftp.
|
|
.It Fl o
|
|
Report any old distfiles (not referenced by any package's distinfo file).
|
|
.It Fl P Ar PKGSRCDIR
|
|
Set base of pkgsrc tree, normally set from
|
|
.Pa /etc/mk.conf
|
|
or defaulted to
|
|
.Pa /usr/pkgsrc .
|
|
.It Fl p
|
|
Report any old binary packages in any subdirs of
|
|
.Em PACKAGES .
|
|
.It Fl R
|
|
Report any binary packages in any subdirs of
|
|
.Em PACKAGES ,
|
|
for whom the source Makefile lists
|
|
.Em NO_BIN_ON_FTP
|
|
or
|
|
.Em RESTRICTED .
|
|
This is intended to help those making binary packages available for ftp.
|
|
.It Fl r
|
|
Remove distfiles which are not referenced from any package's distinfo file,
|
|
or have an incorrect checksum (usually due to an interrupted download),
|
|
and any old binary packages.
|
|
To remove any given type, additionally specify the
|
|
.Fl o ,
|
|
.Fl m ,
|
|
or
|
|
.Fl p
|
|
flags respectively.
|
|
.It Fl S
|
|
List packages missing from category
|
|
.Em SUBDIR
|
|
lists.
|
|
.It Fl u
|
|
As
|
|
.Fl i
|
|
plus for mismatched packages, display REQUIRED details and run
|
|
.Ql @MAKE@ fetch-list | sh
|
|
to ensure all the distfiles needed for
|
|
the latest version are present.
|
|
.Pp
|
|
Warning: The behaviour of this command may change in a later version.
|
|
.It Fl y
|
|
Remove orphaned distfiles, i.e., those that do not belong to any
|
|
currently installed package.
|
|
.It Fl z
|
|
Remove distfiles for currently installed packages.
|
|
.El
|
|
.Sh AUTHORS
|
|
.An David Brownlee Aq Mt abs@netbsd.org
|
|
.Sh BUGS
|
|
The
|
|
.Fl R
|
|
and
|
|
.Fl p
|
|
options default to using
|
|
.Em PACKAGES
|
|
as the base directory from which to
|
|
search for binary packages.
|
|
If this includes OS or architecture information
|
|
then packages for other OS/architecture combinations will be missed.
|
|
In this case
|
|
.Em PACKAGES
|
|
can be overridden with
|
|
.Fl K
|
|
or set conditionally in
|
|
.Pa /etc/mk.conf
|
|
based on the value of
|
|
.Em LINTPKGSRC .
|
|
.Pp
|
|
The
|
|
.Ql Makefile parsing
|
|
algorithm used to obtain package versions
|
|
and DEPENDS information is geared towards speed rather than
|
|
perfection, though it has got somewhat better over time, it only
|
|
parses the simplest Makefile conditionals.
|
|
(a == b, no \*[Am]\*[Am] etc).
|
|
.Pp
|
|
Potentially others, but non serious to date.
|