From patchwork Sat Feb 22 08:57:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiko Thiery X-Patchwork-Id: 1242464 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.136; helo=silver.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.a=rsa-sha256 header.s=20161025 header.b=Ea3OwATi; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48PjH46K3Lz9sPk for ; Sat, 22 Feb 2020 20:10:56 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 7BFB022274; Sat, 22 Feb 2020 09:10:54 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6CctyyEOzC7g; Sat, 22 Feb 2020 09:10:50 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id D00D6204A2; Sat, 22 Feb 2020 09:10:49 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 1FEC51BF873 for ; Sat, 22 Feb 2020 09:10:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 1348786E33 for ; Sat, 22 Feb 2020 09:10:42 +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 ovewbyqZ274S for ; Sat, 22 Feb 2020 09:10:41 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by whitealder.osuosl.org (Postfix) with ESMTPS id 0A7DB86ECC for ; Sat, 22 Feb 2020 09:10:40 +0000 (UTC) Received: by mail-wr1-f47.google.com with SMTP id z7so4645992wrl.13 for ; Sat, 22 Feb 2020 01:10:40 -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=O04DN2UEzXttOvKIhulZy4QsLxXdyxiXOTkfGycFMNE=; b=Ea3OwATiS24loXix6gTOsuJaHSoE2HUtGi0josFaxTMPQeUeU+e3IwVJpsjASN3Gma 3d1bso+FeUJZoMVMPsuMVtRbrjPRBL6koMknYZjK2nqhT7OEGbls0Djltf/MyfA+Wy7W 7atv+sHvWQjkRvdJjhwK8srpRNTnE3Kgr0KomHbOz39/sVitDkCUepk5344zUZAlGBXM EeLLj4lE5J72BQmjR25q1LCyeKHT/PLZ5EgQLabOEUxRIowBOFkNH4nkpx8cPPe4aQKn /WoNGJwqZa70baiqTq51zqIvAP5IXwX3A0yuBuBxad/XuGGM+fyyRDvYqP0SBhqSARMb d59g== 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=O04DN2UEzXttOvKIhulZy4QsLxXdyxiXOTkfGycFMNE=; b=oEi2PMCZB27e56dT8QGtJddPmVCMU1XwbUXhiQ25gR6GUqyTzJLftXpspP1PEqlGhN ieAEB41faIndoCDG4ADwpWagqG8ZWa5om+9QNOTaC02oR2RRepIwDofVqcd7ahuZkglA fj2Ck7GkZgHoJ1Zx9m7deau7949/NR8t6iKhBHgYa4ZuVJALWHX9KDdF2LAmV+mJ+jUy hsFrSsOxDFV8swuy6Ib7AvoqfSiUMfmGB0HsPNEPjGFo14V1Y17joySk2hGVfbn6H8pC SzUeTUC5GymYs3qbH9TYyjqTaTk2rXIzh3SWvMJpFIolUKKcPu4WmYu2gnKfxotz048C F/zg== X-Gm-Message-State: APjAAAXoBPO9NgS6fcQ7WRbx1lZfREy8V1xDgYhmZrMk8MnCSF42fjIZ gT29hgs3h7C+exzgFPVizCUO7RUL X-Google-Smtp-Source: APXvYqx31NzvjbKhZd3r0yuw/8buUyMbHfAMWcLZxetNPWgkIvhKaxItD4WNoXf6ai99kIW3/yTPoQ== X-Received: by 2002:adf:eec3:: with SMTP id a3mr50763305wrp.337.1582362639127; Sat, 22 Feb 2020 01:10:39 -0800 (PST) Received: from t450s.fritz.box (ip5f589959.dynamic.kabel-deutschland.de. [95.88.153.89]) by smtp.gmail.com with ESMTPSA id l6sm603970wrb.75.2020.02.22.01.10.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Feb 2020 01:10:38 -0800 (PST) From: Heiko Thiery To: buildroot@buildroot.org Date: Sat, 22 Feb 2020 09:57:12 +0100 Message-Id: <20200222085715.23769-9-heiko.thiery@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200222085715.23769-1-heiko.thiery@gmail.com> References: <20200222085715.23769-1-heiko.thiery@gmail.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH v3 08/12] support/scripts/pkg-stats: add defconfig support 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 , Titouan Christophe Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Scan configs directory and create Defconfig objects. Signed-off-by: Heiko Thiery --- support/scripts/pkg-stats | 42 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats index 36b33586ef..ae70f90485 100755 --- a/support/scripts/pkg-stats +++ b/support/scripts/pkg-stats @@ -54,6 +54,33 @@ RM_API_STATUS_NOT_FOUND = 4 # because it's used by sub-processes. http_pool = None +class Defconfig: + def __init__(self, name, path): + self.name = name + self.path = path + self.developers = None + + def set_developers(self, developers): + """ + Fills in the .developers field + """ + self.developers = list() + for dev in developers: + if dev.hasfile(self.path): + self.developers.append(dev.name) + +def get_defconfig_list(): + """ + Builds the list of Buildroot defconfigs, returning a list of Defconfig + objects. + """ + defconfigs = list() + files = [f for f in os.listdir('configs')] + for name in files: + d = Defconfig(name[:-10], os.path.join('configs', name)) + defconfigs.append(d) + return defconfigs + class Package: all_licenses = dict() @@ -882,7 +909,7 @@ def dump_html(packages, stats, date, commit, output): f.write(html_footer) -def dump_json(packages, stats, date, commit, output): +def dump_json(packages, defconfigs, stats, date, commit, output): # Format packages as a dictionnary instead of a list # Exclude local field that does not contains real date excluded_fields = ['url_worker', 'name'] @@ -893,6 +920,12 @@ def dump_json(packages, stats, date, commit, output): if k not in excluded_fields } for pkg in packages } + defconfigs = { + d.name: { + k: v + for k, v in d.__dict__.items() + } for d in defconfigs + } # Aggregate infrastructures into a single dict entry statistics = { k: v @@ -903,6 +936,7 @@ def dump_json(packages, stats, date, commit, output): # The actual structure to dump, add commit and date to it final = {'packages': pkgs, 'stats': statistics, + 'defconfigs': defconfigs, 'commit': commit, 'date': str(date)} @@ -944,6 +978,10 @@ def __main__(): packages = get_pkglist(args.npackages, package_list) print("Getting developers ...") developers = parse_developers() + print("Build defconfig list ...") + defconfigs = get_defconfig_list() + for d in defconfigs: + d.set_developers(developers) print("Getting package make info ...") package_init_make_info() print("Getting package details ...") @@ -970,7 +1008,7 @@ def __main__(): dump_html(packages, stats, date, commit, args.html) if args.json: print("Write JSON") - dump_json(packages, stats, date, commit, args.json) + dump_json(packages, defconfigs, stats, date, commit, args.json) __main__()