unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: phillip.lord@russet.org.uk
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Emacs 27.1 Windows Binaries -- testing wanted
Date: Sat, 22 Aug 2020 16:13:52 +0100	[thread overview]
Message-ID: <a5d45e9c8bad87469c43b147d678c02f@russet.org.uk> (raw)
In-Reply-To: <83a6ymagux.fsf@gnu.org>

On 2020-08-22 15:35, Eli Zaretskii wrote:
>> Date: Sat, 22 Aug 2020 14:53:15 +0100
>> From: phillip.lord@russet.org.uk
>> Cc: emacs-devel@gnu.org
>> 
>> >> If I think back to the bugs with Emacs binary releases, this would
>> >> have
>> >> stopped only a few: harfbuzz and svg failure in this release. It would
>> >> not have prevented missing dependencies (I have missed all of
>> >> harfbuzz,
>> >> lcms and libjansson till late in the day), nor the failed optimization
>> >> or stripping.
>> >
>> > I don't understand this, either.  If the dependencies of HarfBuzz are
>> > not installed, then the HarfBuzz font backend will not be available,
>> > and the way I suggested for testing its availability will tell you
>> > HarfBuzz doesn't work, which is AFAIU what you wanted.  And the same
>> > with any other DLLs: if their dependencies are not available, they
>> > will fail to load when the feature test runs, and the test will fail.
>> 
>> It would work if, when harfbuzz was installed w32-features was 
>> updated,
>> but not if it wasn't. As the harfbuzz merge didn't update 
>> build-deps.zh
>> which it arguable should have, then why would a test file be updated.
> 
> Then I don't understand what you said in the quoted part above: you
> seemed to be saying that you could have detected the absence of
> HarfBuzz, but not of its dependencies. Which is why I wrote that
> having HarfBuzz without the dependencies will cause loading HarfBuzz
> to fail, and Emacs will think that HarfBuzz is not available.  It
> doesn't matter whether the HarfBuzz DLL or its dependency DLLs are
> missing: in both cases the HarfBuzz DLL will fail to load.
> 
> IOW, I thought you were describing the situation where w32-features
> _was_ updated to add a test for HarfBuzz.  If not, then how could you
> have discovered that the DLL itself is not in the bundle?


So, there have been two problems with harfbuzz. First, when harfbuzz was 
installed, build-deps.py was not updated. A test system would not have 
picked this up. But someone complained about it in pre-release or 
snapshot builds. After that I added harfbuzz to build-deps.py, but it 
wasn't actually running. Iff I had added a test to w32-feature.el for 
harfbuzz, which this would have been discovered earlier.


>> > No, our tests use skip-unless to avoid running tests that need
>> > features or programs which are unavailable.
>> >
>> >> json parsing is tested by make check and it will not work on msys2
>> >> if the dependencies are not installed.
>> >
>> > I didn't look into this, but if json testing fails instead of skipping
>> > all the tests, that's a bug that should be fixed.
>> 
>> I think you are correct about all of these. In either case, the tests
>> will not pass!
> 
> Skipping a test and failing a test is not the same.  You are looking
> for failures: tests that should have succeeded, but didn't.

Indeed not. But, skipping a test because something is not compiled in is 
wrong iff the feature is supposed to be compiled in. Running "make 
check" on my windows build machine will only pick up errors with json 
parsing if libjansson was installed. It would nice to have a "make 
check" which assumes that all standard features (appropriate for the 
platform) are installed and fails (not skips).


