{"id":2868,"url":"https://patchwork.libcamera.org/api/1.1/patches/2868/?format=json","web_url":"https://patchwork.libcamera.org/patch/2868/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200221163130.4791-3-kieran.bingham@ideasonboard.com>","date":"2020-02-21T16:31:26","name":"[libcamera-devel,v4,2/6] libcamera: ipa_manager: Re-arrange IPA precedence","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"fb8c0b94a509d268a1606d57d4a81ba3c33ba798","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/1.1/people/4/?format=json","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/2868/mbox/","series":[{"id":689,"url":"https://patchwork.libcamera.org/api/1.1/series/689/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=689","date":"2020-02-21T16:31:24","name":"Support loading IPAs from the build tree","version":4,"mbox":"https://patchwork.libcamera.org/series/689/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/2868/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/2868/checks/","tags":{},"headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5C3A96262D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Feb 2020 17:31:35 +0100 (CET)","from localhost.localdomain\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D755CB23;\n\tFri, 21 Feb 2020 17:31:34 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1582302695;\n\tbh=XxkNMJZmSBRgdZ0qfVdOTG9gKZv3YStnYPFUWkZaM8g=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=A/EyeKwLSmF+l6OD4aQKcmLoKfPW6mJHiyH8LtnlIUnWwLpHVh90cojzapStPVRMI\n\tFXzI+YZiuK3CHaUVKQcJAKUZEa+B6D3+HKMRGD3bk9ZUfMTWItS1hiuDDeZNvFTkjo\n\tcZl9Ql0Bw/HPJs6gfzFQCC2fAHG/sUQ6nbhdx+us=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"libcamera devel <libcamera-devel@lists.libcamera.org>","Date":"Fri, 21 Feb 2020 16:31:26 +0000","Message-Id":"<20200221163130.4791-3-kieran.bingham@ideasonboard.com>","X-Mailer":"git-send-email 2.20.1","In-Reply-To":"<20200221163130.4791-1-kieran.bingham@ideasonboard.com>","References":"<20200221163130.4791-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v4 2/6] libcamera: ipa_manager: Re-arrange\n\tIPA precedence","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Fri, 21 Feb 2020 16:31:35 -0000"},"content":"Setting a user environment path in LIBCAMERA_IPA_MODULE_PATH should take\nprecedence over the system loading locations.\n\nAdjust the IPA search orders accordingly.\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/libcamera/ipa_manager.cpp | 34 +++++++++++++++++-----------------\n 1 file changed, 17 insertions(+), 17 deletions(-)","diff":"diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp\nindex 4ffbdd712ac2..7f0a5d58749b 100644\n--- a/src/libcamera/ipa_manager.cpp\n+++ b/src/libcamera/ipa_manager.cpp\n@@ -98,31 +98,31 @@ IPAManager::IPAManager()\n \tunsigned int ipaCount = 0;\n \tint ret;\n \n-\tret = addDir(IPA_MODULE_DIR);\n-\tif (ret > 0)\n-\t\tipaCount += ret;\n-\n+\t/* User-specified paths take precedence. */\n \tconst char *modulePaths = utils::secure_getenv(\"LIBCAMERA_IPA_MODULE_PATH\");\n-\tif (!modulePaths) {\n+\tif (modulePaths) {\n+\t\tfor (const auto &dir : utils::split(modulePaths, \":\")) {\n+\t\t\tif (dir.empty())\n+\t\t\t\tcontinue;\n+\n+\t\t\tint ret = addDir(dir.c_str());\n+\t\t\tif (ret > 0)\n+\t\t\t\tipaCount += ret;\n+\t\t}\n+\n \t\tif (!ipaCount)\n \t\t\tLOG(IPAManager, Warning)\n-\t\t\t\t<< \"No IPA found in '\" IPA_MODULE_DIR \"'\";\n-\t\treturn;\n+\t\t\t\t<< \"No IPA found in '\" << modulePaths << \"'\";\n \t}\n \n-\tfor (const auto &dir : utils::split(modulePaths, \":\")) {\n-\t\tif (dir.empty())\n-\t\t\tcontinue;\n-\n-\t\tint ret = addDir(dir.c_str());\n-\t\tif (ret > 0)\n-\t\t\tipaCount += ret;\n-\t}\n+\t/* Load IPAs from the installed system path. */\n+\tret = addDir(IPA_MODULE_DIR);\n+\tif (ret > 0)\n+\t\tipaCount += ret;\n \n \tif (!ipaCount)\n \t\tLOG(IPAManager, Warning)\n-\t\t\t<< \"No IPA found in '\" IPA_MODULE_DIR \"' and '\"\n-\t\t\t<< modulePaths << \"'\";\n+\t\t\t<< \"No IPA found in '\" IPA_MODULE_DIR \"'\";\n }\n \n IPAManager::~IPAManager()\n","prefixes":["libcamera-devel","v4","2/6"]}