GNU bug report logs - #71766
30.0.60; HarfBuzz is not used in the Cygwin-w32 build

Previous Next

Package: emacs;

Reported by: Ken Brown <kbrown <at> cornell.edu>

Date: Tue, 25 Jun 2024 01:19:02 UTC

Severity: normal

Found in version 30.0.60

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 71766 in the body.
You can then email your comments to 71766 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#71766; Package emacs. (Tue, 25 Jun 2024 01:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ken Brown <kbrown <at> cornell.edu>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 25 Jun 2024 01:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ken Brown <kbrown <at> cornell.edu>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.60; HarfBuzz is not used in the Cygwin-w32 build
Date: Mon, 24 Jun 2024 21:18:31 -0400
The HarfBuzz library is hard-coded as libharfbuzz-0.dll in 
w32uniscribe.c, but this is only valid on MS-Windows.  On Cygwin the 
library is cygharfbuzz-0.dll.  As a result, HarfBuzz is not used in the 
Cygwin-w32 build.  The obvious fix is

diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index b3112912c767..dacd6dd766ed 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -1527,12 +1527,17 @@ syms_of_w32uniscribe_for_pdumper (void)
     uniscribe_new_apis = false;

 #ifdef HAVE_HARFBUZZ
-  /* Currently, HarfBuzz DLLs are always named libharfbuzz-0.dll, as
+  /* Currently, HarfBuzz DLLs are always named libharfbuzz-0.dll on
+     MS-Windows and cygharfbuzz-0.dll on Cygwin, as
      the project keeps the ABI backward-compatible.  So we can
      hard-code the name of the library here, for now.  If they ever
      break ABI compatibility, we may need to load the DLL that
      corresponds to the HarfBuzz version for which Emacs was built.  */
+# ifdef WINDOWSNT
   HMODULE harfbuzz = LoadLibrary ("libharfbuzz-0.dll");
+# else /* CYGWIN */
+  HMODULE harfbuzz = LoadLibrary ("cygharfbuzz-0.dll");
+# endif /* CYGWIN */
   /* Don't register if HarfBuzz is not available.  */
   if (!harfbuzz)
     return;

Before pushing this, I'd like to test it, but I don't know enough about 
HarfBuzz to do that.  Can someone tell me how to test that HarfBuzz is 
actually being used as intended?  All I've done so far is to start emacs 
and note that the display looks reasonable.

Ken

P.S. I had a problem sending this email the first time I tried.  I 
apologize in advance if I ended up sending it twice.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#71766; Package emacs. (Tue, 25 Jun 2024 02:35:01 GMT) Full text and rfc822 format available.

Message #8 received at 71766 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ken Brown <kbrown <at> cornell.edu>
Cc: 71766 <at> debbugs.gnu.org
Subject: Re: bug#71766: 30.0.60; HarfBuzz is not used in the Cygwin-w32 build
Date: Tue, 25 Jun 2024 05:34:32 +0300
> Date: Mon, 24 Jun 2024 21:18:31 -0400
> From: Ken Brown <kbrown <at> cornell.edu>
> 
> The HarfBuzz library is hard-coded as libharfbuzz-0.dll in 
> w32uniscribe.c, but this is only valid on MS-Windows.  On Cygwin the 
> library is cygharfbuzz-0.dll.  As a result, HarfBuzz is not used in the 
> Cygwin-w32 build.  The obvious fix is

Please install this on the emacs-30 branch if it's all that is needed.

> Before pushing this, I'd like to test it, but I don't know enough about 
> HarfBuzz to do that.  Can someone tell me how to test that HarfBuzz is 
> actually being used as intended?  All I've done so far is to start emacs 
> and note that the display looks reasonable.

Type "C-u C-x =" on some character, it should tell you what is the
backend (at the beginning of the font name).  I would also use "C-h h"
to compare the display with another configuration where you know
HarfBuzz is being used.




Reply sent to Ken Brown <kbrown <at> cornell.edu>:
You have taken responsibility. (Tue, 25 Jun 2024 15:38:02 GMT) Full text and rfc822 format available.

Notification sent to Ken Brown <kbrown <at> cornell.edu>:
bug acknowledged by developer. (Tue, 25 Jun 2024 15:38:02 GMT) Full text and rfc822 format available.

Message #13 received at 71766-done <at> debbugs.gnu.org (full text, mbox):

From: Ken Brown <kbrown <at> cornell.edu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 71766-done <at> debbugs.gnu.org
Subject: Re: bug#71766: 30.0.60; HarfBuzz is not used in the Cygwin-w32 build
Date: Tue, 25 Jun 2024 11:36:43 -0400
On 6/24/2024 10:34 PM, Eli Zaretskii wrote:
>> Date: Mon, 24 Jun 2024 21:18:31 -0400
>> From: Ken Brown <kbrown <at> cornell.edu>
>>
>> The HarfBuzz library is hard-coded as libharfbuzz-0.dll in
>> w32uniscribe.c, but this is only valid on MS-Windows.  On Cygwin the
>> library is cygharfbuzz-0.dll.  As a result, HarfBuzz is not used in the
>> Cygwin-w32 build.  The obvious fix is
> 
> Please install this on the emacs-30 branch if it's all that is needed.

Done.

>> Before pushing this, I'd like to test it, but I don't know enough about
>> HarfBuzz to do that.  Can someone tell me how to test that HarfBuzz is
>> actually being used as intended?  All I've done so far is to start emacs
>> and note that the display looks reasonable.
> 
> Type "C-u C-x =" on some character, it should tell you what is the
> backend (at the beginning of the font name).  I would also use "C-h h"
> to compare the display with another configuration where you know
> HarfBuzz is being used.

Thanks, it looks good.  Closing.

Ken




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 24 Jul 2024 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 26 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.