From patchwork Thu May 23 18:26:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joshua Watt X-Patchwork-Id: 44109 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16C1AC41513 for ; Thu, 23 May 2024 18:27:12 +0000 (UTC) Received: from mail-ot1-f49.google.com (mail-ot1-f49.google.com [209.85.210.49]) by mx.groups.io with SMTP id smtpd.web10.128.1716488824339618393 for ; Thu, 23 May 2024 11:27:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=VnnKisRr; spf=pass (domain: gmail.com, ip: 209.85.210.49, mailfrom: jpewhacker@gmail.com) Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-6f0df7adaf3so4136527a34.2 for ; Thu, 23 May 2024 11:27:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716488823; x=1717093623; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sRAmS8JfY21ApFj/0S/Ygeh0T4S0E10b6bFhUMdHr9A=; b=VnnKisRr7n9x60ggCeCRVVMK/t/p8PV7QQAQ1Q9IqFDfj7wVK6/3kfPfvo1cchNNrg E3K1L+xlBs17GsSWW+LLVTg7GJaOx/iITs7iOexX6yQOIXpq9upsMcbmx30W0/UaniCd m2PGGWvscoUUyh4dIi7Pef1xSRZJORS5IuYIsy0FUtT4RoMkvmSfbggO/gPbjNLzhDk7 QY6cc+xfxyRCOzX9X5zLK3gf7IalLgWeY7pWWT5THF44WMox5VBeJQ9HMH43NRdm3Aiy IOTIJB0MGzjYib+1CGyr0fsaZUjmOP4dfNuTCmRY4yJIKttCeO79T/e9Wc0lU8B7D7iU uNcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716488823; x=1717093623; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=sRAmS8JfY21ApFj/0S/Ygeh0T4S0E10b6bFhUMdHr9A=; b=oMSQMEiP02bozae4XLpSjYvw+36F+hFB27TpP0EMfCB7gtKoYm87pKirQ0xdEBvrrx xOshyoHfhyZKJxRFTR4eWRAlG7mCjO/oNG+XXOOmpJAFxehTB2C2R1dTdlawZzmg0cFb OIO9kZTxZ9P9PjFCvkFb738VeXbMOUYSp07hTL3Gw+ZFSGksJBUSWiOiDOc78fALRRC/ VSWlcSzz7tZ0kguZJ+7hq61GU0FbXU/HnbKCzZU2w0nMeMuQLlAgpkoNJX5Oi8WkilBQ LBnbPlkbb4D22SCElvemp8qHrr5zIW2uQZMX9TUnQJBYixzAow7sV8wfHTmju6HRFbKr GGEQ== X-Gm-Message-State: AOJu0YyU/HtvKZHk6Den6s3cSK0dopfnDKYP1+P59hL4yh/MORRKw3sA VaOg6PSplCEkZ7zMRsasKYQAYvkFV5xLbpX3mnSnV7GeT1Y0rrSo+J9Gwg== X-Google-Smtp-Source: AGHT+IE8w50OlhxK/VaSIgk7BhNAcZAP1umg+AI1r1FEhzNMCpmK2bEiNkaaBM2zLflOGp6o2VBShA== X-Received: by 2002:a05:6830:1d5b:b0:6f0:b5b0:65a9 with SMTP id 46e09a7af769-6f8d09532dcmr33811a34.0.1716488823015; Thu, 23 May 2024 11:27:03 -0700 (PDT) Received: from localhost.localdomain ([204.77.163.55]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6f0f6ff5488sm4792686a34.40.2024.05.23.11.27.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 May 2024 11:27:02 -0700 (PDT) From: Joshua Watt X-Google-Original-From: Joshua Watt To: openembedded-core@lists.openembedded.org Cc: Joshua Watt Subject: [OE-core][PATCH 1/2] lib: package: Add file_reverse_translate Date: Thu, 23 May 2024 12:26:54 -0600 Message-ID: <20240523182655.2254482-1-JPEWhacker@gmail.com> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 23 May 2024 18:27:12 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/199817 Adds API to reverse the removal of special characters from file names so it can be correctly done in multiple places without open-coding it. Replace the translation done in the package_rpm.bbclass with the new API Signed-off-by: Joshua Watt --- meta/classes-global/package_rpm.bbclass | 8 ++------ meta/lib/oe/package.py | 25 +++++++++++++++++++------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass index 790ccbfaf0c..474d2491eb0 100644 --- a/meta/classes-global/package_rpm.bbclass +++ b/meta/classes-global/package_rpm.bbclass @@ -38,6 +38,7 @@ def filter_nativesdk_deps(srcname, var): # Construct per file dependencies file def write_rpm_perfiledata(srcname, d): + import oe.package workdir = d.getVar('WORKDIR') packages = d.getVar('PACKAGES') pkgd = d.getVar('PKGD') @@ -53,12 +54,7 @@ def write_rpm_perfiledata(srcname, d): key = "FILE" + varname + ":" + dfile + ":" + pkg deps = filter_nativesdk_deps(srcname, d.getVar(key) or "") depends_dict = bb.utils.explode_dep_versions(deps) - file = dfile.replace("@underscore@", "_") - file = file.replace("@closebrace@", "]") - file = file.replace("@openbrace@", "[") - file = file.replace("@tab@", "\t") - file = file.replace("@space@", " ") - file = file.replace("@at@", "@") + file = oe.package.file_reverse_translate(dfile) outfile.write('"' + pkgd + file + '" : "') for dep in depends_dict: ver = depends_dict[dep] diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 1511ba47c42..0fe49c00d6d 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -195,14 +195,27 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, max_process, qa_alre oe.utils.multiprocess_launch_mp(runstrip, sfiles, max_process) +TRANSLATE = ( + ("@", "@at@"), + (" ", "@space@"), + ("\t", "@tab@"), + ("[", "@openbrace@"), + ("]", "@closebrace@"), + ("_", "@underscore@"), +) def file_translate(file): - ft = file.replace("@", "@at@") - ft = ft.replace(" ", "@space@") - ft = ft.replace("\t", "@tab@") - ft = ft.replace("[", "@openbrace@") - ft = ft.replace("]", "@closebrace@") - ft = ft.replace("_", "@underscore@") + ft = file + for s, replace in TRANSLATE: + ft = ft.replace(s, replace) + + return ft + +def file_reverse_translate(file): + ft = file + for s, replace in reversed(TRANSLATE): + ft = ft.replace(replace, s) + return ft def filedeprunner(arg): From patchwork Thu May 23 18:26:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joshua Watt X-Patchwork-Id: 44108 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 158C4C25B75 for ; Thu, 23 May 2024 18:27:12 +0000 (UTC) Received: from mail-ot1-f42.google.com (mail-ot1-f42.google.com [209.85.210.42]) by mx.groups.io with SMTP id smtpd.web11.117.1716488826529080997 for ; Thu, 23 May 2024 11:27:06 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=E00aaW0P; spf=pass (domain: gmail.com, ip: 209.85.210.42, mailfrom: jpewhacker@gmail.com) Received: by mail-ot1-f42.google.com with SMTP id 46e09a7af769-6f10092c8c7so4123614a34.1 for ; Thu, 23 May 2024 11:27:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716488825; x=1717093625; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=z5jGt3fQSRyJ0JqfXp1rxxX9jdvHO+EHtQEvmEMk2Eg=; b=E00aaW0PqJzjSSsvkWCmTSuCZlEMjlwA1prcMhBcOiR+sHNHlTEzsWCeMI97ev0N49 IwxKqPo5AkJK8LFnN1PseCYznFb1azaGAKngz+xYr3JXxMageea2oi070TjqoYBnSDI0 OOa0nrr+jMJBLU/wMQCg4hJ6qHUFmkWsELb9Va+/64/typQqbVaHjcvB4fiNMfuJ6D7p F7jliPdise/7V0SBZ1JA2Hllnq6EMJiZ8GNTM3NcDsau/WlblF/mBaMod0z6VJ/dXVbW KnOFSMRC8Rk9Uh7+UJNzftDM0I4/LgXA1UmbP+C2kJIn5EaBl8/c99eU9+c/J7zUcGQr TwpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716488825; x=1717093625; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=z5jGt3fQSRyJ0JqfXp1rxxX9jdvHO+EHtQEvmEMk2Eg=; b=H5yMoOwNcq33F/EOKR6+qDyVktfnbFhzq4btNQm3SitNRm201YQit86eHnOOEv+YhZ PLYhJOe+alqV0QsTQr+L9xuOK/1Ej+pb/WSKGCqQaweM/VFzSqfOpLqbE7V7c7c61OPF 8YvnjNCeXYIVzb/gEJU3oquicxn6+ovHDUHU9k7POv/6sQI5OulRy0y7t/RR24T4hpnB RNKMsJKR6YOe55Nucrdc89J/CEXzBzMeAs6JujDATj/kvOBsNFzyAn2dMbhg29i/gFI/ FAeJVgMJW7wSfCxVp9xXT8GkEuXj0q1kxQCNUW6hAxe065yr3N8OKpJdsixe95Co9pNV lz2A== X-Gm-Message-State: AOJu0YxjYjfAVN/dAWFfBtbc/9yKWf+1H+mxnS8imVx4oJCXG6fU9ht/ 2tZyQLN0NkprGNo0RtltDgE9twxPAERWue/FFrlfdy5zk8DN+DuX9Ph+Hw== X-Google-Smtp-Source: AGHT+IGACe8NdaRiJgVq/J3yT6L+97Tv9QhwOE1+Fw0U70WpcnN5o5LsBmpJgMci+xDUQkWd303Hsw== X-Received: by 2002:a05:6830:1e32:b0:6f7:fd41:b60f with SMTP id 46e09a7af769-6f7fd41ddcamr3222043a34.20.1716488825133; Thu, 23 May 2024 11:27:05 -0700 (PDT) Received: from localhost.localdomain ([204.77.163.55]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6f0f6ff5488sm4792686a34.40.2024.05.23.11.27.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 May 2024 11:27:04 -0700 (PDT) From: Joshua Watt X-Google-Original-From: Joshua Watt To: openembedded-core@lists.openembedded.org Cc: Joshua Watt Subject: [OE-core][PATCH 2/2] lib: package: Replace ":" in file names Date: Thu, 23 May 2024 12:26:55 -0600 Message-ID: <20240523182655.2254482-2-JPEWhacker@gmail.com> X-Mailer: git-send-email 2.43.2 In-Reply-To: <20240523182655.2254482-1-JPEWhacker@gmail.com> References: <20240523182655.2254482-1-JPEWhacker@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 23 May 2024 18:27:12 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/199818 The purpose of this translation API is to make sure that the file name can be used in a bitbake variable without adding special meaning, therefore the ":" should also be replaced since it is the override separator Signed-off-by: Joshua Watt --- meta/lib/oe/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 0fe49c00d6d..d1303f32bfd 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -202,6 +202,7 @@ TRANSLATE = ( ("[", "@openbrace@"), ("]", "@closebrace@"), ("_", "@underscore@"), + (":", "@colon@"), ) def file_translate(file):