chk3ppdeps
==========
I. Presentation
---------------
chk3ppdeps is a Slackware tool to search the 3rd-party packages :
* which are broken (ie. which have unsatisfied dependencies)
* which might be broken by the next system update.
II. Requirements
----------------
chk3ppdeps requires sbbdep which is available at slackbuilds.org
III. Package installation
-------------------------
To install chk3ppdeps, download the latest package revision available
at https://sourceforge.net/projects/chk3ppdeps/files, then, as root,
run the command below (replace the tags VERSION and BUILD accordingly) :
8<------------------------------------------------------------------
$ upgradepkg --install-new chk3ppdeps-<VERSION>-noarch-<BUILD>.tgz
8<------------------------------------------------------------------
To build the package chk3ppdeps from source, download the latest source
archive at https://sourceforge.net/projects/chk3ppdeps/files/source/,
then, run the following commands :
8<------------------------------------------------------------------
$ tar xf /path/to/chk3ppdeps-source-<VERSION>.tar.gz
$ su
$ cd chk3ppdeps-<VERSION>
$ ./chk3ppdeps.SlackBuild
...
8<------------------------------------------------------------------
Once chk3ppdeps is installed, it is highly recommended to read the
manual page :
8<------------------------------------------------------------------
$ man chk3ppdeps
8<------------------------------------------------------------------
IV. Configuration
-----------------
By default, chk3ppdeps loads settings from configuration file
/etc/chk3ppdeps/chk3ppdeps.conf, which are suitable for root
user only.
**********************************************************************
* chk3ppdeps can also be used by normal users. For that, user must *
* specify a suitable configuration file using option --config like *
* in example below : *
* *
* 8<--------------------------------------------------------------- *
* $ chk3ppdeps --config /path/to/my/chk3ppdeps.conf ... *
* 8<--------------------------------------------------------------- *
**********************************************************************
For more about chk3ppdeps configuration, read the manual page :
8<------------------------------------------------------------------
$ man chk3ppdeps.conf
8<------------------------------------------------------------------
V. Usage
--------
1. List broken 3rd-party packages
---------------------------------
To get the list of 3rd party-packages which have unsatisfied
dependencies, run chk3ppdeps as below :
8<------------------------------------------------------------------
# root user
$ chk3ppdeps --list-breakage
# normal user
$ chk3ppdeps --config /path/to/my/config --list-breakage
8<------------------------------------------------------------------
Note that some 3rd-party packages can be wrongly reported as broken (ex.
package of any applications with its own environment). To prevent this,
it can be useful to add these packages onto the blacklist of 3rd-party
packages specified by property _3PP_BLACKLIST in chk3ppdeps configuration
file (/etc/chk3ppdeps/blacklist.3pp by default).
2. Predict breakage of 3rd-party packages
-----------------------------------------
To get the list of 3rd party-packages that might be broken by the
next system update, run chk3ppdeps as below :
8<------------------------------------------------------------------
# root user
$ chk3ppdeps --predict-breakage
# normal user
$ chk3ppdeps --config /path/to/my/config --predict-breakage
8<------------------------------------------------------------------
The location of the slackware changelog is specified by the property
CHANGELOG_LOCATION (in chk3ppdeps configuration file), , which can be
an http/ftp URL or a local directory.
In case of default configuration file /etc/chk3ppdeps/chk3ppdeps.conf,
it is initialized to the following values at installation :
ARCH ! MIRROR
-------+---------------------------------------------------------
i?86 ! https://mirrors.slackware.com/slackware/slackware-<VER>
x86_64 ! https://mirrors.slackware.com/slackware/slackware64-<VER>
arm? ! http://ftp.arm.slackware.com/slackwarearm/slackwarearm-<VER>
others ! -
-------+---------------------------------------------------------
<VER> is the version of slackware on which chk3ppdesps is installed.
By default, chkppdeps only considers the 1st entry of the slackware
changelog. To tell chk3ppdeps to go beyond that, simply pass to the
option --predict-breakage the TIMESTAMP (in whole or part) of the
oldest changelog entry to consider, like in examples below :
8<------------------------------------------------------------------
$ chk3ppdeps --predict-breakage "Sat Nov 16 03:31:45 UTC 2019"
$ chk3ppdeps --predict-breakage "Sat Nov 16"
8<------------------------------------------------------------------
In the examples above, chk3ppdeps will consider the changelog entries
up to the first that matches the given timestamps, if any.
Notes:
-----
+ Do not specify the timestamp of a changelog entry which is
older than the one of changelog entry in which are referenced
the more recent updates applied to the system.
+ chk3ppdeps assumes that any 3rd-party package P might be broken
by the next system update, when there is, at least, an upgrade
for one of the dependencies of package P.
This can (often) lead to false-positives, but there is no other
way to predict that packages might break on next system upgrade
without downloading available updates.