From 3aa7f6f85fd60a7d6c3b5e1ab8d0e91e72802839 Mon Sep 17 00:00:00 2001 From: espie Date: Wed, 10 Jun 2015 09:04:07 +0000 Subject: [PATCH] documentation for check-problems, and description of sample output --- infrastructure/man/man1/check-problems.1 | 191 +++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 infrastructure/man/man1/check-problems.1 diff --git a/infrastructure/man/man1/check-problems.1 b/infrastructure/man/man1/check-problems.1 new file mode 100644 index 00000000000..d70fb9aa9e0 --- /dev/null +++ b/infrastructure/man/man1/check-problems.1 @@ -0,0 +1,191 @@ +.\" $OpenBSD: check-problems.1,v 1.1 2015/06/10 09:04:07 espie Exp $ +.\" +.\" Copyright (c) 2010-2015 Marc Espie +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: June 10 2015 $ +.Dt CHECK-PROBLEMS 1 +.Os +.Sh NAME +.Nm check-problems +.Nd verify problems in package collections +.Sh SYNOPSIS +.Nm check-problems +.Op Fl CDesv +.Op Fl d Ar plist_dir +.Op Fl o Ar output +.Op Fl p Ar ports_dir +.Op Ar pkgname ... +.Sh DESCRIPTION +.Nm +is used to check a collection of packages for problems that cannot be +noticed in individual packages, such as conflict and directory registration +issues. +.Pp +A conflict is a file that belongs to two distinct packages. +.Pp +By default, packages with the same stem +.Po +see +.Xr packages-specs 7 +.Pc +are registered to conflict. +This can be changed to add or remove extra conflict registration with +.Cm @option no-default-conflict +or +.Cm @conflict +.Po +see +.Xr package-create 1 +.Pc . +.Pp +Conflicts between packages mean that a user can't have both packages installed +at the same time. +In some cases (same software, different version), this is expected, but +the packages should be marked as conflicting, so that +.Xr pkg_add 1 +knows how to deal with it. +In other cases, this is an oversight from the ports maintainer, and action +should be taken to make sure both packages can be installed simultaneously. +Conflicts also interact with dependencies, and sometimes a missing dependency +will show up as an unregistered conflict. +.Pp +Directories can belong to distinct packages, as long as they are registered +somewhere. +Every directory that is not part of the standard +.Xr mtree 1 +set should appear in a packing-list somewhere. +.Pp +Contrary to files, directories can be shared between several packages. +.Pp +.Nm +knows enough about packages to trace directories back to a common dependency, +or to not flag two packages as conflicting when they depend on already +conflicting packages. +.Pp +.Nm +requires a set of packing-lists to operate, which it can obtain from +several sources. +The preferred source is the packing-list databases +.Po +see +.Ar PLIST_DB +in +.Xr bsd.port.mk 5 +and +.Xr register-plist 1 +.Pc , +as it persists over time and can be used to fix update information as well +as current version information. +.Pp +It should be supplemented with the ports tree itself in order to figure +out current versions. +.Pp +Options are as follows: +.Bl -tag -width packing-list +.It Fl C +Do not compute conflict information. +.It Fl D +Do not compute common dir information. +.It Fl e +Check for extra logical conflicts, by adding supplementary +formatted/unformatted manpages, as same name manpages under the +same base directory will shadow one another. +.It Fl o Ar output +Save results to output file as well as writing it on the screen. +.It Fl s +Be silent. +.It Fl v +Be verbose. +.It Fl d Ar plist-dir +Scan directory +.Ar plist-dir +for packing-lists. +.It Fl p Ar portsdir +Traverse the ports directory for packing-lists, using +.Ar print-plist-all . +More than one directory could be specified by delimiting them by colon, +e.g.: +.Pa /usr/ports/x11/kde:/usr/ports/x11/kde4 . +.Pp +If +.Fl d Ar plist-dir +is also used, traverse only the directories corresponding to the packages +under +.Ar plist-dir +to figure out current pkgnames, and annotate those with a +.Sq ! +in the report. +.El +.Sh SAMPLE OUTPUT +.Bd -literal +Dependency not found zarafa-webaccess-7.1.11p2 +Dependency not found kwebkitpart-1.2p3 +[...] +Common dirs: +!claws-mail-gdata-3.11.1p1-ldap(mail/claws-mail,-gdata,ldap): /usr/local/lib/claws-mail +!claws-mail-pdfviewer-3.11.1p1-ldap(mail/claws-mail,-pdfviewer,ldap): /usr/local/lib/claws-mail +[...] +Conflicts: +!arm-none-eabi-gdb-7.9.1(devel/arm-none-eabi/gdb),!gdb-7.9.1(devel/gdb) + /usr/local/include/gdb/jit-reader.h + /usr/local/share/gdb/system-gdbinit/elinos.py + /usr/local/share/gdb/system-gdbinit/wrs-linux.py +!libnet-1.0.2ap0v0(net/libnet/1.0),libnet-1.0.2ap2(net/libnet/1.0),libnet-1.0.2av0(net/libnet/1.0) + /usr/local/bin/libnet-config-1.0 + /usr/local/include/libnet-1.0/libnet.h + /usr/local/include/libnet-1.0/libnet/libnet-asn1.h + /usr/local/include/libnet-1.0/libnet/libnet-functions.h + /usr/local/include/libnet-1.0/libnet/libnet-headers.h + /usr/local/include/libnet-1.0/libnet/libnet-macros.h + /usr/local/include/libnet-1.0/libnet/libnet-ospf.h + /usr/local/include/libnet-1.0/libnet/libnet-structures.h + /usr/local/lib/libnet-1.0/libnet.a + /usr/local/lib/libnet-1.0/libnet.so.0.0 + /usr/local/lib/libnet-1.0/libpwrite.a + /usr/local/lib/libnet.so.0.0 + /usr/local/man/cat3/libnet.0 +[...] +zathura-pdf-mupdf-0.2.7(textproc/zathura/plugins/mupdf),zathura-pdf-poppler-0.2.5(textproc/zathura/plugins/poppler) + /usr/local/lib/zathura/pdf.so +.Ed +.Bl -bullet +.It +Dependency not found: means some package names could not be found. +Most often happens because of panic issues, and fsck not recovering some +dependency files. +.It +claws-mail directory: missing directory registration. +.Nm +could not find a common ancestor to claws-mail-gdata and claws-mail-pdfviewer, +so it should be added to both. +.It +Conflict between arm-non-eabi-gdb and gdb: +note that both packages are current. +Two choices: either remove the offending files from one package (might break +the other), or mark an explicit conflict between the packages (will prevent +people from installing both at the same time). +.It +Conflict between libnet-...v0 and libnet: +Note that only the v0 version is current. +People forgot to augment the +.Cm @option no-default-conflict +with conflicts against the old version when bumping the +.Ar EPOCH . +.El +.Sh SEE ALSO +.Xr pkg_add 1 , +.Xr pkg_create 1 , +.Xr bsd.port.mk 5 , +.Xr packages-specs 7