[PATCH v2] Windows installer: keep dependency cache

Arthur Sengileyev posted 1 patch 1 year, 3 months ago
There is a newer version of this series
scripts/nsis.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] 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
to process next executables. Processed dependencies are already
skipped later based on dll name.

Changes for v2:
(1) changed variable name
(2) changed wording in description

Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@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..7cffba70ff 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)
+        deps_cache = 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, deps_cache))
             deps.remove(exe)
 
             # copy all dlls to the DLLDIR
-- 
2.39.0
Re: [PATCH v2] Windows installer: keep dependency cache
Posted by Bin Meng 1 year, 3 months ago
On Sun, Jan 15, 2023 at 2:40 AM Arthur Sengileyev
<arthur.sengileyev@gmail.com> wrote:
>
> It should be possible to reuse cache built by previous iteration
> to process next executables. Processed dependencies are already
> skipped later based on dll name.
>
> Changes for v2:
> (1) changed variable name
> (2) changed wording in description

The changelog should not be in the commit message.

>
> Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
> Reviewed-by: Bin Meng <bmeng.cn@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..7cffba70ff 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)
> +        deps_cache = 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, deps_cache))
>              deps.remove(exe)
>
>              # copy all dlls to the DLLDIR
> --

Regards,
Bin
Re: [PATCH v2] Windows installer: keep dependency cache
Posted by Arthur Sengileyev 1 year, 3 months ago
Will resubmit v3 fixing this. Sorry for this. This is my first time using
the mailing list to submit changes.

Regards,
Arthur

On Sun, Jan 15, 2023 at 5:16 PM Bin Meng <bmeng.cn@gmail.com> wrote:

> On Sun, Jan 15, 2023 at 2:40 AM Arthur Sengileyev
> <arthur.sengileyev@gmail.com> wrote:
> >
> > It should be possible to reuse cache built by previous iteration
> > to process next executables. Processed dependencies are already
> > skipped later based on dll name.
> >
> > Changes for v2:
> > (1) changed variable name
> > (2) changed wording in description
>
> The changelog should not be in the commit message.
>
> >
> > Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
> > Reviewed-by: Bin Meng <bmeng.cn@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..7cffba70ff 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)
> > +        deps_cache = 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, deps_cache))
> >              deps.remove(exe)
> >
> >              # copy all dlls to the DLLDIR
> > --
>
> Regards,
> Bin
>