chromium/chrome/installer/linux/debian/lint_package.py

#!/usr/bin/env python
# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Performs some static analysis checks on Chrome debian packages
using lintian.
"""

import argparse
import os
import subprocess


SUPPRESSIONS = [
    # Google Chrome is not software available on a distro by default,
    # so installing to /opt is correct behavior.
    'dir-or-file-in-opt',
    # Distros usually don't like libraries to be statically linked
    # into binaries because it's easier to push a security patch on a
    # single package than to update many packages.  Chromium
    # statically links some libraries anyway.
    'embedded-library',
    # The setuid sandbox is a setuid binary.
    'setuid-binary',
    # Build configurations with is_official_build=false don't compress
    # the packages.
    'uses-no-compression-for-data-tarball',
]


parser = argparse.ArgumentParser()
parser.add_argument('package', help='path/to/package.deb')
args = parser.parse_args()
package = os.path.abspath(args.package)

cmd = [
    'lintian',
    package,
    '--no-tag-display-limit',
    '--pedantic',
    '--suppress-tags',
    ','.join(SUPPRESSIONS)
]
subprocess.check_call(cmd)