unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Phillip Lord <phillip.lord@russet.org.uk>
To: "Juan José García-Ripoll" <juanjose.garciaripoll@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Process to build standalone Emacs + deps in Windows
Date: Wed, 25 Mar 2020 22:34:18 +0000	[thread overview]
Message-ID: <878sjoqd1x.fsf@russet.org.uk> (raw)
In-Reply-To: <86mu84cwoi.fsf@csic.es> ("Juan José García-Ripoll"'s message of "Wed, 25 Mar 2020 15:54:05 +0100")

Juan José García-Ripoll <juanjose.garciaripoll@gmail.com> writes:

> Juan José García-Ripoll <juanjose.garciaripoll@gmail.com> writes:
>> I attach a patch file that changes build-dep-zips.py with the following
>> fixes
>
> As usual, the missing attachment below.


In reply to two of your emails, sorry:

+    if dependencies:
+        print(f"Package {pkg} depends on:")
+        for d in dependencies:
+            print(f" -> {d}")
+

I wouldn't add this. It's only useful some of the time, not in normal
usage, and anyway "pactree" does the same thing better.

def gather_deps(deps, arch, directory):

-    os.mkdir(arch)
+    if not os.path.exists(arch):
+        os.mkdir(arch)
     os.chdir(arch)

This is wrong, I think. IIRC, my script crashes out at this point if
"arch" exists. This is needed, otherwise I could run build-dep-zips.py
twice at different times and both old and new dependencies would get
added. This forces cleanliness.


+    ## exclude files
+    excludes=['lib/*.a', # No files to link against
+              'lib/*/*.exe', # No hidden executables
+              'libexec/*/*.exe',
+              'include/*', # No development files
+              'lib/cmake/*',
+              'lib/pkgconfig/*',
+              'lib/python*/*',
+              'share/aclocal/*',
+              'share/gettext/*',
+              'share/doc/*', # No documentation from libraries
+              'share/gtk-doc/*',
+              'share/man/*',
+              'share/info/*',
+              'bin/*tiff*.exe', # No graphic manipulation tools
+              'bin/img*.exe',
+              'bin/*gif*.exe',
+              'bin/*jpg*.exe',
+              'bin/*jpeg*.exe',
+              'bin/*png*.exe',
+              'bin/*svg*.exe',
+              'bin/*xpm*.exe',
+              'bin/*icc.exe',
+              'bin/fax2*.exe',
+              'bin/pango-*.exe',
+              'bin/gdk-*.exe',
+              'bin/jasper.exe',
+              'bin/fc-*.exe', # No font configuration tools
+              'bin/gr2fonttest.exe',
+              'bin/hb-*.exe',
+              'bin/msg*.exe', # No tools to manipulate gettext catalogues
+              'bin/*gettext.exe'
+    ]

This list would need to go near the front, so we have a clean
configuration section. It also displays the key problem -- it's really
long and non obvious so a maintenance burden

If we just did a few big top level directories, would that not solve all
the problems.




+# The dependency extraction relies on an English version of pacman
+# We need to configure the locale to match the expectations
+if 'LANG' in os.environ:
+    os_lang = os.environ['LANG']
+    if (len(os_lang) > 2) and (os_lang[0:2] != 'en'):
+        os.environ['LANG']='en_US'
+




I am vaguely curious what it looks like in Spanish. I thought the output
was fairly mechanistic.


- Since we are pulling in compression utilities, we may just as well tell the
  configuration to compress the *.el files. Windows is the only platform where
  this does not happen

No, because I generate the no-deps version first, then add the deps. The
-no-deps version doesn't have the compression utilities. Of course, we
do not need the *.el files at all.


  a) Is there a way to test the resulting standalone distribution to
  verify that Emacs is running properly?

No. The only testing I do is to start Emacs and see if it starts and
looks okay (literally looks okay -- the icons can get broken). The lack
of a test suite that I can run is what keeps me cautious, especially as
I don't use this build. I wrote a robot testing framework for
org-drill.el; we could do something similar for testing this version of
Emacs.


  b) I realized that Cairo is pulled in as a dependency, but Emacs is
  built without support for Cairo. Is this intentional?

No, it will be a transitive dependency of something. pactree will
reveal!

Phil



  parent reply	other threads:[~2020-03-25 22:34 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-22 13:03 Process to build standalone Emacs + deps in Windows Juan José García Ripoll
2020-03-22 13:59 ` Eli Zaretskii
2020-03-22 14:38   ` Juan José García-Ripoll
2020-03-22 17:25     ` Eli Zaretskii
2020-03-22 18:54     ` Phillip Lord
2020-03-22 19:35       ` Eli Zaretskii
2020-03-22 21:02         ` Phillip Lord
2020-03-23  3:23           ` Eli Zaretskii
2020-03-23 23:36             ` Phillip Lord
2020-03-24  3:27               ` Eli Zaretskii
2020-03-24 18:21                 ` Phillip Lord
2020-03-25 12:50       ` Juan José García-Ripoll
2020-03-25 14:43         ` Juan José García-Ripoll
2020-03-25 14:54           ` Juan José García-Ripoll
2020-03-25 15:33             ` Eli Zaretskii
2020-03-25 16:41               ` Juan José García-Ripoll
2020-03-25 17:03                 ` Eli Zaretskii
2020-03-25 17:22                   ` Juan José García-Ripoll
2020-03-25 17:34                     ` Eli Zaretskii
2020-03-25 22:40                     ` Phillip Lord
2020-03-26 13:16                       ` Juan José García-Ripoll
2020-03-26 14:32                         ` Eli Zaretskii
2020-03-26 22:20                         ` Phillip Lord
2020-03-25 22:34             ` Phillip Lord [this message]
2020-03-26  3:49               ` Stefan Monnier
2020-03-26 13:19                 ` Juan José García-Ripoll
2020-03-26 22:16                 ` Phillip Lord
2020-03-26 13:24               ` Juan José García-Ripoll
2020-03-26 14:37                 ` Eli Zaretskii
2020-03-28 16:01                   ` Juan José García-Ripoll
2020-03-28 16:23                     ` Eli Zaretskii
2020-03-28 19:36                     ` Phillip Lord
2020-03-28 19:41                       ` Eli Zaretskii
2020-03-26 22:28                 ` Phillip Lord
2020-03-25 15:25           ` Eli Zaretskii
2020-03-22 18:58     ` Phillip Lord
2020-03-22 18:32 ` phillip.lord

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878sjoqd1x.fsf@russet.org.uk \
    --to=phillip.lord@russet.org.uk \
    --cc=emacs-devel@gnu.org \
    --cc=juanjose.garciaripoll@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).