[PATCH] Windows installer: keep dependency cache

Arthur Sengileyev posted 1 patch 1 year, 3 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230103221349.74160-1-arthur.sengileyev@gmail.com
Maintainers: John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Stefan Weil <sw@weilnetz.de>
There is a newer version of this series
scripts/nsis.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] Windows installer: keep dependency cache
Posted by Arthur Sengileyev 1 year, 3 months ago
It should be possible to reuse cache built by previous iteration
processing next executables. Already processed dependencies are
already skipped later based on dll name.

Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
---
 scripts/nsis.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/nsis.py b/scripts/nsis.py
index 03ed7608a2..a2e52df556 100644
--- a/scripts/nsis.py
+++ b/scripts/nsis.py
@@ -91,12 +91,13 @@ def main():
         print("Searching '%s' for the dependent dlls ..." % search_path)
         dlldir = os.path.join(destdir + prefix, "dll")
         os.mkdir(dlldir)
+        depscache = set()
 
         for exe in glob.glob(os.path.join(destdir + prefix, "*.exe")):
             signcode(exe)
 
             # find all dll dependencies
-            deps = set(find_deps(exe, search_path, set()))
+            deps = set(find_deps(exe, search_path, depscache))
             deps.remove(exe)
 
             # copy all dlls to the DLLDIR
-- 
2.39.0
Re: [PATCH] Windows installer: keep dependency cache
Posted by Bin Meng 1 year, 3 months ago
On Wed, Jan 4, 2023 at 6:54 AM Arthur Sengileyev
<arthur.sengileyev@gmail.com> wrote:
>
> It should be possible to reuse cache built by previous iteration
> processing next executables. Already processed dependencies are

s/processing/to process

> already skipped later based on dll name.
>
> Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
> ---
>  scripts/nsis.py | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/nsis.py b/scripts/nsis.py
> index 03ed7608a2..a2e52df556 100644
> --- a/scripts/nsis.py
> +++ b/scripts/nsis.py
> @@ -91,12 +91,13 @@ def main():
>          print("Searching '%s' for the dependent dlls ..." % search_path)
>          dlldir = os.path.join(destdir + prefix, "dll")
>          os.mkdir(dlldir)
> +        depscache = set()

nits: I would use deps_cache as the name

>
>          for exe in glob.glob(os.path.join(destdir + prefix, "*.exe")):
>              signcode(exe)
>
>              # find all dll dependencies
> -            deps = set(find_deps(exe, search_path, set()))
> +            deps = set(find_deps(exe, search_path, depscache))
>              deps.remove(exe)
>
>              # copy all dlls to the DLLDIR
> --

Otherwise LGTM
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Re: [PATCH] Windows installer: keep dependency cache
Posted by John Snow 1 year, 3 months ago
On Tue, Jan 3, 2023 at 5:13 PM Arthur Sengileyev
<arthur.sengileyev@gmail.com> wrote:
>
> It should be possible to reuse cache built by previous iteration
> processing next executables. Already processed dependencies are
> already skipped later based on dll name.
>
> Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
> ---
>  scripts/nsis.py | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/nsis.py b/scripts/nsis.py
> index 03ed7608a2..a2e52df556 100644
> --- a/scripts/nsis.py
> +++ b/scripts/nsis.py
> @@ -91,12 +91,13 @@ def main():
>          print("Searching '%s' for the dependent dlls ..." % search_path)
>          dlldir = os.path.join(destdir + prefix, "dll")
>          os.mkdir(dlldir)
> +        depscache = set()
>
>          for exe in glob.glob(os.path.join(destdir + prefix, "*.exe")):
>              signcode(exe)
>
>              # find all dll dependencies
> -            deps = set(find_deps(exe, search_path, set()))
> +            deps = set(find_deps(exe, search_path, depscache))
>              deps.remove(exe)
>
>              # copy all dlls to the DLLDIR
> --
> 2.39.0
>

ACK for python changes, which seem sane. I've not used the NSIS script
before, though, so I won't grant RB/TB here.

--js