All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Zhukov <pavel@zhukoff.net>
To: Marta Rybczynska <rybczynska@gmail.com>
Cc: ernstp@gmail.com, Marta Rybczynska <marta.rybczynska@huawei.com>,
	openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] cve-check: move update_symlinks to a library
Date: Mon, 06 Jun 2022 08:03:37 +0200	[thread overview]
Message-ID: <87k09u2ujv.fsf@gentoo.zhukoff.net> (raw)
In-Reply-To: <20220603085827.2214734-1-rybczynska@gmail.com>


Looks like update_symplinks is widely used accros OE. Quick grepping gave me this:
[1]. I'm sure there're more occurences. 
This should be somewhere in more accesible place (oe-core libraries).


[1] 
meta/lib/oeqa/runexported.py:            os.remove(sshloglink)
meta/lib/oeqa/runexported.py-        os.symlink(self.sshlog, sshloglink)
--
meta/lib/oeqa/selftest/context.py:                os.remove(output_link)
meta/lib/oeqa/selftest/context.py-            os.symlink(args.output_log, output_link)
--
meta/lib/oeqa/runtime/cases/ltp.py:            os.remove(cls.ltptest_log_dir_link)
meta/lib/oeqa/runtime/cases/ltp.py-        os.symlink(os.path.basename(cls.ltptest_log_dir), cls.ltptest_log_dir_link)
--
meta/lib/oeqa/runtime/cases/ptest.py:            os.remove(ptest_log_dir_link)
meta/lib/oeqa/runtime/cases/ptest.py-        os.symlink(os.path.basename(ptest_log_dir), ptest_log_dir_link)
--
meta/lib/oeqa/utils/decorators.py:            os.remove(linkfile)
meta/lib/oeqa/utils/decorators.py-        os.symlink(logfile, linkfile)
--
meta/lib/oeqa/core/context.py:            os.remove(output_link)
meta/lib/oeqa/core/context.py-        os.symlink(args.output_log, output_link)
--
meta/classes/baremetal-image.bbclass:            os.remove(manifest_link)
meta/classes/baremetal-image.bbclass-        os.symlink(os.path.basename(manifest_name), manifest_link)
--
meta/classes/qemuboot.bbclass:           os.remove(qemuboot_link)
meta/classes/qemuboot.bbclass-        os.symlink(os.path.basename(qemuboot), qemuboot_link)
--
meta/classes/cve-check.bbclass:            os.remove(link_path)
meta/classes/cve-check.bbclass-        os.symlink(os.path.basename(target_path), link_path)
--
meta/classes/rootfs-postcommands.bbclass:                os.remove(manifest_link)
meta/classes/rootfs-postcommands.bbclass-            os.symlink(os.path.basename(manifest_name), manifest_link)
--
meta/classes/rootfs-postcommands.bbclass:                os.remove(testdata_link)
meta/classes/rootfs-postcommands.bbclass-            os.symlink(os.path.basename(testdata_name), testdata_link)

"Marta Rybczynska" <rybczynska@gmail.com> writes:

> Move the function to a library, it could be useful in other places.
>
> Signed-off-by: Marta Rybczynska <marta.rybczynska@huawei.com>
> ---
>  meta/classes/cve-check.bbclass | 11 +++--------
>  meta/lib/oe/cve_check.py       | 10 ++++++++++
>  2 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
> index c5c22c4c51..5eb0622d00 100644
> --- a/meta/classes/cve-check.bbclass
> +++ b/meta/classes/cve-check.bbclass
> @@ -80,16 +80,10 @@ CVE_CHECK_LAYER_INCLUDELIST ??= ""
>  # set to "alphabetical" for version using single alphabetical character as increment release
>  CVE_VERSION_SUFFIX ??= ""
>  
> -def update_symlinks(target_path, link_path):
> -    if link_path != target_path and os.path.exists(target_path):
> -        if os.path.exists(os.path.realpath(link_path)):
> -            os.remove(link_path)
> -        os.symlink(os.path.basename(target_path), link_path)
> -
>  def generate_json_report(d, out_path, link_path):
>      if os.path.exists(d.getVar("CVE_CHECK_SUMMARY_INDEX_PATH")):
>          import json
> -        from oe.cve_check import cve_check_merge_jsons
> +        from oe.cve_check import cve_check_merge_jsons, update_symlinks
>  
>          bb.note("Generating JSON CVE summary")
>          index_file = d.getVar("CVE_CHECK_SUMMARY_INDEX_PATH")
> @@ -110,6 +104,7 @@ def generate_json_report(d, out_path, link_path):
>  python cve_save_summary_handler () {
>      import shutil
>      import datetime
> +    from oe.cve_check import update_symlinks
>  
>      cve_tmp_file = d.getVar("CVE_CHECK_TMP_FILE")
>  
> @@ -179,7 +174,7 @@ python cve_check_write_rootfs_manifest () {
>      import shutil
>      import json
>      from oe.rootfs import image_list_installed_packages
> -    from oe.cve_check import cve_check_merge_jsons
> +    from oe.cve_check import cve_check_merge_jsons, update_symlinks
>  
>      if d.getVar("CVE_CHECK_COPY_FILES") == "1":
>          deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE")
> diff --git a/meta/lib/oe/cve_check.py b/meta/lib/oe/cve_check.py
> index dc7d2e2826..aa06497727 100644
> --- a/meta/lib/oe/cve_check.py
> +++ b/meta/lib/oe/cve_check.py
> @@ -163,3 +163,13 @@ def cve_check_merge_jsons(output, data):
>              return
>  
>      output["package"].append(data["package"][0])
> +
> +def update_symlinks(target_path, link_path):
> +    """
> +    Update a symbolic link link_path to point to target_path.
> +    Remove the link and recreate it if exist and is different.
> +    """
> +    if link_path != target_path and os.path.exists(target_path):
> +        if os.path.exists(os.path.realpath(link_path)):
> +            os.remove(link_path)
> +        os.symlink(os.path.basename(target_path), link_path)



  parent reply	other threads:[~2022-06-06  6:08 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-03  8:58 [PATCH] cve-check: move update_symlinks to a library Marta Rybczynska
2022-06-04  6:15 ` Ernst Sjöstrand
2022-06-06  6:03 ` Pavel Zhukov [this message]
2022-06-08  7:51   ` [OE-core] " Marta Rybczynska
2022-06-08  9:24     ` Ernst Sjöstrand
2022-06-08 12:27     ` Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k09u2ujv.fsf@gentoo.zhukoff.net \
    --to=pavel@zhukoff.net \
    --cc=ernstp@gmail.com \
    --cc=marta.rybczynska@huawei.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=rybczynska@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.