From patchwork Sun Jan 5 09:23:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiko Thiery X-Patchwork-Id: 1217719 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="V1IC+2jX"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47rCrG0gW7z9sPJ for ; Sun, 5 Jan 2020 20:23:58 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 573A2860D5; Sun, 5 Jan 2020 09:23:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wH2U3ekCjEqQ; Sun, 5 Jan 2020 09:23:55 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 335CB85DF5; Sun, 5 Jan 2020 09:23:55 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 078ED1BF285 for ; Sun, 5 Jan 2020 09:23:53 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 0376385A82 for ; Sun, 5 Jan 2020 09:23:53 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lc-RxYglT1vo for ; Sun, 5 Jan 2020 09:23:52 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 07D8F85A76 for ; Sun, 5 Jan 2020 09:23:52 +0000 (UTC) Received: by mail-wm1-f54.google.com with SMTP id d73so12034001wmd.1 for ; Sun, 05 Jan 2020 01:23:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jt8p4gWANbXe3c6C2WnPNjrz01ZgzLbeFJmp0Z8vyzk=; b=V1IC+2jXKzGSjL92FDI+lsQcK+52rk2+27XbFNjThVylX8KHoPz53q5fkWK7t0T/SJ sV6c9oHKwGAK085/SvDKyTaiyAVX727zlg77AvtGTvISK6FRnPvIGwQmbcy+TKcjEExx oq9CewRNTW7M98VgvZaixegtfwsQsU5bl9l/QrNxpOtoNP35OWVueQMI82mOze0gzc4I /Sof9/DafzJu9cPmaFqM4NULWCr+8v3/w4GMW/PnBlpaq4Yz2pn/MWxprDbOw7gjg9HN 5qF7yc/4zPVTGE3b90x/hYTP42CFp/rVuEgWel0WEJGsA/yD6TeljOE1kR9rP7BjyQUP x1LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jt8p4gWANbXe3c6C2WnPNjrz01ZgzLbeFJmp0Z8vyzk=; b=JuY6laDXIPRb5K+Yjre3NwmEV6Y5MjwiEK3DF4f/cTsxcuV4Tx1BBgrQaZaGW/ZQEF O3h6RGcX+ExojH0FbBHudal8WrOxSJwLluWahC2XZq3kirqp0thpHZjTzF4Yg0EW4H2G 85VVZcae/OfzbA6ThgC4oOOJ1vKf5wj4mbFYaXJ2Mis/SwezL3Y1P/dqQNKAFkKfLbhl 90Ls5MvMj3/k5bqQt6BpDVhgiUq+nh/aEub9/vKkzIiouJNs1Q+w3XFQDIauXNbcisuW 6LGNvH6UGmHWdFRIODUsSytTxARPXmh6sQM+w4EezS22Xyydxzc32qaZOkKZRad3I8sH 8ZWQ== X-Gm-Message-State: APjAAAWKFUkiIIi76VIR3T2TO1fILaYQPUKp60X34wkla1G6xznAKu5E zSyxMIs5uD40RP2R4DDijIe82BRL X-Google-Smtp-Source: APXvYqyNUemdnPWC/o2N+R1auRZ8ATHGoL+PfxYRWNYQnxkoSkdmmWZtadN3Z0E7gB8FcVnyTXAWkw== X-Received: by 2002:a1c:1b41:: with SMTP id b62mr28147669wmb.53.1578216229945; Sun, 05 Jan 2020 01:23:49 -0800 (PST) Received: from t450s.fritz.box (ip5f589927.dynamic.kabel-deutschland.de. [95.88.153.39]) by smtp.gmail.com with ESMTPSA id r62sm19600729wma.32.2020.01.05.01.23.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jan 2020 01:23:49 -0800 (PST) From: Heiko Thiery To: buildroot@buildroot.org Date: Sun, 5 Jan 2020 10:23:23 +0100 Message-Id: <20200105092329.6288-2-heiko.thiery@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200105092329.6288-1-heiko.thiery@gmail.com> References: <20200105092329.6288-1-heiko.thiery@gmail.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2 1/8] support/scripts/pkg-stats: store latest version in a dict X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heiko Thiery , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Heiko Thiery This patch changes the name and the variable from latest_verion of type list to rm_status of type dict. This is for better readability/usability of the data. With this the json output is more descriptive. Signed-off-by: Heiko Thiery --- support/scripts/pkg-stats | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats index e477828f7b..8c64993aaf 100755 --- a/support/scripts/pkg-stats +++ b/support/scripts/pkg-stats @@ -61,7 +61,7 @@ class Package: self.url = None self.url_status = None self.url_worker = None - self.latest_version = (RM_API_STATUS_ERROR, None, None) + self.rm_version = {'status': RM_API_STATUS_ERROR, 'version': None, 'id': None} def pkgvar(self): return self.name.upper().replace("-", "_") @@ -331,11 +331,10 @@ def check_package_latest_version_worker(name): def check_package_latest_version(packages): """ - Fills in the .latest_version field of all Package objects + Fills in the .rm_version field of all Package objects + + This field is a dict and has the following keys: - This field has a special format: - (status, version, id) - with: - status: one of RM_API_STATUS_ERROR, RM_API_STATUS_FOUND_BY_DISTRO, RM_API_STATUS_FOUND_BY_PATTERN, RM_API_STATUS_NOT_FOUND @@ -351,7 +350,9 @@ def check_package_latest_version(packages): worker_pool = Pool(processes=64) results = worker_pool.map(check_package_latest_version_worker, (pkg.name for pkg in packages)) for pkg, r in zip(packages, results): - pkg.latest_version = r + pkg.rm_version['status'] = r[0] + pkg.rm_version['version'] = r[1] + pkg.rm_version['id'] = r[2] del http_pool @@ -379,13 +380,13 @@ def calculate_stats(packages): stats["hash"] += 1 else: stats["no-hash"] += 1 - if pkg.latest_version[0] == RM_API_STATUS_FOUND_BY_DISTRO: + if pkg.rm_version['status'] == RM_API_STATUS_FOUND_BY_DISTRO: stats["rmo-mapping"] += 1 else: stats["rmo-no-mapping"] += 1 - if not pkg.latest_version[1]: + if not pkg.rm_version['version']: stats["version-unknown"] += 1 - elif pkg.latest_version[1] == pkg.current_version: + elif pkg.rm_version['version'] == pkg.current_version: stats["version-uptodate"] += 1 else: stats["version-not-uptodate"] += 1 @@ -548,29 +549,29 @@ def dump_html_pkg(f, pkg): f.write(" %s\n" % current_version) # Latest version - if pkg.latest_version[0] == RM_API_STATUS_ERROR: + if pkg.rm_version['status'] == RM_API_STATUS_ERROR: td_class.append("version-error") - if pkg.latest_version[1] is None: + if pkg.rm_version['version'] is None: td_class.append("version-unknown") - elif pkg.latest_version[1] != pkg.current_version: + elif pkg.rm_version['version'] != pkg.current_version: td_class.append("version-needs-update") else: td_class.append("version-good") - if pkg.latest_version[0] == RM_API_STATUS_ERROR: + if pkg.rm_version['status'] == RM_API_STATUS_ERROR: latest_version_text = "Error" - elif pkg.latest_version[0] == RM_API_STATUS_NOT_FOUND: + elif pkg.rm_version['status'] == RM_API_STATUS_NOT_FOUND: latest_version_text = "Not found" else: - if pkg.latest_version[1] is None: + if pkg.rm_version['version'] is None: latest_version_text = "Found, but no version" else: latest_version_text = "%s" % \ - (pkg.latest_version[2], str(pkg.latest_version[1])) + (pkg.rm_version['id'], str(pkg.rm_version['version'])) latest_version_text += "
" - if pkg.latest_version[0] == RM_API_STATUS_FOUND_BY_DISTRO: + if pkg.rm_version['status'] == RM_API_STATUS_FOUND_BY_DISTRO: latest_version_text += "found by distro" else: latest_version_text += "found by guess"