GNU bug report logs -
#65206
29.1; [windows][patch] build-deps-zips.py is broken and hard to maintain
Previous Next
Reported by: Corwin Brust <corwin <at> bru.st>
Date: Thu, 10 Aug 2023 12:42:02 UTC
Severity: normal
Tags: patch
Found in version 29.1
Done: Corwin Brust <corwin <at> bru.st>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On Wed, Aug 16, 2023 at 9:49 AM Eli Zaretskii <eliz <at> gnu.org> 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"))
[0001-Replace-hard-coded-DLL-list-with-emacs-batch-for-nt.patch (application/octet-stream, attachment)]
This bug report was last modified 147 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.