From patchwork Sun Jul 24 05:48:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660029 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=buildroot.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC2d5Wmzz9sFk for ; Sun, 24 Jul 2022 15:50:49 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 4F23560E9A; Sun, 24 Jul 2022 05:50:47 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 4F23560E9A X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3lcs8Has7GXF; Sun, 24 Jul 2022 05:50:46 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 54AFF60AD8; Sun, 24 Jul 2022 05:50:45 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 54AFF60AD8 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 6B3CF1BF59B for ; Sun, 24 Jul 2022 05:50:26 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 52C6060AD8 for ; Sun, 24 Jul 2022 05:50:26 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 52C6060AD8 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0VPPvftK6nZH for ; Sun, 24 Jul 2022 05:50:22 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 861A360669 Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com [IPv6:2607:f8b0:4864:20::22e]) by smtp3.osuosl.org (Postfix) with ESMTPS id 861A360669 for ; Sun, 24 Jul 2022 05:50:22 +0000 (UTC) Received: by mail-oi1-x22e.google.com with SMTP id r13so9587251oie.1 for ; Sat, 23 Jul 2022 22:50:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=nRYz8ZqURI+5ddgmKJHONCXW5irEwS+9C7Ncs+PaZA0=; b=XIoOy8QjlMww6VKSp+W33o0QlLCIG1HEAFwQiPbD8+Oi/lFCPigk/uVij8vPkmVckT /OvqwL/85PxO9efP1Lac/WEwF9796ib3dcvS9tp2aKwqE+Vl5w9ztM35OjuAnmHaZ36M 9TnBlPosRa3yC9aToZLPmYD0w2Np/N8oiPE6IDrIGUC5zYaBLJE5e/nKLdGKyT/WBeKs ZP3he36Ve9sNKhOeWT7s4jYBnayy5PuKyf2/kLdDcmRZefp2GVjyuiXNFuwgw2lrP/ow HWKeWjEJL86+tN9RoaN7HqeaZ/nhdHL31TkAaRn9UMQ0M8gUfs/HiLTD10vf33ligvoZ /AGA== X-Gm-Message-State: AJIora8oLSYREVZUW2ZSyS6U936ZL6x1QzUhZgtwXcN4WUaxtTw0dID/ r69hIOiiaewTTZn1NmkmoeVWnFNXjsY= X-Google-Smtp-Source: AGRyM1vLWvGwmdiYW7YeaUCkFFd0lwYqyXNdBXQFIroVVkXq2/R06r+aUfaFd7d9hoPKNxFC/Xf2pw== X-Received: by 2002:a05:6808:1a1e:b0:33a:add2:63f8 with SMTP id bk30-20020a0568081a1e00b0033aadd263f8mr6293955oib.268.1658641821566; Sat, 23 Jul 2022 22:50:21 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:20 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:48:57 -0300 Message-Id: <20220724054912.2354219-2-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=nRYz8ZqURI+5ddgmKJHONCXW5irEwS+9C7Ncs+PaZA0=; b=O4zWlJSsGhWQsTlpn1fMqkcIycl/prvk1bGZ7s8SA0wDX4YlkgdeyiHarWAGtpHMUQ V7ev6sasC7bItk3aDmD55W5wB+VJm0H2Op4QO3m4IpnNIAxZ2gak1p4xoHpLXFIaOJwu tctks7eEdEA3/KywwmemPY9zNOCg0QTouuHy6frk4GYHtICzJCsUI9L172xUE2zw1/6Q bvAmyHdjN7Gi1Cv1+4FxWXyrjJMIwclvRCUSvk+MWctGUiqd/eO/IIoyZ8icszLAjCXP 6Q4XhBGoADUpusQ04PzmP2dXZUDiqKDhEyywelcmJSYFcrKvhEw+8s+YIuIZ9jwaI4O8 bayw== X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=O4zWlJSs Subject: [Buildroot] [PATCH 01/16] DEVELOPERS: update entries for Ricardo Martincoski X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Signed-off-by: Ricardo Martincoski --- DEVELOPERS | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/DEVELOPERS b/DEVELOPERS index ee836266be..00315ffe6f 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2466,21 +2466,16 @@ N: Renaud Aubin F: package/libhttpparser/ N: Ricardo Martincoski +F: .flake8 F: package/atop/ F: package/thermald/ - -N: Ricardo Martincoski F: support/testing/infra/ F: support/testing/run-tests -F: support/testing/tests/core/test_file_capabilities.py -F: support/testing/tests/download/ -F: support/testing/tests/package/*_python*.py F: support/testing/tests/package/test_atop.py -F: support/testing/tests/package/test_syslog_ng.py -F: support/testing/tests/package/test_tmux.py F: support/testing/tests/utils/test_check_package.py F: utils/check-package F: utils/checkpackagelib/ +F: utils/docker-run N: Richard Braun F: package/curlftpfs/ From patchwork Sun Jul 24 05:48:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660030 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=buildroot.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC2w0CXnz9sFk for ; Sun, 24 Jul 2022 15:51:03 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id DB26A41779; Sun, 24 Jul 2022 05:51:00 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org DB26A41779 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b8q56JDBS1bW; Sun, 24 Jul 2022 05:50:59 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 9E39041729; Sun, 24 Jul 2022 05:50:58 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 9E39041729 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 7B2BE1BF59B for ; Sun, 24 Jul 2022 05:50:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 55C0560669 for ; Sun, 24 Jul 2022 05:50:28 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 55C0560669 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pjbXbJHc1OBx for ; Sun, 24 Jul 2022 05:50:25 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 85746606C0 Received: from mail-oa1-x2d.google.com (mail-oa1-x2d.google.com [IPv6:2001:4860:4864:20::2d]) by smtp3.osuosl.org (Postfix) with ESMTPS id 85746606C0 for ; Sun, 24 Jul 2022 05:50:25 +0000 (UTC) Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-10d867a8358so11042631fac.10 for ; Sat, 23 Jul 2022 22:50:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=YS0hXVspsKYyFJoe6Zrc064/SV8OzYr7BO7SCV7xExQ=; b=nIxBcEY2XARQSlKq53/wmc3vmAflLuwSY49Pf9eiGPXPJrAi/ei+aS336aNMEBaCcR 20y5bGOJ1LCnjrvR/TFUnz2Si85uuaI9Zj+0aovJdUGL5tQ+nN/RC5y6UYmY2kjDRJ4A 1HL9qnGLX+J+FQTm+Fqp+5Z/cSFdG5rimKEsLblx9kvUFHHOuWCCf6F06nzrlxo1q1GN k9HKHizRsA1F3js7vI2fXD3qQL2E3SyP/laeXiZEliebqsFgafVM6mhKJ6DU7V6adWWU L9+bZO8VKR3hseDm7IUvZrlMbFl81cMaxSSiOHpeKec7XJGl3N+q6kDcA5SKRSmgeKXg 8lCA== X-Gm-Message-State: AJIora9PxD9yB5NXs1dR7emyj1KaUhc6cO11Qwl0uwMutHLDB6L6kO7R +gn9o0BRsdTdqxvTDx/f3oaOC6mvoMM= X-Google-Smtp-Source: AGRyM1s4X5y5a2d8hs87oqt4iGgEm/3M96wHnic1Hm/KL133AhWWCemvsIUdnP5WmT4ls9dktbN1Yw== X-Received: by 2002:a05:6870:6114:b0:10c:6bf:542f with SMTP id s20-20020a056870611400b0010c06bf542fmr11053422oae.188.1658641824536; Sat, 23 Jul 2022 22:50:24 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:23 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:48:58 -0300 Message-Id: <20220724054912.2354219-3-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=YS0hXVspsKYyFJoe6Zrc064/SV8OzYr7BO7SCV7xExQ=; b=FU/DIdhutK6QNtT2P06b3UiobCB9JnrrSIC95bpc5zoyOjpIfDk8kvlQtIFnwS+M9l iY/X83hspCs+BHaMvA6X/6hAvSA2BL6NmvF5VjIzkP70w1thP+sc0mvVjIFv7nWPQB5s 6DZWhP9fyRzdjZDYRtt1ZuVRYR/Tesd8+f12C2eL6ED+OLwC2WVtucCvHOoazqhSmEl3 evj2kYDYq+Rx5pbniqmfmuBch7XVvPAiO+EgvZ9p+RcsfdT66ALi6+hf6wkeV8TXxxfF 0Z3A8aswWmjIsicZziacfG94IUIanN+3aCBdPDPnBSuXdmxTyZhvBxjzZuuHzud36Cxf I/Iw== X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=FU/DIdhu Subject: [Buildroot] [PATCH 02/16] utils/check-package: improve shellcheck reproducibility X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" shellcheck is already in use to check SysV init scripts. Currently its results can be affected by the existence of a .shellcheckrc file in any parent directory. For instance, in this example: (1) /path/.shellcheckrc (2) /path/to/.shellcheckrc (3) /path/to/buildroot the configs from file (1) are ignored and the configs from file (2) override the default values from the shellcheck binary. So the config file affects the check-package result for SysV scripts. Avoid this reproducibility issue by adding an empty config file to the buildroot topdir. It can also eventually contain configs (different from default values from sheelcheck) that we want as a standard to all shell scripts tested by check-package. Signed-off-by: Ricardo Martincoski --- .shellcheckrc | 0 DEVELOPERS | 1 + 2 files changed, 1 insertion(+) create mode 100644 .shellcheckrc diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/DEVELOPERS b/DEVELOPERS index 00315ffe6f..8b2fdb8f6c 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2467,6 +2467,7 @@ F: package/libhttpparser/ N: Ricardo Martincoski F: .flake8 +F: .shellcheckrc F: package/atop/ F: package/thermald/ F: support/testing/infra/ From patchwork Sun Jul 24 05:48:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660031 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=buildroot.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC390tQTz9sFk for ; Sun, 24 Jul 2022 15:51:17 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 323DB408E3; Sun, 24 Jul 2022 05:51:15 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 323DB408E3 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id K6TyzWSnP4hG; Sun, 24 Jul 2022 05:51:14 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id D4A9F400F1; Sun, 24 Jul 2022 05:51:12 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org D4A9F400F1 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id DA77F1BF59B for ; Sun, 24 Jul 2022 05:50:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id C368F83A47 for ; Sun, 24 Jul 2022 05:50:30 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org C368F83A47 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0cKG_D5N8CGh for ; Sun, 24 Jul 2022 05:50:28 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org B5BF383385 Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) by smtp1.osuosl.org (Postfix) with ESMTPS id B5BF383385 for ; Sun, 24 Jul 2022 05:50:28 +0000 (UTC) Received: by mail-ot1-x32d.google.com with SMTP id g19-20020a9d1293000000b0061c7bfda5dfso6381441otg.1 for ; Sat, 23 Jul 2022 22:50:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=yDZ9oSFb0tReGoediciBLPC8qRwp0yz6c01s/7Ipxv4=; b=gQCdRFLA2Dyrnl0SSs7G2Ol8b+4cxmP9/2UtyVkPawHhovJUXF80XIWNMhL2Dwg3P6 3l5Kd00F+S0360vlksnYDm5WORiNyizwuCfsOM13nde9C7kU2w9E9Ve2Da3ngKS1opE+ ttLAvhL6MQAX915BElxQjaPXTh/IeS3J8kWo571i7KarUx6qWLN44IjO821P88PhDeG7 gT6kTQJwPweVp9dNjYLnPXm+e1a7A+n3to5UGd5/Il+d7gCqa20pR8fWNG8ElY2HhS+A CFYjs4nZgpi1d/EvDM+jiPBeiCZzG1vfJ5+AmJcNB0jyOOrDzSvPh5e6h8WoXdF7aBnP VgDQ== X-Gm-Message-State: AJIora/McnL2zHDfd7W1ZyPShj6asgK5oAcAp1D+LPlKruKORqSxwwb4 qHvdIPF5stOz8BFG9Aqf4Vo20xyufjA= X-Google-Smtp-Source: AGRyM1u4c5bFZPu7bvEbW+PCmMHD5H0c9uVxvzSnWyHsZyEpqdabvWA1ZoLUKrXaTv8ebE8eQHrg8g== X-Received: by 2002:a05:6830:913:b0:61c:b443:cb0b with SMTP id v19-20020a056830091300b0061cb443cb0bmr2844534ott.166.1658641827607; Sat, 23 Jul 2022 22:50:27 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:26 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:48:59 -0300 Message-Id: <20220724054912.2354219-4-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=yDZ9oSFb0tReGoediciBLPC8qRwp0yz6c01s/7Ipxv4=; b=Cy+iiLrHumJKxtsTLxfjch9w8laLrGdudGK3psdYTk8oXq4GcZ1avNXEG5NzWHmuK/ BoVeS6qi/zIRlzt9DTvmQaC5a36ziL4GcafJylsuYmJ7N1L4qW7GsDAr1s8RyjFs97e6 0gLVK5iKlnTll6KinCWyilB/Tcq4qeYteTyPDoPrM3S8bw7UkU5pFd7iI0J1PYvnRvvF CPsqXcGEWczFDhrb47a4pRmfCps57kjTGNN6cX5IUJYo+CbO6f0al4RXLIigY/tBfnNt QyGcas3fHh18hbU6xWnn1CHik8+m4MNePgmPeMJVw0iUVpwEEUJYSPB1BSPUUZqAOOSm 99eQ== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=Cy+iiLrH Subject: [Buildroot] [PATCH 03/16] utils/check-package: create an ignore list X-BeenThere: buildroot@buildroot.org 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: Sen Hastings , Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" When a new check_function is added to check-package, often there are files in the tree that would generate warnings. An example is the Sob check_function for patch files: | $ ./utils/check-package --i Sob $(git ls-files) >/dev/null | 369301 lines processed | 46 warnings generated Currently these warnings are listed when calling check-package directly, and also at the output of pkg-stats, but the check_function does not run on 'make check-package' (that is used to catch regressions on GitLab CI 'check-package' job) until all warnings in the tree are fixed. This (theoretically) allows new .patch files be added without SoB, without the GitLab CI catching it. So add a way to check-package itself ignore current warnings, while still catching new files that do not follow that new check_function. Add a file named .checkpackageignore to the buildroot topdir. It contains the list of check_functions that are expected to fail for each given intree file tested by check-package. Each entries is in the format: [ ...] These are 2 examples of possible entries: package/initscripts/init.d/rcK ConsecutiveEmptyLines EmptyLastLine Shellcheck utils/test-pkg Shellcheck Keeping such a list allows us to have fine-grained control over which warning to ignore. In order to avoid this list to grow indefinitely, containing entries for files that are already fixed, make each entry an 'expected to fail' instead of just an 'ignore', and generate a warning if a check_function that was expect to fail for a given files does not generate that warning. Unfortunately one case that do not generate warning is an entry for a file that is deleted in a later commit. Add also a new option --ignore-list that can be used: - by pkg-stats - by developers willing to reduce the intree ignore list - by developers of br2-external trees that want its own ignore list - for debug and tests purposes When using for a br2-external each entry in the ignore file is relative to the directory that contains the ignore file. Since calling check-package -b already uses relative paths to the directory it was called from, when a developer wants a ignore file for a br2-external he/she must call check-package from the directory that contains it. For instance, with these files: /path/to/br2-external/.checkpackageignore /path/to/br2-external/package/mypackage/mypackage.mk The file .checkpackageignore must contain entries in the format: package/mypackage/mypackage.mk EmptyLastLine and the developer must call check-package this way: $ cd /path/to/br2-external/ && \ /otherpath/to/check-package \ --ignore-list=.checkpackageignore \ -b package/mypackage/mypackage.mk This is one more step towards standardizing the use of just 'make check-package' before submitting patches to the list. Cc: Sen Hastings Signed-off-by: Ricardo Martincoski --- Is is intentional to NOT add .checkpackageignore to my DEVELOPER entry, I don't want to be notified for every check-package warning that once was ignored and then becomes fixed. --- .checkpackageignore | 0 support/scripts/pkg-stats | 2 +- utils/check-package | 87 ++++++++++++++++++++++++++++++++------- 3 files changed, 72 insertions(+), 17 deletions(-) create mode 100644 .checkpackageignore diff --git a/.checkpackageignore b/.checkpackageignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/support/scripts/pkg-stats b/support/scripts/pkg-stats index a4bb5ae599..fabdb939aa 100755 --- a/support/scripts/pkg-stats +++ b/support/scripts/pkg-stats @@ -251,7 +251,7 @@ class Package: """ Fills in the .warnings and .status['pkg-check'] fields """ - cmd = [os.path.join(brpath, "utils/check-package")] + cmd = [os.path.join(brpath, "utils/check-package"), "--ignore-list="] pkgdir = os.path.dirname(os.path.join(brpath, self.path)) self.status['pkg-check'] = ("error", "Missing") for root, dirs, files in os.walk(pkgdir): diff --git a/utils/check-package b/utils/check-package index f64daed84c..00be29d02a 100755 --- a/utils/check-package +++ b/utils/check-package @@ -15,10 +15,37 @@ import checkpackagelib.lib_mk import checkpackagelib.lib_patch import checkpackagelib.lib_sysv +IGNORE_FILENAME = ".checkpackageignore" VERBOSE_LEVEL_TO_SHOW_IGNORED_FILES = 3 flags = None # Command line arguments. +def get_ignored_parsers_per_file(intree_only, ignore_filename): + ignored = dict() + entry_base_dir = '' + + if ignore_filename == '': + return ignored # the user explicitly asked to not use any ignore list + + if ignore_filename: + filename = os.path.abspath(ignore_filename) + if not intree_only: + # for br2-external the entries are relative to the path were the ignore list is + entry_base_dir = os.path.join(os.path.dirname(filename)) + else: + if not intree_only: + return ignored # do not use the intree ignore list when testing files in a br2-external + base_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + filename = os.path.join(base_dir, IGNORE_FILENAME) + + with open(filename, "r") as f: + for line in f.readlines(): + filename, warnings_str = line.split(' ', 1) + warnings = warnings_str.split() + ignored[os.path.join(entry_base_dir, filename)] = warnings + return ignored + + def parse_args(): parser = argparse.ArgumentParser() @@ -29,6 +56,8 @@ def parse_args(): parser.add_argument("--br2-external", "-b", dest='intree_only', action="store_false", help="do not apply the pathname filters used for intree files") + parser.add_argument("--ignore-list", dest='ignore_filename', action="store", + help='override the default list of ignored warnings') parser.add_argument("--manual-url", action="store", default="http://nightly.buildroot.org/", @@ -44,7 +73,11 @@ def parse_args(): parser.add_argument("--dry-run", action="store_true", help="print the " "functions that would be called for each file (debug)") - return parser.parse_args() + flags = parser.parse_args() + + flags.ignore_list = get_ignored_parsers_per_file(flags.intree_only, flags.ignore_filename) + + return flags CONFIG_IN_FILENAME = re.compile(r"Config\.\S*$") @@ -120,21 +153,25 @@ def is_external_tool(m): return common_inspect_rules(m) -def print_warnings(warnings): +def print_warnings(warnings, xfail): # Avoid the need to use 'return []' at the end of every check function. if warnings is None: - return 0 # No warning generated. + return 0, 0 # No warning generated. + if xfail: + return 0, 1 # Warning not generated, fail expected for this file. for level, message in enumerate(warnings): if flags.verbose >= level: print(message.replace("\t", "< tab >").rstrip()) - return 1 # One more warning to count. + return 1, 1 # One more warning to count. def check_file_using_lib(fname): # Count number of warnings generated and lines processed. nwarnings = 0 nlines = 0 + xfail = flags.ignore_list.get(fname, []) + failed = set() lib = get_lib_from_filename(fname) if not lib: @@ -150,10 +187,13 @@ def check_file_using_lib(fname): print("{}: would run: {}".format(fname, functions_to_run)) return nwarnings, nlines - objects = [c[1](fname, flags.manual_url) for c in internal_functions] + objects = [[c[0], c[1](fname, flags.manual_url)] for c in internal_functions] - for cf in objects: - nwarnings += print_warnings(cf.before()) + for name, cf in objects: + warn, fail = print_warnings(cf.before(), name in xfail) + if fail > 0: + failed.add(name) + nwarnings += warn if six.PY3: f = open(fname, "r", errors="surrogateescape") else: @@ -161,19 +201,34 @@ def check_file_using_lib(fname): lastline = "" for lineno, text in enumerate(f.readlines()): nlines += 1 - for cf in objects: + for name, cf in objects: if cf.disable.search(lastline): continue - nwarnings += print_warnings(cf.check_line(lineno + 1, text)) + warn, fail = print_warnings(cf.check_line(lineno + 1, text), name in xfail) + if fail > 0: + failed.add(name) + nwarnings += warn lastline = text f.close() - for cf in objects: - nwarnings += print_warnings(cf.after()) - - tools = [c[1](fname) for c in external_tools] - - for tool in tools: - nwarnings += print_warnings(tool.run()) + for name, cf in objects: + warn, fail = print_warnings(cf.after(), name in xfail) + if fail > 0: + failed.add(name) + nwarnings += warn + + tools = [[c[0], c[1](fname)] for c in external_tools] + + for name, tool in tools: + warn, fail = print_warnings(tool.run(), name in xfail) + if fail > 0: + failed.add(name) + nwarnings += warn + + for should_fail in xfail: + if should_fail not in failed: + print("{}:0: {} was expected to fail, did you fixed the file and forgot to update {}?" + .format(fname, should_fail, IGNORE_FILENAME)) + nwarnings += 1 return nwarnings, nlines From patchwork Sun Jul 24 05:49:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660032 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=buildroot.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC3R17V5z9sFk for ; Sun, 24 Jul 2022 15:51:31 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id B948D40B48; Sun, 24 Jul 2022 05:51:28 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org B948D40B48 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l0Esn6ksJE60; Sun, 24 Jul 2022 05:51:27 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 647AE400EC; Sun, 24 Jul 2022 05:51:26 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 647AE400EC X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 486C61BF59B for ; Sun, 24 Jul 2022 05:50:32 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 2397083A47 for ; Sun, 24 Jul 2022 05:50:32 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 2397083A47 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xlMt819pg2JE for ; Sun, 24 Jul 2022 05:50:31 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 21F6483385 Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) by smtp1.osuosl.org (Postfix) with ESMTPS id 21F6483385 for ; Sun, 24 Jul 2022 05:50:31 +0000 (UTC) Received: by mail-ot1-x32a.google.com with SMTP id l9-20020a056830268900b006054381dd35so6373613otu.4 for ; Sat, 23 Jul 2022 22:50:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=9t6Q2ovKQL5Y7NsqsBFKOq7yBIDgQyDCVrxCmiRU9+E=; b=E3d3eHvAuAPysmULmQNPWkxHNjirj/rTub2jrXiYDwdDL/Xi3sDsYc8lxF31zDN71q ZovQ59f3dBNsdqYWTuRCE8Mmp7y4doW9MM2uDpaGPAaAocyaNuKLmMQ/RYXUnHMhGN4r zEwleYc8mduevWGQpmdYlbItoksayquYZFlPoVLGlKJrBUUbohbExy/SLZVwA4R0V6oL RfXiObjpEgWQwDyG1ugbOk+RbAMS0qA2XL7j4554idptbxze+nMDLdgm7yMHRbANX6Df F9+G+mQuxpv0an9+nGo0Bx4f5zVRvEy1341CVBZVvH1yxvCSgX73osGOA18IMtu7tpvh IZSA== X-Gm-Message-State: AJIora/5+S+Gt6mXFLz35fon3EHdHd/3bKrLvQgTMnx/cx1m0FEiYjUh LGFnHTEQfhrwAbFxDkSUs9WjeUmLzRU= X-Google-Smtp-Source: AGRyM1tbQj3SueVfEYYbRlIERQR6QGaF/Q95jOfh6jxsTJT/ovI0RUPNGGoZNYmN363RZqieSyprhw== X-Received: by 2002:a9d:538a:0:b0:61c:b88f:569d with SMTP id w10-20020a9d538a000000b0061cb88f569dmr2838489otg.85.1658641830192; Sat, 23 Jul 2022 22:50:30 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:29 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:00 -0300 Message-Id: <20220724054912.2354219-5-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=9t6Q2ovKQL5Y7NsqsBFKOq7yBIDgQyDCVrxCmiRU9+E=; b=CWmQpEsXZQ+s5K71Xr3jxiHhcEL50JovfptT6lFB8q78ut/Z/TjW208gOBVKbCA8DS kmyfKzr9oW7Ns+8KexkOIlFCUTJrGYsHTAeZlSw3jacg/iHyoh1A5ryiBWfsOcmTqu98 veS013SPUJfCNCZ/mE0z9AVR+agJLbNh/wsdGEGwU7loTJqmoYHR7OrbI1um3SsC26Ei zqVg48oi7GnytVsRmkt/eBsbjzlgnFNydiz+igeuDkboHDWesQNFnL0uVckeLXYi2DYQ gB9lRXcsvp4fGCBL0ODFb7t5Nb89CSXoPnf1/k3VEvBUZbJH2BZce8UGyJfvWyCI2uww 9J5A== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=CWmQpEsX Subject: [Buildroot] [PATCH 04/16] support/testing: test check-package ignore list X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Extend test_check_package to also check the ignore list functionality. Check: - the entries in the ignore list use relative path; - an entry in the ignore list actually ignores the warning; - an outdated entry in the ignore list generates a warning by its own, preventing the ignoring list to grow indefinitely. For this to work, add 3 test fixtures, listing entries for an pre-existing file in the br2-external used in the test. Signed-off-by: Ricardo Martincoski --- .../utils/br2-external/.checkpackageignore | 1 + .../br2-external/package/.checkpackageignore | 1 + .../package/.checkpackageignore_outdated | 1 + .../testing/tests/utils/test_check_package.py | 31 +++++++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 support/testing/tests/utils/br2-external/.checkpackageignore create mode 100644 support/testing/tests/utils/br2-external/package/.checkpackageignore create mode 100644 support/testing/tests/utils/br2-external/package/.checkpackageignore_outdated diff --git a/support/testing/tests/utils/br2-external/.checkpackageignore b/support/testing/tests/utils/br2-external/.checkpackageignore new file mode 100644 index 0000000000..efb7680173 --- /dev/null +++ b/support/testing/tests/utils/br2-external/.checkpackageignore @@ -0,0 +1 @@ +package/external/external.mk PackageHeader diff --git a/support/testing/tests/utils/br2-external/package/.checkpackageignore b/support/testing/tests/utils/br2-external/package/.checkpackageignore new file mode 100644 index 0000000000..5f4a5e1187 --- /dev/null +++ b/support/testing/tests/utils/br2-external/package/.checkpackageignore @@ -0,0 +1 @@ +external/external.mk PackageHeader diff --git a/support/testing/tests/utils/br2-external/package/.checkpackageignore_outdated b/support/testing/tests/utils/br2-external/package/.checkpackageignore_outdated new file mode 100644 index 0000000000..1df59f3bed --- /dev/null +++ b/support/testing/tests/utils/br2-external/package/.checkpackageignore_outdated @@ -0,0 +1 @@ +external/external.mk Indent NewlineAtEof PackageHeader diff --git a/support/testing/tests/utils/test_check_package.py b/support/testing/tests/utils/test_check_package.py index c70ba02324..f21b9e939f 100644 --- a/support/testing/tests/utils/test_check_package.py +++ b/support/testing/tests/utils/test_check_package.py @@ -75,6 +75,12 @@ class TestCheckPackage(unittest.TestCase): generated = int(stderr[1].split()[0]) self.assertGreater(generated, 0) + def assert_no_warnings_generated_for_file(self, stderr): + """Infer from check-package stderr if no warning was generated and fail otherwise.""" + self.assertIn("warnings generated", stderr[1], stderr) + generated = int(stderr[1].split()[0]) + self.assertEqual(generated, 0) + def test_run(self): """Test the various ways the script can be called in a simple top to bottom sequence.""" @@ -201,3 +207,28 @@ class TestCheckPackage(unittest.TestCase): self.assert_file_was_processed(m) self.assert_warnings_generated_for_file(m) self.assertIn("{}:1: should be 80 hashes (http://nightly.buildroot.org/#writing-rules-mk)".format(abs_file), w) + + # br2-external with ignore list + topdir_path = infra.filepath("tests/utils/br2-external") + topdir_file = os.path.join(topdir_path, "package/external/external.mk") + subdir_path = infra.filepath("tests/utils/br2-external/package") + subdir_file = os.path.join(subdir_path, "external/external.mk") + + w, m = call_script(["check-package", "--ignore-list=./.checkpackageignore", "-b", topdir_file], + self.WITH_UTILS_IN_PATH, topdir_path) + self.assert_file_was_processed(m) + self.assert_no_warnings_generated_for_file(m) + + w, m = call_script(["check-package", "--ignore-list=./.checkpackageignore", "-b", subdir_file], + self.WITH_UTILS_IN_PATH, subdir_path) + self.assert_file_was_processed(m) + self.assert_no_warnings_generated_for_file(m) + + w, m = call_script(["check-package", "--ignore-list=./.checkpackageignore_outdated", "-b", subdir_file], + self.WITH_UTILS_IN_PATH, subdir_path) + self.assert_file_was_processed(m) + self.assert_warnings_generated_for_file(m) + self.assertIn("{}:0: Indent was expected to fail, did you fixed the file and forgot to update .checkpackageignore?" + .format(subdir_file), w) + self.assertIn("{}:0: NewlineAtEof was expected to fail, did you fixed the file and forgot to update .checkpackageignore?" + .format(subdir_file), w) From patchwork Sun Jul 24 05:49:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660033 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=buildroot.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC3j3Lx6z9sFk for ; Sun, 24 Jul 2022 15:51:45 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 725CF41729; Sun, 24 Jul 2022 05:51:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 725CF41729 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SI8gliYxTsNQ; Sun, 24 Jul 2022 05:51:41 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id 3034A41716; Sun, 24 Jul 2022 05:51:40 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 3034A41716 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id B80D41BF59B for ; Sun, 24 Jul 2022 05:50:34 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 9FBB141716 for ; Sun, 24 Jul 2022 05:50:34 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 9FBB141716 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t1sqT4_cYVbx for ; Sun, 24 Jul 2022 05:50:33 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org B44F2416ED Received: from mail-oa1-x2e.google.com (mail-oa1-x2e.google.com [IPv6:2001:4860:4864:20::2e]) by smtp4.osuosl.org (Postfix) with ESMTPS id B44F2416ED for ; Sun, 24 Jul 2022 05:50:33 +0000 (UTC) Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-10d8880d055so11045643fac.8 for ; Sat, 23 Jul 2022 22:50:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=bW62hBhgNX62wudtPg4yAQNmIt/H17UEqV4RnQq3Y8Q=; b=ckWyJrLwDJjw3NTHHFE/zXMNM6Kv9VhFVX5DHuT/2JuxaOb5pESx62HQ5FvnxgfmfX fbYAriIOuN6wsMj4QRJHyPX22nzEhJV+dlRjIhPj4TrAQiZQ724lmZrwyJdjJywlW6hU rfcextlFvRlZZUTC/XhrTySV508Unn6kHT6jEplc2IzlNp2rVUAQUQ7X0NtCeu3Nxg1v TjRHOx1lKwSyuE1tYrAm2vQqC/gm7IA517HBNXoLXUIgRjcEIl2agWRGymsWbqgZ60zg vz7mc3wsK9FxMrDSLL17CUO5IyCFWS6C0PgkCAmzaHzUDPPoklTnmJ2pL2twH9Sb50fF Du0A== X-Gm-Message-State: AJIora/DAFGg0hIcgG4C/wJyuLQHBj71nemGHkarrvXWzIiAUpAPAHwJ D5FVu1m14D2bo5Bl3ETg/wVNkj/F8j8= X-Google-Smtp-Source: AGRyM1t9QBv7wT9RqUXBTAMX+8o4NSOVFsDf+aVtjSZwBgly4k5J4KvglrLz+oGSmEsJpiMXdeo9AQ== X-Received: by 2002:a05:6870:1604:b0:10b:77a5:d9af with SMTP id b4-20020a056870160400b0010b77a5d9afmr3571288oae.207.1658641832778; Sat, 23 Jul 2022 22:50:32 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:31 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:01 -0300 Message-Id: <20220724054912.2354219-6-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=bW62hBhgNX62wudtPg4yAQNmIt/H17UEqV4RnQq3Y8Q=; b=KuX74DMiypi7afhXlwoFbaUlXcA4APXTYlO5JA7hLDdQQAGx55oE78VXOcUX0fp2Fr vn12rHmqCndLtXd4fsFtsQm69uvWBlzU1huZGur2bNDXQwQixb+6VSwhfTybIZaIS+dR nnozgJHLSPAt8aEd7hWTvt+ekYYPNHQHw7mxVEQd0fX/ANOpkOibAoGzydhdQFg+3K1O r7a5vSSo3eoUQm88YNAf280M7Yhz281CUV9eoNg7x/QgV+IV5Y2+kHUdWxKPZ6PrKL/K SnXWZDDuwlIx1BtaE51sfBdi6GdjlTqmacZyByBDa/q+XJhg+91SSnB1gvumGzyFPRdh //qg== X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=KuX74DMi Subject: [Buildroot] [PATCH 05/16] utils/check-package: add --failed-only X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Add a debug/test purpose option that generates output in the format: [ ...] This is the very same format used by check-package ignore file. So one can update the ignore file using: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only \ `git ls-tree -r --name-only HEAD` > .checkpackageignore Signed-off-by: Ricardo Martincoski --- utils/check-package | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/utils/check-package b/utils/check-package index 00be29d02a..1508e39c37 100755 --- a/utils/check-package +++ b/utils/check-package @@ -72,11 +72,17 @@ def parse_args(): help="do not run the specified functions (debug)") parser.add_argument("--dry-run", action="store_true", help="print the " "functions that would be called for each file (debug)") + parser.add_argument("--failed-only", action="store_true", help="print only" + " the name of the functions that failed (debug)") flags = parser.parse_args() flags.ignore_list = get_ignored_parsers_per_file(flags.intree_only, flags.ignore_filename) + if flags.failed_only: + flags.dry_run = False + flags.verbose = -1 + return flags @@ -230,6 +236,11 @@ def check_file_using_lib(fname): .format(fname, should_fail, IGNORE_FILENAME)) nwarnings += 1 + if flags.failed_only: + if len(failed) > 0: + f = " ".join(sorted(failed)) + print("{} {}".format(fname, f)) + return nwarnings, nlines From patchwork Sun Jul 24 05:49:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660034 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=buildroot.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC401xbqz9sFk for ; Sun, 24 Jul 2022 15:52:00 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 743D540B36; Sun, 24 Jul 2022 05:51:58 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 743D540B36 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3slKP9_nG9JZ; Sun, 24 Jul 2022 05:51:55 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 65E2A400F1; Sun, 24 Jul 2022 05:51:54 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 65E2A400F1 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 572721BF59B for ; Sun, 24 Jul 2022 05:50:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 3175F840B2 for ; Sun, 24 Jul 2022 05:50:40 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 3175F840B2 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Uu8oYsnDZ0Ud for ; Sun, 24 Jul 2022 05:50:37 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 2BA3D83385 Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) by smtp1.osuosl.org (Postfix) with ESMTPS id 2BA3D83385 for ; Sun, 24 Jul 2022 05:50:37 +0000 (UTC) Received: by mail-oi1-x22a.google.com with SMTP id s204so9927178oif.5 for ; Sat, 23 Jul 2022 22:50:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=ZdoM8j+xQhpxG6wDGr1N4nzj3k8OVn1MX8xx6td4tGg=; b=d89kbQ+htstnmJ7G6pM0/Y2BBBXJ0sbe0gPO6E8RNhuIKU+T/bNpqNa+8reHIQDOeE jmVM98VExAZzTt7CVouqifQOxO1oAKwADtWP3a1SQWRBtAjhnJNvrPnsZ/W+X5qkekSO uGMTQNgtNdikCeurow2SIx5aFClt6PJ5Py3HHkKR38N7aK7SS4A/HYGgmafe8Zocras+ 2h0sohQk/xJ/koXTJGlTf6QlUFeQG0u6v9uh/wbASHhyjv0AK320xiEddhb2Cdt0TwuZ ak2shyx8NpRxFkyIh/B7jJ7l98mwOOb11h9Ve3hlh3OCvJZAHXK2CaRLntukdbA1qQkT UYFg== X-Gm-Message-State: AJIora8DFmHAzWXbII5kjfwLYx7Moh8+g3rDymiKW8apIhF9JAp1aVBr N7ABlKnHfrx5QPXqRXdOi+OtLMe6tf0= X-Google-Smtp-Source: AGRyM1vwldwBH2RkW4F7p+mokH+iHZcMG5dbWJv1u+ljqVdzZoWPeZkcnAc5iuyyewR8kfpSVpFmAw== X-Received: by 2002:aca:1c10:0:b0:33a:c08d:b879 with SMTP id c16-20020aca1c10000000b0033ac08db879mr3607881oic.60.1658641835986; Sat, 23 Jul 2022 22:50:35 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:34 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:02 -0300 Message-Id: <20220724054912.2354219-7-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=ZdoM8j+xQhpxG6wDGr1N4nzj3k8OVn1MX8xx6td4tGg=; b=epD+RECf63Z0pn4rxbpUC09cwjNkCamhEXxpz1ZTRyJ1sXQ04/tvERJwpgBiOdEdvf Tp4BLCpQaBL6X8QL3tfM5uDFjDeT/e7GWOMe2YLwviI89M0FsX3DYEmynt2+g1xEr3UF 3IQBzsZc7+YDb+82w9dUfaTVk+iK/RsMkhgkmPfjY1KkQ5VaEChA7GxKR+9KS9Nk+iQc mZsLWD9YyX+ZAAx0jCqEk5B4GCitZ/+DJi8NXXbrG8h2qwJG4v/ibkGzc4e43Qg+jhBQ /J5e7nJbg9riqNP2EYpF/HA9/v2wwQFeWPtS8SoF3g8C1mLhPV35OJvaWDfdT1UT+YXU fsnA== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=epD+RECf Subject: [Buildroot] [PATCH 06/16] Makefile: make check-package assume a git tree X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" ... just like check-flake8 already does. When a new check_function is added to check-package, often there are files in the tree that would generate warnings. An example is the Sob check_function for patch files: | $ ./utils/check-package --i Sob $(git ls-files) >/dev/null | 369301 lines processed | 46 warnings generated Currently these warnings are listed when calling check-package directly, and also at the output of pkg-stats, but the check_function does not run on 'make check-package' (that is used to catch regressions on GitLab CI 'check-package' job) until all warnings in the tree are fixed. This (theoretically) allows new .patch files be added without SoB, without the GitLab CI catching it. Since now check-package has an ignore file to list all warnings in the tree, that will eventually be fixed, there is no need to filter the files passed to check-package. So test all files in the tree when 'make check-package' is called. It brings following advantages; - any new check_function added to check-package takes place immediately for new files; - adding new check_functions is less traumatic to the developer doing this, since he/she does not need anymore to fix all warnings in the tree before the new check_function takes effect; - prevent regressions, e.g. ANY new .hash file must have 2 spaces; - as a side-effect, print a single statistics line as output of 'make ckeck-package'. But just enabling the check would generate many warnings when 'make check-package' is called, so update the ignore file by using: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only \ `git ls-tree -r --name-only HEAD` > .checkpackageignore Notice: in order to ensure reproducible results, one should run 'make check-package' inside the docker image, otherwise a variation in shellcheck version (installed in the host) can produce different results. Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: please re-generate the list of ignored warnings while applying: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` > .checkpackageignore --- .checkpackageignore | 922 ++++++++++++++++++++++++++++++++++++++++++++ Makefile | 3 +- 2 files changed, 923 insertions(+), 2 deletions(-) diff --git a/.checkpackageignore b/.checkpackageignore index e69de29bb2..98099508ba 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -0,0 +1,922 @@ +boot/binaries-marvell/binaries-marvell.hash HashSpaces +boot/s500-bootloader/s500-bootloader.hash HashSpaces +boot/shim/shim.hash HashSpaces +package/abootimg/abootimg.hash HashSpaces +package/acpitool/acpitool.hash HashSpaces +package/aespipe/aespipe.hash HashSpaces +package/alsamixergui/0001-misc-fixes.patch Sob +package/alsamixergui/alsamixergui.hash HashSpaces +package/alure/alure.hash HashSpaces +package/am33x-cm3/S93-am335x-pm-firmware-load Variables +package/android-tools/0008-Include-sysmacros.h-to-compile-with-glibc-2.28.patch Sob +package/android-tools/android-tools.hash HashSpaces +package/angular-websocket/angular-websocket.hash HashSpaces +package/aoetools/aoetools.hash HashSpaces +package/apache/S50apache Indent Shellcheck Variables +package/apr-util/apr-util.hash HashSpaces +package/apr/apr.hash HashSpaces +package/argparse/argparse.hash HashSpaces +package/argus/argus.hash HashSpaces +package/arm-gnu-toolchain/arm-gnu-toolchain.hash HashSpaces +package/arp-scan/arp-scan.hash HashSpaces +package/arptables/arptables.hash HashSpaces +package/ascii-invaders/ascii-invaders.hash HashSpaces +package/asterisk/asterisk.hash HashSpaces +package/at/S99at Indent Variables +package/atest/atest.hash HashSpaces +package/atf/atf.hash HashSpaces +package/aubio/aubio.hash HashSpaces +package/audit/S02auditd Shellcheck Variables +package/autossh/autossh.hash HashSpaces +package/avahi/S05avahi-setup.sh Indent Variables +package/avahi/S50avahi-daemon Indent Variables +package/avahi/avahi.hash HashSpaces +package/b43-firmware/b43-firmware.hash HashSpaces +package/b43-fwcutter/b43-fwcutter.hash HashSpaces +package/babeld/S50babeld Indent Shellcheck Variables +package/bc/bc.hash HashSpaces +package/bcache-tools/bcache-tools.hash HashSpaces +package/bcg729/bcg729.hash HashSpaces +package/bdwgc/bdwgc.hash HashSpaces +package/berkeleydb/berkeleydb.hash HashSpaces +package/bind/S81named Indent Shellcheck Variables +package/biosdevname/biosdevname.hash HashSpaces +package/bitstream/bitstream.hash HashSpaces +package/bluez5_utils/S40bluetooth NotExecutable Variables +package/boinc/S99boinc-client Indent Shellcheck Variables +package/bonnie/bonnie.hash HashSpaces +package/brickd/S70brickd Indent Shellcheck Variables +package/brltty/S10brltty Indent Shellcheck Variables +package/bsdiff/bsdiff.hash HashSpaces +package/busybox/S02sysctl Variables +package/busybox/S10mdev ConsecutiveEmptyLines Indent Shellcheck +package/busybox/S15watchdog Indent Variables +package/busybox/S50telnet Indent Shellcheck Variables +package/bzip2/bzip2.hash HashSpaces +package/c-icap/S96cicap Indent Shellcheck Variables +package/cache-calibrator/cache-calibrator.hash HashSpaces +package/cage/cage.hash HashSpaces +package/cairo/cairo.hash HashSpaces +package/caps/caps.hash HashSpaces +package/cbootimage/cbootimage.hash HashSpaces +package/cctz/cctz.hash HashSpaces +package/cfm/S65cfm Indent Variables +package/cgic/cgic.hash HashSpaces +package/cgilua/cgilua.hash HashSpaces +package/cgroupfs-mount/S30cgroupfs Indent Shellcheck Variables +package/chartjs/chartjs.hash HashSpaces +package/chipmunk/chipmunk.hash HashSpaces +package/chrony/S49chrony Indent Shellcheck Variables +package/cmocka/cmocka.hash HashSpaces +package/collectd/collectd.hash HashSpaces +package/comix-cursors/comix-cursors.hash HashSpaces +package/connman-gtk/connman-gtk.hash HashSpaces +package/connman/S45connman Variables +package/conntrack-tools/conntrack-tools.hash HashSpaces +package/copas/copas.hash HashSpaces +package/coxpcall/coxpcall.hash HashSpaces +package/cpio/cpio.hash HashSpaces +package/cppdb/cppdb.hash HashSpaces +package/cppunit/cppunit.hash HashSpaces +package/cpuburn-arm/cpuburn-arm.hash HashSpaces +package/cpuload/cpuload.hash HashSpaces +package/cracklib/cracklib.hash HashSpaces +package/ctorrent/ctorrent.hash HashSpaces +package/cunit/cunit.hash HashSpaces +package/curlftpfs/0001-fix-CURLOPT_INFILESIZE.patch Sob +package/curlftpfs/0002-free_ftpfs_file-memleak-fix.patch Sob +package/curlftpfs/0003-nocache-memleak-fix.patch Sob +package/curlpp/curlpp.hash HashSpaces +package/cwiid/cwiid.hash HashSpaces +package/cxxtest/cxxtest.hash HashSpaces +package/czmq/czmq.hash HashSpaces +package/dacapo/dacapo.hash HashSpaces +package/dado/dado.hash HashSpaces +package/dante/S50dante Indent Shellcheck Variables +package/darkhttpd/S50darkhttpd Indent Shellcheck Variables +package/datatables-buttons/datatables-buttons.hash HashSpaces +package/datatables-fixedcolumns/datatables-fixedcolumns.hash HashSpaces +package/datatables-responsive/datatables-responsive.hash HashSpaces +package/datatables/datatables.hash HashSpaces +package/dbus/S30dbus Indent Shellcheck TrailingSpace Variables +package/dc3dd/dc3dd.hash HashSpaces +package/dcron/S90dcron Variables +package/debianutils/debianutils.hash HashSpaces +package/dhcp/S80dhcp-relay Shellcheck Variables +package/dhcp/S80dhcp-server Shellcheck Variables +package/dhcpcd/S41dhcpcd Indent Variables +package/dhcpdump/dhcpdump.hash HashSpaces +package/dhrystone/0001-cmdline-nruns.patch Sob +package/dhrystone/0002-HZ.patch Sob +package/dhrystone/0003-exit.patch Sob +package/dhrystone/0004-headers.patch Sob +package/dhrystone/0005-prototypes.patch Sob +package/dhrystone/dhrystone.hash HashSpaces +package/dieharder/dieharder.hash HashSpaces +package/directfb-examples/0001-remove-bzero.patch Sob +package/dmraid/S20dmraid Variables +package/dmraid/dmraid.hash HashSpaces +package/dnsmasq/S80dnsmasq Shellcheck Variables +package/docker-compose/docker-compose.hash HashSpaces +package/docker-engine/S60dockerd Indent Shellcheck Variables +package/domoticz/S99domoticz Shellcheck +package/doom-wad/doom-wad.hash HashSpaces +package/dropbear/S50dropbear Indent Shellcheck Variables +package/dt/dt.hash HashSpaces +package/dump1090/dump1090.hash HashSpaces +package/dvblast/dvblast.hash HashSpaces +package/dvdauthor/dvdauthor.hash HashSpaces +package/e2tools/e2tools.hash HashSpaces +package/earlyoom/S02earlyoom Indent Shellcheck +package/ecryptfs-utils/ecryptfs-utils.hash HashSpaces +package/efivar/efivar.hash HashSpaces +package/ejabberd/S50ejabberd Indent Shellcheck Variables +package/elftosb/elftosb.hash HashSpaces +package/elixir/elixir.hash HashSpaces +package/emlog/emlog.hash HashSpaces +package/enscript/enscript.hash HashSpaces +package/erlang-base64url/erlang-base64url.hash HashSpaces +package/erlang-goldrush/erlang-goldrush.hash HashSpaces +package/erlang-rebar/erlang-rebar.hash HashSpaces +package/eudev/S10udev ConsecutiveEmptyLines Indent Shellcheck Variables +package/exfat-utils/exfat-utils.hash HashSpaces +package/exfat/exfat.hash HashSpaces +package/exim/S86exim Indent Variables +package/f2fs-tools/f2fs-tools.hash HashSpaces +package/fail2ban/S60fail2ban Shellcheck Variables +package/fan-ctrl/fan-ctrl.hash HashSpaces +package/fbdump/fbdump.hash HashSpaces +package/fbterm/fbterm.hash HashSpaces +package/fbv/0001-cross.patch Sob +package/fbv/0002-fix-24bpp-support-on-big-endian.patch Sob +package/fbv/0005-include.patch Sob +package/feh/feh.hash HashSpaces +package/fftw/fftw-double/fftw-double.hash HashSpaces +package/fftw/fftw-long-double/fftw-long-double.hash HashSpaces +package/fftw/fftw-quad/fftw-quad.hash HashSpaces +package/fftw/fftw-single/fftw-single.hash HashSpaces +package/fftw/fftw.hash HashSpaces +package/flannel/flannel.hash HashSpaces +package/flex/flex.hash HashSpaces +package/flickcurl/flickcurl.hash HashSpaces +package/flot/flot.hash HashSpaces +package/fluid-soundfont/fluid-soundfont.hash HashSpaces +package/font-awesome/font-awesome.hash HashSpaces +package/fontconfig/fontconfig.hash HashSpaces +package/freescale-imx/imx-m4fwloader/imx-m4fwloader.hash HashSpaces +package/freescale-imx/imx-uuc/S80imx-uuc Indent Shellcheck Variables +package/freescale-imx/imx-uuc/imx-uuc.hash HashSpaces +package/frr/S50frr Shellcheck +package/fstrcmp/fstrcmp.hash HashSpaces +package/ftop/ftop.hash HashSpaces +package/gamin/0002-no-const-return.patch Sob +package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch Sob +package/gconf/gconf.hash HashSpaces +package/gengetopt/gengetopt.hash HashSpaces +package/genpart/genpart.hash HashSpaces +package/genromfs/0001-build-system.patch Sob +package/geoip/geoip.hash HashSpaces +package/gerbera/S99gerbera Indent +package/gflags/gflags.hash HashSpaces +package/ghostscript-fonts/ghostscript-fonts.hash HashSpaces +package/giflib/giflib.hash HashSpaces +package/gli/gli.hash HashSpaces +package/glm/glm.hash HashSpaces +package/glorytun/glorytun.hash HashSpaces +package/gnuradio/gnuradio.hash HashSpaces +package/go/0002-cmd-dist-use-gohostarch-for-ssa-rewrite-check.patch Sob +package/gob2/gob2.hash HashSpaces +package/googlefontdirectory/googlefontdirectory.hash HashSpaces +package/gperf/gperf.hash HashSpaces +package/gpsd/S50gpsd Indent Shellcheck Variables +package/gstreamer1/gst1-imx/gst1-imx.hash HashSpaces +package/gtkmm3/gtkmm3.hash HashSpaces +package/gtksourceview/gtksourceview.hash HashSpaces +package/hans/hans.hash HashSpaces +package/haveged/S21haveged Shellcheck Variables +package/heimdal/heimdal.hash HashSpaces +package/heirloom-mailx/heirloom-mailx.hash HashSpaces +package/htpdate/S43htpdate Shellcheck +package/httping/httping.hash HashSpaces +package/i2pd/S99i2pd Indent Shellcheck Variables +package/ibrcommon/ibrcommon.hash HashSpaces +package/ifenslave/ifenslave.hash HashSpaces +package/ifmetric/ifmetric.hash HashSpaces +package/ifplugd/0001-cross.patch Sob +package/ifplugd/0002-fix-headers.patch Sob +package/ifupdown-scripts/S40network EmptyLastLine Indent Shellcheck Variables +package/igd2-for-linux/S99upnpd Indent Shellcheck Variables +package/igh-ethercat/igh-ethercat.hash HashSpaces +package/ijs/ijs.hash HashSpaces +package/ima-evm-utils/ima-evm-utils.hash HashSpaces +package/inadyn/S70inadyn Indent NotExecutable +package/input-event-daemon/S99input-event-daemon ConsecutiveEmptyLines Indent Variables +package/intltool/intltool.hash HashSpaces +package/iodine/iodine.hash HashSpaces +package/iptables/S35iptables Shellcheck +package/iputils/iputils.hash HashSpaces +package/irda-utils/0001-daemon.patch Sob +package/irda-utils/0002-nommu.patch Sob +package/irda-utils/0003-subdir.patch Sob +package/irqbalance/S13irqbalance Indent Shellcheck Variables +package/irrlicht/irrlicht.hash HashSpaces +package/iucode-tool/S00iucode-tool Variables +package/iucode-tool/iucode-tool.hash HashSpaces +package/iwd/S40iwd Shellcheck Variables +package/jailhouse/jailhouse.hash HashSpaces +package/joe/joe.hash HashSpaces +package/jquery/jquery.hash HashSpaces +package/jsmin/jsmin.hash HashSpaces +package/jsmn/jsmn.hash HashSpaces +package/jszip/jszip.hash HashSpaces +package/keyutils/0002-cifs.patch Sob +package/kodi/S50kodi Shellcheck Variables +package/kyua/kyua.hash HashSpaces +package/lbreakout2/lbreakout2.hash HashSpaces +package/lensfun/lensfun.hash HashSpaces +package/libao/libao.hash HashSpaces +package/libart/0001-art-config-cross.patch Sob +package/libart/libart.hash HashSpaces +package/libasplib/libasplib.hash HashSpaces +package/libatasmart/libatasmart.hash HashSpaces +package/libavl/libavl.hash HashSpaces +package/libbacktrace/libbacktrace.hash HashSpaces +package/libbson/libbson.hash HashSpaces +package/libcddb/libcddb.hash HashSpaces +package/libcdio-paranoia/libcdio-paranoia.hash HashSpaces +package/libcdio/libcdio.hash HashSpaces +package/libcgi/libcgi.hash HashSpaces +package/libcgicc/0001-disable-documentation-option.patch Sob +package/libcgicc/libcgicc.hash HashSpaces +package/libcorrect/libcorrect.hash HashSpaces +package/libcsv/libcsv.hash HashSpaces +package/libcue/libcue.hash HashSpaces +package/libcuefile/libcuefile.hash HashSpaces +package/libcutl/libcutl.hash HashSpaces +package/libdaemon/libdaemon.hash HashSpaces +package/libdcadec/libdcadec.hash HashSpaces +package/libdri2/libdri2.hash HashSpaces +package/libdvbcsa/libdvbcsa.hash HashSpaces +package/libdvbpsi/libdvbpsi.hash HashSpaces +package/libeastl/libeastl.hash HashSpaces +package/libee/libee.hash HashSpaces +package/libenca/libenca.hash HashSpaces +package/libestr/libestr.hash HashSpaces +package/libfcgi/0002-disable-examples.patch Sob +package/libfcgi/libfcgi.hash HashSpaces +package/libfreefare/libfreefare.hash HashSpaces +package/libfreeimage/libfreeimage.hash HashSpaces +package/libftdi/0001-pkgconfig_libusb.patch Sob +package/libftdi/0002-libftdi.pc-requires-libusb-fix-static-build.patch Sob +package/libfuse/libfuse.hash HashSpaces +package/libgdiplus/libgdiplus.hash HashSpaces +package/libglade/libglade.hash HashSpaces +package/libical/libical.hash HashSpaces +package/libiconv/libiconv.hash HashSpaces +package/libiio/S99iiod Shellcheck Variables +package/libiio/libiio.hash HashSpaces +package/libimxvpuapi/libimxvpuapi.hash HashSpaces +package/libiscsi/libiscsi.hash HashSpaces +package/libkcapi/libkcapi.hash HashSpaces +package/libllcp/libllcp.hash HashSpaces +package/liblog4c-localtime/liblog4c-localtime.hash HashSpaces +package/liblogging/liblogging.hash HashSpaces +package/libloki/libloki.hash HashSpaces +package/libmad/0001-mips-h-constraint-removal.patch Sob +package/libmbus/libmbus.hash HashSpaces +package/libmemcached/libmemcached.hash HashSpaces +package/libmng/libmng.hash HashSpaces +package/libmpd/libmpd.hash HashSpaces +package/libmspack/libmspack.hash HashSpaces +package/libnatpmp/libnatpmp.hash HashSpaces +package/libnet/libnet.hash HashSpaces +package/libnetfilter_acct/libnetfilter_acct.hash HashSpaces +package/libnfs/libnfs.hash HashSpaces +package/libnpth/libnpth.hash HashSpaces +package/libodb-mysql/libodb-mysql.hash HashSpaces +package/libodb-pgsql/libodb-pgsql.hash HashSpaces +package/libodb/libodb.hash HashSpaces +package/libopenaptx/libopenaptx.hash HashSpaces +package/liboping/liboping.hash HashSpaces +package/libpam-radius-auth/libpam-radius-auth.hash HashSpaces +package/libpciaccess/libpciaccess.hash HashSpaces +package/libpng/libpng.hash HashSpaces +package/libpqxx/libpqxx.hash HashSpaces +package/libpthread-stubs/libpthread-stubs.hash HashSpaces +package/libraw1394/libraw1394.hash HashSpaces +package/libreplaygain/libreplaygain.hash HashSpaces +package/libroxml/libroxml.hash HashSpaces +package/libserial/libserial.hash HashSpaces +package/libsha1/libsha1.hash HashSpaces +package/libsidplay2/libsidplay2.hash HashSpaces +package/libsigrok/libsigrok.hash HashSpaces +package/libsigrokdecode/libsigrokdecode.hash HashSpaces +package/libsodium/libsodium.hash HashSpaces +package/libsquish/libsquish.hash HashSpaces +package/libsvg-cairo/libsvg-cairo.hash HashSpaces +package/libsvg/libsvg.hash HashSpaces +package/libtelnet/libtelnet.hash HashSpaces +package/libtheora/libtheora.hash HashSpaces +package/libtommath/libtommath.hash HashSpaces +package/libtool/libtool.hash HashSpaces +package/libtorrent/libtorrent.hash HashSpaces +package/libucl/libucl.hash HashSpaces +package/libuecc/libuecc.hash HashSpaces +package/libwebsock/libwebsock.hash HashSpaces +package/libxml-parser-perl/libxml-parser-perl.hash HashSpaces +package/lightning/lightning.hash HashSpaces +package/lighttpd/S50lighttpd EmptyLastLine Indent Shellcheck Variables +package/linux-tools/S10hyperv Indent Variables +package/linux-zigbee/linux-zigbee.hash HashSpaces +package/linuxptp/S65ptp4l Indent Shellcheck +package/linuxptp/S66phc2sys Indent Shellcheck +package/lirc-tools/S25lircd Indent Variables +package/lirc-tools/lirc-tools.hash HashSpaces +package/lite/0001-dfbspy-stat.patch Sob +package/lite/0002-no-tests.patch Sob +package/lite/0003-pkg-config.patch Sob +package/ljlinenoise/ljlinenoise.hash HashSpaces +package/ljsyscall/ljsyscall.hash HashSpaces +package/lksctp-tools/lksctp-tools.hash HashSpaces +package/lldpd/S60lldpd Indent Shellcheck Variables +package/lockfile-progs/0001-sus3v-legacy.patch Sob +package/log4cpp/log4cpp.hash HashSpaces +package/logsurfer/logsurfer.hash HashSpaces +package/lpeg/lpeg.hash HashSpaces +package/lpty/lpty.hash HashSpaces +package/lrandom/lrandom.hash HashSpaces +package/lsqlite3/lsqlite3.hash HashSpaces +package/lttng-babeltrace/lttng-babeltrace.hash HashSpaces +package/lua-binaryheap/lua-binaryheap.hash HashSpaces +package/lua-bit32/lua-bit32.hash HashSpaces +package/lua-cjson/lua-cjson.hash HashSpaces +package/lua-coat/lua-coat.hash HashSpaces +package/lua-coatpersistent/lua-coatpersistent.hash HashSpaces +package/lua-codegen/lua-codegen.hash HashSpaces +package/lua-compat53/lua-compat53.hash HashSpaces +package/lua-csnappy/lua-csnappy.hash HashSpaces +package/lua-datafile/lua-datafile.hash HashSpaces +package/lua-fifo/lua-fifo.hash HashSpaces +package/lua-flu/lua-flu.hash HashSpaces +package/lua-http/lua-http.hash HashSpaces +package/lua-iconv/lua-iconv.hash HashSpaces +package/lua-inotify/lua-inotify.hash HashSpaces +package/lua-livr-extra/lua-livr-extra.hash HashSpaces +package/lua-livr/lua-livr.hash HashSpaces +package/lua-lpeg-patterns/lua-lpeg-patterns.hash HashSpaces +package/lua-lunitx/lua-lunitx.hash HashSpaces +package/lua-lunix/lua-lunix.hash HashSpaces +package/lua-markdown/lua-markdown.hash HashSpaces +package/lua-messagepack/lua-messagepack.hash HashSpaces +package/lua-periphery/lua-periphery.hash HashSpaces +package/lua-resty-http/lua-resty-http.hash HashSpaces +package/lua-rotas/lua-rotas.hash HashSpaces +package/lua-sailor/lua-sailor.hash HashSpaces +package/lua-silva/lua-silva.hash HashSpaces +package/lua-std-debug/lua-std-debug.hash HashSpaces +package/lua-std-normalize/lua-std-normalize.hash HashSpaces +package/lua-stdlib/lua-stdlib.hash HashSpaces +package/lua-testmore/lua-testmore.hash HashSpaces +package/lua-utf8/lua-utf8.hash HashSpaces +package/lua-valua/lua-valua.hash HashSpaces +package/lua-zlib/lua-zlib.hash HashSpaces +package/luadbi-sqlite3/luadbi-sqlite3.hash HashSpaces +package/luadbi/luadbi.hash HashSpaces +package/luaexpatutils/luaexpatutils.hash HashSpaces +package/luafilesystem/luafilesystem.hash HashSpaces +package/luajson/luajson.hash HashSpaces +package/lualdap/lualdap.hash HashSpaces +package/lualogging/lualogging.hash HashSpaces +package/luaossl/luaossl.hash HashSpaces +package/luasql-sqlite3/luasql-sqlite3.hash HashSpaces +package/luksmeta/luksmeta.hash HashSpaces +package/lzma/lzma.hash HashSpaces +package/lzo/lzo.hash HashSpaces +package/lzop/lzop.hash HashSpaces +package/madplay/0001-switch-to-new-alsa-api.patch Sob +package/make/make.hash HashSpaces +package/mali-driver/mali-driver.hash HashSpaces +package/mariadb/S97mysqld Indent Shellcheck Variables +package/matchbox-common/matchbox-common.hash HashSpaces +package/matchbox-desktop/matchbox-desktop.hash HashSpaces +package/matchbox-keyboard/matchbox-keyboard.hash HashSpaces +package/matchbox-panel/matchbox-panel.hash HashSpaces +package/matchbox-startup-monitor/matchbox-startup-monitor.hash HashSpaces +package/memstat/memstat.hash HashSpaces +package/mender-connect/S43mender-connect Shellcheck +package/mender-grubenv/mender-grubenv.hash HashSpaces +package/menu-cache/menu-cache.hash HashSpaces +package/mesa3d-demos/mesa3d-demos.hash HashSpaces +package/mg/mg.hash HashSpaces +package/mii-diag/0001-strchr.patch Sob +package/mini-snmpd/mini-snmpd.hash HashSpaces +package/minidlna/S60minidlnad Indent Shellcheck Variables +package/minimodem/minimodem.hash HashSpaces +package/minissdpd/S50minissdpd Indent Shellcheck Variables +package/mjpg-streamer/mjpg-streamer.hash HashSpaces +package/mobile-broadband-provider-info/mobile-broadband-provider-info.hash HashSpaces +package/modem-manager/S44modem-manager Shellcheck Variables +package/monolite/monolite.hash HashSpaces +package/mosh/mosh.hash HashSpaces +package/mosquitto/S50mosquitto Indent Shellcheck Variables +package/most/most.hash HashSpaces +package/motion/S99motion Indent Shellcheck Variables +package/mpd/S95mpd Variables +package/mrouted/S41mrouted NotExecutable +package/mrp/S65mrp Indent Variables +package/multicat/multicat.hash HashSpaces +package/multipath-tools/S60multipathd Shellcheck +package/mupdf/mupdf.hash HashSpaces +package/murata-cyw-fw/murata-cyw-fw.hash HashSpaces +package/musepack/musepack.hash HashSpaces +package/musl-compat-headers/musl-compat-headers.hash HashSpaces +package/musl-fts/musl-fts.hash HashSpaces +package/nanomsg/nanomsg.hash HashSpaces +package/neard/S53neard Indent Shellcheck Variables +package/neardal/neardal.hash HashSpaces +package/netatalk/S50netatalk EmptyLastLine Indent Variables +package/netcalc/netcalc.hash HashSpaces +package/netcat/0001-signed-bit-counting.patch Sob +package/netifrc/netifrc.hash HashSpaces +package/netopeer2/S52netopeer2 Shellcheck Variables +package/netplug/0001-makefile-flags.patch Sob +package/netplug/S29netplug Indent Shellcheck Variables +package/netsnmp/S59snmpd Indent Shellcheck Variables +package/network-manager/S45network-manager ConsecutiveEmptyLines EmptyLastLine Shellcheck Variables +package/newt/newt.hash HashSpaces +package/nfacct/nfacct.hash HashSpaces +package/nfs-utils/S60nfs ConsecutiveEmptyLines Shellcheck Variables +package/nginx-dav-ext/nginx-dav-ext.hash HashSpaces +package/nginx/S50nginx Indent Variables +package/nload/nload.hash HashSpaces +package/nodm/S90nodm Indent Shellcheck Variables +package/nss-myhostname/nss-myhostname.hash HashSpaces +package/nss-pam-ldapd/S45nslcd EmptyLastLine Indent Shellcheck Variables +package/nss-pam-ldapd/nss-pam-ldapd.hash HashSpaces +package/ntp/S49ntp.in Variables +package/nvidia-driver/nvidia-driver.hash HashSpaces +package/nvidia-modprobe/nvidia-modprobe.hash HashSpaces +package/obsidian-cursors/obsidian-cursors.hash HashSpaces +package/ocrad/ocrad.hash HashSpaces +package/odb/odb.hash HashSpaces +package/ofono/S46ofono Variables +package/olsr/S50olsr Indent Shellcheck Variables +package/olsr/olsr.hash HashSpaces +package/omxplayer/omxplayer.hash HashSpaces +package/opencore-amr/opencore-amr.hash HashSpaces +package/openmpi/openmpi.hash HashSpaces +package/openntpd/S49ntp Shellcheck Variables +package/openobex/openobex.hash HashSpaces +package/openpowerlink/openpowerlink.hash HashSpaces +package/openssh/S50sshd EmptyLastLine Indent Variables +package/opentyrian-data/opentyrian-data.hash HashSpaces +package/openvpn/S60openvpn Indent Shellcheck Variables +package/optee-client/S30optee Indent Shellcheck Variables +package/opus-tools/opus-tools.hash HashSpaces +package/opus/opus.hash HashSpaces +package/oracle-mysql/S97mysqld Shellcheck Variables +package/oracle-mysql/oracle-mysql.hash HashSpaces +package/orbit/orbit.hash HashSpaces +package/owfs/S55owserver Shellcheck Variables +package/owfs/S60owfs Shellcheck Variables +package/pamtester/pamtester.hash HashSpaces +package/patch/patch.hash HashSpaces +package/patchelf/patchelf.hash HashSpaces +package/perl-apache-logformat-compiler/perl-apache-logformat-compiler.hash HashSpaces +package/perl-appconfig/perl-appconfig.hash HashSpaces +package/perl-astro-suntime/perl-astro-suntime.hash HashSpaces +package/perl-class-inspector/perl-class-inspector.hash HashSpaces +package/perl-class-load/perl-class-load.hash HashSpaces +package/perl-class-method-modifiers/perl-class-method-modifiers.hash HashSpaces +package/perl-class-std-fast/perl-class-std-fast.hash HashSpaces +package/perl-class-std/perl-class-std.hash HashSpaces +package/perl-cookie-baker/perl-cookie-baker.hash HashSpaces +package/perl-crypt-blowfish/perl-crypt-blowfish.hash HashSpaces +package/perl-crypt-cbc/perl-crypt-cbc.hash HashSpaces +package/perl-crypt-openssl-aes/perl-crypt-openssl-aes.hash HashSpaces +package/perl-crypt-openssl-random/perl-crypt-openssl-random.hash HashSpaces +package/perl-datetime-tiny/perl-datetime-tiny.hash HashSpaces +package/perl-dbd-mysql/perl-dbd-mysql.hash HashSpaces +package/perl-dbi/perl-dbi.hash HashSpaces +package/perl-devel-globaldestruction/perl-devel-globaldestruction.hash HashSpaces +package/perl-devel-stacktrace-ashtml/perl-devel-stacktrace-ashtml.hash HashSpaces +package/perl-devel-stacktrace/perl-devel-stacktrace.hash HashSpaces +package/perl-device-serialport/perl-device-serialport.hash HashSpaces +package/perl-digest-sha1/perl-digest-sha1.hash HashSpaces +package/perl-dist-checkconflicts/perl-dist-checkconflicts.hash HashSpaces +package/perl-encode-detect/perl-encode-detect.hash HashSpaces +package/perl-encode-locale/perl-encode-locale.hash HashSpaces +package/perl-extutils-config/perl-extutils-config.hash HashSpaces +package/perl-extutils-helpers/perl-extutils-helpers.hash HashSpaces +package/perl-extutils-installpaths/perl-extutils-installpaths.hash HashSpaces +package/perl-file-sharedir-install/perl-file-sharedir-install.hash HashSpaces +package/perl-filesys-notify-simple/perl-filesys-notify-simple.hash HashSpaces +package/perl-gdgraph/perl-gdgraph.hash HashSpaces +package/perl-gdtextutil/perl-gdtextutil.hash HashSpaces +package/perl-hash-multivalue/perl-hash-multivalue.hash HashSpaces +package/perl-html-tagset/perl-html-tagset.hash HashSpaces +package/perl-http-date/perl-http-date.hash HashSpaces +package/perl-http-headers-fast/perl-http-headers-fast.hash HashSpaces +package/perl-http-multipartparser/perl-http-multipartparser.hash HashSpaces +package/perl-http-negotiate/perl-http-negotiate.hash HashSpaces +package/perl-i18n/perl-i18n.hash HashSpaces +package/perl-io-interface/perl-io-interface.hash HashSpaces +package/perl-io-socket-multicast/perl-io-socket-multicast.hash HashSpaces +package/perl-json-tiny/perl-json-tiny.hash HashSpaces +package/perl-locale-maketext-lexicon/perl-locale-maketext-lexicon.hash HashSpaces +package/perl-lwp-mediatypes/perl-lwp-mediatypes.hash HashSpaces +package/perl-mailtools/perl-mailtools.hash HashSpaces +package/perl-math-prime-util/perl-math-prime-util.hash HashSpaces +package/perl-mime-base64-urlsafe/perl-mime-base64-urlsafe.hash HashSpaces +package/perl-mime-tools/perl-mime-tools.hash HashSpaces +package/perl-module-build-tiny/perl-module-build-tiny.hash HashSpaces +package/perl-module-build/perl-module-build.hash HashSpaces +package/perl-module-implementation/perl-module-implementation.hash HashSpaces +package/perl-module-runtime/perl-module-runtime.hash HashSpaces +package/perl-mojolicious-plugin-cspheader/perl-mojolicious-plugin-cspheader.hash HashSpaces +package/perl-mojolicious-plugin-i18n/perl-mojolicious-plugin-i18n.hash HashSpaces +package/perl-mojolicious-plugin-securityheader/perl-mojolicious-plugin-securityheader.hash HashSpaces +package/perl-net-snmp/perl-net-snmp.hash HashSpaces +package/perl-net-ssleay/perl-net-ssleay.hash HashSpaces +package/perl-netaddr-ip/perl-netaddr-ip.hash HashSpaces +package/perl-number-bytes-human/perl-number-bytes-human.hash HashSpaces +package/perl-path-class/perl-path-class.hash HashSpaces +package/perl-stream-buffered/perl-stream-buffered.hash HashSpaces +package/perl-sub-exporter-progressive/perl-sub-exporter-progressive.hash HashSpaces +package/perl-sub-install/perl-sub-install.hash HashSpaces +package/perl-sub-quote/perl-sub-quote.hash HashSpaces +package/perl-sys-meminfo/perl-sys-meminfo.hash HashSpaces +package/perl-sys-mmap/perl-sys-mmap.hash HashSpaces +package/perl-time-parsedate/perl-time-parsedate.hash HashSpaces +package/perl-www-form-urlencoded/perl-www-form-urlencoded.hash HashSpaces +package/perl-www-robotrules/perl-www-robotrules.hash HashSpaces +package/perl-x10/perl-x10.hash HashSpaces +package/perl-xml-libxml/perl-xml-libxml.hash HashSpaces +package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash HashSpaces +package/perl-xml-sax-base/perl-xml-sax-base.hash HashSpaces +package/perl-xml-sax/perl-xml-sax.hash HashSpaces +package/php-pecl-dbus/php-pecl-dbus.hash HashSpaces +package/physfs/physfs.hash HashSpaces +package/picocom/picocom.hash HashSpaces +package/pigpio/S50pigpio Shellcheck Variables +package/pimd/pimd.hash HashSpaces +package/pixiewps/pixiewps.hash HashSpaces +package/policycoreutils/policycoreutils.hash HashSpaces +package/polkit/S50polkit NotExecutable Shellcheck Variables +package/popperjs/popperjs.hash HashSpaces +package/postgresql/S50postgresql Variables +package/pound/pound.hash HashSpaces +package/pptp-linux/pptp-linux.hash HashSpaces +package/procps-ng/S02sysctl Variables +package/proftpd/S50proftpd Indent Shellcheck Variables +package/prosody/S50prosody Indent Shellcheck Variables +package/pru-software-support/pru-software-support.hash HashSpaces +package/ptm2human/ptm2human.hash HashSpaces +package/ptpd/S65ptpd Indent Shellcheck Variables +package/ptpd2/S65ptpd2 Indent Shellcheck Variables +package/pulseaudio/S50pulseaudio ConsecutiveEmptyLines EmptyLastLine Indent Variables +package/pwgen/pwgen.hash HashSpaces +package/python-aiohttp-cors/python-aiohttp-cors.hash HashSpaces +package/python-aiohttp-debugtoolbar/python-aiohttp-debugtoolbar.hash HashSpaces +package/python-aiohttp-mako/python-aiohttp-mako.hash HashSpaces +package/python-aiohttp-security/python-aiohttp-security.hash HashSpaces +package/python-aiologstash/python-aiologstash.hash HashSpaces +package/python-aiomonitor/python-aiomonitor.hash HashSpaces +package/python-alsaaudio/python-alsaaudio.hash HashSpaces +package/python-argh/python-argh.hash HashSpaces +package/python-asgiref/python-asgiref.hash HashSpaces +package/python-bunch/python-bunch.hash HashSpaces +package/python-canopen/python-canopen.hash HashSpaces +package/python-cbor/python-cbor.hash HashSpaces +package/python-channels-redis/python-channels-redis.hash HashSpaces +package/python-channels/python-channels.hash HashSpaces +package/python-characteristic/python-characteristic.hash HashSpaces +package/python-cheetah/python-cheetah.hash HashSpaces +package/python-cheroot/python-cheroot.hash HashSpaces +package/python-cherrypy/python-cherrypy.hash HashSpaces +package/python-constantly/python-constantly.hash HashSpaces +package/python-couchdb/python-couchdb.hash HashSpaces +package/python-crcmod/python-crcmod.hash HashSpaces +package/python-cssselect/python-cssselect.hash HashSpaces +package/python-daemonize/python-daemonize.hash HashSpaces +package/python-daphne/python-daphne.hash HashSpaces +package/python-dialog3/python-dialog3.hash HashSpaces +package/python-dicttoxml/python-dicttoxml.hash HashSpaces +package/python-django-enumfields/python-django-enumfields.hash HashSpaces +package/python-docker-pycreds/python-docker-pycreds.hash HashSpaces +package/python-docker/python-docker.hash HashSpaces +package/python-dockerpty/python-dockerpty.hash HashSpaces +package/python-entrypoints/python-entrypoints.hash HashSpaces +package/python-fastentrypoints/python-fastentrypoints.hash HashSpaces +package/python-flask-babel/python-flask-babel.hash HashSpaces +package/python-flup/python-flup.hash HashSpaces +package/python-future/python-future.hash HashSpaces +package/python-gitdb2/python-gitdb2.hash HashSpaces +package/python-huepy/0001-fix-import-with-python3.patch Sob +package/python-huepy/python-huepy.hash HashSpaces +package/python-ibmiotf/python-ibmiotf.hash HashSpaces +package/python-iniparse/python-iniparse.hash HashSpaces +package/python-iowait/python-iowait.hash HashSpaces +package/python-ipython-genutils/python-ipython-genutils.hash HashSpaces +package/python-jaraco-classes/python-jaraco-classes.hash HashSpaces +package/python-jaraco-functools/python-jaraco-functools.hash HashSpaces +package/python-json-schema-validator/python-json-schema-validator.hash HashSpaces +package/python-jsonmodels/python-jsonmodels.hash HashSpaces +package/python-keyring/python-keyring.hash HashSpaces +package/python-kiwisolver/python-kiwisolver.hash HashSpaces +package/python-libusb1/python-libusb1.hash HashSpaces +package/python-lockfile/python-lockfile.hash HashSpaces +package/python-logbook/python-logbook.hash HashSpaces +package/python-m2r/python-m2r.hash HashSpaces +package/python-matplotlib/python-matplotlib.hash HashSpaces +package/python-mimeparse/python-mimeparse.hash HashSpaces +package/python-mistune/python-mistune.hash HashSpaces +package/python-nested-dict/python-nested-dict.hash HashSpaces +package/python-netaddr/python-netaddr.hash HashSpaces +package/python-networkmanager/python-networkmanager.hash HashSpaces +package/python-numpy/python-numpy.hash HashSpaces +package/python-paho-mqtt/python-paho-mqtt.hash HashSpaces +package/python-pathpy/python-pathpy.hash HashSpaces +package/python-pathtools/python-pathtools.hash HashSpaces +package/python-pexpect/python-pexpect.hash HashSpaces +package/python-pickleshare/python-pickleshare.hash HashSpaces +package/python-piexif/python-piexif.hash HashSpaces +package/python-ply/python-ply.hash HashSpaces +package/python-portend/python-portend.hash HashSpaces +package/python-pyaes/python-pyaes.hash HashSpaces +package/python-pyicu/python-pyicu.hash HashSpaces +package/python-pylibftdi/python-pylibftdi.hash HashSpaces +package/python-pyqrcode/python-pyqrcode.hash HashSpaces +package/python-pyratemp/python-pyratemp.hash HashSpaces +package/python-pyroute2/python-pyroute2.hash HashSpaces +package/python-pysmi/python-pysmi.hash HashSpaces +package/python-pysnmp-mibs/python-pysnmp-mibs.hash HashSpaces +package/python-pysnmp/python-pysnmp.hash HashSpaces +package/python-pysocks/python-pysocks.hash HashSpaces +package/python-pytablereader/python-pytablereader.hash HashSpaces +package/python-pytablewriter/python-pytablewriter.hash HashSpaces +package/python-pytest/python-pytest.hash HashSpaces +package/python-pyxb/python-pyxb.hash HashSpaces +package/python-raven/python-raven.hash HashSpaces +package/python-requests-toolbelt/python-requests-toolbelt.hash HashSpaces +package/python-rpi-gpio/python-rpi-gpio.hash HashSpaces +package/python-scandir/python-scandir.hash HashSpaces +package/python-sdnotify/python-sdnotify.hash HashSpaces +package/python-see/python-see.hash HashSpaces +package/python-setuptools-scm-git-archive/python-setuptools-scm-git-archive.hash HashSpaces +package/python-shutilwhich/python-shutilwhich.hash HashSpaces +package/python-simplegeneric/python-simplegeneric.hash HashSpaces +package/python-simplesqlite/python-simplesqlite.hash HashSpaces +package/python-smbus-cffi/python-smbus-cffi.hash HashSpaces +package/python-spidev/python-spidev.hash HashSpaces +package/python-sqlalchemy/python-sqlalchemy.hash HashSpaces +package/python-sqlparse/python-sqlparse.hash HashSpaces +package/python-systemd/python-systemd.hash HashSpaces +package/python-tempora/python-tempora.hash HashSpaces +package/python-termcolor/python-termcolor.hash HashSpaces +package/python-tomako/python-tomako.hash HashSpaces +package/python-tqdm/python-tqdm.hash HashSpaces +package/python-txtorcon/python-txtorcon.hash HashSpaces +package/python-vcversioner/python-vcversioner.hash HashSpaces +package/python-visitor/python-visitor.hash HashSpaces +package/python-web2py/S51web2py Shellcheck Variables +package/python-webencodings/python-webencodings.hash HashSpaces +package/python-webpy/python-webpy.hash HashSpaces +package/python-whoosh/python-whoosh.hash HashSpaces +package/python-ws4py/python-ws4py.hash HashSpaces +package/python-xlib/python-xlib.hash HashSpaces +package/python-xlutils/python-xlutils.hash HashSpaces +package/python-xlwt/python-xlwt.hash HashSpaces +package/python-zc-lockfile/python-zc-lockfile.hash HashSpaces +package/qoriq-cadence-dp-firmware/qoriq-cadence-dp-firmware.hash HashSpaces +package/qt5/qt5enginio/qt5enginio.hash HashSpaces +package/quagga/quagga.hash HashSpaces +package/quotatool/quotatool.hash HashSpaces +package/rabbitmq-server/S50rabbitmq-server Indent Shellcheck Variables +package/rapidjson/rapidjson.hash HashSpaces +package/rapidxml/rapidxml.hash HashSpaces +package/raspi-gpio/raspi-gpio.hash HashSpaces +package/rcw-smarc-sal28/rcw-smarc-sal28.hash HashSpaces +package/rdesktop/0001-8bit-colors.patch Sob +package/reaver/reaver.hash HashSpaces +package/redis/S50redis Shellcheck Variables +package/restorecond/S02restorecond Shellcheck +package/rings/rings.hash HashSpaces +package/ripgrep/ripgrep.hash HashSpaces +package/rng-tools/S21rngd Shellcheck Variables +package/rockchip-mali/rockchip-mali.hash HashSpaces +package/rpcbind/S30rpcbind EmptyLastLine Indent Variables +package/rpcbind/rpcbind.hash HashSpaces +package/rrdtool/rrdtool.hash HashSpaces +package/rs485conf/rs485conf.hash HashSpaces +package/rt-tests/rt-tests.hash HashSpaces +package/rtorrent/rtorrent.hash HashSpaces +package/rtptools/rtptools.hash HashSpaces +package/rubix/0002-misc-fixes.patch Sob +package/rubix/rubix.hash HashSpaces +package/rygel/S99rygel Indent Shellcheck Variables +package/samba4/S91smb Indent Shellcheck Variables +package/sconeserver/sconeserver.hash HashSpaces +package/sdl/sdl.hash HashSpaces +package/sdl2_image/sdl2_image.hash HashSpaces +package/sdl_gfx/sdl_gfx.hash HashSpaces +package/seatd/S70seatd NotExecutable Variables +package/sedutil/sedutil.hash HashSpaces +package/ser2net/S50ser2net Indent Shellcheck Variables +package/setools/setools.hash HashSpaces +package/shairport-sync/S99shairport-sync Indent Shellcheck Variables +package/shapelib/shapelib.hash HashSpaces +package/shared-mime-info/shared-mime-info.hash HashSpaces +package/shellinabox/shellinabox.hash HashSpaces +package/slang/slang.hash HashSpaces +package/smcroute/S41smcroute Indent NotExecutable Variables +package/smcroute/smcroute.hash HashSpaces +package/smstools3/S50smsd Shellcheck Variables +package/smstools3/smstools3.hash HashSpaces +package/snmpclitools/snmpclitools.hash HashSpaces +package/softether/softether.hash HashSpaces +package/solarus/0002-Add-a-basic-FindOpenGLES2.cmake.patch Sob +package/sound-theme-borealis/sound-theme-borealis.hash HashSpaces +package/sound-theme-freedesktop/sound-theme-freedesktop.hash HashSpaces +package/squeezelite/squeezelite.hash HashSpaces +package/squid/S97squid Indent Shellcheck Variables +package/ssdp-responder/S50ssdpd Indent NotExecutable Shellcheck Variables +package/sshguard/S49sshguard Indent +package/sslh/S35sslh Indent Shellcheck Variables +package/stunnel/S50stunnel Indent Shellcheck Variables +package/supertuxkart/supertuxkart.hash HashSpaces +package/supervisor/S99supervisord Variables +package/suricata/S99suricata Shellcheck +package/swig/swig.hash HashSpaces +package/sylpheed/sylpheed.hash HashSpaces +package/synergy/synergy.hash HashSpaces +package/sysrepo/S51sysrepo-plugind Indent Shellcheck +package/sysvinit/sysvinit.hash HashSpaces +package/szip/szip.hash HashSpaces +package/targetcli-fb/S50target Shellcheck Variables +package/taskd/taskd.hash HashSpaces +package/tcf-agent/S55tcf-agent Shellcheck Variables +package/tcping/tcping.hash HashSpaces +package/tftpd/S80tftpd-hpa Indent Shellcheck Variables +package/thttpd/thttpd.hash HashSpaces +package/ti-cgt-pru/ti-cgt-pru.hash HashSpaces +package/ti-gfx/S80ti-gfx Shellcheck Variables +package/ti-sgx-um/S80ti-sgx Variables +package/time/time.hash HashSpaces +package/tinc/tinc.hash HashSpaces +package/tinymembench/tinymembench.hash HashSpaces +package/tinyxml/tinyxml.hash HashSpaces +package/tovid/tovid.hash HashSpaces +package/tpm-tools/tpm-tools.hash HashSpaces +package/tpm2-abrmd/S80tpm2-abrmd Indent Shellcheck Variables +package/tpm2-totp/tpm2-totp.hash HashSpaces +package/traceroute/traceroute.hash HashSpaces +package/transmission/S92transmission ConsecutiveEmptyLines Indent Shellcheck Variables +package/triggerhappy/S10triggerhappy Indent Shellcheck Variables +package/trinity/trinity.hash HashSpaces +package/tstools/tstools.hash HashSpaces +package/turbolua/turbolua.hash HashSpaces +package/tvheadend/S99tvheadend Indent Shellcheck Variables +package/udev-gentoo-scripts/udev-gentoo-scripts.hash HashSpaces +package/uftrace/uftrace.hash HashSpaces +package/ulogd/ulogd.hash HashSpaces +package/unbound/S70unbound Shellcheck +package/unscd/S46unscd Indent Shellcheck Variables +package/upmpdcli/S99upmpdcli Indent Shellcheck Variables +package/urandom-scripts/S20urandom Variables +package/urg/urg.hash HashSpaces +package/usb_modeswitch_data/usb_modeswitch_data.hash HashSpaces +package/usbguard/S20usbguard Indent Shellcheck Variables +package/ussp-push/ussp-push.hash HashSpaces +package/utp_com/utp_com.hash HashSpaces +package/vdr-plugin-vnsiserver/vdr-plugin-vnsiserver.hash HashSpaces +package/vmtouch/vmtouch.hash HashSpaces +package/vsftpd/S70vsftpd Indent Shellcheck Variables +package/vtun/vtun.hash HashSpaces +package/watchdogd/S01watchdogd Indent NotExecutable +package/watchdogd/watchdogd.hash HashSpaces +package/webrtc-audio-processing/webrtc-audio-processing.hash HashSpaces +package/wf111/wf111.hash HashSpaces +package/whetstone/whetstone.hash HashSpaces +package/wireless_tools/wireless_tools.hash HashSpaces +package/wpan-tools/wpan-tools.hash HashSpaces +package/wsapi-fcgi/wsapi-fcgi.hash HashSpaces +package/wsapi-xavante/wsapi-xavante.hash HashSpaces +package/wsapi/wsapi.hash HashSpaces +package/x11r7/xapp_bdftopcf/xapp_bdftopcf.hash HashSpaces +package/x11r7/xapp_ico/xapp_ico.hash HashSpaces +package/x11r7/xapp_oclock/xapp_oclock.hash HashSpaces +package/x11r7/xapp_sessreg/xapp_sessreg.hash HashSpaces +package/x11r7/xapp_viewres/xapp_viewres.hash HashSpaces +package/x11r7/xapp_x11perf/xapp_x11perf.hash HashSpaces +package/x11r7/xapp_xauth/xapp_xauth.hash HashSpaces +package/x11r7/xapp_xbacklight/xapp_xbacklight.hash HashSpaces +package/x11r7/xapp_xbiff/xapp_xbiff.hash HashSpaces +package/x11r7/xapp_xcompmgr/xapp_xcompmgr.hash HashSpaces +package/x11r7/xapp_xcursorgen/xapp_xcursorgen.hash HashSpaces +package/x11r7/xapp_xdbedizzy/xapp_xdbedizzy.hash HashSpaces +package/x11r7/xapp_xditview/xapp_xditview.hash HashSpaces +package/x11r7/xapp_xdm/S99xdm Indent Variables +package/x11r7/xapp_xdriinfo/xapp_xdriinfo.hash HashSpaces +package/x11r7/xapp_xf86dga/xapp_xf86dga.hash HashSpaces +package/x11r7/xapp_xfd/xapp_xfd.hash HashSpaces +package/x11r7/xapp_xfontsel/xapp_xfontsel.hash HashSpaces +package/x11r7/xapp_xfs/xapp_xfs.hash HashSpaces +package/x11r7/xapp_xfsinfo/xapp_xfsinfo.hash HashSpaces +package/x11r7/xapp_xhost/xapp_xhost.hash HashSpaces +package/x11r7/xapp_xinit/xapp_xinit.hash HashSpaces +package/x11r7/xapp_xinput/xapp_xinput.hash HashSpaces +package/x11r7/xapp_xkbprint/xapp_xkbprint.hash HashSpaces +package/x11r7/xapp_xkill/xapp_xkill.hash HashSpaces +package/x11r7/xapp_xlogo/xapp_xlogo.hash HashSpaces +package/x11r7/xapp_xlsatoms/xapp_xlsatoms.hash HashSpaces +package/x11r7/xapp_xlsclients/xapp_xlsclients.hash HashSpaces +package/x11r7/xapp_xman/xapp_xman.hash HashSpaces +package/x11r7/xapp_xmessage/xapp_xmessage.hash HashSpaces +package/x11r7/xapp_xmodmap/xapp_xmodmap.hash HashSpaces +package/x11r7/xapp_xmore/xapp_xmore.hash HashSpaces +package/x11r7/xapp_xpr/xapp_xpr.hash HashSpaces +package/x11r7/xapp_xprop/xapp_xprop.hash HashSpaces +package/x11r7/xapp_xrandr/xapp_xrandr.hash HashSpaces +package/x11r7/xapp_xrefresh/xapp_xrefresh.hash HashSpaces +package/x11r7/xapp_xset/xapp_xset.hash HashSpaces +package/x11r7/xapp_xsetpointer/xapp_xsetpointer.hash HashSpaces +package/x11r7/xapp_xsetroot/xapp_xsetroot.hash HashSpaces +package/x11r7/xapp_xstdcmap/xapp_xstdcmap.hash HashSpaces +package/x11r7/xapp_xvinfo/xapp_xvinfo.hash HashSpaces +package/x11r7/xapp_xwininfo/xapp_xwininfo.hash HashSpaces +package/x11r7/xapp_xwud/xapp_xwud.hash HashSpaces +package/x11r7/xcb-util-cursor/xcb-util-cursor.hash HashSpaces +package/x11r7/xcb-util-image/xcb-util-image.hash HashSpaces +package/x11r7/xcb-util-keysyms/xcb-util-keysyms.hash HashSpaces +package/x11r7/xcb-util-wm/xcb-util-wm.hash HashSpaces +package/x11r7/xdata_xbitmaps/xdata_xbitmaps.hash HashSpaces +package/x11r7/xdata_xcursor-themes/xdata_xcursor-themes.hash HashSpaces +package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.hash HashSpaces +package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.hash HashSpaces +package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.hash HashSpaces +package/x11r7/xdriver_xf86-input-tslib/xdriver_xf86-input-tslib.hash HashSpaces +package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash HashSpaces +package/x11r7/xdriver_xf86-video-fbdev/xdriver_xf86-video-fbdev.hash HashSpaces +package/x11r7/xdriver_xf86-video-i128/xdriver_xf86-video-i128.hash HashSpaces +package/x11r7/xdriver_xf86-video-mach64/0001-cross-compile.patch Sob +package/x11r7/xdriver_xf86-video-mach64/xdriver_xf86-video-mach64.hash HashSpaces +package/x11r7/xdriver_xf86-video-mga/0001-misc-fixes.patch Sob +package/x11r7/xdriver_xf86-video-mga/xdriver_xf86-video-mga.hash HashSpaces +package/x11r7/xdriver_xf86-video-neomagic/xdriver_xf86-video-neomagic.hash HashSpaces +package/x11r7/xdriver_xf86-video-r128/xdriver_xf86-video-r128.hash HashSpaces +package/x11r7/xdriver_xf86-video-savage/0001-cross-compile.patch Sob +package/x11r7/xdriver_xf86-video-siliconmotion/xdriver_xf86-video-siliconmotion.hash HashSpaces +package/x11r7/xdriver_xf86-video-sis/xdriver_xf86-video-sis.hash HashSpaces +package/x11r7/xdriver_xf86-video-tdfx/0001-cross.patch Sob +package/x11r7/xdriver_xf86-video-tdfx/xdriver_xf86-video-tdfx.hash HashSpaces +package/x11r7/xdriver_xf86-video-trident/xdriver_xf86-video-trident.hash HashSpaces +package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.hash HashSpaces +package/x11r7/xfont_encodings/xfont_encodings.hash HashSpaces +package/x11r7/xfont_font-bh-ttf/xfont_font-bh-ttf.hash HashSpaces +package/x11r7/xfont_font-util/xfont_font-util.hash HashSpaces +package/x11r7/xlib_libFS/xlib_libFS.hash HashSpaces +package/x11r7/xlib_libICE/xlib_libICE.hash HashSpaces +package/x11r7/xlib_libSM/xlib_libSM.hash HashSpaces +package/x11r7/xlib_libXScrnSaver/xlib_libXScrnSaver.hash HashSpaces +package/x11r7/xlib_libXau/xlib_libXau.hash HashSpaces +package/x11r7/xlib_libXcomposite/xlib_libXcomposite.hash HashSpaces +package/x11r7/xlib_libXdamage/xlib_libXdamage.hash HashSpaces +package/x11r7/xlib_libXdmcp/xlib_libXdmcp.hash HashSpaces +package/x11r7/xlib_libXext/xlib_libXext.hash HashSpaces +package/x11r7/xlib_libXfixes/xlib_libXfixes.hash HashSpaces +package/x11r7/xlib_libXfont/xlib_libXfont.hash HashSpaces +package/x11r7/xlib_libXinerama/xlib_libXinerama.hash HashSpaces +package/x11r7/xlib_libXmu/xlib_libXmu.hash HashSpaces +package/x11r7/xlib_libXpm/xlib_libXpm.hash HashSpaces +package/x11r7/xlib_libXrandr/xlib_libXrandr.hash HashSpaces +package/x11r7/xlib_libXrender/xlib_libXrender.hash HashSpaces +package/x11r7/xlib_libXt/xlib_libXt.hash HashSpaces +package/x11r7/xlib_libXv/xlib_libXv.hash HashSpaces +package/x11r7/xlib_libXxf86dga/xlib_libXxf86dga.hash HashSpaces +package/x11r7/xlib_libXxf86vm/xlib_libXxf86vm.hash HashSpaces +package/x11r7/xlib_libdmx/xlib_libdmx.hash HashSpaces +package/x11r7/xlib_libfontenc/xlib_libfontenc.hash HashSpaces +package/x11r7/xlib_libxkbfile/xlib_libxkbfile.hash HashSpaces +package/x11r7/xlib_libxshmfence/xlib_libxshmfence.hash HashSpaces +package/x11r7/xlib_xtrans/xlib_xtrans.hash HashSpaces +package/x11r7/xserver_xorg-server/S40xorg Shellcheck Variables +package/x11r7/xutil_makedepend/xutil_makedepend.hash HashSpaces +package/xavante/xavante.hash HashSpaces +package/xmlstarlet/xmlstarlet.hash HashSpaces +package/xutil_util-macros/xutil_util-macros.hash HashSpaces +package/yad/yad.hash HashSpaces +package/zip/zip.hash HashSpaces +package/zmqpp/zmqpp.hash HashSpaces +package/zxing-cpp/zxing-cpp.hash HashSpaces +toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash HashSpaces +toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash HashSpaces +toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash HashSpaces +toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash HashSpaces +toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash HashSpaces +toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash HashSpaces +toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/toolchain-external-linaro-aarch64-be.hash HashSpaces +toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash HashSpaces +toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash HashSpaces +toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash HashSpaces +toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash HashSpaces diff --git a/Makefile b/Makefile index 4305c8c3dd..bd7ab9675d 100644 --- a/Makefile +++ b/Makefile @@ -1245,8 +1245,7 @@ check-flake8: | xargs -- python3 -m flake8 --statistics check-package: - find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' -o -name '*.patch' \) \ - -exec ./utils/check-package --exclude=Sob --exclude=HashSpaces {} + + $(Q)./utils/check-package `git ls-tree -r --name-only HEAD` include docs/manual/manual.mk -include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))) From patchwork Sun Jul 24 05:49:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660035 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=buildroot.org (client-ip=140.211.166.138; helo=smtp1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC4F1YYqz9sFk for ; Sun, 24 Jul 2022 15:52:12 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 203628469C; Sun, 24 Jul 2022 05:52:11 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 203628469C X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0GHcXAqp82It; Sun, 24 Jul 2022 05:52:10 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id 311B883E70; Sun, 24 Jul 2022 05:52:09 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 311B883E70 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 7CAE31BF964 for ; Sun, 24 Jul 2022 05:50:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 626ED60C09 for ; Sun, 24 Jul 2022 05:50:40 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 626ED60C09 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ms7mBfqUJcI6 for ; Sun, 24 Jul 2022 05:50:39 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org A080F60AD8 Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) by smtp3.osuosl.org (Postfix) with ESMTPS id A080F60AD8 for ; Sun, 24 Jul 2022 05:50:39 +0000 (UTC) Received: by mail-oi1-x22c.google.com with SMTP id n206so9924666oia.6 for ; Sat, 23 Jul 2022 22:50:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=ZTRKRyMxG29SyJcJ6EuwXUVGlCcrySlEusTuGqfCWMQ=; b=tkhaZRwOIY+ENDBYZEgqWdVkrczajx9loZu0RymFXhlvRl8ie1vxqGEwrDmWmrdkWq ZiP1W4bnuXusBzr3MBS3Ov24UjivFsvKR1keadyAlVgbU5n+oWe0no7OMIjbjCRZ0wfx V5V5Sit05ciW+sa2Hc62odckiXlVtYex3L1+zPURW/+jSznU8J1fT9QrB/VuPgjK0JlQ 2GFgEDobYTmZdSmcxKDRaFUOsSRHUCZN2UeWdbSTbORdnQ3qKcv5iS8Mao8n3e8yktUz gcFDdDoq9u4JscjdapbDWFHObpQ9Vl2/PUCyolxCp6QgRw7O0xodKxW7hlmhOQaFB23B 24BA== X-Gm-Message-State: AJIora/YboG+qRYIu7fByqmdpLwmYnSOhgxk1m+y3uYvBjDAzd7jhW1a 3HAJ7hRV2oY3OGNmMcepQJb22tS0mgA= X-Google-Smtp-Source: AGRyM1tZD+/325FFVWUo+uPrdhsMlD7XW6/f6G7Z3EqjF+bnIJMMPqM9G/1r0P6rteOPPQljnTy6FQ== X-Received: by 2002:a05:6808:191b:b0:33a:ac22:da2d with SMTP id bf27-20020a056808191b00b0033aac22da2dmr3034651oib.83.1658641838705; Sat, 23 Jul 2022 22:50:38 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:37 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:03 -0300 Message-Id: <20220724054912.2354219-8-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=ZTRKRyMxG29SyJcJ6EuwXUVGlCcrySlEusTuGqfCWMQ=; b=AxUWQkROPFIjosmuTOwNHwAkd16z6lqWbl141Jg5dBqvZDAVuMF+Mq7oaJLPdojoqb RyV94s5mcLT3FSSPDHojBHEL53j+18dmA/n/JKfTayCMFndS81uDepn5vrr/OScKFXJH AFO9piP0mh93pF3ZFRtv0T/xgE6lbLMwxprPe8uEDcOlH1LxM96osViV3x5LUoMdMn6W gE+/q/nY0blbnq+xXoScJgZEpzlZxnFzK3kDi/u9FZrNDtc5ybxFjTntgS564GUB/4/E y+YoFgO5U4l2EeVFKm+fNPGfEF7AVIDZYV08dYuWBUfKaZx4EVD3VeSGrZGKNWFexfsg iUjA== X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=AxUWQkRO Subject: [Buildroot] [PATCH 07/16] Makefile: run check-* inside docker image X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Currently the result for both check-package and check-flake8 targets depend on the version of the tools flake8 and shellcheck installed on the host. In order to ensure reproducibility across machines of different developers, always use the docker image to run these targets. When one of these targets is called, test if it is already running inside the docker image, and if it not, start the docker image and run the same command inside it. Do the check for the docker image in a simple way: just check current user belongs only to group br-user. It is very unlikely a developer has exactly this user configuration in the host. Add a note in the Dockerfile about this use. Signed-off-by: Ricardo Martincoski --- Makefile | 10 ++++++++++ support/docker/Dockerfile | 1 + 2 files changed, 11 insertions(+) diff --git a/Makefile b/Makefile index bd7ab9675d..f42dc3151d 100644 --- a/Makefile +++ b/Makefile @@ -1237,6 +1237,15 @@ release: print-version: @echo $(BR2_VERSION_FULL) +check_inside_docker := $(shell if [ "`groups`" = 'br-user' ]; then echo y; else echo n; fi) + +# List of target that need to run inside docker image to ensure reproducible results +inside_docker_targets := check-package check-flake8 + +ifeq ($(check_inside_docker),n) +$(inside_docker_targets): + $(Q)utils/docker-run $(MAKE) V=$(V) $@ +else check-flake8: $(Q)git ls-tree -r --name-only HEAD \ | xargs file \ @@ -1246,6 +1255,7 @@ check-flake8: check-package: $(Q)./utils/check-package `git ls-tree -r --name-only HEAD` +endif include docs/manual/manual.mk -include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))) diff --git a/support/docker/Dockerfile b/support/docker/Dockerfile index f54c31b54a..afe8911e78 100644 --- a/support/docker/Dockerfile +++ b/support/docker/Dockerfile @@ -60,6 +60,7 @@ RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen && \ RUN useradd -ms /bin/bash br-user && \ chown -R br-user:br-user /home/br-user +# Note: below user is used to check if we are running inside docker USER br-user WORKDIR /home/br-user ENV HOME /home/br-user From patchwork Sun Jul 24 05:49:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660036 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=buildroot.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC4W17gJz9sFk for ; Sun, 24 Jul 2022 15:52:27 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 53876400AC; Sun, 24 Jul 2022 05:52:25 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 53876400AC X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XEneWagzuVpA; Sun, 24 Jul 2022 05:52:23 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 55D35400F1; Sun, 24 Jul 2022 05:52:22 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 55D35400F1 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 67F221BF59B for ; Sun, 24 Jul 2022 05:50:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 51041408E3 for ; Sun, 24 Jul 2022 05:50:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 51041408E3 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7P3EYdrY1Fcv for ; Sun, 24 Jul 2022 05:50:42 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org A4693400AC Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com [IPv6:2001:4860:4864:20::30]) by smtp2.osuosl.org (Postfix) with ESMTPS id A4693400AC for ; Sun, 24 Jul 2022 05:50:42 +0000 (UTC) Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-10dc1b16c12so5849922fac.6 for ; Sat, 23 Jul 2022 22:50:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=/BXAs8W7DqEYwpL1321ASYu+zhhBoZSUqrTTIlQs5V4=; b=nbj7vnPkvApAyHw7GbyqWZP1h3YaZValvm9OWCv9pIhPXTv/6m+gXq25HGHzZKhV5q CiCo1pccLIDJhZF51+zoauoU+ZctgOFcGOocrO1izCmBidhivvEn2qUn3PnchmsTBh8V UACIF0XOGA4ryBeQ5cOBvmBoJeFrP8gTb8iGhzFEERO2SD+Jd2rfMQqSIvNNag9fEV0r Uk2rM/sgQHULxZQpKoRaFjHfzjOa1rpZLpHd7keIievaXLYd3ZLR62Ns/rPuV7AuWBqE vtGX6avgKYk2CP83UuSlO++sZlvIPJlG2+TLVZOQ5r8t/AUXJM6DLvQrJHodX16SLz3s 5arg== X-Gm-Message-State: AJIora8o2fyPQNYTg8qH7xfvNhOfjfNLZHDFU5nqKbNBnCL1erpBpciM g5LqHVRtQGvpTauffUGq98Hh/6JvezY= X-Google-Smtp-Source: AGRyM1tcmOea9jgUOK8sDiZhDvAYzWNqAjqZw5mgS8Vw6vjx7oynrd+VHbL0MrRhLrd7rrz1L+EaXg== X-Received: by 2002:a05:6870:7387:b0:10d:c24b:1962 with SMTP id z7-20020a056870738700b0010dc24b1962mr3412218oam.284.1658641841671; Sat, 23 Jul 2022 22:50:41 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:40 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:04 -0300 Message-Id: <20220724054912.2354219-9-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=/BXAs8W7DqEYwpL1321ASYu+zhhBoZSUqrTTIlQs5V4=; b=C1nWQiNH2XQ73Sw6M8K+SLk2YA+iNVmxcH0EjFEZG4LfNQiguMsP7w0jmtPpl73EK1 P+L4nLnEVCZ2J8Yn8JwN2OVxcReFobEUNDggfoDo6wsIPWoqfX0O6JQ0aYOfCcLMnQQH SYVCGsbEeUuijBRfCGa1gnrOFs2YHljxFWsQmapf5dV/IXvESKr4cZ25+mSDc5LJHM5e W1TzYfX3dcMtRX76LcUtpLpl32uFCvB1Iph1N8BUyMFyX23E2fSM79wRfKCMOM17wwMT uBpj4J4uMfF5iTTrxizTAV9IXOkQTcAyR0HK12ahTfMfCeK4JxopS/0ixx7x6IqoehcV QycA== X-Mailman-Original-Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=C1nWQiNH Subject: [Buildroot] [PATCH 08/16] docs/manual: check-package before submitting patch X-BeenThere: buildroot@buildroot.org 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: Thomas De Schampheleire , Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Add 'make check-package' to the default workflow of submitting patches, just after the rebase and before using format-patch. Cc: Thomas De Schampheleire Signed-off-by: Ricardo Martincoski --- docs/manual/contribute.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/manual/contribute.txt b/docs/manual/contribute.txt index e588c69be6..c5652af7a0 100644 --- a/docs/manual/contribute.txt +++ b/docs/manual/contribute.txt @@ -294,6 +294,12 @@ $ git fetch --all --tags $ git rebase origin/master --------------------- +Now run some basic checks for the changes you committed: + +--------------------- +$ make check-package +--------------------- + Now, you are ready to generate then submit your patch set. To generate it, run: From patchwork Sun Jul 24 05:49:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660037 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=buildroot.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC4l5NfRz9sFk for ; Sun, 24 Jul 2022 15:52:39 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 9F0A960E62; Sun, 24 Jul 2022 05:52:37 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 9F0A960E62 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aPLiVoYAMdQC; Sun, 24 Jul 2022 05:52:36 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id B91FF606C0; Sun, 24 Jul 2022 05:52:35 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org B91FF606C0 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 21BD41BF59B for ; Sun, 24 Jul 2022 05:50:46 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 0AD5B400EC for ; Sun, 24 Jul 2022 05:50:46 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 0AD5B400EC X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bgSbkk71-4Mt for ; Sun, 24 Jul 2022 05:50:45 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6CAC8400AC Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com [IPv6:2001:4860:4864:20::2b]) by smtp2.osuosl.org (Postfix) with ESMTPS id 6CAC8400AC for ; Sun, 24 Jul 2022 05:50:45 +0000 (UTC) Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-10d6ddda695so11131491fac.0 for ; Sat, 23 Jul 2022 22:50:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=XGf8h9ZDWAMzlB3mYt62qUG2Afk2TetaCrwnvTWyfeA=; b=MQdxnab/swSEcXvXjbMb8BecbJKlmxzrKd263Zsi4Ytv2yBNI97MZxcznTdPmmtdi+ +fKTaGZYEkTMUC6BRsDIjbenNnx+fbj4x+4/+78zPJC71s300jh65hSEi8kfttYYwoco s5NqUqMrROo+pcfewkiaeb5Kyq1GtLR2enVl6S00lI1VeDNbF4c1MpjHdqn07j72ILB2 +R5mfwKIVmnUJ+oJaxmLMyCw0hWMvfbCi9gB0yC7BIpHZtnMjJAX3I1wq4kL6+y2jgt5 vWqb57E5RWkORkYKqjWiisRUz7LQYrhosgl/dNqaGGnkEMZBWwUosLHwBDrYZT6YAybm M/SQ== X-Gm-Message-State: AJIora8EKUcp9C7n1VrX3EQVrWmhq90OADyd/OI9cIGTTO4UxGAa6fzH h4QGG7cccsENWPGQxHVpkbvgTCHnMy4= X-Google-Smtp-Source: AGRyM1u87gBAaN2E47w5hxbzh4lKAYf7XoL38+XvHWCotqU6bfAn70ta+B+i8rQzTYkGzB7XG8eZHw== X-Received: by 2002:a05:6870:3042:b0:10d:81fe:baa2 with SMTP id u2-20020a056870304200b0010d81febaa2mr3457006oau.83.1658641844520; Sat, 23 Jul 2022 22:50:44 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:43 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:05 -0300 Message-Id: <20220724054912.2354219-10-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=XGf8h9ZDWAMzlB3mYt62qUG2Afk2TetaCrwnvTWyfeA=; b=U/rNh+8JZGoEBsKQXZuD5BRtsDosDlQH07FrDer4aLDaW36au5BWGElj4xZcxxPWvZ 91le7IvD/5LCvBYCRXGygule5GJRWRHFSkvjFDPmi0FxZK6k1HLuZFwD+zo/UGHmMOTT NN3l0M/PUrFucake8GelX7Uc0s5xuidBNlX1aiAk8xIa/jyXR1oq/75cdnOTT29he/Nl ZpR2Rhvy7H6iXIowsV7yG8+ANaLvT+94JLar808IesEtI5MVVrLp25mnOoOuDA3uSqDN Uny6+vHtDuNfBpkmmPQbEp0m2p29ISt4NPry9Su1D5DC86xpREcsqJtTD9nvDnbB7ldj 71/w== X-Mailman-Original-Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=U/rNh+8J Subject: [Buildroot] [PATCH 09/16] support/docker: add python3-magic X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" It will be needed by check-package to run checks according to the file type (the same determined by the command 'file'). Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: all patches after this in the series assume this patch was applied, a new docker image was generated and its version was updated in .gitlab.yml --- support/docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/support/docker/Dockerfile b/support/docker/Dockerfile index afe8911e78..76501048ff 100644 --- a/support/docker/Dockerfile +++ b/support/docker/Dockerfile @@ -39,6 +39,7 @@ RUN apt-get install -y --no-install-recommends \ openssh-server \ python3 \ python3-flake8 \ + python3-magic \ python3-nose2 \ python3-pexpect \ python3-pytest \ From patchwork Sun Jul 24 05:49:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660038 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=buildroot.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC513wqNz9sFk for ; Sun, 24 Jul 2022 15:52:53 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 5A6DE60E9A; Sun, 24 Jul 2022 05:52:51 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 5A6DE60E9A X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZZOQ0ut-kIze; Sun, 24 Jul 2022 05:52:50 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id E1BDF6107A; Sun, 24 Jul 2022 05:52:48 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org E1BDF6107A X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 8ADF41BF59B for ; Sun, 24 Jul 2022 05:50:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 7195041716 for ; Sun, 24 Jul 2022 05:50:49 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 7195041716 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A6B_h3IN9xkf for ; Sun, 24 Jul 2022 05:50:47 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org BD7FE416ED Received: from mail-oa1-x2e.google.com (mail-oa1-x2e.google.com [IPv6:2001:4860:4864:20::2e]) by smtp4.osuosl.org (Postfix) with ESMTPS id BD7FE416ED for ; Sun, 24 Jul 2022 05:50:47 +0000 (UTC) Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-10d8880d055so11045969fac.8 for ; Sat, 23 Jul 2022 22:50:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=CdW2hahmeTFOc+5vZBYssjin34btnoj5T2dKDymdcl0=; b=cpZIzsHQ721+Xgly903skWZY0DdRn1SiWF3ObjXJMT/FOHDvjxxwnKATcV0/Tts5I/ De4HmftA1nZbFgqzuBcNZEfrqftDTeS9DvTMuw4X2DGkTrUIM8Cu29ZrQ1VTIBcg+FS4 XHIAT7DluPi/IyYdedkMypiENpji8tpA3a1dcKS2go2RDZth6uc2Jiyc+RxwpI5n8tIG jhJ+HJ6gsssttlKy9iYyHBH0KnL3LrNiCGlSRVmy0vTdzftnHntCWfh4h6oytYL42Su+ q9i11JxYFMP41v2HNUFhV4DfmXa60g798qv+2TFf3siNthrI6vTD8pIoyRMF6dcLm9su /SQA== X-Gm-Message-State: AJIora974NXYeDxZtfi7n+m414AS0DRU4QL5fYDQtJy4lZ7hibvAC9rB Pfd6Hi0+htkQM3KFH8OS62MTZdUOegk= X-Google-Smtp-Source: AGRyM1sndxfcIQCTykMXZEB7BofuDpNhBpEq9QCw7CZsge8uZTlyplFXdQ1YwAgW8rl2uSmDwnp0mA== X-Received: by 2002:a05:6870:c588:b0:10c:4b3a:68ec with SMTP id ba8-20020a056870c58800b0010c4b3a68ecmr10932427oab.223.1658641847437; Sat, 23 Jul 2022 22:50:47 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:46 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:06 -0300 Message-Id: <20220724054912.2354219-11-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=CdW2hahmeTFOc+5vZBYssjin34btnoj5T2dKDymdcl0=; b=eIWrG3eciN+191tmCR2kxtgHoHGCpQaaSBWd4/REhJcehbUjTK3dnjC6Z6JxkVDmw9 d+ASGS85rR3dPAfEo6/vdM1LefD3ucY3zPzFVrMnfLC9BZLWEwzjmbQ60OGnS+OmKEgB pBBnC/Jn7LlkIeZdfxZQRp3hUFHwPfJmDLGzDJUQvCTl/lZxjSUSvaC7SNAAavp4pfRf +KxVMWw0A7XVFYigUJVBeTlpLl2XiU2mZ7F+5BFzHSI9ZENzwlqL0+WRJdNnqIsYZIci b0rkb+yQRe9KyeiR/NydoR/yrk4vQU/X38qj1tieAFWQ0+pXdjkJtBJzNkoOBpd/OqE9 HYpQ== X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=eIWrG3ec Subject: [Buildroot] [PATCH 10/16] utils/check-package: check all shell scripts X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Currently only SysV init scripts are checked using shellcheck and a few other rules (e.g. variable naming, file naming). Extend the check using shellcheck to all shell scripts in the tree. This is actually limited to the list of directories that check-package knows that can check, but that list can be expanded later. In order to apply the check to all shell scripts, use python3-magic to determine the file type. Keep testing first for name pattern, and only in the case there is no match, check the file type. This ensures, for instance, that SysV init scripts follow specific rules. Apply these checks for shell scripts: - shellcheck; - trailing space; - consecutive empty lines; - empty last line on file; - newline at end of file. Update the list of ignored warnings. Since 'make check-package' always run using the docker image, there is no dependency added to the host machine. Do not add unit tests since no function was added, they were just reused. But expand the runtime test for check-package using as fixture a file that generates a shellcheck warning. Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: please re-generate the list of ignored warnings while applying: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` > .checkpackageignore --- .checkpackageignore | 20 +++++++++++++++++++ .../utils/br2-external/utils/x-shellscript | 2 ++ .../testing/tests/utils/test_check_package.py | 17 ++++++++++++++++ utils/check-package | 13 +++++++++++- utils/checkpackagelib/lib_shellscript.py | 5 +++++ 5 files changed, 56 insertions(+), 1 deletion(-) create mode 100755 support/testing/tests/utils/br2-external/utils/x-shellscript create mode 100644 utils/checkpackagelib/lib_shellscript.py diff --git a/.checkpackageignore b/.checkpackageignore index 98099508ba..541f234bfd 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -52,6 +52,7 @@ package/busybox/S02sysctl Variables package/busybox/S10mdev ConsecutiveEmptyLines Indent Shellcheck package/busybox/S15watchdog Indent Variables package/busybox/S50telnet Indent Shellcheck Variables +package/busybox/udhcpc.script Shellcheck package/bzip2/bzip2.hash HashSpaces package/c-icap/S96cicap Indent Shellcheck Variables package/cache-calibrator/cache-calibrator.hash HashSpaces @@ -74,6 +75,7 @@ package/connman-gtk/connman-gtk.hash HashSpaces package/connman/S45connman Variables package/conntrack-tools/conntrack-tools.hash HashSpaces package/copas/copas.hash HashSpaces +package/coremark-pro/coremark-pro.sh.in Shellcheck package/coxpcall/coxpcall.hash HashSpaces package/cpio/cpio.hash HashSpaces package/cppdb/cppdb.hash HashSpaces @@ -104,6 +106,7 @@ package/dcron/S90dcron Variables package/debianutils/debianutils.hash HashSpaces package/dhcp/S80dhcp-relay Shellcheck Variables package/dhcp/S80dhcp-server Shellcheck Variables +package/dhcp/dhclient-script Shellcheck TrailingSpace package/dhcpcd/S41dhcpcd Indent Variables package/dhcpdump/dhcpdump.hash HashSpaces package/dhrystone/0001-cmdline-nruns.patch Sob @@ -131,6 +134,7 @@ package/earlyoom/S02earlyoom Indent Shellcheck package/ecryptfs-utils/ecryptfs-utils.hash HashSpaces package/efivar/efivar.hash HashSpaces package/ejabberd/S50ejabberd Indent Shellcheck Variables +package/ejabberd/check-erlang-lib Shellcheck package/elftosb/elftosb.hash HashSpaces package/elixir/elixir.hash HashSpaces package/emlog/emlog.hash HashSpaces @@ -144,6 +148,7 @@ package/exfat/exfat.hash HashSpaces package/exim/S86exim Indent Variables package/f2fs-tools/f2fs-tools.hash HashSpaces package/fail2ban/S60fail2ban Shellcheck Variables +package/fakedate/fakedate Shellcheck package/fan-ctrl/fan-ctrl.hash HashSpaces package/fbdump/fbdump.hash HashSpaces package/fbterm/fbterm.hash HashSpaces @@ -186,6 +191,7 @@ package/glorytun/glorytun.hash HashSpaces package/gnuradio/gnuradio.hash HashSpaces package/go/0002-cmd-dist-use-gohostarch-for-ssa-rewrite-check.patch Sob package/gob2/gob2.hash HashSpaces +package/google-breakpad/gen-syms.sh Shellcheck package/googlefontdirectory/googlefontdirectory.hash HashSpaces package/gperf/gperf.hash HashSpaces package/gpsd/S50gpsd Indent Shellcheck Variables @@ -205,11 +211,15 @@ package/ifmetric/ifmetric.hash HashSpaces package/ifplugd/0001-cross.patch Sob package/ifplugd/0002-fix-headers.patch Sob package/ifupdown-scripts/S40network EmptyLastLine Indent Shellcheck Variables +package/ifupdown-scripts/network/if-pre-up.d/wait_iface EmptyLastLine Shellcheck +package/ifupdown-scripts/nfs_check Shellcheck package/igd2-for-linux/S99upnpd Indent Shellcheck Variables package/igh-ethercat/igh-ethercat.hash HashSpaces package/ijs/ijs.hash HashSpaces package/ima-evm-utils/ima-evm-utils.hash HashSpaces package/inadyn/S70inadyn Indent NotExecutable +package/initscripts/init.d/rcK ConsecutiveEmptyLines EmptyLastLine Shellcheck +package/initscripts/init.d/rcS ConsecutiveEmptyLines EmptyLastLine Shellcheck package/input-event-daemon/S99input-event-daemon ConsecutiveEmptyLines Indent Variables package/intltool/intltool.hash HashSpaces package/iodine/iodine.hash HashSpaces @@ -400,6 +410,7 @@ package/mariadb/S97mysqld Indent Shellcheck Variables package/matchbox-common/matchbox-common.hash HashSpaces package/matchbox-desktop/matchbox-desktop.hash HashSpaces package/matchbox-keyboard/matchbox-keyboard.hash HashSpaces +package/matchbox-keyboard/mb-applet-kbd-wrapper.sh Shellcheck TrailingSpace package/matchbox-panel/matchbox-panel.hash HashSpaces package/matchbox-startup-monitor/matchbox-startup-monitor.hash HashSpaces package/memstat/memstat.hash HashSpaces @@ -441,6 +452,7 @@ package/netifrc/netifrc.hash HashSpaces package/netopeer2/S52netopeer2 Shellcheck Variables package/netplug/0001-makefile-flags.patch Sob package/netplug/S29netplug Indent Shellcheck Variables +package/netplug/netplug-script ConsecutiveEmptyLines Shellcheck package/netsnmp/S59snmpd Indent Shellcheck Variables package/network-manager/S45network-manager ConsecutiveEmptyLines EmptyLastLine Shellcheck Variables package/newt/newt.hash HashSpaces @@ -470,6 +482,7 @@ package/openobex/openobex.hash HashSpaces package/openpowerlink/openpowerlink.hash HashSpaces package/openssh/S50sshd EmptyLastLine Indent Variables package/opentyrian-data/opentyrian-data.hash HashSpaces +package/openvmtools/shutdown Shellcheck package/openvpn/S60openvpn Indent Shellcheck Variables package/optee-client/S30optee Indent Shellcheck Variables package/opus-tools/opus-tools.hash HashSpaces @@ -561,6 +574,7 @@ package/picocom/picocom.hash HashSpaces package/pigpio/S50pigpio Shellcheck Variables package/pimd/pimd.hash HashSpaces package/pixiewps/pixiewps.hash HashSpaces +package/pkgconf/pkg-config.in Shellcheck package/policycoreutils/policycoreutils.hash HashSpaces package/polkit/S50polkit NotExecutable Shellcheck Variables package/popperjs/popperjs.hash HashSpaces @@ -748,9 +762,11 @@ package/supertuxkart/supertuxkart.hash HashSpaces package/supervisor/S99supervisord Variables package/suricata/S99suricata Shellcheck package/swig/swig.hash HashSpaces +package/swupdate/swupdate.sh Shellcheck package/sylpheed/sylpheed.hash HashSpaces package/synergy/synergy.hash HashSpaces package/sysrepo/S51sysrepo-plugind Indent Shellcheck +package/systemd/fakeroot_tmpfiles.sh Shellcheck package/sysvinit/sysvinit.hash HashSpaces package/szip/szip.hash HashSpaces package/targetcli-fb/S50target Shellcheck Variables @@ -761,6 +777,7 @@ package/tftpd/S80tftpd-hpa Indent Shellcheck Variables package/thttpd/thttpd.hash HashSpaces package/ti-cgt-pru/ti-cgt-pru.hash HashSpaces package/ti-gfx/S80ti-gfx Shellcheck Variables +package/ti-gfx/esrev.sh Shellcheck package/ti-sgx-um/S80ti-sgx Variables package/time/time.hash HashSpaces package/tinc/tinc.hash HashSpaces @@ -789,6 +806,7 @@ package/usb_modeswitch_data/usb_modeswitch_data.hash HashSpaces package/usbguard/S20usbguard Indent Shellcheck Variables package/ussp-push/ussp-push.hash HashSpaces package/utp_com/utp_com.hash HashSpaces +package/vala/vala-wrapper Shellcheck package/vdr-plugin-vnsiserver/vdr-plugin-vnsiserver.hash HashSpaces package/vmtouch/vmtouch.hash HashSpaces package/vsftpd/S70vsftpd Indent Shellcheck Variables @@ -799,6 +817,7 @@ package/webrtc-audio-processing/webrtc-audio-processing.hash HashSpaces package/wf111/wf111.hash HashSpaces package/whetstone/whetstone.hash HashSpaces package/wireless_tools/wireless_tools.hash HashSpaces +package/wpa_supplicant/ifupdown.sh Shellcheck package/wpan-tools/wpan-tools.hash HashSpaces package/wsapi-fcgi/wsapi-fcgi.hash HashSpaces package/wsapi-xavante/wsapi-xavante.hash HashSpaces @@ -903,6 +922,7 @@ package/x11r7/xlib_xtrans/xlib_xtrans.hash HashSpaces package/x11r7/xserver_xorg-server/S40xorg Shellcheck Variables package/x11r7/xutil_makedepend/xutil_makedepend.hash HashSpaces package/xavante/xavante.hash HashSpaces +package/xl2tp/xl2tpd TrailingSpace package/xmlstarlet/xmlstarlet.hash HashSpaces package/xutil_util-macros/xutil_util-macros.hash HashSpaces package/yad/yad.hash HashSpaces diff --git a/support/testing/tests/utils/br2-external/utils/x-shellscript b/support/testing/tests/utils/br2-external/utils/x-shellscript new file mode 100755 index 0000000000..a7de4124bd --- /dev/null +++ b/support/testing/tests/utils/br2-external/utils/x-shellscript @@ -0,0 +1,2 @@ +#!/bin/bash +unused="text" diff --git a/support/testing/tests/utils/test_check_package.py b/support/testing/tests/utils/test_check_package.py index f21b9e939f..aeda0857e3 100644 --- a/support/testing/tests/utils/test_check_package.py +++ b/support/testing/tests/utils/test_check_package.py @@ -232,3 +232,20 @@ class TestCheckPackage(unittest.TestCase): .format(subdir_file), w) self.assertIn("{}:0: NewlineAtEof was expected to fail, did you fixed the file and forgot to update .checkpackageignore?" .format(subdir_file), w) + + # shell scripts are tested using shellcheck + rel_file = "utils/x-shellscript" + abs_path = infra.filepath("tests/utils/br2-external") + abs_file = os.path.join(abs_path, rel_file) + + w, m = call_script(["check-package", "-b", rel_file], + self.WITH_UTILS_IN_PATH, abs_path) + self.assert_file_was_processed(m) + self.assert_warnings_generated_for_file(m) + self.assertIn("{}:0: run 'shellcheck' and fix the warnings".format(rel_file), w) + + w, m = call_script(["check-package", "-b", abs_file], + self.WITH_UTILS_IN_PATH, infra.basepath()) + self.assert_file_was_processed(m) + self.assert_warnings_generated_for_file(m) + self.assertIn("{}:0: run 'shellcheck' and fix the warnings".format(abs_file), w) diff --git a/utils/check-package b/utils/check-package index 1508e39c37..6612cee24e 100755 --- a/utils/check-package +++ b/utils/check-package @@ -3,6 +3,7 @@ import argparse import inspect +import magic import os import re import six @@ -13,6 +14,7 @@ import checkpackagelib.lib_config import checkpackagelib.lib_hash import checkpackagelib.lib_mk import checkpackagelib.lib_patch +import checkpackagelib.lib_shellscript import checkpackagelib.lib_sysv IGNORE_FILENAME = ".checkpackageignore" @@ -86,6 +88,15 @@ def parse_args(): return flags +def get_lib_from_filetype(fname): + if not os.path.isfile(fname): + return None + filetype = magic.from_file(fname, mime=True) + if filetype == "text/x-shellscript": + return checkpackagelib.lib_shellscript + return None + + CONFIG_IN_FILENAME = re.compile(r"Config\.\S*$") DO_CHECK_INTREE = re.compile(r"|".join([ r"Config.in", @@ -129,7 +140,7 @@ def get_lib_from_filename(fname): return checkpackagelib.lib_patch if SYSV_INIT_SCRIPT_FILENAME.search(fname): return checkpackagelib.lib_sysv - return None + return get_lib_from_filetype(fname) def common_inspect_rules(m): diff --git a/utils/checkpackagelib/lib_shellscript.py b/utils/checkpackagelib/lib_shellscript.py new file mode 100644 index 0000000000..9b4f4aed58 --- /dev/null +++ b/utils/checkpackagelib/lib_shellscript.py @@ -0,0 +1,5 @@ +from checkpackagelib.lib import ConsecutiveEmptyLines # noqa: F401 +from checkpackagelib.lib import EmptyLastLine # noqa: F401 +from checkpackagelib.lib import NewlineAtEof # noqa: F401 +from checkpackagelib.lib import TrailingSpace # noqa: F401 +from checkpackagelib.tool import Shellcheck # noqa: F401 From patchwork Sun Jul 24 05:49:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660039 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=buildroot.org (client-ip=140.211.166.133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC5G1gKMz9sFk for ; Sun, 24 Jul 2022 15:53:06 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 6478840B46; Sun, 24 Jul 2022 05:53:04 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6478840B46 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eCvxMHrnCNwt; Sun, 24 Jul 2022 05:53:03 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 6E714400EC; Sun, 24 Jul 2022 05:53:02 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6E714400EC X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 1FD2A1BF59B for ; Sun, 24 Jul 2022 05:50:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id EF58084063 for ; Sun, 24 Jul 2022 05:50:51 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org EF58084063 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id am2g1YI-LyRl for ; Sun, 24 Jul 2022 05:50:51 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 4C48183A47 Received: from mail-oi1-x22b.google.com (mail-oi1-x22b.google.com [IPv6:2607:f8b0:4864:20::22b]) by smtp1.osuosl.org (Postfix) with ESMTPS id 4C48183A47 for ; Sun, 24 Jul 2022 05:50:51 +0000 (UTC) Received: by mail-oi1-x22b.google.com with SMTP id v130so4703316oie.13 for ; Sat, 23 Jul 2022 22:50:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=Fdoawylqbt2oZ5y6d9SfRXwyVoU/NI23NfztuDVkVBo=; b=8AaPU447zequXXLARGzDtFfqhCmt/AmdlfK7H+edEqdby07yamE4yo0znj0OnrPrK4 FcioBArMz5djGi+sBDMAhfqjZI9e2YYc0HBnHYk4zJwx3BUVyuPQZfeShMoe5KO5ryhd GRQ1WtW0UoN3CQ7VhHSHDgBvppFuVE5GtNJadyFVMaAPHsNVbPYcdek0F26TbC0RRD+7 IEmf221fLD2hDOuqanX/vOkNhQ6Pi5DWgblABqF2OXOVHSdEv4Fi2Gx4IHWHZyNU7+ph /6WcLahYhLYp805KePxTQx1lnPtcnJClXSYN5ue4A3ug/Vjob60I1r01eG5M8c1+kzya M0VQ== X-Gm-Message-State: AJIora+TirBrzKxXjYAEIw5ngBbt7WTPOijkmHjk4p7yZBOhLs5sGjnp y2gWExaf8BfTp+F5V1HC27xMtt1TYBY= X-Google-Smtp-Source: AGRyM1u5sC/haMu9cetnwxpNGlQ0/APbLKEY3Ik2MMm5Aki5eyM3I8lLpvP53Nji7ck7B8QH1zaGKg== X-Received: by 2002:aca:ab13:0:b0:33a:9e31:7038 with SMTP id u19-20020acaab13000000b0033a9e317038mr9644543oie.223.1658641850395; Sat, 23 Jul 2022 22:50:50 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:49 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:07 -0300 Message-Id: <20220724054912.2354219-12-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=Fdoawylqbt2oZ5y6d9SfRXwyVoU/NI23NfztuDVkVBo=; b=iUVlwv67oAmGZ7PbSSV8QR8QF1bUT2256ZuxaYUVeowWXWJ5Q5gEZ5rTiqLkTtB+V4 wOVsZ+LRrqtG5+5vYIyCOQj95VaP7DnwOtVj/HCcuUFZWlgobmQVNanOno4nu1tHqJGV 6LNNShpm+JSmGGLGCftUql4jeIJzO3Lbto6QxrRaJl3C9rXAliiLqpv7Ec1k1KpcOEY9 XI8r/isG1x80wTVlwAGhQf3V2r0T5MeiHIVqTZyZVkKLjCYAmfBM+/encTBxedmTfQwB 93kFqj3KagQcfD+GhV6ORytxcVfL8lbjrvdQfNLk5KdXxfXlnCkLn4+BjWFLiT+SKk0l rlHg== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=iUVlwv67 Subject: [Buildroot] [PATCH 11/16] utils/check-package: check files in utils/ X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: please re-generate the list of ignored warnings while applying: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` > .checkpackageignore --- .checkpackageignore | 4 ++++ utils/check-package | 1 + 2 files changed, 5 insertions(+) diff --git a/.checkpackageignore b/.checkpackageignore index 541f234bfd..765e5c1cba 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -940,3 +940,7 @@ toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-externa toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash HashSpaces toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash HashSpaces toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash HashSpaces +utils/brmake Shellcheck +utils/config Shellcheck +utils/docker-run Shellcheck +utils/test-pkg Shellcheck diff --git a/utils/check-package b/utils/check-package index 6612cee24e..880fcfa21e 100755 --- a/utils/check-package +++ b/utils/check-package @@ -107,6 +107,7 @@ DO_CHECK_INTREE = re.compile(r"|".join([ r"package/", r"system/", r"toolchain/", + r"utils/", ])) DO_NOT_CHECK_INTREE = re.compile(r"|".join([ r"boot/barebox/barebox\.mk$", From patchwork Sun Jul 24 05:49:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660040 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=buildroot.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC5X42xqz9sFk for ; Sun, 24 Jul 2022 15:53:20 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id A36D24109F; Sun, 24 Jul 2022 05:53:18 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org A36D24109F X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YrYYn8EKfHWP; Sun, 24 Jul 2022 05:53:17 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id CC711409B3; Sun, 24 Jul 2022 05:53:15 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org CC711409B3 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id C0F2F1BF59B for ; Sun, 24 Jul 2022 05:50:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id A975684063 for ; Sun, 24 Jul 2022 05:50:55 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org A975684063 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Jm5IWXcEEfDO for ; Sun, 24 Jul 2022 05:50:54 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 9A53083A47 Received: from mail-oi1-x236.google.com (mail-oi1-x236.google.com [IPv6:2607:f8b0:4864:20::236]) by smtp1.osuosl.org (Postfix) with ESMTPS id 9A53083A47 for ; Sun, 24 Jul 2022 05:50:54 +0000 (UTC) Received: by mail-oi1-x236.google.com with SMTP id bb16so9900970oib.11 for ; Sat, 23 Jul 2022 22:50:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=Ninmtw3nbf6GhNVkEvaHhBLUMw2uOANgjQJ90LK106w=; b=qcM1Xg5YtuFlNE7JPtIXmRYVwpUlm6RNOpv9Ip+6TXUd/zgQCjoPhl6NYtZUhLsMdv OW+DBubTN36HSEyGk1kNi6BlzRGo74Tvwavoht/LbNOlkVNP8at7D99oAH6jmU4KXbeC tWenQsHOL5MFIPhPC80HFJALZL/hrt8ikHHudRv+cfpwGoA+BYCJrc/4D6C19mgT8ttj jyGWLcJlT7v+mAT+uD03L+OlndPtjRIK3H88ep8UwmFeNYC6yiYZO2LCSWCEbUtYuKhD BEA3QgyUGKlAZZC0RiTo5qyos63CKmqY1bwC2wV31BFA8lO96cNhvVu0XFmoVfzK602T FzAA== X-Gm-Message-State: AJIora8jYHSxh2/2e5pwFCRNSeNWw7sI5g90szFCl9AjkGnrc0+2Kgqc KMkt76tgEl8DewD1cpxrXfa+GOxp4uA= X-Google-Smtp-Source: AGRyM1ua/wTFuIG3j7t2t42Ey+dQhZjO/OhM8BotPzR9cUw6EwD85sj2+l5RraCrAYtqYcwfl1Uq0w== X-Received: by 2002:a05:6808:1201:b0:337:e9c2:84b7 with SMTP id a1-20020a056808120100b00337e9c284b7mr2969636oil.247.1658641853642; Sat, 23 Jul 2022 22:50:53 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:52 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:08 -0300 Message-Id: <20220724054912.2354219-13-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=Ninmtw3nbf6GhNVkEvaHhBLUMw2uOANgjQJ90LK106w=; b=Cmdo97uJo2bjabV1eCXWOLL2emv2tj059o+pAe1onTjxsh06MViUhoKQPHhWEtlIxA U9IlYk71PlcOFMN38R3uVrrw+CndWtPwlSnOi8/amfxUMFMmpp/KKiVONXuQt8+Y9v7J fbBAPsZdAIBzqsqXduU4xAveNOw+IMhgA1srsALj4Eb/3lrllrfIDKSIrRb14flfQMzV QyrRGps/Qc3tdgZYDshzpIApRZYKlR/TvlthSxNWhEaxD9ZLzanX3rY1PTWelueLIbaL iCSh4YTdep/cqLvKmGjk2V0ZuWEKXV+VAuQpFkqiTEja42OYWF2B6M7dCwX1Vrfcegk8 g78g== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=Cmdo97uJ Subject: [Buildroot] [PATCH 12/16] utils/check-package: check files in board/ X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" When a SysV init script is inside package/ it does not need to be executable. But this check does not apply in the case the script is in a fs_overlay. Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: please re-generate the list of ignored warnings while applying: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` > .checkpackageignore --- .checkpackageignore | 92 +++++++++++++++++++++++++++++++ utils/check-package | 1 + utils/checkpackagelib/lib_sysv.py | 3 + utils/checkpackagelib/tool.py | 5 ++ 4 files changed, 101 insertions(+) diff --git a/.checkpackageignore b/.checkpackageignore index 765e5c1cba..58c05416c4 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1,3 +1,95 @@ +board/aarch64-efi/post-image.sh Shellcheck +board/amarula/a64-relic/post-build.sh Shellcheck +board/amarula/vyasa/post-build.sh Shellcheck +board/andes/ae350/post-build.sh Shellcheck +board/arcturus/aarch64-ucls1012a/post-build.sh Shellcheck +board/arcturus/aarch64-ucls1012a/post-image.sh Shellcheck +board/aspeed/common/post-image.sh Shellcheck +board/asus/tinker/post-build.sh Shellcheck +board/atmel/flasher.sh Shellcheck +board/beaglebone/post-build.sh Shellcheck +board/beagleboneai/post-build.sh Shellcheck +board/beaglev/post-build.sh Shellcheck +board/beelink/gs1/post-build.sh Shellcheck +board/boundarydevices/common/post-build.sh Shellcheck +board/boundarydevices/common/post-image.sh Shellcheck +board/canaan/k210-soc/post-build.sh Shellcheck +board/canaan/k210-soc/rootfs_overlay/sbin/init Shellcheck +board/chromebook/elm/sign.sh Shellcheck +board/chromebook/mksd.sh Shellcheck +board/chromebook/snow/linux-4.15-dts-tpm.patch ApplyOrder +board/chromebook/snow/sign.sh Shellcheck +board/cubietech/cubieboard2/post-image.sh Shellcheck +board/firefly/roc-rk3399-pc/post-build.sh Shellcheck +board/freescale/common/imx/imx8-bootloader-prepare.sh Shellcheck +board/freescale/common/imx/post-image.sh Shellcheck +board/freescale/common/mxs/post-image.sh Shellcheck +board/friendlyarm/nanopc-t4/post-build.sh Shellcheck +board/friendlyarm/nanopi-m4/post-build.sh Shellcheck +board/friendlyarm/nanopi-neo-plus2/post-build.sh Shellcheck +board/friendlyarm/nanopi-neo4/post-build.sh Shellcheck +board/friendlyarm/nanopi-r2s/post-build.sh Shellcheck +board/hardkernel/odroidc2/post-image.sh Shellcheck +board/hardkernel/odroidc2/rootfs_overlay/etc/init.d/S09modload Shellcheck Variables +board/hardkernel/odroidxu4/post-image.sh EmptyLastLine Shellcheck +board/intel/galileo/post-build.sh Shellcheck +board/intel/galileo/rootfs_overlay/etc/init.d/S09modload Shellcheck Variables +board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch NumberedSubject +board/kontron/bl-imx8mm/patches/uboot/0002-imx-imx8mm-imx8mm-kontron-n801x-s-add-common-board-u.patch NumberedSubject +board/kontron/bl-imx8mm/post-build.sh Shellcheck +board/kontron/pitx-imx8m/patches/uboot/2022.04/0001-tools-mkeficapsule-use-pkg-config-to-get-luuid-and-l.patch NumberedSubject +board/kontron/pitx-imx8m/post-build.sh Shellcheck +board/kontron/smarc-sal28/post-build.sh Shellcheck +board/lego/ev3/post-image.sh Shellcheck +board/lemaker/bananapro/post-build.sh Shellcheck +board/lemaker/bananapro/post-image.sh Shellcheck +board/minnowboard/post-build.sh Shellcheck +board/nexbox/a95x/post-build.sh Shellcheck +board/nexbox/a95x/post-image.sh Shellcheck +board/octavo/osd32mp1-red/patches/uboot/0001-Add-OSD32MP1-RED-Device-Tree-support.patch NumberedSubject +board/octavo/osd32mp1-red/patches/uboot/0002-configs-stm32mp15_trusted_defconfig-disable-environm.patch NumberedSubject +board/olimex/a13_olinuxino/post-build.sh Shellcheck +board/olimex/a20_olinuxino/post-build.sh Shellcheck +board/olimex/a33_olinuxino/post-build.sh Shellcheck +board/olpc/post-build.sh Shellcheck +board/orangepi/common/post-build.sh Shellcheck +board/orangepi/orangepi-lite2/post-build.sh Shellcheck +board/orangepi/orangepi-one-plus/post-build.sh Shellcheck +board/orangepi/orangepi-rk3399/post-build.sh Shellcheck +board/pine64/rock64/post-build.sh Shellcheck +board/pine64/rockpro64/post-build.sh Shellcheck +board/qemu/aarch64-sbsa/assemble-flash-images Shellcheck +board/qemu/post-image.sh Shellcheck +board/qemu/x86/post-build.sh Shellcheck +board/qemu/x86_64/post-build.sh Shellcheck +board/radxa/rockpi-4/post-build.sh Shellcheck +board/radxa/rockpi-n10/post-build.sh Shellcheck +board/radxa/rockpi-n8/post-build.sh Shellcheck +board/raspberrypi/post-build.sh Shellcheck +board/raspberrypi/post-image.sh Shellcheck +board/roseapplepi/post-build.sh Shellcheck +board/sifive/hifive-unleashed/post-build.sh Shellcheck +board/sinovoip/m1-plus/post-build.sh Shellcheck +board/solidrun/clearfog/post-build.sh Shellcheck +board/solidrun/macchiatobin/post-build-mainline.sh Shellcheck +board/solidrun/macchiatobin/post-build.sh Shellcheck +board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh Shellcheck +board/stmicroelectronics/common/stm32mp157/post-image.sh Shellcheck +board/stmicroelectronics/stm32f429-disco/flash.sh Shellcheck +board/stmicroelectronics/stm32f469-disco/flash_sd.sh Shellcheck +board/stmicroelectronics/stm32f469-disco/flash_xip.sh Shellcheck +board/stmicroelectronics/stm32f469-disco/post-build.sh Shellcheck +board/synopsys/axs10x/post-build.sh Shellcheck +board/technologic/ts4900/post-image.sh Shellcheck +board/toradex/apalis-imx6/post-image.sh Shellcheck +board/udoo/common/post-build.sh Shellcheck +board/zynq/post-build.sh Shellcheck +board/zynq/post-image.sh Shellcheck +board/zynqmp/kria/kv260/kv260.sh Shellcheck TrailingSpace +board/zynqmp/kria/patches/uboot/0001-arm64-zynqmp-zynqmp-sm-k26-revA-Fix-DP-PLL-configura.patch NumberedSubject +board/zynqmp/post-build.sh Shellcheck +board/zynqmp/post-image.sh Shellcheck +board/zynqmp/zcu106/patches/uboot/0001-arm64-zynqmp-zynqmp-zcu102-revA-Fix-DP-PLL-configura.patch NumberedSubject boot/binaries-marvell/binaries-marvell.hash HashSpaces boot/s500-bootloader/s500-bootloader.hash HashSpaces boot/shim/shim.hash HashSpaces diff --git a/utils/check-package b/utils/check-package index 880fcfa21e..874f58e0d2 100755 --- a/utils/check-package +++ b/utils/check-package @@ -101,6 +101,7 @@ CONFIG_IN_FILENAME = re.compile(r"Config\.\S*$") DO_CHECK_INTREE = re.compile(r"|".join([ r"Config.in", r"arch/", + r"board/", r"boot/", r"fs/", r"linux/", diff --git a/utils/checkpackagelib/lib_sysv.py b/utils/checkpackagelib/lib_sysv.py index 386d085afc..dc4afd71b8 100644 --- a/utils/checkpackagelib/lib_sysv.py +++ b/utils/checkpackagelib/lib_sysv.py @@ -21,6 +21,9 @@ class Indent(_CheckFunction): class NotExecutable(checkpackagelib.tool.NotExecutable): + def ignore(self): + return 'etc/init.d/' in self.filename + def hint(self): return ", just make sure you use '$(INSTALL) -D -m 0755' in the .mk file" diff --git a/utils/checkpackagelib/tool.py b/utils/checkpackagelib/tool.py index e719fdd407..632aaa9f9e 100644 --- a/utils/checkpackagelib/tool.py +++ b/utils/checkpackagelib/tool.py @@ -4,7 +4,12 @@ from checkpackagelib.base import _Tool class NotExecutable(_Tool): + def ignore(self): + return False + def run(self): + if self.ignore(): + return if os.access(self.filename, os.X_OK): return ["{}:0: This file does not need to be executable{}".format(self.filename, self.hint())] From patchwork Sun Jul 24 05:49:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660041 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=buildroot.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC5q31gYz9sFk for ; Sun, 24 Jul 2022 15:53:35 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 5758660E9A; Sun, 24 Jul 2022 05:53:33 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 5758660E9A X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gVlaeLRMRqYy; Sun, 24 Jul 2022 05:53:31 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 6286E60AD8; Sun, 24 Jul 2022 05:53:30 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6286E60AD8 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 3CF081BF964 for ; Sun, 24 Jul 2022 05:50:59 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 1644741730 for ; Sun, 24 Jul 2022 05:50:59 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 1644741730 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LdxO6KKQB2Wg for ; Sun, 24 Jul 2022 05:50:57 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org AB8E5416ED Received: from mail-oo1-xc33.google.com (mail-oo1-xc33.google.com [IPv6:2607:f8b0:4864:20::c33]) by smtp4.osuosl.org (Postfix) with ESMTPS id AB8E5416ED for ; Sun, 24 Jul 2022 05:50:57 +0000 (UTC) Received: by mail-oo1-xc33.google.com with SMTP id n16-20020a4a9550000000b0043568f1343bso1587820ooi.3 for ; Sat, 23 Jul 2022 22:50:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=yJ/t7Xw9CP3HFX4Wrv2IooGK+ivq05QYuGCYaC+UM9Y=; b=s9u230xentHRmvWTO7QbGF8jBQMmSBjoXSbKZnIjGWINTl0zfBXar0+grn7fL1PtZv bEz/0FHVnw1nCkOnguvl1mJ9HjwYrlGA2INtBwYtpUNiksCw7OspFAwmzcZrBPYvfB4J EwXU+i6SvOuIIyQ8zStXYjnQYJEgX8yN9tGUka8kFlJg2B25ZuUSMJNROekSpw7XmVfJ zta93B4WVpAPL7iSNkewExiRv2x5n/rwtMtW0ZKAcC1D6M2h/uQ1AankB13DANxOyzXs vb4SxiqYklKuNAtzfs/kCQur0BMAiQJxI3HVgSSCfPIO+aNHgv2JKeBkUt4t6XCYqlAm zlWQ== X-Gm-Message-State: AJIora+anK/BlJaQbhrWpsVO39A5gOXZClez5AyZKLGIhaNostzL/Wu9 9E8ZfM6yRch8T8fHzKP+4TIOPQgPdcY= X-Google-Smtp-Source: AGRyM1tPPjy3qsVQymlXA3asyuAJlK6YhUrRcqjj8BlyW6fAe3slldjITxuZ9CUaCI1G89wBcdqxFQ== X-Received: by 2002:a4a:8e54:0:b0:435:76f2:2ab7 with SMTP id z20-20020a4a8e54000000b0043576f22ab7mr2470580ook.60.1658641856645; Sat, 23 Jul 2022 22:50:56 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:55 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:09 -0300 Message-Id: <20220724054912.2354219-14-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=yJ/t7Xw9CP3HFX4Wrv2IooGK+ivq05QYuGCYaC+UM9Y=; b=dPmfP1925xEnCHAPqJ3x78CMkp6K5+ZiHBM7q93+3dE2uKrr+haG6uvG3R49MXXAoP dO77xWL+TrOr5+zn5SFIWEy2UDr4oyeh6N1yk1DAzoCK9TPNfczkdJGeYvOlbrUUDUj0 efIMtHKg/EiubyMT6JVGEdSsrHzRhfibogfveBioxUxJCn0sRWHbHtm0QvJucEltkKs+ 9Mxd5ZyxdXOXceElS0lGce8xjGLSBpLH/YV0qVGPbX0nFxq3pnGm/2FnbCR3Gzrb2CI8 JI0beTdH0Fk2cN9tjR36eVKXhXIAhvVyE0EGRiJQjf+YCWCgIDT6OGvzCvrqMtM80xeV Djow== X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=dPmfP192 Subject: [Buildroot] [PATCH 13/16] utils/check-package: check files in support/ X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" The .mk files inside both support/dependencies and support/misc are not package recipes, they are makefiles, so check-package doesn't understand them. Therefore ignore such files. In the test infra, some br2-externals are used as fixtures to provide (sometimes) failure cases, so ignore files in these directories. Files inside support/kconfig are files copied from linux upstream, so do not generate warnings for them. support/gnuconfig contains auto-generated config.{guess,sub} files, so do not generate shellcheck warnings for them. Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: please re-generate the list of ignored warnings while applying: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` > .checkpackageignore --- .checkpackageignore | 43 +++++++++++++++++++++++++++++++++++++++++++ utils/check-package | 6 ++++++ 2 files changed, 49 insertions(+) diff --git a/.checkpackageignore b/.checkpackageignore index 58c05416c4..8f9ab48674 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1021,6 +1021,49 @@ package/yad/yad.hash HashSpaces package/zip/zip.hash HashSpaces package/zmqpp/zmqpp.hash HashSpaces package/zxing-cpp/zxing-cpp.hash HashSpaces +support/dependencies/check-host-asciidoc.sh Shellcheck +support/dependencies/check-host-cmake.sh Shellcheck +support/dependencies/check-host-gzip.sh Shellcheck +support/dependencies/check-host-lzip.sh Shellcheck +support/dependencies/check-host-make.sh Shellcheck +support/dependencies/check-host-python3.sh Shellcheck +support/dependencies/check-host-tar.sh Shellcheck +support/dependencies/check-host-xzcat.sh Shellcheck +support/dependencies/dependencies.sh Shellcheck +support/download/bzr ConsecutiveEmptyLines Shellcheck +support/download/cargo-post-process Shellcheck +support/download/check-hash Shellcheck +support/download/cvs Shellcheck +support/download/dl-wrapper Shellcheck +support/download/file Shellcheck +support/download/git Shellcheck +support/download/go-post-process Shellcheck +support/download/hg Shellcheck +support/download/scp Shellcheck +support/download/sftp Shellcheck +support/download/svn Shellcheck +support/download/wget Shellcheck +support/gnuconfig/update Shellcheck +support/legal-info/buildroot.hash HashSpaces +support/libtool/buildroot-libtool-v1.5.patch ApplyOrder Sob +support/libtool/buildroot-libtool-v2.2.patch ApplyOrder Sob +support/libtool/buildroot-libtool-v2.4.4.patch ApplyOrder +support/libtool/buildroot-libtool-v2.4.patch ApplyOrder Sob +support/misc/relocate-sdk.sh Shellcheck +support/scripts/apply-patches.sh Shellcheck +support/scripts/br2-external Shellcheck +support/scripts/check-bin-arch Shellcheck +support/scripts/check-host-rpath Shellcheck +support/scripts/eclipse-register-toolchain Shellcheck +support/scripts/fix-configure-powerpc64.sh EmptyLastLine +support/scripts/fix-rpath Shellcheck +support/scripts/generate-gitlab-ci-yml Shellcheck +support/scripts/mkmakefile ConsecutiveEmptyLines Shellcheck +support/scripts/mkusers Shellcheck +support/scripts/setlocalversion Shellcheck +support/testing/tests/core/post-build.sh Shellcheck +support/testing/tests/package/test_opkg/post-build.sh Shellcheck +support/testing/tests/utils/test_get_developers/0001-package-binutils-change-.mk.patch NumberedSubject toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash HashSpaces toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash HashSpaces toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash HashSpaces diff --git a/utils/check-package b/utils/check-package index 874f58e0d2..601d899d3d 100755 --- a/utils/check-package +++ b/utils/check-package @@ -106,6 +106,7 @@ DO_CHECK_INTREE = re.compile(r"|".join([ r"fs/", r"linux/", r"package/", + r"support/", r"system/", r"toolchain/", r"utils/", @@ -115,6 +116,11 @@ DO_NOT_CHECK_INTREE = re.compile(r"|".join([ r"fs/common\.mk$", r"package/doc-asciidoc\.mk$", r"package/pkg-\S*\.mk$", + r"support/dependencies/[^/]+\.mk$", + r"support/gnuconfig/config\.", + r"support/kconfig/", + r"support/misc/[^/]+\.mk$", + r"support/testing/tests/.*br2-external/", r"toolchain/helpers\.mk$", r"toolchain/toolchain-external/pkg-toolchain-external\.mk$", ])) From patchwork Sun Jul 24 05:49:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660042 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=buildroot.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC650t0Dz9sFk for ; Sun, 24 Jul 2022 15:53:49 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 4A44960AD8; Sun, 24 Jul 2022 05:53:47 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 4A44960AD8 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Da_FMCHmGWqk; Sun, 24 Jul 2022 05:53:45 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id D8B7661038; Sun, 24 Jul 2022 05:53:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org D8B7661038 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id BBDB71BF59B for ; Sun, 24 Jul 2022 05:51:01 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 957CE400EC for ; Sun, 24 Jul 2022 05:51:01 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 957CE400EC X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qcl2jK2p-3LD for ; Sun, 24 Jul 2022 05:51:00 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 8721B400AC Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com [IPv6:2001:4860:4864:20::30]) by smtp2.osuosl.org (Postfix) with ESMTPS id 8721B400AC for ; Sun, 24 Jul 2022 05:51:00 +0000 (UTC) Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-10d9213b77aso11049914fac.5 for ; Sat, 23 Jul 2022 22:51:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=hwDC39PoV8N9BYiahT3VW5vpzcbtO3kF0KSJUZKu5ZI=; b=qCse7ttbOdygJG28ozzBWN8autO1tFoAR77tBLyLFUl75F4ksS7+CwrFnx6AECRa/R vCAxlNV60Fvip78Dgkwwr3LovjhPLxVzNAlLIFe1DjqIEW1rMb0uo3bvomRh4j/Ini+b TN5V0rhw/h6HYoT/NXRuRyu/y8SXSX4WmiR5Tr6LFhURP4s72k7IIo+QAC+T//JHr8ah /8qCgy8Ahw3hC/fLUHI0xbTFwzrulfbC19LnWgqSCyWIRQ5SpslppH+9gH/AYoQbSAxP 3RIIi07lCP+iryX4CAWL88AuHMcIYXJdRDTDoNJu9PAJ14dNA25W9jMYT7tp39qX16nV h7BQ== X-Gm-Message-State: AJIora/SWGxDT8fjDARzQUG6V62C9EoXwPdkbbixhZ9+JuUROcHKH2dT XGrZd++tshuZK+ddTxK4hr6Zxx4esZI= X-Google-Smtp-Source: AGRyM1s3CY/pDhfWQJ8D7aHYiKOlYVkFkY/vC8Osv2e80PbUEexzh5roY7qKB9+9R1BW1i/uG/Z/sQ== X-Received: by 2002:a05:6870:831d:b0:10d:a96f:8bc with SMTP id p29-20020a056870831d00b0010da96f08bcmr6406754oae.143.1658641859569; Sat, 23 Jul 2022 22:50:59 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:50:58 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:10 -0300 Message-Id: <20220724054912.2354219-15-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=hwDC39PoV8N9BYiahT3VW5vpzcbtO3kF0KSJUZKu5ZI=; b=HGxt9iAqAdKNCwbjK8UvTp/LHFcJC63KT2Cm6jsj/VCWoYMam/XHn3oGhcvcf40Jmp au3yjvBggAoVLl9Ngb5InyYU4fo5ckpqHcTZdljcD+bMV3q33GmDalXCyxOF4rlinnCA Rs/K7PdOGMzq0eUG/NEnrjuxvbg3SZg67CJgor/Q4LaOQQ15tZv6Dq7rfHizD1Mr/+66 wQ5oFEetPeZWaoCjpfU29FyVS3gqjyAlR+CbZQGUHtdDBHBGOagn/CQhhJ3x6hrrVD4M I2CQijq65DnXBUi4WrdCty47YmCYPMZ9hd5Hm3fcgf7ICBMWbPInG6yc01k1dOYOaT0a Yhow== X-Mailman-Original-Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=HGxt9iAq Subject: [Buildroot] [PATCH 14/16] Makefile: merge check-flake8 into check-package X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Teach check-package to detect python files by type and check them using flake8. Do not use subprocess to call 'python3 -m flake8' in order to avoid too many spawned shells, which in its turn would slow down the check for multiple files. (make check-package takes twice the time using a shell for each flake8 call, when compared of importing the main application) Expand the runtime test and the unit tests for check-package. Since 'make check-package' always run using the docker image, there is no dependency added to the host machine. Remove check-flake8 from the makefile and also from the GitLab CI because the exact same checks become part of check-package. Suggested-by:: Arnout Vandecappelle Signed-off-by: Ricardo Martincoski --- Makefile | 11 ++------ support/misc/gitlab-ci.yml.in | 4 --- support/scripts/generate-gitlab-ci-yml | 2 +- .../tests/utils/br2-external/utils/x-python | 2 ++ .../testing/tests/utils/test_check_package.py | 17 +++++++++++ utils/check-package | 3 ++ utils/checkpackagelib/lib_python.py | 1 + utils/checkpackagelib/test_tool.py | 28 +++++++++++++++++++ utils/checkpackagelib/tool.py | 15 ++++++++++ 9 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 support/testing/tests/utils/br2-external/utils/x-python create mode 100644 utils/checkpackagelib/lib_python.py diff --git a/Makefile b/Makefile index f42dc3151d..7c7b67a616 100644 --- a/Makefile +++ b/Makefile @@ -125,7 +125,7 @@ endif noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \ randpackageconfig allyespackageconfig allnopackageconfig \ - print-version olddefconfig distclean manual manual-% check-package check-flake8 + print-version olddefconfig distclean manual manual-% check-package # Some global targets do not trigger a build, but are used to collect # metadata, or do various checks. When such targets are triggered, @@ -1240,19 +1240,12 @@ print-version: check_inside_docker := $(shell if [ "`groups`" = 'br-user' ]; then echo y; else echo n; fi) # List of target that need to run inside docker image to ensure reproducible results -inside_docker_targets := check-package check-flake8 +inside_docker_targets := check-package ifeq ($(check_inside_docker),n) $(inside_docker_targets): $(Q)utils/docker-run $(MAKE) V=$(V) $@ else -check-flake8: - $(Q)git ls-tree -r --name-only HEAD \ - | xargs file \ - | grep 'Python script' \ - | cut -d':' -f1 \ - | xargs -- python3 -m flake8 --statistics - check-package: $(Q)./utils/check-package `git ls-tree -r --name-only HEAD` endif diff --git a/support/misc/gitlab-ci.yml.in b/support/misc/gitlab-ci.yml.in index 3ac988a519..2fde904006 100644 --- a/support/misc/gitlab-ci.yml.in +++ b/support/misc/gitlab-ci.yml.in @@ -6,10 +6,6 @@ script: - utils/get-developers -v -.check-flake8_base: - script: - - make check-flake8 - .check-package_base: script: - make check-package diff --git a/support/scripts/generate-gitlab-ci-yml b/support/scripts/generate-gitlab-ci-yml index aa43aac019..536ae0f042 100755 --- a/support/scripts/generate-gitlab-ci-yml +++ b/support/scripts/generate-gitlab-ci-yml @@ -26,7 +26,7 @@ gen_tests() { local do_basics do_defconfigs do_runtime do_testpkg local defconfigs_ext cfg tst - basics=( check-package DEVELOPERS flake8 package ) + basics=( check-package DEVELOPERS package ) defconfigs=( $(cd configs; LC_ALL=C ls -1 *_defconfig) ) diff --git a/support/testing/tests/utils/br2-external/utils/x-python b/support/testing/tests/utils/br2-external/utils/x-python new file mode 100644 index 0000000000..63f77b6be1 --- /dev/null +++ b/support/testing/tests/utils/br2-external/utils/x-python @@ -0,0 +1,2 @@ +#!/usr/bin/env python3 + diff --git a/support/testing/tests/utils/test_check_package.py b/support/testing/tests/utils/test_check_package.py index aeda0857e3..e655bff1ec 100644 --- a/support/testing/tests/utils/test_check_package.py +++ b/support/testing/tests/utils/test_check_package.py @@ -249,3 +249,20 @@ class TestCheckPackage(unittest.TestCase): self.assert_file_was_processed(m) self.assert_warnings_generated_for_file(m) self.assertIn("{}:0: run 'shellcheck' and fix the warnings".format(abs_file), w) + + # python scripts are tested using flake8 + rel_file = "utils/x-python" + abs_path = infra.filepath("tests/utils/br2-external") + abs_file = os.path.join(abs_path, rel_file) + + w, m = call_script(["check-package", "-vvv", "-b", rel_file], + self.WITH_UTILS_IN_PATH, abs_path) + self.assert_file_was_processed(m) + self.assert_warnings_generated_for_file(m) + self.assertIn("{}:0: run 'flake8' and fix the warnings".format(rel_file), w) + + w, m = call_script(["check-package", "-b", abs_file], + self.WITH_UTILS_IN_PATH, infra.basepath()) + self.assert_file_was_processed(m) + self.assert_warnings_generated_for_file(m) + self.assertIn("{}:0: run 'flake8' and fix the warnings".format(abs_file), w) diff --git a/utils/check-package b/utils/check-package index 601d899d3d..beebef0ddb 100755 --- a/utils/check-package +++ b/utils/check-package @@ -14,6 +14,7 @@ import checkpackagelib.lib_config import checkpackagelib.lib_hash import checkpackagelib.lib_mk import checkpackagelib.lib_patch +import checkpackagelib.lib_python import checkpackagelib.lib_shellscript import checkpackagelib.lib_sysv @@ -94,6 +95,8 @@ def get_lib_from_filetype(fname): filetype = magic.from_file(fname, mime=True) if filetype == "text/x-shellscript": return checkpackagelib.lib_shellscript + if filetype in ["text/x-python", "text/x-script.python"]: + return checkpackagelib.lib_python return None diff --git a/utils/checkpackagelib/lib_python.py b/utils/checkpackagelib/lib_python.py new file mode 100644 index 0000000000..f8c17ddc10 --- /dev/null +++ b/utils/checkpackagelib/lib_python.py @@ -0,0 +1 @@ +from checkpackagelib.tool import Flake8 # noqa: F401 diff --git a/utils/checkpackagelib/test_tool.py b/utils/checkpackagelib/test_tool.py index a0bf88001d..cfa826f57c 100644 --- a/utils/checkpackagelib/test_tool.py +++ b/utils/checkpackagelib/test_tool.py @@ -66,6 +66,34 @@ def test_NotExecutable_hint(testname, hint, filename, permissions, string, expec assert warnings == expected +Flake8 = [ + ('empty', + 'empty.py', + '', + []), + ('W391', + 'blank-line.py', + '\n', + ["dir/blank-line.py:0: run 'flake8' and fix the warnings", + "dir/blank-line.py:1:1: W391 blank line at end of file"]), + ('more than one warning', + 'file', + 'import os\n' + 'import re\n' + '\n', + ["dir/file:0: run 'flake8' and fix the warnings", + "dir/file:1:1: F401 'os' imported but unused\n" + "dir/file:2:1: F401 're' imported but unused\n" + 'dir/file:3:1: W391 blank line at end of file']), + ] + + +@pytest.mark.parametrize('testname,filename,string,expected', Flake8) +def test_Flake8(testname, filename, string, expected): + warnings = check_file(m.Flake8, filename, string) + assert warnings == expected + + Shellcheck = [ ('missing shebang', 'empty.sh', diff --git a/utils/checkpackagelib/tool.py b/utils/checkpackagelib/tool.py index 632aaa9f9e..907ada704f 100644 --- a/utils/checkpackagelib/tool.py +++ b/utils/checkpackagelib/tool.py @@ -1,5 +1,7 @@ +import flake8.main.application import os import subprocess +import tempfile from checkpackagelib.base import _Tool @@ -14,6 +16,19 @@ class NotExecutable(_Tool): return ["{}:0: This file does not need to be executable{}".format(self.filename, self.hint())] +class Flake8(_Tool): + def run(self): + with tempfile.NamedTemporaryFile() as output: + app = flake8.main.application.Application() + app.run(['--output-file={}'.format(output.name), self.filename]) + stdout = output.readlines() + processed_output = [str(line.decode().rstrip()) for line in stdout if line] + if len(stdout) == 0: + return + return ["{}:0: run 'flake8' and fix the warnings".format(self.filename), + '\n'.join(processed_output)] + + class Shellcheck(_Tool): def run(self): cmd = ['shellcheck', self.filename] From patchwork Sun Jul 24 05:49:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660043 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=buildroot.org (client-ip=140.211.166.138; helo=smtp1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC6L5NQcz9sFk for ; Sun, 24 Jul 2022 15:54:02 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id E7A8481D73; Sun, 24 Jul 2022 05:54:00 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org E7A8481D73 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZCpMvdRpWmrc; Sun, 24 Jul 2022 05:53:58 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id A7563840EE; Sun, 24 Jul 2022 05:53:57 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org A7563840EE X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 81AEF1BF59B for ; Sun, 24 Jul 2022 05:51:04 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 6830A41729 for ; Sun, 24 Jul 2022 05:51:04 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 6830A41729 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1lcLLencrdUq for ; Sun, 24 Jul 2022 05:51:03 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 6A5A6416ED Received: from mail-ot1-x333.google.com (mail-ot1-x333.google.com [IPv6:2607:f8b0:4864:20::333]) by smtp4.osuosl.org (Postfix) with ESMTPS id 6A5A6416ED for ; Sun, 24 Jul 2022 05:51:03 +0000 (UTC) Received: by mail-ot1-x333.google.com with SMTP id o16-20020a9d4110000000b0061cac66bd6dso6339817ote.11 for ; Sat, 23 Jul 2022 22:51:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=aducD+9P9N20hgmQwX16MVV6nICrwh78ArRB6tFhiCI=; b=mkzoYiZoI5GS5s9vJdPqCFsmiJJhLWHVCBawKV/XwAbJli4/Y9De2x3y1ztn0Bu57D 9GU6agVZPXbKfgYkePfi1quWzBSpxunPnMoWZzP2E8WRmGQB3UnQj30SZTROasTJdReQ 3VWCAdxr+cJsJr6WGp//J1GWePIGb+Trp9lxQl2KTXCba57hNGwt+T+6Q3SbunpuJNkY 5DbhqDuwXAH5lZNq7GFal9MDe5KLNRmz9jk9jQlWTVvFIPvjUGMDg3xFLVBFlDJ0A8tt MDmmDsNfZKNSr4SCt1qzEvNgkHrGb48RT0JVhYpDbAgzDHexnJtdYkB61MdQipuOi0zN M9VQ== X-Gm-Message-State: AJIora/US/ft7onHGlsPulBW3AZCCNU73HPts0WKSH/PB/CZCEaIZTwY u6uJpPKEzOF32f5gTKdf4bH9VhN3VDU= X-Google-Smtp-Source: AGRyM1sxxU8xmmx3V5Zl4Fwu/EBt1UOW0bBvbOCYzfS9nBFEw1URoyRkDHhh4R06q1IcSlDIbjprMA== X-Received: by 2002:a9d:7b4d:0:b0:61c:d27d:cf3b with SMTP id f13-20020a9d7b4d000000b0061cd27dcf3bmr2891314oto.49.1658641862392; Sat, 23 Jul 2022 22:51:02 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.50.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:51:01 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:11 -0300 Message-Id: <20220724054912.2354219-16-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=aducD+9P9N20hgmQwX16MVV6nICrwh78ArRB6tFhiCI=; b=oJ+UwBDweLHweVoTyozKoWIILVpUz8Ix7PG1pXIOhEyscLV8T/CiUvvlzxDllqXjKy aSO9+jTNv85BIIDOxn+brgJVlZx3UIIeiyVOik+irkqR2SwwBUpV9cNf/jPh6fePKrfa fP3prfW3ueTL04lGvg+97M8v8jYrxpc8QpNS76J6inKqTiHdHXPCG+prI7JgRT7sfOfz Eglup4ctwleAKlWHuwnuTAWtRYy/pwGkHU+JVIT9xQ7mpm+cIXiL6G0vPdmroZqJMelB BT6tcRv2usN2TYSl8fwPsoB6iSNptb+kGSgw2jCKICv7st8gqIuj6HNr1nBrv6XoTYmF rgQw== X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=oJ+UwBDw Subject: [Buildroot] [PATCH 15/16] utils/docker-run: fix shellcheck warnings X-BeenThere: buildroot@buildroot.org 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: Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" SC2046: Quote this to prevent word splitting. Signed-off-by: Ricardo Martincoski --- .checkpackageignore | 1 - utils/docker-run | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.checkpackageignore b/.checkpackageignore index 8f9ab48674..6f1a838562 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1077,5 +1077,4 @@ toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external- toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash HashSpaces utils/brmake Shellcheck utils/config Shellcheck -utils/docker-run Shellcheck utils/test-pkg Shellcheck diff --git a/utils/docker-run b/utils/docker-run index 5653764254..f42dc33d0e 100755 --- a/utils/docker-run +++ b/utils/docker-run @@ -7,7 +7,7 @@ IMAGE=$(grep ^image: "${MAIN_DIR}/.gitlab-ci.yml" | \ sed -e 's,^image: ,,g' | sed -e 's,\$CI_REGISTRY,registry.gitlab.com,g') exec docker run -it --rm \ - --user $(id -u):$(id -g) \ + --user "$(id -u)":"$(id -g)" \ --mount "type=bind,src=${MAIN_DIR},dst=${MAIN_DIR}" \ --workdir "${MAIN_DIR}" \ "${IMAGE}" "${@}" From patchwork Sun Jul 24 05:49:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Martincoski X-Patchwork-Id: 1660044 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=buildroot.org (client-ip=140.211.166.137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LrC6b5RZlz9sFk for ; Sun, 24 Jul 2022 15:54:15 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id DBD4E417A8; Sun, 24 Jul 2022 05:54:13 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org DBD4E417A8 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S5MCsJacTGOU; Sun, 24 Jul 2022 05:54:12 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp4.osuosl.org (Postfix) with ESMTP id DFA6A41780; Sun, 24 Jul 2022 05:54:10 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org DFA6A41780 X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 881941BF59B for ; Sun, 24 Jul 2022 05:51:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 6106C41729 for ; Sun, 24 Jul 2022 05:51:08 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 6106C41729 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9beFFb7mz2Fz for ; Sun, 24 Jul 2022 05:51:06 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 6ABEF416ED Received: from mail-oi1-x22f.google.com (mail-oi1-x22f.google.com [IPv6:2607:f8b0:4864:20::22f]) by smtp4.osuosl.org (Postfix) with ESMTPS id 6ABEF416ED for ; Sun, 24 Jul 2022 05:51:06 +0000 (UTC) Received: by mail-oi1-x22f.google.com with SMTP id s188so9972955oie.0 for ; Sat, 23 Jul 2022 22:51:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc; bh=pFWt6gohmEji1QC8TJSes8BVmz/qZlQ5XWQik+LFeeM=; b=M/LKdt6d2KSCvpWZHiscIiTeEcc7JJhNnUfmeDW0hishyL0i9i0P14B8rx7If2auvQ TIHXZpicAh7DDZJHvLV6n1VxF4l8e5yU9Qj95MoFbeaPDoNN4d9Hcbw+HRn5CNvGvuEy 4XFUCNc6b1+IygF2P8NritF492DsmsrejcbXZw2ljSVHW5Tw+Gt57JEqMqF2jJ209qre z7Mvns9L71hKzx2LlRHDBQxnn4mquYtnlZA1hkM4+uSUhoHLWBT3SkhlBaUaiSFn0ksK brOJQtGu5E+FcB1i4dcjonFD1IFT2MRfDqjm/HyiqvB7+klo3x0H+zcfitWjo25t4Q3x BRHA== X-Gm-Message-State: AJIora/9MBigddS6cMpwxCwEEINwbIT98vTGkozzmFZw9gGMmo9yQsqy vpYmkgDdu4kVTWZ14Ta1WO5A1OBmiM8= X-Google-Smtp-Source: AGRyM1uwEHnNuZqf3ZFTgn9C26UUOXpPLLJeiGH0dqu8OfIjf6LpTEsBOK5YJ7ENuZfxD5QuCWqcCA== X-Received: by 2002:a05:6808:152c:b0:33a:bf39:a8bd with SMTP id u44-20020a056808152c00b0033abf39a8bdmr2950043oiw.164.1658641865250; Sat, 23 Jul 2022 22:51:05 -0700 (PDT) Received: from localhost.localdomain ([191.187.223.18]) by smtp.gmail.com with ESMTPSA id k13-20020a056870818d00b000f5d8d031b6sm4236969oae.49.2022.07.23.22.51.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Jul 2022 22:51:03 -0700 (PDT) From: Ricardo Martincoski To: buildroot@buildroot.org Date: Sun, 24 Jul 2022 02:49:12 -0300 Message-Id: <20220724054912.2354219-17-ricardo.martincoski@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> References: <20220724054912.2354219-1-ricardo.martincoski@gmail.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc; bh=pFWt6gohmEji1QC8TJSes8BVmz/qZlQ5XWQik+LFeeM=; b=g/phbBRu+lwrIFftxyI8Ke8FhAr9d1EV7vdyu2nO1+GeWqWKGTYunlelWq352Fp5Xx RwbkHEX//bAH7ahf1U+NvYEl+XFUXv9N59pYM/N+m7Rd2f8zrkS5qNGzZTApVLjksHZ2 8eQ8rFakJvlw/Eu+kHBQ+V2pnRkrq1AbGkhe9vHSXoIIi8hHsUs2Fafi/AFj3cfyIKsl s+eB2A0HYQhZGrXAfUZhqnLEQz7z2eakciqtECRStqfW4IcypBDP5PYyISNGH7tKiuAP 5nqesfYHIYLZiAuO6bWogrDJKdiCbemJ6Unvbf5q/yUCQIuF9jO3pPfsAs/Ye9vcjAeM 7fwg== X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=g/phbBRu Subject: [Buildroot] [PATCH 16/16] utils/checkpackagelib: warn about $(HOST_DIR)/usr X-BeenThere: buildroot@buildroot.org 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: "Yann E . MORIN" , Ricardo Martincoski Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" It's been ages (5 years at the next release) that we've not installed host packages in $(HOST_DIR)/usr, but we still have a few packages that reference it or install things in there. See [1] Add a new check_function that warns when a file is added installing to or referencing $(HOST_DIR)/usr . [1] http://patchwork.ozlabs.org/project/buildroot/patch/bc16adfe3d7143105e840072edb169e4cb7354cc.1658007000.git.yann.morin.1998@free.fr/ Cc: Yann E. MORIN Signed-off-by: Ricardo Martincoski --- NOTE to the maintainer applying this patch: please re-generate the list of ignored warnings while applying: $ ./utils/docker-run br-user@...$ ./utils/check-package --failed-only `git ls-tree -r --name-only HEAD` > .checkpackageignore Run of unit tests: $ utils/docker-run python3 -m pytest -vv utils/checkpackagelib/ 232 passed in 0.86s --- .checkpackageignore | 22 ++++++++++++++++++++++ utils/checkpackagelib/lib_mk.py | 12 ++++++++++++ utils/checkpackagelib/test_lib_mk.py | 23 +++++++++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/.checkpackageignore b/.checkpackageignore index 6f1a838562..92ab426685 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -91,9 +91,11 @@ board/zynqmp/post-build.sh Shellcheck board/zynqmp/post-image.sh Shellcheck board/zynqmp/zcu106/patches/uboot/0001-arm64-zynqmp-zynqmp-zcu102-revA-Fix-DP-PLL-configura.patch NumberedSubject boot/binaries-marvell/binaries-marvell.hash HashSpaces +boot/grub2/grub2.mk DoNotInstallToHostdirUsr boot/s500-bootloader/s500-bootloader.hash HashSpaces boot/shim/shim.hash HashSpaces package/abootimg/abootimg.hash HashSpaces +package/abootimg/abootimg.mk DoNotInstallToHostdirUsr package/acpitool/acpitool.hash HashSpaces package/aespipe/aespipe.hash HashSpaces package/alsamixergui/0001-misc-fixes.patch Sob @@ -132,6 +134,7 @@ package/bcg729/bcg729.hash HashSpaces package/bdwgc/bdwgc.hash HashSpaces package/berkeleydb/berkeleydb.hash HashSpaces package/bind/S81named Indent Shellcheck Variables +package/bind/bind.mk DoNotInstallToHostdirUsr package/biosdevname/biosdevname.hash HashSpaces package/bitstream/bitstream.hash HashSpaces package/bluez5_utils/S40bluetooth NotExecutable Variables @@ -163,6 +166,7 @@ package/chrony/S49chrony Indent Shellcheck Variables package/cmocka/cmocka.hash HashSpaces package/collectd/collectd.hash HashSpaces package/comix-cursors/comix-cursors.hash HashSpaces +package/compiler-rt/compiler-rt.mk DoNotInstallToHostdirUsr package/connman-gtk/connman-gtk.hash HashSpaces package/connman/S45connman Variables package/conntrack-tools/conntrack-tools.hash HashSpaces @@ -192,6 +196,7 @@ package/datatables-buttons/datatables-buttons.hash HashSpaces package/datatables-fixedcolumns/datatables-fixedcolumns.hash HashSpaces package/datatables-responsive/datatables-responsive.hash HashSpaces package/datatables/datatables.hash HashSpaces +package/dbus-python/dbus-python.mk DoNotInstallToHostdirUsr package/dbus/S30dbus Indent Shellcheck TrailingSpace Variables package/dc3dd/dc3dd.hash HashSpaces package/dcron/S90dcron Variables @@ -267,6 +272,7 @@ package/frr/S50frr Shellcheck package/fstrcmp/fstrcmp.hash HashSpaces package/ftop/ftop.hash HashSpaces package/gamin/0002-no-const-return.patch Sob +package/gawk/gawk.mk DoNotInstallToHostdirUsr package/gcc/arc-2020.09-release/0002-libsanitizer-Remove-cyclades-from-libsanitizer.patch Sob package/gconf/gconf.hash HashSpaces package/gengetopt/gengetopt.hash HashSpaces @@ -274,6 +280,7 @@ package/genpart/genpart.hash HashSpaces package/genromfs/0001-build-system.patch Sob package/geoip/geoip.hash HashSpaces package/gerbera/S99gerbera Indent +package/gettext-tiny/gettext-tiny.mk DoNotInstallToHostdirUsr package/gflags/gflags.hash HashSpaces package/ghostscript-fonts/ghostscript-fonts.hash HashSpaces package/giflib/giflib.hash HashSpaces @@ -282,6 +289,7 @@ package/glm/glm.hash HashSpaces package/glorytun/glorytun.hash HashSpaces package/gnuradio/gnuradio.hash HashSpaces package/go/0002-cmd-dist-use-gohostarch-for-ssa-rewrite-check.patch Sob +package/go/go.mk DoNotInstallToHostdirUsr package/gob2/gob2.hash HashSpaces package/google-breakpad/gen-syms.sh Shellcheck package/googlefontdirectory/googlefontdirectory.hash HashSpaces @@ -326,6 +334,7 @@ package/iucode-tool/S00iucode-tool Variables package/iucode-tool/iucode-tool.hash HashSpaces package/iwd/S40iwd Shellcheck Variables package/jailhouse/jailhouse.hash HashSpaces +package/jimtcl/jimtcl.mk DoNotInstallToHostdirUsr package/joe/joe.hash HashSpaces package/jquery/jquery.hash HashSpaces package/jsmin/jsmin.hash HashSpaces @@ -337,6 +346,7 @@ package/kyua/kyua.hash HashSpaces package/lbreakout2/lbreakout2.hash HashSpaces package/lensfun/lensfun.hash HashSpaces package/libao/libao.hash HashSpaces +package/libapparmor/libapparmor.mk DoNotInstallToHostdirUsr package/libart/0001-art-config-cross.patch Sob package/libart/libart.hash HashSpaces package/libasplib/libasplib.hash HashSpaces @@ -424,6 +434,7 @@ package/libtool/libtool.hash HashSpaces package/libtorrent/libtorrent.hash HashSpaces package/libucl/libucl.hash HashSpaces package/libuecc/libuecc.hash HashSpaces +package/libva/libva.mk DoNotInstallToHostdirUsr package/libwebsock/libwebsock.hash HashSpaces package/libxml-parser-perl/libxml-parser-perl.hash HashSpaces package/lightning/lightning.hash HashSpaces @@ -482,6 +493,7 @@ package/lua-testmore/lua-testmore.hash HashSpaces package/lua-utf8/lua-utf8.hash HashSpaces package/lua-valua/lua-valua.hash HashSpaces package/lua-zlib/lua-zlib.hash HashSpaces +package/lua/lua.mk DoNotInstallToHostdirUsr package/luadbi-sqlite3/luadbi-sqlite3.hash HashSpaces package/luadbi/luadbi.hash HashSpaces package/luaexpatutils/luaexpatutils.hash HashSpaces @@ -564,10 +576,12 @@ package/obsidian-cursors/obsidian-cursors.hash HashSpaces package/ocrad/ocrad.hash HashSpaces package/odb/odb.hash HashSpaces package/ofono/S46ofono Variables +package/ola/ola.mk DoNotInstallToHostdirUsr package/olsr/S50olsr Indent Shellcheck Variables package/olsr/olsr.hash HashSpaces package/omxplayer/omxplayer.hash HashSpaces package/opencore-amr/opencore-amr.hash HashSpaces +package/openjdk-bin/openjdk-bin.mk DoNotInstallToHostdirUsr package/openmpi/openmpi.hash HashSpaces package/openntpd/S49ntp Shellcheck Variables package/openobex/openobex.hash HashSpaces @@ -660,7 +674,11 @@ package/perl-xml-libxml/perl-xml-libxml.hash HashSpaces package/perl-xml-namespacesupport/perl-xml-namespacesupport.hash HashSpaces package/perl-xml-sax-base/perl-xml-sax-base.hash HashSpaces package/perl-xml-sax/perl-xml-sax.hash HashSpaces +package/php-apcu/php-apcu.mk DoNotInstallToHostdirUsr +package/php-lua/php-lua.mk DoNotInstallToHostdirUsr +package/php-pam/php-pam.mk DoNotInstallToHostdirUsr package/php-pecl-dbus/php-pecl-dbus.hash HashSpaces +package/php-pecl-dbus/php-pecl-dbus.mk DoNotInstallToHostdirUsr package/physfs/physfs.hash HashSpaces package/picocom/picocom.hash HashSpaces package/pigpio/S50pigpio Shellcheck Variables @@ -703,6 +721,7 @@ package/python-cherrypy/python-cherrypy.hash HashSpaces package/python-constantly/python-constantly.hash HashSpaces package/python-couchdb/python-couchdb.hash HashSpaces package/python-crcmod/python-crcmod.hash HashSpaces +package/python-cryptography/python-cryptography.mk DoNotInstallToHostdirUsr package/python-cssselect/python-cssselect.hash HashSpaces package/python-daemonize/python-daemonize.hash HashSpaces package/python-daphne/python-daphne.hash HashSpaces @@ -750,6 +769,7 @@ package/python-piexif/python-piexif.hash HashSpaces package/python-ply/python-ply.hash HashSpaces package/python-portend/python-portend.hash HashSpaces package/python-pyaes/python-pyaes.hash HashSpaces +package/python-pybind/python-pybind.mk DoNotInstallToHostdirUsr package/python-pyicu/python-pyicu.hash HashSpaces package/python-pylibftdi/python-pylibftdi.hash HashSpaces package/python-pyqrcode/python-pyqrcode.hash HashSpaces @@ -806,6 +826,7 @@ package/rcw-smarc-sal28/rcw-smarc-sal28.hash HashSpaces package/rdesktop/0001-8bit-colors.patch Sob package/reaver/reaver.hash HashSpaces package/redis/S50redis Shellcheck Variables +package/refpolicy/refpolicy.mk DoNotInstallToHostdirUsr package/restorecond/S02restorecond Shellcheck package/rings/rings.hash HashSpaces package/ripgrep/ripgrep.hash HashSpaces @@ -1018,6 +1039,7 @@ package/xl2tp/xl2tpd TrailingSpace package/xmlstarlet/xmlstarlet.hash HashSpaces package/xutil_util-macros/xutil_util-macros.hash HashSpaces package/yad/yad.hash HashSpaces +package/zfs/zfs.mk DoNotInstallToHostdirUsr package/zip/zip.hash HashSpaces package/zmqpp/zmqpp.hash HashSpaces package/zxing-cpp/zxing-cpp.hash HashSpaces diff --git a/utils/checkpackagelib/lib_mk.py b/utils/checkpackagelib/lib_mk.py index b50a19ac62..eaef19b2ec 100644 --- a/utils/checkpackagelib/lib_mk.py +++ b/utils/checkpackagelib/lib_mk.py @@ -21,6 +21,18 @@ continue_conditional = ["elif", "else"] end_conditional = ["endif"] +class DoNotInstallToHostdirUsr(_CheckFunction): + INSTALL_TO_HOSTDIR_USR = re.compile(r"^[^#].*\$\(HOST_DIR\)/usr") + + def check_line(self, lineno, text): + if self.INSTALL_TO_HOSTDIR_USR.match(text.rstrip()): + if self.filename in ['package/skeleton/skeleton.mk']: + return + return ["{}:{}: install files to $(HOST_DIR)/ instead of $(HOST_DIR)/usr/" + .format(self.filename, lineno), + text] + + class Indent(_CheckFunction): COMMENT = re.compile(r"^\s*#") CONDITIONAL = re.compile(r"^\s*({})\s".format("|".join(start_conditional + end_conditional + continue_conditional))) diff --git a/utils/checkpackagelib/test_lib_mk.py b/utils/checkpackagelib/test_lib_mk.py index 49fa216fcd..db6641f14c 100644 --- a/utils/checkpackagelib/test_lib_mk.py +++ b/utils/checkpackagelib/test_lib_mk.py @@ -3,6 +3,29 @@ import checkpackagelib.test_util as util import checkpackagelib.lib_mk as m +DoNotInstallToHostdirUsr = [ + ('real case', + 'libapparmor.mk', + 'LIBAPPARMOR_CONF_OPTS += \\\n' + '\t--with-python \\\n' + '\tPYTHON=$(HOST_DIR)/usr/bin/python3 \\\n' + '\tPYTHON_CONFIG=$(STAGING_DIR)/usr/bin/python3-config \\\n' + '\tSWIG=$(SWIG)\n', + [['libapparmor.mk:3: install files to $(HOST_DIR)/ instead of $(HOST_DIR)/usr/', + '\tPYTHON=$(HOST_DIR)/usr/bin/python3 \\\n']]), + ('ignore comment', + 'any', + '# following code do not install to $(HOST_DIR)/usr/\n', + []), + ] + + +@pytest.mark.parametrize('testname,filename,string,expected', DoNotInstallToHostdirUsr) +def test_DoNotInstallToHostdirUsr(testname, filename, string, expected): + warnings = util.check_file(m.DoNotInstallToHostdirUsr, filename, string) + assert warnings == expected + + Indent = [ ('ignore comment at beginning of line', 'any',