Development/Packaging/Tools/Distlint
From Mandriva Community Wiki
How to read distlint report
Contents |
Distlint is a tool to check the consistency of the whole distribution. It checks if old rpm's are still there, if dependencies are correct and other things
[edit] How to obtain it
distlint can be found in the distriblint rpm. It does some test of distriblint ( from rpmtools ), but is more advanced than the latter. It lives in Mandriva cvs on http://cvs.mandriva.com/cgi-bin/cvsweb.cgi/soft/distriblint/ ( module soft/distriblint ).
[edit] How to use it
To run a report, you need to either have a mirror or a hdlist.
To run a check on the cluster, with main in /RPMS and contribs in /contrib/RPMS/.
distlint /RPMS/ /SRPMS/ / /contrib/RPMS/ /contrib/SRPMS/
The / is used to separate the repository. contrib can depend on rpm in main, but main cannot. If you want to have another output format, use --output.
You can see more options in original distlint documentation on http://youri.zarb.org/~nanardon/distriblint/
[edit] Errors and how to correct them
[edit] DEP
Missing dependencies. The package cannot be installed, because a requirement is missing. For a source rpm, this means that a BuildRequires cannot be fulfilled, making the rpm unbuildable. The solution is to correct it, either by changing the requires, by removin a option or rebuilding the rpm.
[edit] DEPO
The Requires can be installed, but they are in another repository. Since the repository has an order ( main => contribs => other ), it either means that one package in main depends on contribs, or that you didn't specify the correct command line. The solution is to remove an option, or add a BuildConflict, or to move the package from main to contrib or the contrary.
[edit] DEPB
This error means that the package depends on an obsolete package. It should be updated to reflect the new requirement.
[edit] CFL
Those rpms contain some files in common, but do not conflict. Both rpm's cannot be installed at the same time, and so, should have a conflict. Add the proper Conflict tags to one of the 2 rpms.
[edit] CFLT
The same as CFL, and files are of different types ( i.e. one rpm has /foo files, and the others has /foo directory ). This may require more tweaking than a simple Conflict to be corrected.
[edit] CFLO/CFLP
If 2 rpms install the same files, they should have the same owner and the same permission, as it may create security problems, because this may change permissions on files that should not change. CFLP is for permissions problem, CFLO is for owner.
[edit] VER
This error means that an old version of the rpm is still here. This package should be removed.
[edit] OLD
A package should be rebuilt each year, in order to be sure that it still works, and that the rpm archive is still usable. Some changes happened in the past, and an rpm of mandrake 8.2 may not be compatible with today's ( 10 ) distribution ).
[edit] Others
VERM
VERT
OBS
SRCO
SRC
REB
DIRM
DIRO