licensecheck - simple license checker for source files
Contents
Caveats
The exact output may change between releases, due to the inherently fragile scanning of unstructured
data, and the ongoing improvements to detection patterns. For some level of stability, use one of the
machine-readable output formats and define a --shortname-scheme.
Option --deb-fmt was deprecated since v3.2. Please use option --shortname-scheme=debian,spdx instead.
Copyright And License
This program is based on the script "licensecheck" from the KDE SDK, originally introduced by Stefan
Westerfeld "<stefan@space.twc.de>".
Copyright © 2007, 2008 Adam D. Barratt
Copyright © 2012 Francesco Poli
Copyright © 2016-2022 Jonas Smedegaard
Copyright © 2017-2022 Purism SPC
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero
General Public License as published by the Free Software Foundation, either version 3, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If
not, see <https://www.gnu.org/licenses/>.
perl v5.36.0 2023-08-28 LICENSECHECK(1p)
Description
licensecheck attempts to determine the license that applies to each file passed to it, by searching the
start of the file for text belonging to various licenses.
If any of the arguments passed are directories, licensecheck will add the files contained within to the
list of files to process.
When multiple PATHs are provided, only files matching --check and not --ignore are checked.
Environment
NO_COLOR
If defined, will disable color. Consulted before COLOR.
COLOR Can be set to 0 to explicitly disable colors. The default is to use color when connected to a
terminal.
LOG_LEVEL =item QUIET =item VERBOSE =item DEBUG =item TRACE
Used to emit varying details about discoveries to STDERR when verbosity is not set using either of
options --quiet, --verbose, --debug or --trace. See Log::Any::Adapter::Screen for more details.
LOG_PREFIX
The default formatter groks these variables. See formatter in Log::Any::Adapter::Screen for more
details.
Name
licensecheck - simple license checker for source files
Options
Resolvingpatterns--shortname-schemeSincev3.2.
comma-separated priority list of license naming schemes to use for license identifiers
(default value: unset (use verbose description))
--list-licensesSincev3.2.
list identifiers for all detectable licenses and exit
--list-naming-schemesSincev3.2.
list all available license naming schemes and exit
Selectingfiles-cREGEX, --check=REGEXSincev2.10.10.
regular expression of files to include when more than one PATH is provided
(default value: common source files)
-iREGEX, --ignore=REGEXSincev2.10.10.
regular expression of files to skip when more than one PATH is provided
(default value: some backup and VCS files)
-r, --recursiveSincev2.10.7.
traverse directories recursively
Parsingcontents-lN, --lines=NSincev2.10.3.
number of lines to parse from top of each file; implies optimistic search including only
first cluster of detected copyrights or licenses; set to 0 to parse the whole file (and
ignore --tail) (default value: 60)
--tail=NSincev2.15.10.
number of bytes to parse from bottom of each file when parsing only from top of each file
and finding nothing there; set to 0 to avoid parsing from end of file (or set --lines to
0 and ignore this setting) (default value: 5000 (roughly 60 lines))
-eCODEC, --encoding=CODECSincev2.15.10.
try decode source files from the specified codec, with "iso-8859-1" as fallback
(default value: unset (no decoding))
Reportingresults--copyrightSincev2.10.7.
add copyright statements to license information
-s, --skippedSincev3.3.0.
Log files in PATHs matching neither --check nor --ignore as warnings
(default: log as debug)
-m, --machineSincev2.12.2.
print license information as "TAB"-separated fields, for processing with line-oriented
tools like "awk" and "sort"
--[no-]deb-machineSincev3.0.0.
print license information like a Debian copyright file; implies --copyright and
--shortname-scheme=debian,spdx--list-delimiter=PRINTFSincev3.0.18.
printf-string used between multiple plain list items in Debian copyright file
(default value: '\n' (NEWLINE SPACE))
--rfc822-delimiter=PRINTFSincev3.0.18.
printf-string used between multiple RFC822-style items in Debian copyright file
(default value: '\n' (NEWLINE SPACE SPACE))
--copyright-delimiter=PRINTFSincev3.0.19.
printf-string used between years and owners in Debian copyright file
(default value: ',' (COMMA SPACE))
--[no-]merge-licensesSincev3.0.0.
merge same-licensed files in Debian copyright file
General-h, --help print help message and exit
-v, --version print version and copyright information and exit
--quiet, --verbose, --debug, --traceSincev3.3.0.
Emit only error messages to STDERR (with option --quiet), or (in addition errors and
warnings) also notices/debug/traces. The more "noisy" option wins if several are set.
(default: emit errors and warnings
See Also
Other similar tools exist.
Here is a list of known tools also command-line based and general-purpose:
copyright-update <https://github.com/jaalto/project--copyright-update>
Written in Perl.
debmake <http://anonscm.debian.org/git/collab-maint/debmake.git>
Written in Python.
Specific to Debian packages.
decopy <https://anonscm.debian.org/git/collab-maint/decopy.git>
Written in Python.
Licensee <http://ben.balter.com/licensee/>
Written in Ruby.
LicenseFinder <https://github.com/pivotal/LicenseFinder>
Written in Ruby.
ninka <http://ninka.turingmachine.org/>
Written in C++.
Used in FOSSology <http://fossology.org/> (along with Monk and Nomos apparently
unavailable as standalone command-line tools).
ripper <https://github.com/odeke-em/ripper>
Written in Go.
scancode-toolkit <https://github.com/nexB/scancode-toolkit>
Written in Python.
Synopsis
licensecheck [ --help | --version ]
licensecheck [ --list-licenses | --list-naming-schemes ]
licensecheck [OPTION...] PATH [PATH...]
Version
Version v3.3.9
