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
next prev 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).