{ "info": { "author": "Konrad Weihmann", "author_email": "kweihmann@outlook.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Quality Assurance" ], "description": "oelint-adv\n==========\n\nAdvanced oelint\n\nPurpose\n-------\n\nBased on the `OpenEmbedded\nStyleguide `__ and work\ndone by\n`oe-stylize-tool `__\nthis module offers a (nearly) complete linter for bitbake-recipes.\n\nThe tool does handle includes/requires automatically so you don't have\nto pass them via CLI.\n\n**NOTE**: .bbappend-files have to be passed via CLI - these are NOT\ngathered automatically\n\nUsage\n-----\n\n.. code:: shell\n\n oelint-adv\n usage: __main__.py [-h] [--suppress SUPPRESS] [--output OUTPUT] [--fix]\n [--nobackup] [--addrules ADDRULES [ADDRULES ...]]\n files [files ...]\n\n Advanced OELint - Check bitbake recipes against OECore styleguide\n\n positional arguments:\n files File to parse\n\n optional arguments:\n -h, --help show this help message and exit\n --suppress SUPPRESS Rules to suppress\n --output OUTPUT Where to flush the findings (default: stderr)\n --fix Automatically try to fix the issues\n --nobackup Don't create backup file when auto fixing\n --addrules ADDRULES [ADDRULES ...]\n Additional non-default rulessets to add\n\nOutput\n------\n\nWill be [file]:[line]:[severity]:[message].\n\nExample:\n\n.. code:: shell\n\n /disk/meta-some/cppcheck-native/cppcheck.inc:26:error:oelint.task.nomkdir:'mkdir' shall not be used in do_install. Use 'install'\n /disk/meta-some/cppcheck-native/cppcheck-native_1.87.bb:0:error:oelint.var.mandatoryvar:Variable 'SECTION' should be set\n /disk/meta-some/cppcheck-native/cppcheck.inc:1:warning:oelint.vars.summary80chars:'SUMMARY' should not be longer than 80 characters\n /disk/meta-some/cppcheck-native/cppcheck.inc:4:warning:oelint.vars.homepageprefix:'HOMEPAGE' should start with 'http://' or 'https://'\n /disk/meta-some/cppcheck-native/cppcheck.inc:28:warning:oelint.spaces.lineend:Line shall not end with a space\n /disk/meta-some/cppcheck-native/cppcheck-native_1.87.bb:0:error:oelint.var.mandatoryvar:Variable 'AUTHOR' should be set\n /disk/meta-some/cppcheck-native/cppcheck.inc:26:error:oelint.task.nocopy:'cp' shall not be used in do_install. Use 'install'\n /disk/meta-some/cppcheck-native/cppcheck.inc:12:warning:oelint.var.order:'DEPENDS' should be placed before 'inherit'\n\nApply automatic fixing\n----------------------\n\nSome of the rules are capable of fixing the issues found automatically.\nThis will be done if you pass **--fix** as a startup parameter.\n\nAs long as you don't pass **--nobackup** a backup copy (filename + .bak)\nwill be created for all files fixed.\n\nAvailable rules\n---------------\n\nRules marked with **[F]** are able to perform automatic fixing\n\n- oelint.comments.notrailing - No trailing comments allowed, comments\n should be on a single line\n- oelint.file.patchsignedoff - Patches should contain a Signed-Of-By\n entry\n- oelint.file.upstreamstatus - Patches should contain a Upstream-Status\n entry\n- oelint.spaces.emptyline - Empty line should not contain spaces or\n tabs **[F]**\n- oelint.spaces.linebeginning - No space at a line beginning **[F]**\n- oelint.spaces.linecont - Safe line continuation **[F]**\n- oelint.spaces.lineend - No spaces at line end **[F]**\n- oelint.tabs.notabs - No tabs allowed **[F]**\n- oelint.task.addnotaskbody - Task added by addtask cannot be found\n- oelint.task.customorder - order of custom tasks added via addtask\n- oelint.task.docstrings - Custom tasks should have docstrings\n- oelint.task.multiappends - Multiple appends to the same function in\n the same file won't work in bitbake\n- oelint.task.nocopy - No cp usage in do\\_install\n- oelint.task.nomkdir - No mkdir usage in do\\_install\n- oelint.task.order - Order of tasks\n- oelint.var.bbclassextend - Use BBCLASSEXTEND when possible\n- oelint.var.licenseremotefile - License shall be a file in remote\n source not a local file\n- oelint.var.mandatoryvar - Check for mandatory variables\n- oelint.var.multiinclude - Warn on including the same file more than\n once\n- oelint.var.multiinherit - Warn on inherit the same file more than\n once\n- oelint.var.nativefilename - Native only recipes should be named\n -native\n- oelint.var.order - Variable order\n- oelint.var.override - Check if include/append is overriding a\n variable\n- oelint.var.suggestedvar - Notice on suggested variables\n- oelint.vars.autorev - The usage of 'AUTOREV' for SRCREV leads to not\n reproducible builds\n- oelint.vars.bugtrackerisurl - BUGTRACKER should be an URL\n- oelint.vars.dependsappend - DEPENDS should only be appended, not\n overwritten\n- oelint.vars.duplicate - No duplicates in DEPENDS and RDEPENDS\n- oelint.vars.homepageprefix - HOMEPAGE should begin with https:// or\n http://\n- oelint.vars.multilineident - On a multiline assignment, line indent\n is desirable\n- oelint.vars.sectionlowercase - SECTION should be lowercase only\n **[F]**\n- oelint.vars.spacesassignment - ' = ' should be correct variable\n assignment\n- oelint.vars.srcurioptions - Fetcher should only valid options\n- oelint.vars.summary80chars - SUMMARY should max. be 80 characters\n long\n- oelint.vars.summarylinebreaks - No line breaks in SUMMARY\n- oelint.vars.valuequoted - Variable values should be properly quoted\n- oelint.vars.dependsordered - [R]DEPENDS entries should be ordered\n alphabetically\n\nNon-default rulesets\n~~~~~~~~~~~~~~~~~~~~\n\nTo enable rulesets that are not part of the standard ruleset pass\n**--addrules ** to CLI.\n\nThese rules are sometimes contrary to OE-style-guide, so use them with\ncaution\n\njetm ruleset\n^^^^^^^^^^^^\n\nTo enable pass **--addrules jetm** to CLI\n\nRules marked with **[F]** are able to perform automatic fixing\n\n- oelint.jetm.vars.dependssingleline - Each [R]DEPENDS entry should be\n put into a single line\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/priv-kweihmann/oelint-adv", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "oelint_adv", "package_url": "https://pypi.org/project/oelint_adv/", "platform": "", "project_url": "https://pypi.org/project/oelint_adv/", "project_urls": { "Homepage": "https://github.com/priv-kweihmann/oelint-adv" }, "release_url": "https://pypi.org/project/oelint_adv/1.7.0/", "requires_dist": null, "requires_python": "", "summary": "Advanced bitbake-recipe linter", "version": "1.7.0" }, "last_serial": 5991550, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "f4e049f8cd5b538c5579abfa5c30bb8c", "sha256": "28c672b085dd1a5e8acf6eccd86b7f82beac274a50e361825b212a796d01c0c7" }, "downloads": -1, "filename": "oelint_adv-1.1.0.tar.gz", "has_sig": false, "md5_digest": "f4e049f8cd5b538c5579abfa5c30bb8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8982, "upload_time": "2019-03-07T14:24:20", "url": "https://files.pythonhosted.org/packages/d6/ba/4af739e2b02b0469176b130722106bd89838ac34569cc288533dc0f5d34b/oelint_adv-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "18027b7217d3fa8cd37db0729767563e", "sha256": "af1fe88435226ce56048c31ea484d4231c135b7c4d1f0b81b6d2f8afe92c6d02" }, "downloads": -1, "filename": "oelint_adv-1.2.0.tar.gz", "has_sig": false, "md5_digest": "18027b7217d3fa8cd37db0729767563e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10849, "upload_time": "2019-03-18T18:58:04", "url": "https://files.pythonhosted.org/packages/38/dc/e54faca0c0daca6ea24c109e8211c90df6aa0feee11a659dbe6ebcc1e69d/oelint_adv-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "ead09a76d9066fcd3dd8750f455d7d1d", "sha256": "19f956d203e413f3ffffd84588962c8d6fb32618a7b59fa42c2f8d89744ba1f5" }, "downloads": -1, "filename": "oelint_adv-1.3.0.tar.gz", "has_sig": false, "md5_digest": "ead09a76d9066fcd3dd8750f455d7d1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12146, "upload_time": "2019-05-25T15:13:22", "url": "https://files.pythonhosted.org/packages/e0/87/cf14cae6062817de4696c51cded17db3aa37070d868590a60f127f24bfeb/oelint_adv-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "957ebf0ace4e50f765fb90aed55a17a5", "sha256": "802599ab3a4115961a276e19960a4648259ff0c6395378c072d1a91498f36d41" }, "downloads": -1, "filename": "oelint_adv-1.4.0-py3.6.egg", "has_sig": false, "md5_digest": "957ebf0ace4e50f765fb90aed55a17a5", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 73065, "upload_time": "2019-07-21T14:33:06", "url": "https://files.pythonhosted.org/packages/aa/33/084b883e259f0653ee03161a93cc572d619bb4b9b4e0f92fd4a2545a2663/oelint_adv-1.4.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "5f0393ffdc0b88766bf44c33dd24791d", "sha256": "07dd8361802404b1653f2eb73392e0119df9c57870878e27df7fb729c3672fbe" }, "downloads": -1, "filename": "oelint_adv-1.4.0.tar.gz", "has_sig": false, "md5_digest": "5f0393ffdc0b88766bf44c33dd24791d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12831, "upload_time": "2019-07-21T14:34:26", "url": "https://files.pythonhosted.org/packages/01/fb/55b696860db018e8b4a2d93fd142bd34c0244afa410a59cb17e2a7ad6734/oelint_adv-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "a542ca5b8541d98bab3e37f7fe7c57fc", "sha256": "779141e160ca60a52a1c6ce98ed4528db52ae2eb6700853521c5393238b82d47" }, "downloads": -1, "filename": "oelint_adv-1.5.0-py3.6.egg", "has_sig": false, "md5_digest": "a542ca5b8541d98bab3e37f7fe7c57fc", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 75792, "upload_time": "2019-08-28T17:25:47", "url": "https://files.pythonhosted.org/packages/af/ed/14159a54e1541b604c24d013033227e2a7e511e0ba4d14f0303997ad6107/oelint_adv-1.5.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "f9409790ce0423d2a8a5121ec252450d", "sha256": "da442e4d1600a2ac48e7122aaaaff452201db84e98dc6fb4320b9def6a94a7d6" }, "downloads": -1, "filename": "oelint_adv-1.5.0.tar.gz", "has_sig": false, "md5_digest": "f9409790ce0423d2a8a5121ec252450d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13490, "upload_time": "2019-08-28T17:26:28", "url": "https://files.pythonhosted.org/packages/b9/9e/bd34c3dfa3ca0cbe15ecff82b10c40da2f8c90198b746263bc30be04944b/oelint_adv-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "c6c0d8c65107082eafdea603e8d88669", "sha256": "a76550b26e90911b4cf33b0c897ff6f603ebc29f7e0b3bb847aa089906ea9992" }, "downloads": -1, "filename": "oelint_adv-1.6.0-py3.6.egg", "has_sig": false, "md5_digest": "c6c0d8c65107082eafdea603e8d88669", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 77368, "upload_time": "2019-09-27T18:49:10", "url": "https://files.pythonhosted.org/packages/9a/b0/6fce129f5ac449ab6624e728300faafc49d62c59ee188ef9b57ada5450aa/oelint_adv-1.6.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "c774c8210100497b7c2b2e76da10ddbc", "sha256": "1c0070afff8a757b3434c81ff3898c64b813e73dbfcf290428f6dfc806ccd51c" }, "downloads": -1, "filename": "oelint_adv-1.6.0.tar.gz", "has_sig": false, "md5_digest": "c774c8210100497b7c2b2e76da10ddbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13633, "upload_time": "2019-09-27T18:49:43", "url": "https://files.pythonhosted.org/packages/6c/e9/11bc48e77cbee7a11a563662f73d01b4f82251ac6f40cbd7c402be8d4183/oelint_adv-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "0035e76775071f183094fb1ee30bad08", "sha256": "e8b9987f5f2c7a6c9c3a909100c02ee7e0dc2c2cf210ca8fd30cc6a79af3e4d4" }, "downloads": -1, "filename": "oelint_adv-1.7.0-py3.6.egg", "has_sig": false, "md5_digest": "0035e76775071f183094fb1ee30bad08", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 88773, "upload_time": "2019-10-17T18:01:41", "url": "https://files.pythonhosted.org/packages/97/65/c1a8e044e48339928fc8f6ba778e5e8ada077f55f08b079c402cd0ae412c/oelint_adv-1.7.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "7f7fe7fb7c3b80e86792c93951c9bbcc", "sha256": "9ea03b3e385b772f3242aa442d147fe53a2bd3d9e404cd3f77b689e266b0dee6" }, "downloads": -1, "filename": "oelint_adv-1.7.0.tar.gz", "has_sig": false, "md5_digest": "7f7fe7fb7c3b80e86792c93951c9bbcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16345, "upload_time": "2019-10-17T18:02:26", "url": "https://files.pythonhosted.org/packages/38/8b/62574cbf5ecacd34bb5e7c50b01823352c26a42a5515b8a6f6a712e94864/oelint_adv-1.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0035e76775071f183094fb1ee30bad08", "sha256": "e8b9987f5f2c7a6c9c3a909100c02ee7e0dc2c2cf210ca8fd30cc6a79af3e4d4" }, "downloads": -1, "filename": "oelint_adv-1.7.0-py3.6.egg", "has_sig": false, "md5_digest": "0035e76775071f183094fb1ee30bad08", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 88773, "upload_time": "2019-10-17T18:01:41", "url": "https://files.pythonhosted.org/packages/97/65/c1a8e044e48339928fc8f6ba778e5e8ada077f55f08b079c402cd0ae412c/oelint_adv-1.7.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "7f7fe7fb7c3b80e86792c93951c9bbcc", "sha256": "9ea03b3e385b772f3242aa442d147fe53a2bd3d9e404cd3f77b689e266b0dee6" }, "downloads": -1, "filename": "oelint_adv-1.7.0.tar.gz", "has_sig": false, "md5_digest": "7f7fe7fb7c3b80e86792c93951c9bbcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16345, "upload_time": "2019-10-17T18:02:26", "url": "https://files.pythonhosted.org/packages/38/8b/62574cbf5ecacd34bb5e7c50b01823352c26a42a5515b8a6f6a712e94864/oelint_adv-1.7.0.tar.gz" } ] }