Advanced bitbake-recipe linter
Project description
Advanced oelint
Purpose
Based on the OpenEmbedded Styleguide and work done by oe-stylize-tool this module offers a (nearly) complete linter for bitbake-recipes.
The tool does handle includes/requires automatically so you don’t have to pass them via CLI.
NOTE: .bbappend-files have to be passed via CLI - these are NOT gathered automatically
Usage
oelint-adv
usage: __main__.py [-h] [--suppress SUPPRESS] [--output OUTPUT] [--fix]
[--nobackup]
files [files ...]
Advanced OELint - Check bitbake recipes against OECore styleguide
positional arguments:
files File to parse
optional arguments:
-h, --help show this help message and exit
--suppress SUPPRESS Rules to suppress
--output OUTPUT Where to flush the findings (default: stderr)
--fix Automatically try to fix the issues
--nobackup Don't create backup file when auto fixing
Output
Will be [file]:[line]:[severity]:[message].
Example:
/disk/meta-some/cppcheck-native/cppcheck.inc:26:error:oelint.task.nomkdir:'mkdir' shall not be used in do_install. Use 'install' /disk/meta-some/cppcheck-native/cppcheck-native_1.87.bb:0:error:oelint.var.mandatoryvar:Variable 'SECTION' should be set /disk/meta-some/cppcheck-native/cppcheck.inc:1:warning:oelint.vars.summary80chars:'SUMMARY' should not be longer than 80 characters /disk/meta-some/cppcheck-native/cppcheck.inc:4:warning:oelint.vars.homepageprefix:'HOMEPAGE' should start with 'http://' or 'https://' /disk/meta-some/cppcheck-native/cppcheck.inc:28:warning:oelint.spaces.lineend:Line shall not end with a space /disk/meta-some/cppcheck-native/cppcheck-native_1.87.bb:0:error:oelint.var.mandatoryvar:Variable 'AUTHOR' should be set /disk/meta-some/cppcheck-native/cppcheck.inc:26:error:oelint.task.nocopy:'cp' shall not be used in do_install. Use 'install' /disk/meta-some/cppcheck-native/cppcheck.inc:12:warning:oelint.var.order:'DEPENDS' should be placed before 'inherit'
Apply automatic fixing
Some of the rules are capable of fixing the issues found automatically. This will be done if you pass –fix as a startup parameter.
As long as you don’t pass –nobackup a backup copy (filename + .bak) will be created for all files fixed.
Available rules
Rules marked with [F] are able to perform automatic fixing
oelint.comments.notrailing - No trailing comments allowed, comments should be on a single line
oelint.file.patchsignedoff - Patches should contain a Signed-Of-By entry
oelint.file.upstreamstatus - Patches should contain a Upstream-Status entry
oelint.spaces.emptyline - Empty line should not contain spaces or tabs [F]
oelint.spaces.linebeginning - No space at a line beginning [F]
oelint.spaces.linecont - Safe line continuation [F]
oelint.spaces.lineend - No spaces at line end [F]
oelint.tabs.notabs - No tabs allowed [F]
oelint.task.addnotaskbody - Task added by addtask cannot be found
oelint.task.customorder - order of custom tasks added via addtask
oelint.task.docstrings - Custom tasks should have docstrings
oelint.task.multiappends - Multiple appends to the same function in the same file won’t work in bitbake
oelint.task.nocopy - No cp usage in do_install
oelint.task.nomkdir - No mkdir usage in do_install
oelint.task.order - Order of tasks
oelint.var.bbclassextend - Use BBCLASSEXTEND when possible
oelint.vars.dependsappend - DEPENDS should only be appended, not overwritten
oelint.var.licenseremotefile - License shall be a file in remote source not a local file
oelint.var.mandatoryvar - Check for mandatory variables
oelint.var.multiinclude - Warn on including the same file more than once
oelint.var.multiinherit - Warn on inherit the same file more than once
oelint.var.nativefilename - Native only recipes should be named -native
oelint.var.order - Variable order
oelint.var.override - Check if include/append is overriding a variable
oelint.var.suggestedvar - Notice on suggested variables
oelint.vars.bugtrackerisurl - BUGTRACKER should be an URL
oelint.vars.homepageprefix - HOMEPAGE should begin with https:// or http://
oelint.vars.multilineident - On a multiline assignment, line indent is desirable
oelint.vars.sectionlowercase - SECTION should be lowercase only [F]
oelint.vars.spacesassignment - ‘ = ‘ should be correct variable assignment
oelint.vars.summary80chars - SUMMARY should max. be 80 characters long
oelint.vars.summarylinebreaks - No line breaks in SUMMARY
oelint.vars.valuequoted - Variable values should be properly quoted
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oelint_adv-1.5.0.tar.gz.
File metadata
- Download URL: oelint_adv-1.5.0.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da442e4d1600a2ac48e7122aaaaff452201db84e98dc6fb4320b9def6a94a7d6
|
|
| MD5 |
f9409790ce0423d2a8a5121ec252450d
|
|
| BLAKE2b-256 |
b99ebd34c3dfa3ca0cbe15ecff82b10c40da2f8c90198b746263bc30be04944b
|
File details
Details for the file oelint_adv-1.5.0-py3.6.egg.
File metadata
- Download URL: oelint_adv-1.5.0-py3.6.egg
- Upload date:
- Size: 75.8 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
779141e160ca60a52a1c6ce98ed4528db52ae2eb6700853521c5393238b82d47
|
|
| MD5 |
a542ca5b8541d98bab3e37f7fe7c57fc
|
|
| BLAKE2b-256 |
afed14159a54e1541b604c24d013033227e2a7e511e0ba4d14f0303997ad6107
|