diff mbox series

Windows installer: keep dependency cache

Message ID 20230103221349.74160-1-arthur.sengileyev@gmail.com (mailing list archive)
State New, archived
Headers show
Series Windows installer: keep dependency cache | expand

Commit Message

Arthur Sengileyev Jan. 3, 2023, 10:13 p.m. UTC
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(-)

Comments

John Snow Jan. 6, 2023, 9:53 p.m. UTC | #1
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
Bin Meng Jan. 7, 2023, 3:56 p.m. UTC | #2
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>
diff mbox series

Patch

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