From patchwork Sun Jun 3 09:08:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 924701 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=free.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="smoEwLrS"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40zC0g6tYKz9s0x for ; Sun, 3 Jun 2018 19:08:35 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id F0DAF884F6; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l3XwoBy-I9hb; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 7F217884E4; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 628C51C0000 for ; Sun, 3 Jun 2018 09:08:26 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 5FD0E89779 for ; Sun, 3 Jun 2018 09:08:26 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gELj+M+WTfT1 for ; Sun, 3 Jun 2018 09:08:26 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f174.google.com (mail-wr0-f174.google.com [209.85.128.174]) by hemlock.osuosl.org (Postfix) with ESMTPS id BFBEC89771 for ; Sun, 3 Jun 2018 09:08:25 +0000 (UTC) Received: by mail-wr0-f174.google.com with SMTP id o12-v6so9050327wrm.12 for ; Sun, 03 Jun 2018 02:08:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=Tnqsd/oTDYnv+O5zvR4TeaqEohB1Odk12JTmGP78Qxo=; b=smoEwLrSrpcrBhohTVC6EoWlxemAxRUZyevswunpfiROxhdhS0pCGDVgAZ10QsV+ls T+Bu3rHSkLJrrOFDj/Q5zrKu3BJ3BdnPDJB76zgPEkj60uazQDI2ma9JAOijUvJheqM6 2vPqS9l93mEYYcJHalHNoFAJTjKEcoQ350axFken/JaaQOqhD0mGNQiHyerrlHBWHtWV zP+3oen72AvbaAHWpW0puVp2UFU6XP2tQw8J3oaytvLZJmSQjg8Ng0afux+UipT2UO8X IyNj0lXUZbqdQ/Q+ZpY0DqRjQxg+9y2WKzLc3n+ZWERrnkSiV02+//2HCw09J3eh7SLe fXtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=Tnqsd/oTDYnv+O5zvR4TeaqEohB1Odk12JTmGP78Qxo=; b=kZ/gGpeN7DV3FqV3tCFqKDC3BNrgp9Q7lPzNer7gSAGpfa66Byqy7ybTFdABkKsksT tfewlUf0XyQQa22kqvH0dSlVXD6BmM4KukEvuzyacVgGK9Qx+cBsxm6zHvf+MwNyHUpM 7RLi67f1cmRxiCrM5vDI+ki/dLRhS/it0e8L5m6uiOWvayEPVxhfVthjqK8MpbRJxgQ9 AQBMJ7GKndIEpqXEMxN5hrKfKBknEB/MU8KHHSyN/FPHCTGG6B3lICVj8fLlndkJxGHd qmbEBNLKWLMF2qsDdI5pnQhJGTSkfWhNZ5cIqibxfMfKzr+obAZ0DdmzYZ4U3XIW/h1l IHWQ== X-Gm-Message-State: ALKqPwdjuUO9h7g9IulW64wIit2VAvYE3Reh4DtRpeKNbSHp0Vmcq5n4 Gp7XNXwKrSs5PE9dWuSsrXyspA== X-Google-Smtp-Source: ADUXVKIDfsruKBYlWxcjEeh6BLTHSaAk8HmAnJyb7SFL2EZtIfVywPYNUILNtgVE5JKZZljs3gB1lA== X-Received: by 2002:adf:99a7:: with SMTP id y36-v6mr12888351wrb.64.1528016904154; Sun, 03 Jun 2018 02:08:24 -0700 (PDT) Received: from scaer.bzh.lan (2a01cb0886107300d539cb71123e92f9.ipv6.abo.wanadoo.fr. [2a01:cb08:8610:7300:d539:cb71:123e:92f9]) by smtp.gmail.com with ESMTPSA id q17-v6sm4476704wrs.5.2018.06.03.02.08.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jun 2018 02:08:23 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 3 Jun 2018 11:08:18 +0200 Message-Id: <474022096f189332bf42c3da6e299b85f252efed.1528016895.git.yann.morin.1998@free.fr> X-Mailer: git-send-email 2.14.1 In-Reply-To: References: Subject: [Buildroot] [PATCH 1/5] support/docker: run apt-get update and apt-get install in two RUNs X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 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 MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" In commit 7517aef4d (support/docker: limit the number of layers), we reduced the number of layers by coalescing multiple RUN commands into less commands. In doing so, we especially coalesced "apt-get update" with "apt-get install". However, the distribution we used is a pinned version of stretch, so we know that running apt-get update will always yield the same apt database. If we split the two apt-get commands, then we can re-use any local intermediate image when we need to update the list of packages to install; this helps quite a bit when testing the docker files over and over again, with just slight variants in the packages list. Signed-off-by: "Yann E. MORIN" Cc: Ricardo Martincoski Cc: Peter Korsgaard Reviewed-by: Ricardo Martincoski --- support/docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/support/docker/Dockerfile b/support/docker/Dockerfile index f01ac25f93..8c525f7cf1 100644 --- a/support/docker/Dockerfile +++ b/support/docker/Dockerfile @@ -20,8 +20,8 @@ COPY apt-sources.list /etc/apt/sources.list # The container has no package lists, so need to update first RUN dpkg --add-architecture i386 && \ - apt-get update -y && \ - apt-get install -y --no-install-recommends \ + apt-get update -y +RUN apt-get install -y --no-install-recommends \ build-essential cmake libc6:i386 g++-multilib \ bc ca-certificates file locales rsync \ cvs bzr git mercurial subversion wget \ From patchwork Sun Jun 3 09:08:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 924700 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=free.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="cJsVmsFD"; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40zC0c5j9fz9s0x for ; Sun, 3 Jun 2018 19:08:32 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id D935A89771; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bD1ji5GCfpq3; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 38E8689785; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id C9D131C0000 for ; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id C785489779 for ; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pkWrTa+R3t1I for ; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f171.google.com (mail-wr0-f171.google.com [209.85.128.171]) by hemlock.osuosl.org (Postfix) with ESMTPS id 17B2289771 for ; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) Received: by mail-wr0-f171.google.com with SMTP id d2-v6so24652528wrm.10 for ; Sun, 03 Jun 2018 02:08:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=EocG+RnDEteLpcUpcgcXQAW2pYour9Z8XlYVAG8oiDY=; b=cJsVmsFDfCDL1C6B9gmdW6UKZFsnjB2BbhChKWM2N9fWSdDODryTNydyMG+dS0VGuK VDt5mbDv7mIyKrfDE0VpT2reZDV56fuHb3cg4C13A0CqOrt/NhYoSxjcX9HblNLllcUk F4MRZ7+WRH0iEvgGvnsmD6dwL9gTsu8MUKchNCPK70SGi9fDvSc+Zp9pAr2RQ0NukbIn cH540uPHhM4y0qO9aw2qoXzjPncl5otIzcmAU7I0I4Wfhic/78C6qMUKRjnI7H0cUlEo +ddbqJdt93rQUh/TgwJAGoeHdntJfUrnThzL/LKS+WGJDjQD+c1hk1avJE4ZF9Xg5v9M wSPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=EocG+RnDEteLpcUpcgcXQAW2pYour9Z8XlYVAG8oiDY=; b=LN24vwBREWTMppnwb7q7etw7DRXaNSS9GjzUTWHzRUgus+yM+bquyWq1hl+B7DzmZ9 Dc5gi6qONe35bplK+LF+uS/BV/ua/maAQhXJeXvJBw1eF53i4pDWfbTXD0zm4WqJ/J1o XNsHpd+j0Sh2kWmIkkAS4UItaQvylooKnYQfFW3hbQz5Uq+ZGNgxzf/dRHx9Knpua1Zd p0zG8Wjjp3jFBIcTzkuSGaANAuABDPQIXh7pxB4ePQc9Npb6P5HnXkQINZds48YisbRc PuypVUhp196jEvSLoTq/aRjZl24ONUaX0VDoDfBsz/9zmCFVPBYiaZIuN4w9qevdxlBg HrVQ== X-Gm-Message-State: ALKqPwedJrm6vM4XGKbn8ERxbt4A7HfYjBLnxE5eXcD8iJKpOju9eRg+ aetT8psGY4rr4JDshuCgm6pcKg== X-Google-Smtp-Source: ADUXVKIkXKVTqIekd/7QZ7Gict9gNvP6qEse+RVL2NZqJUd1CMVqeXH3/LDpJW5Ppobc7Cq011Avlw== X-Received: by 2002:adf:90cd:: with SMTP id i71-v6mr13102324wri.136.1528016905254; Sun, 03 Jun 2018 02:08:25 -0700 (PDT) Received: from scaer.bzh.lan (2a01cb0886107300d539cb71123e92f9.ipv6.abo.wanadoo.fr. [2a01:cb08:8610:7300:d539:cb71:123e:92f9]) by smtp.gmail.com with ESMTPSA id q17-v6sm4476704wrs.5.2018.06.03.02.08.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jun 2018 02:08:24 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 3 Jun 2018 11:08:19 +0200 Message-Id: <49308956156142d6dab6b7917fcd8429f155ffa5.1528016895.git.yann.morin.1998@free.fr> X-Mailer: git-send-email 2.14.1 In-Reply-To: References: Subject: [Buildroot] [PATCH 2/5] support/docker: sort the list of installed packages X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 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 MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" As suggested in the docker best practices [0], order the package list alphabetically, and list only one package per line. This will be much usefull later, we need to update the list of installed packages, like adding new ones for example. [0] https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#sort-multi-line-arguments Signed-off-by: "Yann E. MORIN" Cc: Ricardo Martincoski --- Changes v1 -> v2: - don't drop python-pip yet (Ricardo) --- support/docker/Dockerfile | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/support/docker/Dockerfile b/support/docker/Dockerfile index 8c525f7cf1..fe9e643a34 100644 --- a/support/docker/Dockerfile +++ b/support/docker/Dockerfile @@ -22,13 +22,29 @@ COPY apt-sources.list /etc/apt/sources.list RUN dpkg --add-architecture i386 && \ apt-get update -y RUN apt-get install -y --no-install-recommends \ - build-essential cmake libc6:i386 g++-multilib \ - bc ca-certificates file locales rsync \ - cvs bzr git mercurial subversion wget \ - cpio unzip \ + bc \ + build-essential \ + bzr \ + ca-certificates \ + cpio \ + cvs \ + file \ + g++-multilib \ + git \ + libc6:i386 \ libncurses5-dev \ - python-nose2 python-pexpect qemu-system-arm qemu-system-x86 \ - python-pip && \ + locales \ + mercurial \ + python-nose2 \ + python-pexpect \ + python-pip \ + qemu-system-arm \ + qemu-system-x86 \ + rsync \ + subversion \ + unzip \ + wget \ + && \ apt-get -y autoremove && \ apt-get -y clean From patchwork Sun Jun 3 09:08:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 924703 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=free.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Y/2hgPbV"; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40zC0m0CGvz9s0x for ; Sun, 3 Jun 2018 19:08:39 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 7B328228C2; Sun, 3 Jun 2018 09:08:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5u2fPGWjb9wV; Sun, 3 Jun 2018 09:08:33 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 3DCB1227CD; Sun, 3 Jun 2018 09:08:33 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 58A4B1C0000 for ; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 36CBD88506 for ; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eq8eHlApKQd7 for ; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr0-f194.google.com (mail-wr0-f194.google.com [209.85.128.194]) by whitealder.osuosl.org (Postfix) with ESMTPS id E3261884CC for ; Sun, 3 Jun 2018 09:08:27 +0000 (UTC) Received: by mail-wr0-f194.google.com with SMTP id d2-v6so24652551wrm.10 for ; Sun, 03 Jun 2018 02:08:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=MhXV3wajCbz6e0ZO+iwt6Wo+B/LF5k7nFXauUXiQ+cY=; b=Y/2hgPbViufxe3g8wnHPOiVWqjuDPcVU82cZG5FQZSWYClKjbzl4UZhGY2vCv9UMtz bcMNBhG4lNmjIQ54A91XU5nTrWxWk/5hEyIA7bDcYvPw0Q66JdtDuOZnMWzAaVYKPAAM vFjREHbBIW9ItH4JkD6J5be28KmZGfQDkOtdbLLNv3bzE3WiOFzVck5U5lBWkG9O/TNz WBJstm5R9HLQ7qj/Zr2cKLJz9d9HAtAyRa4pH94Yvx6a0D/vsETdfDztTt4Akmf3iKxQ NF/4e+h4vaZdFHdAcJYuWUd9RphkidE0ti+1JU+WZtV3QlQh7+0yeDFN6kEG2eNkazf6 UKjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=MhXV3wajCbz6e0ZO+iwt6Wo+B/LF5k7nFXauUXiQ+cY=; b=YbHE8NKCxFFmjV0UtV0l0xgTydzkF7mdqlfVXYVRz7Etg5zxPiAVvDJAXesJjRroCr fj+ozFifNLEkd4Ps8fAiYZWQHHr6BLSbGA7t4B1RdEOWlRS3+dwMxC5zko2ZGFnuWbHg nheNfUvvTNBP/iIawBRJ6MdwUJiXUAI3+04E6IzMUNTwkbgbEeBOchEPmBmd4HYhhXBI UfObYEQccjZ/vp0c81UyXZFCyiGldVEbelxbXqIXTWepAKbmICifwSCl2zR3DGeA4jEI DohScxWW0q3Rd85VxUIY7MxBVKtMZM9f2Df3TIecK+AQCoHERHB7E0uvkZjAweP0tAMk S3QQ== X-Gm-Message-State: ALKqPwcdpaLlgr0pJee2UWOQab1zic/p4TxuJiEnvftharX4WUGTkTiK v2XdwDxNmhx4b+bQY1FjM2LC9Q== X-Google-Smtp-Source: ADUXVKIudaWWYESMhki4n4iBcMyh0b6iV/+g0uEb51Y2ez4otEQ071qnCzUngg0mQ6yvjPBXyyd/7Q== X-Received: by 2002:adf:d204:: with SMTP id g4-v6mr13103924wri.229.1528016906243; Sun, 03 Jun 2018 02:08:26 -0700 (PDT) Received: from scaer.bzh.lan (2a01cb0886107300d539cb71123e92f9.ipv6.abo.wanadoo.fr. [2a01:cb08:8610:7300:d539:cb71:123e:92f9]) by smtp.gmail.com with ESMTPSA id q17-v6sm4476704wrs.5.2018.06.03.02.08.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jun 2018 02:08:25 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 3 Jun 2018 11:08:20 +0200 Message-Id: X-Mailer: git-send-email 2.14.1 In-Reply-To: References: Subject: [Buildroot] [PATCH 3/5] support/docker: use the distro-provided flake8 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 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 MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Currently, we install flake8 and its dependencies via pip. We tried to be reproducible by pinning the version of those python packages, but we did forget quite a few of them, and thus some dependencies for flake8 are installed as uncontrolled versions. Furthermore, before we install flake8 and its dependencies, we forcibly update pip, setuptools, and wheels packages to their latest versions. This explicitly breaks reproducibility. While we could enforce a specific version of all those packages and still grab them from PyPI, we can simply grab them from the distribution-provided packages instead. Since we're using a pinned version of stretch, this already guarantees we'll reproducibly get the same versions over and over again. Besides, we just need to list flake8 as a package to install to automatically get all its dependencies (again, in a reproducible way). This has the slight unfortunate drawback of downgrading flake8 to version 3.2.1, from version 3.5.0, as well as downgrading a few of flake8's dependencies, as noticed by Ricardo: http://lists.busybox.net/pipermail/buildroot/2018-May/222376.html However, as Ricardo said, there isn't "any serious limitation of this old version, the release notes for a version in the between mentions 'Dramatically improve the performance' but we have a limited number of scripts and running on Gitlab for all of them still takes less than 5 minutes". Signed-off-by: "Yann E. MORIN" Cc: Ricardo Martincoski Acked-by: Ricardo Martincoski --- Changes v1 -> v2: - improve commit log to mention downgrading of flake8 (Ricardo) - correctly use python2's version of flake8, not python3's (Ricardo) - fix typoes (Ricardo) --- support/docker/Dockerfile | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/support/docker/Dockerfile b/support/docker/Dockerfile index fe9e643a34..8d40aeecdf 100644 --- a/support/docker/Dockerfile +++ b/support/docker/Dockerfile @@ -35,9 +35,9 @@ RUN apt-get install -y --no-install-recommends \ libncurses5-dev \ locales \ mercurial \ + python-flake8 \ python-nose2 \ python-pexpect \ - python-pip \ qemu-system-arm \ qemu-system-x86 \ rsync \ @@ -48,14 +48,6 @@ RUN apt-get install -y --no-install-recommends \ apt-get -y autoremove && \ apt-get -y clean -# For check-flake8 -RUN python -m pip install --upgrade pip setuptools wheel && \ - pip install -q \ - flake8==3.5.0 \ - mccabe==0.6.1 \ - pycodestyle==2.3.1 \ - pyflakes==1.6.0 - # To be able to generate a toolchain with locales, enable one UTF-8 locale RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen && \ /usr/sbin/locale-gen From patchwork Sun Jun 3 09:08:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 924702 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=free.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="KvVyYcTF"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40zC0h4TNqz9s1R for ; Sun, 3 Jun 2018 19:08:36 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id D566D88575; Sun, 3 Jun 2018 09:08:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FlTIy+dLbAra; Sun, 3 Jun 2018 09:08:32 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id DE98D884D3; Sun, 3 Jun 2018 09:08:31 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id D483C1C0000 for ; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id CFFBB227CD for ; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RNF5ouEbwMqC for ; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48]) by silver.osuosl.org (Postfix) with ESMTPS id 0C27522728 for ; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) Received: by mail-wm0-f48.google.com with SMTP id p126-v6so1103717wmb.2 for ; Sun, 03 Jun 2018 02:08:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=1O1DmiT9EW8Api/bSoYf7yUW/Cv2qXeb3Mv0QLJxfRQ=; b=KvVyYcTFttaHlBLOh1nY/G4C46TpGtXwsW+OrqL967tP205GhMAOTz9EnfAZ9CSNwQ 7SGqB9AsOne1eKT2tPWCB3ZutPoDEmR3D39A63io3YjNHuNb1be4L6QPRJ0H81pav0Xr OtHdCkeA0BS/favZ4X/T2LKR1/0WY4pSUy2LzoVapKYRfYALXSfLPLvbV7A6yE/I5wCx yVs/Mn08bS/beqzkG8nBPgOg5dQJyE6KqeKo5nwBo4SQTHaihsgvO6rVoPAOIQ7z9EQr gtIpL5HA0hxBvfqmFFDahpD2YLcElO+SbZzmZyPK61KRQOtXeV4RcaXortxqdu58XAEd oGkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=1O1DmiT9EW8Api/bSoYf7yUW/Cv2qXeb3Mv0QLJxfRQ=; b=B5ln9Bh9bwVq2kYjfTxFom4use3wHnk/ZK20PgoLANyEV+CYy9d2RoIY2bALp7bdIC MzZC9TiDQ4rWj/vxKLN+1HNb76T8Y0VX6V0x04mG3PNnXlfqyqJTSD2Lao3dJdBRIj9x w60/IUpGnqCzn+MrqnEsGDVIfiSxS5QeoyfnbdDXr5kl8wXvjYVRg2OgmztnyRXQksF2 zcDh2rZaittZez0qoX22hnFrUAE0g/ot2muu3R772+5QBgcZ4YMngOirFACMPjtwV5U3 iKa4ywsAOa5WnK0EyNVri8ESiTnQd0Ab4ivoWSMHWjYVA20sWYX08Jb76IOZVra7nEX+ shfA== X-Gm-Message-State: ALKqPwdvRoBuPooNG///OxUCNe6M+z0M2SgCTB2Mo6PB4c3knto+3CYB n48MB102BZqEJk4UlaFHCbpCoA== X-Google-Smtp-Source: ADUXVKKVd8Nb5h3Gav+ElRx6QpT94Txp29x0q49RqrTkuqp/Jxmuq8acv0Oh0+lKxlf7lYMRwwdQJA== X-Received: by 2002:a1c:aac3:: with SMTP id t186-v6mr6614638wme.14.1528016907372; Sun, 03 Jun 2018 02:08:27 -0700 (PDT) Received: from scaer.bzh.lan (2a01cb0886107300d539cb71123e92f9.ipv6.abo.wanadoo.fr. [2a01:cb08:8610:7300:d539:cb71:123e:92f9]) by smtp.gmail.com with ESMTPSA id q17-v6sm4476704wrs.5.2018.06.03.02.08.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jun 2018 02:08:26 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 3 Jun 2018 11:08:21 +0200 Message-Id: <2ae621feecea77223421234eaef0de7032c841d1.1528016895.git.yann.morin.1998@free.fr> X-Mailer: git-send-email 2.14.1 In-Reply-To: References: Subject: [Buildroot] [PATCH 4/5] support/testing: fix python syntax X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 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 MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Fix three issues with code style in our test infra: - 'print' is now a function, - exceptions need to be caught-assigned with the 'as' keyword, - old-style "%s"%() formatting is deprecated. Signed-off-by: "Yann E. MORIN" Cc: Ricardo Martincoski --- Changes v1 -> v2: - this was previously caught because of a spurious switch to python3-flake8, as noticed by Ricardo. We're now back to using python-flake8, so the rationale has changed. Still, we do want to fix those because it makes sense anyway. --- support/testing/infra/__init__.py | 6 +++--- support/testing/infra/basetest.py | 4 ++-- support/testing/run-tests | 26 +++++++++++++------------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/support/testing/infra/__init__.py b/support/testing/infra/__init__.py index b03e891771..b0f28de450 100644 --- a/support/testing/infra/__init__.py +++ b/support/testing/infra/__init__.py @@ -34,17 +34,17 @@ def download(dldir, filename): os.makedirs(dldir) tmpfile = tempfile.mktemp(dir=dldir) - print "Downloading to {}".format(tmpfile) + print("Downloading to {0}".format(tmpfile)) try: url_fh = urlopen(os.path.join(ARTIFACTS_URL, filename)) with open(tmpfile, "w+") as tmpfile_fh: tmpfile_fh.write(url_fh.read()) - except (HTTPError, URLError), err: + except (HTTPError, URLError) as err: os.unlink(tmpfile) raise err - print "Renaming from %s to %s" % (tmpfile, finalpath) + print("Renaming from {0} to {1}".format(tmpfile, finalpath)) os.rename(tmpfile, finalpath) return finalpath diff --git a/support/testing/infra/basetest.py b/support/testing/infra/basetest.py index f3f13ad97f..82756afefd 100644 --- a/support/testing/infra/basetest.py +++ b/support/testing/infra/basetest.py @@ -46,8 +46,8 @@ class BRTest(unittest.TestCase): self.config += "\nBR2_JLEVEL={}\n".format(self.jlevel) def show_msg(self, msg): - print "{} {:40s} {}".format(datetime.datetime.now().strftime("%H:%M:%S"), - self.testname, msg) + print("{0} {1:40s} {2}".format(datetime.datetime.now().strftime("%H:%M:%S"), + self.testname, msg)) def setUp(self): self.show_msg("Starting") diff --git a/support/testing/run-tests b/support/testing/run-tests index 270e78cff7..76dd15e9f0 100755 --- a/support/testing/run-tests +++ b/support/testing/run-tests @@ -41,7 +41,7 @@ def main(): BRTest.logtofile = False if args.list: - print "List of tests" + print("List of tests") nose2.discover(argv=[script_path, "-s", test_dir, "-v", @@ -52,16 +52,16 @@ def main(): if args.download is None: args.download = os.getenv("BR2_DL_DIR") if args.download is None: - print "Missing download directory, please use -d/--download" - print "" + print("Missing download directory, please use -d/--download") + print("") parser.print_help() return 1 BRTest.downloaddir = os.path.abspath(args.download) if args.output is None: - print "Missing output directory, please use -o/--output" - print "" + print("Missing output directory, please use -o/--output") + print("") parser.print_help() return 1 @@ -71,8 +71,8 @@ def main(): BRTest.outputdir = os.path.abspath(args.output) if args.all is False and len(args.testname) == 0: - print "No test selected" - print "" + print("No test selected") + print("") parser.print_help() return 1 @@ -80,8 +80,8 @@ def main(): if args.testcases != 1: if args.testcases < 1: - print "Invalid number of testcases to run simultaneously" - print "" + print("Invalid number of testcases to run simultaneously") + print("") parser.print_help() return 1 # same default BR2_JLEVEL as package/Makefile.in @@ -93,16 +93,16 @@ def main(): if args.jlevel: if args.jlevel < 0: - print "Invalid BR2_JLEVEL to use for each testcase" - print "" + print("Invalid BR2_JLEVEL to use for each testcase") + print("") parser.print_help() return 1 # the user can override the auto calculated value BRTest.jlevel = args.jlevel if args.timeout_multiplier < 1: - print "Invalid multiplier for timeout values" - print "" + print("Invalid multiplier for timeout values") + print("") parser.print_help() return 1 BRTest.timeout_multiplier = args.timeout_multiplier From patchwork Sun Jun 3 09:08:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 924704 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=free.fr Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="UFLXKEcU"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40zC0n4LQ3z9s0x for ; Sun, 3 Jun 2018 19:08:41 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 29762885CC; Sun, 3 Jun 2018 09:08:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RuYzstiLWzt5; Sun, 3 Jun 2018 09:08:34 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id E089F88589; Sun, 3 Jun 2018 09:08:33 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id B34411C0000 for ; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id B0900897B5 for ; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qba8842QiQ7d for ; Sun, 3 Jun 2018 09:08:30 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by hemlock.osuosl.org (Postfix) with ESMTPS id D952589771 for ; Sun, 3 Jun 2018 09:08:29 +0000 (UTC) Received: by mail-wm0-f68.google.com with SMTP id x6-v6so3387418wmc.3 for ; Sun, 03 Jun 2018 02:08:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=xbafrzY7tzSRt8O/em5ZiG6nK8/iDw+tvXT4BP1sWsY=; b=UFLXKEcUdzX4Pac5gtTYdFoE6Qq/p02Zxj85yYSqPqtz/YfIx+5K4X+zaS7zZrnPkv hYZ6u0lVkuOpzSeeaHrzQm4jiroN7Jjp5BbymDrhy7X5tt3aXAwCdduMdzN+//MjBtR3 fTRxF32IXTgYwLnUttrIYx1vf9oV2Zf8+TANkdR/GgKe0wnb2f5z1fxNJClEaYDus3Es BQJt556W5yV+7hUWzg3s3kIPIJaFi1wXzjXQuOCEXIJ6oV5lJuOJK3I9TJlNXh8dyPB/ A1dz0mn8uvfQRvdyzrXJByrnKvqsMiHEyjG6tJBNFzUe+W27iy0g+LpfUkXx6cb094rR BDhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=xbafrzY7tzSRt8O/em5ZiG6nK8/iDw+tvXT4BP1sWsY=; b=IsU3bs9tj9I6AahwM33sZ/dbje04syqxXXKX+jjuwp2zzTcncjyLOcpT9pTDas6Z/G wvjc/gtoXuZozoO14h6XfkaERyxG6Ig2RVUbzGg87Uk53+vJQQij3s+SLcimSZ1ZCj18 tlpK4nl8VPZKNQAOPzBGU0TCz9VL4bWfi44HA95oUw8d5cNvHf1gvL3uP89gZDyBZXPO vidrisj4utRcAKisBH7QqhFxSTQ/giJqUGfOqxv1wKx58WYDIZKyCAleu3rs+Q21g5kg wjM5xiAjEL0XCCDvxiPtD0sYbor5/tcdviSBNN6KQMiy1QnMVz20pKaiErKoDRHybAmb ZG0Q== X-Gm-Message-State: ALKqPwdOICJBS23rjOACMhqCAij/oh/61n0thxYPYfPETjUIs6A1Yifs uYaJe2etBfKrYD+72Hqhb5BlgQ== X-Google-Smtp-Source: ADUXVKLPt+h1PYYFbM7jD5JpG+vJE/1B9Wwd7s4rNm9h3UZPtQNKQJkgzFUGDPrHtkGVHRChhHGK3w== X-Received: by 2002:a1c:42d7:: with SMTP id k84-v6mr6309602wmi.159.1528016908209; Sun, 03 Jun 2018 02:08:28 -0700 (PDT) Received: from scaer.bzh.lan (2a01cb0886107300d539cb71123e92f9.ipv6.abo.wanadoo.fr. [2a01:cb08:8610:7300:d539:cb71:123e:92f9]) by smtp.gmail.com with ESMTPSA id q17-v6sm4476704wrs.5.2018.06.03.02.08.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jun 2018 02:08:27 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 3 Jun 2018 11:08:22 +0200 Message-Id: X-Mailer: git-send-email 2.14.1 In-Reply-To: References: Subject: [Buildroot] [PATCH 5/5] support/docker: update to python3-flavoured flake8 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 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 MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" We are currently using python2-flavoured flake8, but the way to the future is with python3. Besides, the python3-flavoured flake8 catches more problems. So, we leap into the future and switch to using python3's flake8. Future, here we come! ;-) Signed-off-by: "Yann E. MORIN" Cc: Ricardo Martincoski --- .gitlab-ci.yml | 2 +- .gitlab-ci.yml.in | 2 +- support/docker/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e80491cdde..4e111b48bd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,7 +37,7 @@ check-flake8: - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt - sort -u files.txt | tee files.processed script: - - python -m flake8 --statistics --count $(cat files.processed) + - python3 -m flake8 --statistics --count $(cat files.processed) after_script: - wc -l files.processed diff --git a/.gitlab-ci.yml.in b/.gitlab-ci.yml.in index fb2650c5ce..bfe1eeccec 100644 --- a/.gitlab-ci.yml.in +++ b/.gitlab-ci.yml.in @@ -37,7 +37,7 @@ check-flake8: - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt - sort -u files.txt | tee files.processed script: - - python -m flake8 --statistics --count $(cat files.processed) + - python3 -m flake8 --statistics --count $(cat files.processed) after_script: - wc -l files.processed diff --git a/support/docker/Dockerfile b/support/docker/Dockerfile index 8d40aeecdf..57c9ef78fa 100644 --- a/support/docker/Dockerfile +++ b/support/docker/Dockerfile @@ -29,13 +29,13 @@ RUN apt-get install -y --no-install-recommends \ cpio \ cvs \ file \ + flake8 \ g++-multilib \ git \ libc6:i386 \ libncurses5-dev \ locales \ mercurial \ - python-flake8 \ python-nose2 \ python-pexpect \ qemu-system-arm \