On Wed, Aug 16, 2023 at 9:49 AM Eli Zaretskii wrote: > > > > To confirm: when walking the list, I will want to take the first DLL > > mentioned that actually exists for each entry. Is that right? > > Yes. > The attached patch replaces DLL_REQ (the var holding the "starting" list of DLLs) with an invocation of emacs batch, as described above. Once this patch is installed, the script will require the (path to the) nominally newly created Emacs binary as an argument. I'm still looking at the differences between outputs from this and from the script as from my prior patch; however, this runs without error which will improve the situation if it is applied. (The patch is for emacs-29 because I expect Emacs 29.2 will be the next release packaged.) > > You should only skip the first two, which are Windows system DLLs. > > > > > Does a "invokes Emacs now and errors out if stuff is missing" approach > > > > sound right/good? > > > > > > I'm not sure I understand how would you force Emacs to "error out" > > > when we are talking about optional dependencies. They are optional so > > > that Emacs could run even if they are not present. > > > > > > > Oops, badly said: I mean that my build and packaging process should > > stop and report an error if it cannot create a "complete" DEPS ZIP. > > Nothing affecting the Emacs run-time. > > OK. > The patch does not attempt this: I simply remove nil from the "first present DLL" sweep. I did verify, currently, only gdiplus and shlwapi return nil, thus the rest mentioned here are being included (except libgccjig which the script --still-- expressly omits). (mapcar (lambda(lib) (list (car lib) (seq-find (lambda(file) (file-exists-p (file-name-concat "c:/msys2/mingw64/bin" file))) (cdr lib)))) dynamic-library-alist) ((gdiplus nil) (shlwapi nil) (xpm "libXpm-nox4.dll") (png "libpng16-16.dll") (tiff "libtiff-5.dll") (jpeg "libjpeg-8.dll") (gif "libgif-7.dll") (svg "librsvg-2-2.dll") (webp "libwebp-7.dll") (webpdemux "libwebpdemux-2.dll") (sqlite3 "libsqlite3-0.dll") (gdk-pixbuf "libgdk_pixbuf-2.0-0.dll") (glib "libglib-2.0-0.dll") (gio "libgio-2.0-0.dll") (gobject "libgobject-2.0-0.dll") (gnutls "libgnutls-30.dll") (libxml2 "libxml2-2.dll") (zlib "zlib1.dll") (lcms2 "liblcms2-2.dll") (json "libjansson-4.dll") (gccjit "libgccjit-0.dll") (tree-sitter "libtree-sitter.dll"))