ubuntu-lint(1)
๐ ubuntu-lint(1) โ the packaging linter that has ur back
okay so like, hi bestie ๐ซถ this is ubuntu-lint(1), from the General Commands Manual. if ur doing Ubuntu uploads and u want someone to double-check ur vibes before u hit send, this is literally her. she's giving main character energy for Ubuntu-specific packaging policy, and i'm obsessed. let's get into it โจ
โจ NAME โจ
ubuntu-lint โ packaging linter for Ubuntu uploads ๐
๐ธ SYNOPSIS ๐ธ
ubuntu-lint [--help] [--verbose] [--json] [--source-dir DIR]
[--changelog FILE] [--changes-file FILE] [--all=(auto|off|warn|fail)]
[--<linter>=(auto|off|warn|fail)]...
๐ฆ DESCRIPTION ๐ฆ
so ubuntu-lint is a packaging linter and she is focused on Ubuntu-specific policies and conventions. she inspects Debian source package directories, changelogs, and .changes files, and then runs modular lint checks on them. no cap.
if u run her with no explicit context flags and there's a debian/ directory hanging around, ubuntu-lint will infer context from the changelog and the most recent .changes file. like she just knows. ๐ฎ but if u wanna tell her explicitly, use the context options down below.
bestie, the best part: most lint checks have an associated dput-ng hook defined for easy linting at upload time. so the linter can just. show up. when u upload. iconic. ๐
๐ OPTIONS ๐
--help,-hโ show help and exit. very demure, very mindful.--verboseโ enable verbose output. for when u want the tea โ--jsonโ print results as JSON.
๐ CONTEXT OPTIONS ๐
--source-dirDIR โ path to the Debian source package directory to use as context.--changelogFILE โ path todebian/changelogto use as context.--changes-fileFILE โ path to a source.changesfile to use as context.
๐ LINTER OPTIONS ๐
every lint has a corresponding flag, --<linter-name>=, and it accepts exactly one of: auto, off, warn, fail.
autoโ use the lint's default behavior, depending on whether the target is a development or stable release.warnโ treat detected issues as warnings.failโ treat detected issues as failures.offโ disable the check. (she's asleep ๐ด)
--all= sets the default level for all linters. and any linter-specific flags that come after take precedence, so speak now or forever hold ur peace ๐
๐ AVAILABLE LINTERS ๐
โญ distribution-invalid
detects invalid or unsupported distribution field, like incorrect distribution names.
โญ missing-bug-references
detects when the upload is missing Launchpad bug references in the changelog.
โญ missing-launchpad-bugs-fixed
detects when the upload is missing Launchpad bug references (i.e. the Launchpad-Bugs-Fixed field) in the .changes file.
โญ missing-git-ubuntu-references
detects when the changes file is missing git-ubuntu metadata (i.e. the Vcs-Git, Vcs-Git-Commit, Vcs-Git-Ref fields).
โญ git-ubuntu-references-mismatch
checks that if present, the git-ubuntu metadata in the changes file is consistent with the remote. like bestie, are u sure that's where u said u were? ๐ญ
โญ missing-pending-changelog-entry
detects when an upload's changelog is missing the entry of a pending change โ for example, an upload that is still in -proposed.
โญ missing-ubuntu-maintainer
detects when the changes file has not set the Maintainer field to Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>.
โญ sru-bug-missing-template
for SRU uploads, checks if the associated bugs have filled out the SRU template.
โญ sru-bug-missing-release-tasks
for SRU uploads, checks if the associated bugs have the correct release tasks set.
โญ sru-version-string-breaks-upgrades
for SRU uploads, checks if the version string could break upgrade paths. ๐จ
โญ sru-version-string-convention
for SRU uploads, checks if the version string follows Ubuntu and SRU conventions.
โญ release-mismatch
attempts to detect inconsistencies in the version string and series name. e.g. 1.2.3-0ubuntu1~22.04.1 and noble โ because the ~22.04.1 looks like it is meant for Ubuntu 22.04 LTS "Jammy Jellyfish", and noble refers to Ubuntu 24.04 LTS "Noble Numbat". those two are NOT the same girl. ๐
โญ missing-version-suffix
detects when an upload for Ubuntu is missing an appropriate version string suffix, e.g. "ubuntuX" or "buildX".
โญ merge-missing-new-debian-changelog
for package merge uploads, checks that the changes file includes the new Debian changelog entries. in other words, this check ensures that the source package was built with -v<previous_ubuntu_version>.
there's more where that came from โ see ubuntu-lint --help for the complete list. ๐ซถ
๐ง DPUT-NG HOOKS ๐ง
most lint checks have an associated dput-ng hook which is shipped in /etc/dput.d/hooks/<linter>.json. if installed alongside dpug-ng, these hooks will be invoked with dput-ng's context at upload time. automatic linting, no extra effort, we love to see it. ๐ฅ
๐ EXAMPLES ๐
run in the current directory (auto-detect context):
$ ubuntu-lint
run against an explicit source directory:
$ ubuntu-lint โsource-dir=/path/to/src
disable a specific linter:
$ ubuntu-lint โmissing-git-ubuntu-references=off
force all checks to be warnings:
$ ubuntu-lint โall=warn
๐ AUTHOR ๐
Canonical Ltd. โ see project files for contributors.
๐ BUGS ๐
found something cursed? report issues to the project's issue tracker: https://github.com/ubuntu/ubuntu-lint/issues.
๐ AUTHORS ๐
Canonical Ltd..
and that's the whole page bestie, no cap. this one'subuntu-lint(1)from the General Commands Manual, dated2026-06-22โ go forth, lint ur uploads, and slay ๐ โจ๐
๐ฆ where this page comes from
- ubuntu stonking: ubuntu-lint 0.2.3ubuntu ยท GPL-3.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms