Coder Social home page Coder Social logo

qinhj / lintian Goto Github PK

View Code? Open in Web Editor NEW

This project forked from live-clones/lintian

0.0 0.0 0.0 31.68 MB

Live clone of https://anonscm.debian.org/git/lintian/lintian.git.

License: GNU General Public License v2.0

Shell 17.09% JavaScript 4.75% Ruby 0.04% C++ 0.01% Scheme 0.08% Python 0.29% Perl 53.58% C 1.09% PHP 0.13% Emacs Lisp 0.25% Java 0.01% OCaml 0.01% Tcl 0.05% Elixir 0.19% Awk 0.01% Pike 0.01% CSS 0.52% TeX 0.27% AGS Script 0.01% Makefile 21.62%

lintian's Introduction

Lintian - Static Debian package analysis tool

Lintian is a static analysis tool for finding many bugs, policy violations and other issues in Debian based packages. It can process binary Debian packages (.deb), micro/installer packages (.udeb), Debian source packages (.dsc) and (to a limited degree) the "buildinfo" and "changes" files.

Running Lintian

Running Lintian is as simple as invoking

$ lintian path/to/pkg_version_arch.changes

Alternatively, you can pass Lintian binary/udeb or dsc files directly instead of the .changes file. Lintian is designed to work directly from the source tree (simply use "frontend/lintian" itself).

For information about command options, please run lintian (or lintian-info) with "--help". Alternatively, you can also read the manpages lintian(1) and lintian-info(1).

Advice / Tips and Tricks

If there is a tag you are not familiar with, you can use "--info" or lintian-info to get more information:

$ lintian-info -t no-version-field

If you want to enable all tags, simply use the "Evil and pedantic" mnemonic:

$ lintian -EvIL +pedantic path/to/pkg_version_arch.changes

You may want to drop the "-v", which may make Lintian more verbose than you would like. Also, keep in mind that "-E" enables "experimental" tags and "-L +pedantic" enables some very pedantic tags.

Lintian is not always right! Static analysis involves a trade-off between "accuracy" and CPU/memory usage. Furthermore, in some cases, certain packages trigger a corner case where the Debian Policy gives more leeway than Lintian does.

If you have installed Lintian via the "lintian" Debian package, you can find the Lintian User's Manual in:

$ sensible-browser /usr/share/doc/lintian/lintian.html
# or in txt format
$ zless /usr/share/doc/lintian/lintian.txt.gz

Compiling Lintian

Lintian is written in pure Perl and therefore does not require any "building" at all. Consequently, Lintian currently does not have a build system. Instead it relies on its Debian build system (implemented in debian/rules) and debhelper. Thus, on Debian-based systems, installing the build dependencies (see debian/control) and running:

$ dpkg-buildpackage

will provide you with a "lintian" Debian package.

So far there has been little work in providing a stand-alone build system as Lintian requires a fair share of "Debian specific" tools and libraries, including the "Dpkg" and "AptPkg" Perl modules.

We are willing to accept and maintain a stand-alone build system for Lintian. Where not intrusive, we may also be willing to accept alternative dependencies for "Debian specific" libraries/tools.

Developing/Patching Lintian

If you are interested in developing patches for Lintian or just writing your own Lintian checks, please review CONTRIBUTING.md.

Feedback

Please file bugs against the "lintian" package in the Debian Bug Tracker. We recommend using reportbug(1) for filing bugs, but in its absence you send a mail to the BTS.

Any comments, critics, or suggestions about Lintian or related topics are highly appreciated by the authors! Please contact [email protected]. Thanks!

Please note that all data submitted to the Debian Bug Tracker and the address [email protected] will be available to the general public. Should you be aware of a severe non-disclosed security issue in Lintian, then please contact the Debian Security Team instead.

lintian's People

Contributors

nthykier avatar lechner avatar lamby avatar rra avatar jwilk avatar rgeissert avatar pabs3 avatar flichtenheld avatar xtaran avatar bastien-roucaries avatar jordap avatar cjwatson avatar smcv avatar baldurmen avatar guillemj avatar edwardbetts avatar guimard avatar sylvestre avatar sathieu avatar jaalto avatar joshtriplett avatar ntyni avatar scop avatar gregoa avatar josch avatar tsimonq2 avatar algernon avatar evgeni avatar mapreri avatar ppentchev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.