>> > That's not what worries me.  What worries me is the fact that a file
>> > distributed as part of the Lisp libraries will have its contents
>> > depend on the last release you personally did, with whatever quirks
>> > that required from the tests in that file.  It doesn't sound right to
>> > me.
>> 
>> Not sure I understand this. A lisp library with "w32-" in it's name 
>> will
>> have behaviour which reflects how the official binaries are supposed 
>> to
>> behave. If this worries you, as I say, I can add it to 
>> `data-directory'
>> instead. But, it has to be in the distribution.
> 
> I thought we were talking about a feature that could serve any end
> user, including those who build their own Emacs, not just the person
> who produces the official binaries. If this is only about the
> official binaries, then why does it have to be under lisp/?  Where you
> build the binaries, you always have the admin/ directory, albeit not
> in the distribution zip, so how can its being in admin/ be a problem
> for you?  You should be able to invoke the test file from any
> directory on your system, not just from the unpacked archive.

Because I have multiple admin directories, as I build both snapshot and 
release binaries. I do this by having a git worktree for emacs-27 and 
another for master. By putting the lisp test file in the distribution, I 
can guarantee that it is the right one.

I am guessing that I would be the main user of this, and possibly the 
only user. It might be useful for anyone building Emacs binaries, 
however, so that they could check that their binary distribution has all 
of the standard features compiled in (or dynamically loadable). But this 
would require more logic as the standard features are not quite the same 
on all platforms, I think. It might also be useful for if someone 
reports that a feature is missing from a windows distribution that they 
have downloaded as it would provide a standard way of checking.

Regardless, these are secondary issues. Right now, I want something that 
means I can check whether I have created a regression of the svg or 
harfbuzz issues. Without this, I am going to be very wary of trying 
alternative mechanisms for identifying dependencies; I still think that 
the windows binary distribution is unnecessarily complicated, based on 
the msys2 dependencies as given.

Phil





  reply	other threads:[~2020-08-22 15:13 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18  2:05 Emacs 27.1 Windows Binaries -- testing wanted Jonathan Mitchell
2020-08-18  4:55 ` Eli Zaretskii
2020-08-18  6:56   ` phillip.lord
2020-08-18  7:11     ` Jonathan Mitchell
2020-08-18 15:34     ` Eli Zaretskii
2020-08-18 15:57       ` Óscar Fuentes
2020-08-18 16:33         ` Eli Zaretskii
2020-08-18 16:48           ` Óscar Fuentes
2020-08-18 17:05             ` Eli Zaretskii
2020-08-18 19:32               ` Stefan Monnier
2020-08-19  2:32                 ` Eli Zaretskii
2020-08-19 13:10                   ` Stefan Monnier
2020-08-19 15:06                     ` Eli Zaretskii
2020-08-19 15:30                       ` Stefan Monnier
2020-08-19 16:39                         ` Eli Zaretskii
2020-08-18 17:20             ` phillip.lord
2020-08-18 18:11               ` Daniel Brooks
2020-08-18 18:58                 ` Eli Zaretskii
2020-08-18 19:54                   ` Daniel Brooks
2020-08-18 18:15               ` Eli Zaretskii
2020-08-21 19:16               ` phillip.lord
2020-08-21 19:44                 ` Eli Zaretskii
2020-08-21 21:37                   ` phillip.lord
2020-08-21 22:53                     ` Drew Adams
2020-08-22  6:46                     ` Eli Zaretskii
2020-08-22 10:30                       ` phillip.lord
2020-08-24  9:28                   ` Robert Pluim
2020-08-24 10:40                     ` Eli Zaretskii
2020-08-24 12:11                       ` Robert Pluim
2020-08-24 15:14                       ` Stefan Monnier
2020-08-24 15:48                         ` Eli Zaretskii
2020-08-24 16:49                           ` Stefan Monnier
2020-08-24 17:06                             ` phillip.lord
2020-08-24 17:10                             ` Eli Zaretskii
2020-08-24 18:35                             ` Stephen Leake
2020-08-24 18:54                               ` Stefan Monnier
2020-08-24 17:01                           ` phillip.lord
2020-08-21 20:15                 ` Alan Third
2020-08-21 21:56                   ` phillip.lord
2020-08-22  6:37                     ` Eli Zaretskii
2020-08-22 10:21                       ` phillip.lord
2020-08-22 10:40                         ` Eli Zaretskii
2020-08-22 10:53                           ` phillip.lord
2020-08-22 11:15                             ` Eli Zaretskii
2020-08-22 12:52                               ` phillip.lord
2020-08-22 13:08                                 ` Eli Zaretskii
2020-08-22 13:53                                   ` phillip.lord
2020-08-22 14:35                                     ` Eli Zaretskii
2020-08-22 15:13                                       ` phillip.lord [this message]
2020-08-22 15:19                                         ` Eli Zaretskii
2020-08-22 17:28                                           ` phillip.lord
2020-08-22 17:32                                             ` Eli Zaretskii
2020-08-22 20:18                                               ` phillip.lord
2020-08-22 20:32                                                 ` Stefan Monnier
2020-08-23 21:19                                                   ` phillip.lord
2020-08-23 21:57                                                     ` Stefan Monnier
2020-08-23  5:36                                                 ` Eli Zaretskii
2020-08-23  7:53                                                   ` phillip.lord
  -- strict thread matches above, loose matches on Subject: below --
2020-08-10 23:00 Emacs 27.1 released Nicolas Petton
2020-08-12 12:01 ` phillip.lord
2020-08-15 17:49   ` Emacs 27.1 Windows Binaries -- testing wanted phillip.lord
2020-08-15 17:54     ` Eli Zaretskii
2020-08-15 18:38     ` Stephen Leake
2020-08-15 19:57     ` Alan Third
2020-08-17  4:44     ` Sivaram Neelakantan
2020-08-17 23:24     ` Tak Kunihiro

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=a5d45e9c8bad87469c43b147d678c02f@russet.org.uk \
    --to=phillip.lord@russet.org.uk \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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).