LLMpediaThe first transparent, open encyclopedia generated by LLMs

lintian

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: dpkg Hop 5
Expansion Funnel Raw 68 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted68
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
lintian
Namelintian
DeveloperDebian Project
Released1996
Programming languagePerl (programming language)
Operating systemDebian (operating system), Ubuntu (operating system), GNU/Linux
LicenseGNU General Public License

lintian

Lintian is a static analysis and quality assurance tool for Debian binary and source packages. Originally created to automate policy compliance checks, lintian inspects package metadata and content to detect packaging errors, policy violations, and common mistakes. It is widely used by the Debian Project infrastructure, archive maintainers, and independent packagers across distributions derived from Debian (operating system), including Ubuntu (operating system) and other GNU/Linux ecosystems.

Overview

Lintian was introduced within the Debian Project to provide reproducible, automated checks against the Debian Policy Manual and structural conventions used by the Debian archive and related services. Over time it evolved into a comprehensive checker that understands control files, file system hierarchy expectations, maintainer scripts, and metadata formats such as control files, source formats, and .deb internals. Its role intersects with archive automation like the Debian FTP master processes and continuous integration systems used by projects such as CI services in large projects like Canonical and community teams. Lintian contributes to package review workflows in teams coordinating via platforms such as Salsa, Alioth, and other hosting services used by Debian Developers and Debian Maintainers.

Features and Checks

Lintian performs hundreds to thousands of checks spanning policy, syntax, and semantic analysis. It detects issues in package metadata including mistakes in fields used by Debian Policy such as incorrect dependency relationships referencing packages like libc6, dpkg, or apt; malformed maintainer addresses that should conform to conventions involving Debian Maintainers; and license tags relating to GNU General Public License or other licences. It analyzes files installed by packages to ensure compliance with the Filesystem Hierarchy Standard expectations and verifies packaging hooks such as maintainer scripts invoking programs like dpkg-shlibdeps or dh_installdocs. Checks include detection of missing or incorrect md5sums and shlibs metadata, inconsistent versioning in changelogs used alongside changelog practices, and common pitfalls with translations referenced in po-debconf or Debconf templates.

Lintian also provides policy-level categorization such as error, warning, or informational tags, enabling integrators like Debian Policy Group members and archive admins to prioritize remediations. It recognizes interactions with external utilities like dpkg-buildpackage, pbuilder, and sbuild and flags problems that could affect upgrades in distributions influenced by Stable release maintenance or backporting practices seen in projects like Debian Backports.

Usage

Lintian can be invoked on individual .deb files, .changes files, source packages, or directories containing unpacked package trees. Users commonly run lintian in developer environments alongside tools like dpkg-source, Git, quilt and continuous integration frameworks such as Jenkins or GitLab CI. Package maintainers in the Debian Project run lintian locally during development cycles and before uploading to the Debian archive or requesting sponsorship from established maintainers. Automated archive pipelines integrate lintian checks to gate uploads to areas overseen by entities such as the Debian FTP master and to inform reviewers in workflows akin to Merge Request reviews used on Salsa.

Lintian output is machine-readable and human-readable; it supports formats and tools that interact with services like Lintian QA dashboards, issue trackers such as Bug trackers adopted by Debian BTS, and mail-based review processes historically used by the Debian Developer's Reference community. Lintian can also be used in packaging tutorials and training run by groups affiliated with Debian Women and regional teams organized within Debian Local Groups.

Integration with Packaging Tools

Lintian integrates with the Debian packaging toolchain. It runs as part of build helpers like Debhelper and plug-ins in building environments such as pbuilder and sbuild, ensuring packages meet archive policies before publication. Distribution maintainers incorporate lintian into repository maintenance scripts and continuous validation systems operated by projects like Debian Infrastructure, which coordinate archive uploads and orchestrate mirrors via protocols supported by GNU Guix or mirror management used by Debian Mirrors.

Lintian rules can be referenced by front-end tools and IDE integrations that assist maintainers using editors such as Emacs with debhelper-mode or Vim setups, and it is often invoked from packaging assistants integrated with Launchpad or OBS (Open Build Service). Its error categories and tags are compatible with automation that produces actionable reports consumed by teams like the Release Team and package quality auditors such as QA Team contributors.

Development and Customization

Lintian is developed openly within repositories maintained by the Debian Project and contributions come from many Debian Developers and community volunteers. The codebase, primarily written in Perl (programming language), supports extensibility through added checks, tag definitions, and localized message handling for communities involved in internationalization such as Translations Project contributors. Custom checks can be authored to align with organizational policies used by derivative distributions maintained by entities like Canonical, community spins such as Kali Linux, or commercial vendors packaging Debian derivatives.

Configuration options allow maintainers to suppress or override specific tags, enabling packaging teams to tailor lintian behavior for contexts like Stable release backporting, embedded systems distributions maintained by groups like Embedded Linux projects, or experimental branches managed by teams similar to Experimental (Debian archive area). Development follows collaborative practices found in projects like GitHub forks and merges, code review customs reminiscent of Gerrit, and communication channels used by Debian mailing lists and real-time platforms such as Matrix (protocol) or IRC (Internet Relay Chat).

Category:Debian (operating system)