summaryrefslogtreecommitdiff
path: root/poky/scripts/contrib
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-11-23 00:55:50 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-01-09 04:36:32 +0300
commita5c52ff0bb57fccc2dcd3bd10647d2fa77ddf8c3 (patch)
treee085aadbd071233b82de4a8c76d269f9d746daaa /poky/scripts/contrib
parent1a4b7ee28bf7413af6513fb45ad0d0736048f866 (diff)
downloadopenbmc-a5c52ff0bb57fccc2dcd3bd10647d2fa77ddf8c3.tar.xz
poky: thud refresh 87e3a9739d..1cab405d88
Update poky to thud HEAD. Adrian Bunk (1): archiver.bbclass: Fix COPYLEFT_LICENSE_{IN, EX}CLUDE Adrian Freihofer (2): systemd: fix PN-container package splitting devtool: fix target-deploy --strip Alejandro Enedino Hernandez Samaniego (1): python: Adds instructions to the manifest file Alexander Kanavin (3): meson: do not manipulate the environment when looking for python via pkg-config openssl: update to 1.1.1a libc-package: fix postinst error when ENABLE_BINARY_LOCALE_GENERATION = "0" Alexey Brodkin (1): gdb: Remove long ago upstreamed patch André Draszik (1): linux-firmware: better packaging for TI wl12xx & wl18xx firmwares Anuj Mittal (13): maintainers.inc: update Intel owners gst-plugins-bad: add PACKAGECONFIG for msdk gstreamer1.0: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-base: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-good: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-bad: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-plugins-ugly: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-libav: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-vaapi: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-rtsp-server: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-omx: upgrade 1.14.3 -> 1.14.4 gstreamer1.0-python: upgrade 1.14.3 -> 1.14.4 gst-validate: upgrade 1.14.2 -> 1.14.4 Armin Kuster (1): gnutls: update to 3.6.4 Bruce Ashfield (13): linux-yocto: remove obselete options from lxc config linux-yocto/4.14: configuration cleanups linux-yocto/4.18: -rt sync and config cleanups linux-yocto/tiny: switch default branch to standard/tiny/base linux-yocto/tiny: restore qemuarm support linux-yocto/4.18: bug fixes and configuration tweaks linux-yocto/4.18: update to v4.18.17 linux-yocto/4.14: update to v4.14.79 linux-yocto/4.18: integrate CVE fixes linux-yocto/4.18: update to v4.18.20 linux-yocto/4.18: update to v4.18.21 linux-yocto: configuration updates (virtio and tpm) linux-yocto: correct qemumips64el definition Carlos Rafael Giani (10): gstreamer1.0: upgrade to version 1.14.3 gstreamer1.0-plugin-base: upgrade to version 1.14.3 gstreamer1.0-plugin-good: upgrade to version 1.14.3 gstreamer1.0-plugin-bad: upgrade to version 1.14.3 gstreamer1.0-plugin-ugly: upgrade to version 1.14.3 gstreamer1.0-libav: upgrade to version 1.14.3 gstreamer1.0-rtsp-server: upgrade to version 1.14.3 gstreamer1.0-vaapi: upgrade to version 1.14.3 gstreamer1.0-omx: upgrade to version 1.14.3 gstreamer1.0-python: upgrade to version 1.14.3 Changhyeok Bae (2): iproute2: 4.18.0 -> 4.19.0 ethtool: 4.17 -> 4.19 Christophe PRIOUZEAU (1): openssl: correct bad path on package preprocess Douglas Royds (4): boost-context: Reproducibility: Set .file section for all *_elf_gas.S files reproducible: Refactor: Break out fixed_source_date_epoch() function reproducible: Don't look for youngest file when no source tarball ptest: Reproducibility: Take control of umask Eric Chanudet (1): licence: Add license file CC-BY-SA-4.0 Hongxu Jia (6): elfutils: 0.174 -> 0.175 gnupg: upgrade 2.2.9 -> 2.2.10 gnupg: upgrade 2.2.10 -> 2.2.11 libgcrypt: upgrade 1.8.3 -> 1.8.4 ghostscript: 9.25 -> 9.26 go 1.9/1.11: fix textrel qa warning for non mips arch Joshua Watt (3): meta/icecc.bbclass: Move system blacklist to variables meta/icecc.bbclass: Update system blacklists classes/icecc.bbclass: Fix ccache disable Kai Kang (1): multilib_script: fix packages split Khem Raj (3): valgrind: Skip vgpreload_memcheck shared object from stripping populate_sdk_ext.bbclass: Include site.conf in parsing for contents for local.conf local.conf.sample: Update the sample config as per new migration manual Ming Liu (1): image.bbclass: fix a wrong position blank Mingli Yu (2): mdadm: improve the run-ptest nspr: improve reproducibility Niko Mauno (1): opkg-utils: Fix update-alternatives link relocation Otavio Salvador (1): linux-firmware: Bump revision to 1baa348 Paul Eggleton (1): socat: fix LICENSE Peter Kjellerstedt (3): meson: Correct use of the _append operator bitbake: bitbake-diffsigs: Merge with bitbake-dumpsig bitbake: bitbake-diffsigs: Support recursive deps with signature files Richard Purdie (9): meson: Disable rpath stripping at install time scripts/runqemu: Fix logic error causing failures with MACHINE from the environment meta-selftest/error: Cleanup large trailing whitespace bitbake: server/process: Make lockfile handling clearer bitbake: server/process: Show the last 60 log lines, not the last 10 bitbake: server/process: Show last 60 lines of the log if the server didn't start poky.conf: Update the distros we test against on the autobuilder poky: Update version to 2.6.1 build-appliance-image: Update to thud head revision Robert Yang (5): classes: Remove tab indentations in python code recipes: Remove tab indentations in python code bugzilla.bbclass: Remove it since obsoleted sstate.bbclass: Only remove sstate file when task is existed bitbake: server/process: print a message when no logfile Ross Burton (12): cpio: fix crash when appending to archives image_types: use cpio-native to build cpio images libtasn1: no need to inherit binconfig binconfig: only try to mangles files piglit: add missing waffle-bin dependency ruby: upgrade 2.5.1 -> 2.5.3 insane: Clarify GNU_HASH warning patchreview: Various fixes/improvements python3: don't cripple target distutils python3: drop redundant patch bitbake: layerindex: don't use shell=True when cloning bitbake: fetch: don't use shell=True when listing ar files Zheng Ruoqin (2): nss: Fix SHA_HTONL bug for arm 32be. createrepo-c: Fix setup of logging (log domains) Change-Id: I025dd27f44e57af38abff110ebc331e371bc461b Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/scripts/contrib')
-rwxr-xr-xpoky/scripts/contrib/patchreview.py46
1 files changed, 35 insertions, 11 deletions
diff --git a/poky/scripts/contrib/patchreview.py b/poky/scripts/contrib/patchreview.py
index a4d5ba686..072166504 100755
--- a/poky/scripts/contrib/patchreview.py
+++ b/poky/scripts/contrib/patchreview.py
@@ -5,6 +5,7 @@
# - test suite
# - validate signed-off-by
+status_values = ("accepted", "pending", "inappropriate", "backport", "submitted", "denied")
class Result:
# Whether the patch has an Upstream-Status or not
@@ -35,25 +36,26 @@ def blame_patch(patch):
"--format=%s (%aN <%aE>)",
"--", patch)).decode("utf-8").splitlines()
-def patchreview(patches):
- import re
+def patchreview(path, patches):
+ import re, os.path
# General pattern: start of line, optional whitespace, tag with optional
# hyphen or spaces, maybe a colon, some whitespace, then the value, all case
# insensitive.
sob_re = re.compile(r"^[\t ]*(Signed[-_ ]off[-_ ]by:?)[\t ]*(.+)", re.IGNORECASE | re.MULTILINE)
status_re = re.compile(r"^[\t ]*(Upstream[-_ ]Status:?)[\t ]*(\w*)", re.IGNORECASE | re.MULTILINE)
- status_values = ("accepted", "pending", "inappropriate", "backport", "submitted", "denied")
cve_tag_re = re.compile(r"^[\t ]*(CVE:)[\t ]*(.*)", re.IGNORECASE | re.MULTILINE)
cve_re = re.compile(r"cve-[0-9]{4}-[0-9]{4,6}", re.IGNORECASE)
results = {}
for patch in patches:
+
+ fullpath = os.path.join(path, patch)
result = Result()
- results[patch] = result
+ results[fullpath] = result
- content = open(patch, encoding='ascii', errors='ignore').read()
+ content = open(fullpath, encoding='ascii', errors='ignore').read()
# Find the Signed-off-by tag
match = sob_re.search(content)
@@ -122,6 +124,8 @@ def analyse(results, want_blame=False, verbose=True):
missing_status += 1
if r.malformed_upstream_status or r.unknown_upstream_status:
malformed_status += 1
+ # Count patches with no status as pending
+ pending_patches +=1
if r.missing_cve:
missing_cve += 1
if r.upstream_status == "pending":
@@ -132,7 +136,6 @@ def analyse(results, want_blame=False, verbose=True):
need_blame = True
if verbose:
print("Missing Signed-off-by tag (%s)" % patch)
-
if r.malformed_sob:
need_blame = True
if verbose:
@@ -198,14 +201,35 @@ if __name__ == "__main__":
args.add_argument("-b", "--blame", action="store_true", help="show blame for malformed patches")
args.add_argument("-v", "--verbose", action="store_true", help="show per-patch results")
args.add_argument("-g", "--histogram", action="store_true", help="show patch histogram")
- args.add_argument("directory", nargs="?", help="directory to scan")
+ args.add_argument("-j", "--json", help="update JSON")
+ args.add_argument("directory", help="directory to scan")
args = args.parse_args()
- if args.directory:
- os.chdir(args.directory)
- patches = subprocess.check_output(("git", "ls-files", "recipes-*/**/*.patch", "recipes-*/**/*.diff")).decode("utf-8").split()
- results = patchreview(patches)
+ patches = subprocess.check_output(("git", "-C", args.directory, "ls-files", "recipes-*/**/*.patch", "recipes-*/**/*.diff")).decode("utf-8").split()
+ results = patchreview(args.directory, patches)
analyse(results, want_blame=args.blame, verbose=args.verbose)
+
+ if args.json:
+ import json, os.path, collections
+ if os.path.isfile(args.json):
+ data = json.load(open(args.json))
+ else:
+ data = []
+
+ row = collections.Counter()
+ row["total"] = len(results)
+ row["date"] = subprocess.check_output(["git", "-C", args.directory, "show", "-s", "--pretty=format:%cd", "--date=format:%s"]).decode("utf-8").strip()
+ for r in results.values():
+ if r.upstream_status in status_values:
+ row[r.upstream_status] += 1
+ if r.malformed_upstream_status or r.missing_upstream_status:
+ row['malformed-upstream-status'] += 1
+ if r.malformed_sob or r.missing_sob:
+ row['malformed-sob'] += 1
+
+ data.append(row)
+ json.dump(data, open(args.json, "w"))
+
if args.histogram:
print()
histogram(results)