Blame ksc.1

Packit Service 4b33e2
.TH ksc "1" "November 2018" "ksc - Version 1.6" "User Commands"
Packit Service 4b33e2
.SH NAME
Packit Service 4b33e2
ksc \- report symbols used by kernel modules
Packit Service 4b33e2
.SH SYNOPSIS
Packit Service 4b33e2
.B ksc -k \fIFILE\fR ... [OPTIONS]
Packit Service 4b33e2
Packit Service 4b33e2
.B ksc -k \fIFILE\fR ... -s [OPTIONS]
Packit Service 4b33e2
Packit Service 4b33e2
.B ksc -s -p \fIKSC_RESULT\fR [OPTIONS]
Packit Service 4b33e2
Packit Service 4b33e2
.SH DESCRIPTION
Packit Service 4b33e2
.B ksc
Packit Service 4b33e2
produces and submits reports of symbols used by kernel object \fIFILE\fRs
Packit Service 4b33e2
(specified by -k). Resulting report is always saved to \fI~/ksc-result.txt\fR.
Packit Service 4b33e2
Packit Service 4b33e2
For more on report generation, see -k.
Packit Service 4b33e2
Packit Service 4b33e2
For more on report submission, see -s.
Packit Service 4b33e2
Packit Service 4b33e2
.SH OPTIONS
Packit Service 4b33e2
You may freely mix different option styles.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-h\fR, \fB\-\-help\fR
Packit Service 4b33e2
Show help message and exit.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-c\fR \fICONFIG\fR, \fB\-\-\fRconfig=\fICONFIG\fR
Packit Service 4b33e2
Read config options from \fICONFIG\fR file. If not supplied, \fBksc\fR will use
Packit Service 4b33e2
~/ksc.conf. If not found, /etc/ksc.conf will be used instead.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-j\fR \fIKSC_RESULT\fR, \fB\-\-\fRjustification-from=\fIKSC_RESULT\fR
Packit Service 4b33e2
Read symbol justifications from \fIKSC_RESULT\fR file and use them in the new
Packit Service 4b33e2
report. It is important to note that placeholder justifications and reference
Packit Service 4b33e2
justifications are ignored by this option and re-generated every time.
Packit Service 4b33e2
Packit Service 4b33e2
This option may be specified multiple times. \fIKSC_RESULT\fR file order is
Packit Service 4b33e2
determined by the order of arguments passed to ksc. If there are two conflicting
Packit Service 4b33e2
non-placeholder/non-reference justifications for a kernel module A.ko symbol S
Packit Service 4b33e2
in multiple report files at the same time, it will be carried over from the
Packit Service 4b33e2
last one specified on the command line.
Packit Service 4b33e2
Packit Service 4b33e2
Symbol justifications can be carried over within the same kernel module only.
Packit Service 4b33e2
Justifications do not propagate through references (i.e., if you justify
Packit Service 4b33e2
usage of S for A.ko, B.ko references justification in A.ko, and you run ksc
Packit Service 4b33e2
without A.ko, justification is not carried over and you will be asked to
Packit Service 4b33e2
specify).
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-k\fR \fIFILE\fR, \fB\-\-ko\fR=\fIFILE\fR
Packit Service 4b33e2
Collect used symbols in kernel object \fIFILE\fR.
Packit Service 4b33e2
.br
Packit Service 4b33e2
Multiple -k arguments may be supplied, in which case different \fIFILE\fRs are
Packit Service 4b33e2
placed in distinct sections of the \fI~/ksc-result.txt\fR file.
Packit Service 4b33e2
Packit Service 4b33e2
All kernel object \fIFILE\fRs must be build against the same architecture.
Packit Service 4b33e2
Packit Service 4b33e2
If multiple \fIFILE\fRs are supplied, ksc report won't include symbols exported
Packit Service 4b33e2
by any one of the \fIFILE\fRs. This allows for bulk collection of symbols of
Packit Service 4b33e2
a functionally dependent set of kernel modules without having to filter
Packit Service 4b33e2
symbols coming from other modules.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-K\fR \fIFILE\fR, \fB\-\-ko-dependency\fR=\fIFILE\fR
Packit Service 4b33e2
Omit any symbols exported by \fIFILE\fR from the report. Use this option if
Packit Service 4b33e2
other modules (which are part of the report) depend on symbols exported by
Packit Service 4b33e2
\fIFILE\fR, but \fIFILE\fR itself is not to be reported at this time.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-n\fR \fIRELEASE\fR, \fB\-\-name\fR=\fIRELEASE\fR
Packit Service 4b33e2
RHEL \fIRELEASE\fR against which the bug is to be filed, e.g '6.5'.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-p\fR \fIPREVIOUS\fR, \fB\-\-previous\fR=\fIPREVIOUS\fR
Packit Service 4b33e2
Specified \fIPREVIOUS\fR file is marked for submission to Red Hat Bugzilla.
Packit Service 4b33e2
.br
Packit Service 4b33e2
To submit, you need to use -s.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-r\fR \fIRELEASE\fR, \fB\-\-release\fR=\fIRELEASE\fR
Packit Service 4b33e2
RHEL \fIRELEASE\fR used for symbol comparison with whitelists, e.g. '6.5'.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-y\fR \fISYMVERS\fR, \fB\-\-symvers\fR=\fISYMVERS\fR
Packit Service 4b33e2
Path to Module.symvers \fISYMVERS\fR file used to check symbol presence in the
Packit Service 4b33e2
the kernel. If not specified, current kernel version is used to determine the
Packit Service 4b33e2
path and Module.symvers of the currently running kernel is used.
Packit Service 4b33e2
Packit Service 4b33e2
You are notified whenever symbol is not present in the Module.symvers file.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-s\fR, \fB\-\-submit\fR
Packit Service 4b33e2
Submit the report to the Red Hat Bugzilla (https://bugzilla.redhat.com).
Packit Service 4b33e2
Credentials used in submission need to be set a config file (see FILES section
Packit Service 4b33e2
below). If API key is not set, ksc will prompt for Bugzilla password.
Packit Service 4b33e2
Packit Service 4b33e2
This option needs to be supplemented with -k or -p.
Packit Service 4b33e2
Packit Service 4b33e2
If used with -k, report gets generated, opened in an editor for you to make
Packit Service 4b33e2
changes, saved in \fI~/ksc-result.txt\fR, and submitted. You may interrupt
Packit Service 4b33e2
submission by pressing ^C.
Packit Service 4b33e2
.TP
Packit Service 4b33e2
\fB\-v\fR, \fB\-\-version\fR
Packit Service 4b33e2
Prints ksc version.
Packit Service 4b33e2
Packit Service 4b33e2
.SH FILES
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
~/ksc-result.txt
Packit Service 4b33e2
Report produced by ksc.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
~/ksc.conf (/etc/ksc.conf)
Packit Service 4b33e2
Local (global) ksc config file. Global config file is used only when local
Packit Service 4b33e2
config file does not exist. Syntax is as follows:
Packit Service 4b33e2
.IP
Packit Service 4b33e2
.br
Packit Service 4b33e2
[bugzilla]
Packit Service 4b33e2
.br
Packit Service 4b33e2
user=user@redhat.com
Packit Service 4b33e2
.br
Packit Service 4b33e2
partner=partner\-name
Packit Service 4b33e2
.br
Packit Service 4b33e2
partnergroup=partner\-group
Packit Service 4b33e2
.br
Packit Service 4b33e2
server=https://bugzilla.redhat.com/xmlrpc.cgi
Packit Service 4b33e2
.br
Packit Service 4b33e2
api_key=api_key
Packit Service 4b33e2
Packit Service 4b33e2
These are default values. Whenever a field has such a value (except the
Packit Service 4b33e2
server field), it will always be treated as though it were undefined/left blank.
Packit Service 4b33e2
Packit Service 4b33e2
.SH EXAMPLES
Packit Service 4b33e2
.TP
Packit Service 4b33e2
ksc -k a.ko
Packit Service 4b33e2
Process a.ko file using system-provided whitelist and Module.symvers files.
Packit Service 4b33e2
Reports symbols used by a.ko that are not in whitelist, requesting justification
Packit Service 4b33e2
for their use.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
ksc -k a.ko -y /tmp/Module.symvers
Packit Service 4b33e2
Process a.ko file using system-provided whitelist and user-provided
Packit Service 4b33e2
Module.symvers (/tmp/Module.symvers) files. Reports symbols used by a.ko that
Packit Service 4b33e2
are not in whitelist, requesting justification for their use.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
ksc -k a.ko -k b.ko
Packit Service 4b33e2
Process a.ko and b.ko files using system-provided whitelist and Module.symvers
Packit Service 4b33e2
files. Reports symbols used by both a.ko and b.ko that are not in whitelist,
Packit Service 4b33e2
requesting justification for their use. Only one justification per symbol is
Packit Service 4b33e2
required. Any mention of an already justified symbol come with an automatically
Packit Service 4b33e2
generated references.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
ksc -k a.ko -k b.ko -K c.ko -K d.ko
Packit Service 4b33e2
Process a.ko and b.ko files using system-provided whitelist and Module.symvers
Packit Service 4b33e2
files. Reports symbols used by both a.ko and b.ko that are not in whitelist and
Packit Service 4b33e2
not exported by either c.ko or d.ko, requesting justification for their use.
Packit Service 4b33e2
Only one justification per symbol is required. Any mention of an already
Packit Service 4b33e2
justified symbol come with an automatically generated references.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
ksc -k a.ko -k b.ko -j previous-report.txt
Packit Service 4b33e2
Process a.ko and b.ko files using system-provided whitelist and Module.symvers
Packit Service 4b33e2
files. Reports symbols used by both a.ko and b.ko that are not in whitelist,
Packit Service 4b33e2
requesting justification for their use. Only one justification per symbol is
Packit Service 4b33e2
required. Any mention of an already justified symbol come with an automatically
Packit Service 4b33e2
generated references. Justifications already present in previous-report.txt
Packit Service 4b33e2
are carried over to the newly generated one.
Packit Service 4b33e2
Packit Service 4b33e2
.TP
Packit Service 4b33e2
ksc -s -p report-to-submit.txt
Packit Service 4b33e2
Submit a report to bugzilla.
Packit Service 4b33e2