emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Process to build standalone Emacs + deps in Windows


From: Phillip Lord
Subject: Re: Process to build standalone Emacs + deps in Windows
Date: Sun, 22 Mar 2020 18:54:48 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.90 (gnu/linux)

Juan José García-Ripoll <address@hidden> writes:

> Now, to motivate my intentions a bit better, I have built Emacs from
> savannah's git repository following a different set of instructions
> (https://gist.github.com/nauhygon/f3b44f51b34e89bc54f8). These
> instructions are hacky (cp /mingw64/bin/*.dll $target/bin).  However,
> this seems to work, which shows that, out of the dependencies that Emacs
> tracks down during its build process, many can be dropped. The resulting
> directory is also leaner
>
> $ du -smc scoop/apps/emacs/26.3 # standard distribution
> 758     scoop/apps/emacs/26.3
> $ du -smc scoop/apps/emacs/27 # from git
> 207     scoop/apps/emacs/27
>
> The extra space seems to be:
> - Executables that come with the linked in libraries, such as
> tiff2bw.exe, minizip.exe, imginfo.exe, etc.
> - Dependencies that are needed by the libraries in development mode, but
> not in actual use, such as the python library brought in by glib,
> together with all their associated directories.
> - Secondary dependencies of those other libraries, such as tcl/tk
> brought in by python (once more, executables, DLL's and supporting
> directories)


Yes, all of this is true. I *mostly* just let MSYS2 decide what goes in,
since it provides the full dependency list. There are a few exceptions
which decrease the install size significantly (such as python). Combined
with executable installer option, the overall download size is now at
50Mb -- this is incidentally, only a tad more than the no-deps zip.

I am inclined to believe that at 50Mb, it's really not something worth
worrying about.


> On a side note, what kind of solution would be acceptable?
> - Do we need to keep all the utilities supplied by the libraries Emacs
> links to?
> - Is a manual filter of second-level dependencies ok?
> - Is there a catalogue of utilities that Emacs expect laying around in
> the OS? I see the dependencies file contains bzip2.exe, xz.exe and other
> tools which are not coming from first-level dependencies.

No, there is no such catalogue. It all comes from MSYS2. The only list I
maintain is in build-deps-zip.py which looks like this:

mingw-w64-x86_64-giflib
mingw-w64-x86_64-gnutls
mingw-w64-x86_64-lcms2
mingw-w64-x86_64-libjpeg-turbo
mingw-w64-x86_64-libpng
mingw-w64-x86_64-librsvg
mingw-w64-x86_64-libtiff
mingw-w64-x86_64-libxml2
mingw-w64-x86_64-xpm-nox

Incidentally, @Eli have I missed up here? Should this not include
Harfbuzz? I have a local branch to which I have added it, but it's not
on Master or Emacs-27.

There has been discussion previously both on decreasing the size of the
download (by removing the full transitive dependency list) and also on
adding new dependencies by adding essential utilities. I even added a
feature branch for the latter

http://git.savannah.gnu.org/cgit/emacs.git/log/?h=feature/windows-with-utils

As you can see, it has not had many contributors.

Still, I am open to new ideas and contributors, but limited in time to
support these contributions.

Phil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]