From patchwork Fri Dec 14 01:08:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 153704 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp1494852ljp; Thu, 13 Dec 2018 17:09:40 -0800 (PST) X-Google-Smtp-Source: AFSGD/UXzxjDrOEp7riYgEIX6qU2V/0Rm/SDqbAzWkARPPXg6vONHUGGl/CE3pp4orFiODpRds1n X-Received: by 2002:a62:6cc8:: with SMTP id h191mr968097pfc.89.1544749780081; Thu, 13 Dec 2018 17:09:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544749780; cv=none; d=google.com; s=arc-20160816; b=dDyc/zdXKmGOmm1JeLQ9xYDvl55Cz5NgFHZRqbL3410Jkg39fAows/02rEDEo85N7Q Ypaq6ynxovxx7kRNZTKlPrg8Ohb9cT6QkPPrVPCt/p368X+WGviNa0t+NkNNpP6eUWTD hy07fhIdX7v/1W4OkKW3L+WA9Y/xcU8a2pNhUC7vxIES4YQOt95nXzmxAMl2l8UUkiO+ RZTkzBM9PQk2Sxbq/NRt1/tugEFCjX4UZqP0cIMClYVgAybZlpj5jrOhYgToIWa6D7OT qVRoNoDkS+aQ1JARZ3bKIIDsIEGHtay8DkzC8C15AQGFQKT2FAdAKKLaALQZEfxbOyQo bKgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=3pVFW498aYd3Gj9JBX7wQDBVgzCsdsEhQ42iSGhI+B8=; b=0EIt7do1NZj2tmj4caR53thUQa2nBDG6YsXp8X5/G+SvIYZ0uQD1mTxh1uHz1t6LF3 NMhMs5k+CSgU2ZgMCi1eJv/KPaRTezqLbKXFq+QhQ/jNkoh1dZ4G3wzxis3P8kSR4Qx/ LykZDLs/2TJ0buGOBTos8PGYc9ls8/BvX2l/y9B/N0rYSWs2VZB0iJV62PIRABi4vYMH txarcTf2AFgf5bhaR6uiVVSBBlG105DiIor0iT/cCjzGoRygKrIR5mRcDMmgPbPiY9qs m2LO15pPWrykEi37Qkr1LcuFHBMDd0XjJNU6ORHYKnVs/vo1aRgtEK6iaTtUqIt/j53F olCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=Z2k1xUtB; spf=pass (google.com: best guess record for domain of openembedded-core-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-core-bounces@lists.openembedded.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from mail.openembedded.org (mail.openembedded.org. [140.211.169.62]) by mx.google.com with ESMTP id 3si2819508plq.138.2018.12.13.17.09.39; Thu, 13 Dec 2018 17:09:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of openembedded-core-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) client-ip=140.211.169.62; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=Z2k1xUtB; spf=pass (google.com: best guess record for domain of openembedded-core-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-core-bounces@lists.openembedded.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from 165.28.230.35.bc.googleusercontent.com (localhost [127.0.0.1]) by mail.openembedded.org (Postfix) with ESMTP id 1025D7964F; Fri, 14 Dec 2018 01:09:36 +0000 (UTC) X-Original-To: openembedded-core@lists.openembedded.org Delivered-To: openembedded-core@lists.openembedded.org Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by mail.openembedded.org (Postfix) with ESMTP id DBD967964F for ; Fri, 14 Dec 2018 01:09:32 +0000 (UTC) Received: by mail-wm1-f44.google.com with SMTP id a62so4165046wmh.4 for ; Thu, 13 Dec 2018 17:09:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id; bh=6/8QEqjJLeYVExbk3COeanRoaCBhQbT5LdzVNxLSb1w=; b=Z2k1xUtBZpwabbXJBNKos5ECIwfYemc6OSUT2fHk0PjX/kJQV2EGNW3fmuRE95EE7y aQ8ioe3TR1JOQeuQ5C6oTR09jBfmkJGpFGOrmDW20aPCRhR1g1YBzN5o7oDUQ7nfFcUv 8U30Ez88wkMu/YrKnDqhhlTBjo069fQlMX2FVbLzU/MWv+rF0ox+/2YpajG7gq7nKaLn O1YffVW1WaL10BJJl3dQrxPr1d8WI17oy+MWURRHmpLDc4P5T74GcXaUXDGkzyRKARWF ZU3TFr8JpHjoRQ4VtAJ4RrAmaxZiH/0k+EIBn24euz81dPBlpA7clp6c4CLk4cza8mff teDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=6/8QEqjJLeYVExbk3COeanRoaCBhQbT5LdzVNxLSb1w=; b=Q/N/w3EoNZAMZ5IgZUbsMCaxViAAzKZPDE9KKmSgmEvFRkPytH5ipWv44RkpQ+eNpr acyPM4jsGhoI0wMvcliGB8kypyHX0LNibFspS9XEC1M5ZuWZiN4obDpbL6cukY633kma fnl6hAqwGThZ2R5RcdU/JUt2aDEXu2TdOkIYqFio9B5/v1F1t0WJkrIH4teAq7P95FiT jKNbsUxQZmF1gcnpUTxIF0LBO+CcRoWppwr3/QedRZXD/aEM3esJP+5J3M22v2PuXsfj vT7Xjw1XvrElEn4iJUN02Zn4aKzh4e9G9I85UkO6qcotf0+1XXg7L8CO6nQdFgFARa56 7N9w== X-Gm-Message-State: AA+aEWapK2WpxQSNNcFg3aK5+5QI8azzQiawhOf0fr1DKbE0qk2FEt94 C69f2NvSimeJQeTsBjbR3atsh/GzC8E= X-Received: by 2002:a1c:cf82:: with SMTP id f124mr1452504wmg.95.1544749773198; Thu, 13 Dec 2018 17:09:33 -0800 (PST) Received: from flashheart.burtonini.com (35.106.2.81.in-addr.arpa. [81.2.106.35]) by smtp.gmail.com with ESMTPSA id h129sm7524265wma.0.2018.12.13.17.09.32 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 17:09:32 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Date: Fri, 14 Dec 2018 01:08:47 +0000 Message-Id: <20181214010848.24170-1-ross.burton@intel.com> X-Mailer: git-send-email 2.11.0 Subject: [OE-core] [PATCH 1/2] package_manager: don't search for binaries in $PATH explicitly X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: openembedded-core-bounces@lists.openembedded.org Errors-To: openembedded-core-bounces@lists.openembedded.org There's no point in looking for a command on $PATH using bb.utils.which() but then passing it to subprocess.check*() which will search $PATH. By just using the command directly, the code is visibly neater. Signed-off-by: Ross Burton --- meta/lib/oe/package_manager.py | 43 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 22 deletions(-) -- 2.11.0 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index f08190efc0d..f0d98dd0ffc 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -155,8 +155,7 @@ class RpmIndexer(Indexer): else: signer = None - createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c") - create_index("%s --update -q %s" % (createrepo_c, deploy_dir)) + create_index("createrepo_c --update -q %s" % (deploy_dir)) # Sign repomd if signer: @@ -316,11 +315,11 @@ class OpkgPkgsList(PkgsList): def __init__(self, d, rootfs_dir, config_file): super(OpkgPkgsList, self).__init__(d, rootfs_dir) - self.opkg_args = "-f %s -o %s " % (config_file, rootfs_dir) - self.opkg_args += self.d.getVar("OPKG_ARGS") + self.opkg_cmd = "opkg -f %s -o %s " % (config_file, rootfs_dir) + self.opkg_cmd += self.d.getVar("OPKG_ARGS") def list_pkgs(self, format=None): - cmd = "opkg %s status" % (self.opkg_args) + cmd = "%s status" % (self.opkg_cmd) # opkg returns success even when it printed some # "Collected errors:" report to stderr. Mixing stderr into @@ -870,12 +869,12 @@ class RpmPM(PackageManager): args = ["rpm", "-e", "-v", "--nodeps", "--root=%s" %self.target_rootfs] try: - bb.note("Running %s" % ' '.join([cmd] + args + pkgs)) - output = subprocess.check_output([cmd] + args + pkgs, stderr=subprocess.STDOUT).decode("utf-8") + bb.note("Running %s" % ' '.join(args + pkgs)) + output = subprocess.check_output(args + pkgs, stderr=subprocess.STDOUT).decode("utf-8") bb.note(output) except subprocess.CalledProcessError as e: bb.fatal("Could not invoke rpm. Command " - "'%s' returned %d:\n%s" % (' '.join([cmd] + args + pkgs), e.returncode, e.output.decode("utf-8"))) + "'%s' returned %d:\n%s" % (' '.join(args + pkgs), e.returncode, e.output.decode("utf-8"))) def upgrade(self): self._prepare_pkg_transaction() @@ -1132,8 +1131,8 @@ class OpkgPM(OpkgDpkgPM): self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), ipk_repo_workdir) self.deploy_lock_file = os.path.join(self.deploy_dir, "deploy.lock") - self.opkg_args = "--volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/'), target_rootfs) - self.opkg_args += self.d.getVar("OPKG_ARGS") + self.opkg_cmd = "opkg --volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/'), target_rootfs) + self.opkg_cmd += self.d.getVar("OPKG_ARGS") if prepare_index: create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_IPK"), "package_write_ipk", filterbydependencies) @@ -1292,7 +1291,7 @@ class OpkgPM(OpkgDpkgPM): def update(self): self.deploy_dir_lock() - cmd = "opkg %s update" % (self.opkg_args) + cmd = "%s update" % (self.opkg_cmd) try: subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) @@ -1307,7 +1306,7 @@ class OpkgPM(OpkgDpkgPM): if not pkgs: return - cmd = "opkg %s" % (self.opkg_args) + cmd = self.opkg_cmd for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split(): cmd += " --add-exclude %s" % exclude cmd += " install " @@ -1342,11 +1341,11 @@ class OpkgPM(OpkgDpkgPM): return if with_dependencies: - cmd = "opkg %s --force-remove --force-removal-of-dependent-packages remove %s" % \ - (self.opkg_args, ' '.join(pkgs)) + cmd = "%s --force-remove --force-removal-of-dependent-packages remove %s" % \ + (self.opkg_cmd, ' '.join(pkgs)) else: - cmd = "opkg %s --force-depends remove %s" % \ - (self.opkg_args, ' '.join(pkgs)) + cmd = "%s --force-depends remove %s" % \ + (self.opkg_cmd, ' '.join(pkgs)) try: bb.note(cmd) @@ -1390,7 +1389,7 @@ class OpkgPM(OpkgDpkgPM): if os.path.exists(status_file): return - cmd = "opkg %s info " % (self.opkg_args) + cmd = "%s info " % (self.opkg_cmd) with open(status_file, "w+") as status: for pkg in bad_recommendations.split(): @@ -1432,10 +1431,10 @@ class OpkgPM(OpkgDpkgPM): temp_opkg_dir = os.path.join(temp_rootfs, opkg_lib_dir, 'opkg') bb.utils.mkdirhier(temp_opkg_dir) - opkg_args = "-f %s -o %s " % (self.config_file, temp_rootfs) + opkg_args = "opkg -f %s -o %s " % (self.config_file, temp_rootfs) opkg_args += self.d.getVar("OPKG_ARGS") - - cmd = "opkg %s update" % (opkg_args) + + cmd = "%s update" % (opkg_args) try: subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) except subprocess.CalledProcessError as e: @@ -1443,7 +1442,7 @@ class OpkgPM(OpkgDpkgPM): "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) # Dummy installation - cmd = "opkg %s --noaction install %s " % (opkg_args, ' '.join(pkgs)) + cmd = "%s --noaction install %s " % (opkg_args, ' '.join(pkgs)) try: output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) except subprocess.CalledProcessError as e: @@ -1477,7 +1476,7 @@ class OpkgPM(OpkgDpkgPM): """ Returns a dictionary with the package info. """ - cmd = "opkg %s info %s" % (self.opkg_args, pkg) + cmd = "%s info %s" % (self.opkg_cmd, pkg) pkg_info = super(OpkgPM, self).package_info(pkg, cmd) pkg_arch = pkg_info[pkg]["arch"]