GNU bug report logs - #20294
25.0.50; Make Emacs work with GnuTLS 3.4.0 on MS-Windows

Previous Next

Package: emacs;

Reported by: Chris Zheng <chriszheng99 <at> gmail.com>

Date: Fri, 10 Apr 2015 16:40:03 UTC

Severity: normal

Found in version 25.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

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 20294 in the body.
You can then email your comments to 20294 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#20294; Package emacs. (Fri, 10 Apr 2015 16:40:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Chris Zheng <chriszheng99 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 10 Apr 2015 16:40:03 GMT) Full text and rfc822 format available.

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

From: Chris Zheng <chriszheng99 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.0.50; Make Emacs work with GnuTLS 3.4.0 on MS-Windows
Date: Sat, 11 Apr 2015 00:38:52 +0800
Hello Emacs,
After the release of GnuTLS 3.4.0, the DLL name of libgnutls has changed
from `libgnutls-28.dll' to `libgnutls-30.dll', which makes Emacs unable
to load the DLL.  Can we add this name to `dynamic-library-alist', as
the following patch do?
Thanks.

From 4b0c27dd6accce69757e60a8ac0904db085e034e Mon Sep 17 00:00:00 2001
From: Chris Zheng <chriszheng99 <at> gmail.com>
Date: Fri, 10 Apr 2015 18:06:04 +0200
Subject: [PATCH] Add GnuTLS 3.4.0 support for MS-Windows

* lisp/term/w32-win.el
(dynamic-library-alist): Add `libgnutls-30.dll'.
---
 lisp/term/w32-win.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index b5e6ff3..2cc0504 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -266,7 +266,7 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
        '(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
        '(glib "libglib-2.0-0.dll")
        '(gobject "libgobject-2.0-0.dll")
-       '(gnutls "libgnutls-28.dll" "libgnutls-26.dll")
+       '(gnutls "libgnutls-30.dll" "libgnutls-28.dll" "libgnutls-26.dll")
        '(libxml2 "libxml2-2.dll" "libxml2.dll")
        '(zlib "zlib1.dll" "libz-1.dll")))
 
-- 
2.3.5




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20294; Package emacs. (Fri, 10 Apr 2015 17:49:03 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chris Zheng <chriszheng99 <at> gmail.com>
Cc: 20294 <at> debbugs.gnu.org
Subject: Re: bug#20294: 25.0.50;
 Make Emacs work with GnuTLS 3.4.0 on MS-Windows
Date: Fri, 10 Apr 2015 20:48:10 +0300
> Date: Sat, 11 Apr 2015 00:38:52 +0800
> From: Chris Zheng <chriszheng99 <at> gmail.com>
> 
> After the release of GnuTLS 3.4.0, the DLL name of libgnutls has changed
> from `libgnutls-28.dll' to `libgnutls-30.dll', which makes Emacs unable
> to load the DLL.  Can we add this name to `dynamic-library-alist', as
> the following patch do?

No, because libgnutls-30.dll exports a binary-incompatible ABI (that's
why its name changes in the first place).  Just adding that DLL will
cause Emacs compiled against an older GnuTLS to try loading the new
DLL, or vice versa, which will most probably crash at run time.

Instead, we need to introduce a libgnutls-version variable, whose
value depends on the version of GnuTLS as conveyed by version-related
macros in the GnuTLS headers, and insert into dynamic-library-alist
the DLL whose name matches the version with which Emacs was compiled,
like we do with several image libraries.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20294; Package emacs. (Sat, 11 Apr 2015 12:36:02 GMT) Full text and rfc822 format available.

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

From: Chris Zheng <chriszheng99 <at> gmail.com>
To: eliz <at> gnu.org
Cc: 20294 <at> debbugs.gnu.org
Subject: Re: bug#20294: 25.0.50; Make Emacs work with GnuTLS 3.4.0 on
 MS-Windows
Date: Sat, 11 Apr 2015 20:35:34 +0800
From: Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#20294: 25.0.50; Make Emacs work with GnuTLS 3.4.0 on MS-Windows
Date: Fri, 10 Apr 2015 20:48:10 +0300

Hi Eli,
> No, because libgnutls-30.dll exports a binary-incompatible ABI (that's
> why its name changes in the first place).  Just adding that DLL will
> cause Emacs compiled against an older GnuTLS to try loading the new
> DLL, or vice versa, which will most probably crash at run time.
Sorry I don't know it.
> Instead, we need to introduce a libgnutls-version variable, whose
> value depends on the version of GnuTLS as conveyed by version-related
> macros in the GnuTLS headers, and insert into dynamic-library-alist
> the DLL whose name matches the version with which Emacs was compiled,
> like we do with several image libraries.
According to your suggestion, I've reverted the patch.  Can this one
be the starting point?

Thanks,
Chris


From 07162bcef08d398a2f69e81c83c28a4b722e2d0c Mon Sep 17 00:00:00 2001
From: Chris Zheng <chriszheng99 <at> gmail.com>
Date: Fri, 10 Apr 2015 18:06:04 +0200
Subject: [PATCH] Add GnuTLS 3.4.0 support for MS-Windows

* src/gnutls.c
(libgnutls-version): New variable.
(syms_of_gnutls): Generate `libgnutls-version' from GnuTLS header.
* lisp/term/w32-win.el
(dynamic-library-alist): Set library name according to `libgnutls-version'.
---
 lisp/term/w32-win.el |  6 +++++-
 src/gnutls.c         | 10 ++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index b5e6ff3..b0667e6 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -214,6 +214,8 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
 (defvar libgif-version)
 (defvar libjpeg-version)
 
+(defvar libgnutls-version)              ; gnutls.c
+
 ;;; Set default known names for external libraries
 (setq dynamic-library-alist
       (list
@@ -266,7 +268,9 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
        '(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
        '(glib "libglib-2.0-0.dll")
        '(gobject "libgobject-2.0-0.dll")
-       '(gnutls "libgnutls-28.dll" "libgnutls-26.dll")
+       (if (>= libgnutls-version 30400)
+	   '(gnutls "libgnutls-30.dll")
+	 '(gnutls "libgnutls-28.dll" "libgnutls-26.dll"))
        '(libxml2 "libxml2-2.dll" "libxml2.dll")
        '(zlib "zlib1.dll" "libz-1.dll")))
 
diff --git a/src/gnutls.c b/src/gnutls.c
index 35f0eb4..ddd36a9 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -1645,6 +1645,16 @@ DEFUN ("gnutls-available-p", Fgnutls_available_p, Sgnutls_available_p, 0, 0, 0,
 void
 syms_of_gnutls (void)
 {
+  DEFSYM (Qlibgnutls_version, "libgnutls-version");
+  Fset (Qlibgnutls_version,
+#ifdef HAVE_GNUTLS
+	make_number (GNUTLS_VERSION_MAJOR * 10000
+		     + GNUTLS_VERSION_MINOR * 100
+		     + GNUTLS_VERSION_PATCH)
+#else
+	make_number (-1)
+#endif
+        );
 #ifdef HAVE_GNUTLS
   gnutls_global_initialized = 0;
 
-- 
2.3.5






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20294; Package emacs. (Sat, 11 Apr 2015 12:42:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chris Zheng <chriszheng99 <at> gmail.com>
Cc: 20294 <at> debbugs.gnu.org
Subject: Re: bug#20294: 25.0.50;
 Make Emacs work with GnuTLS 3.4.0 on MS-Windows
Date: Sat, 11 Apr 2015 15:41:07 +0300
> Date: Sat, 11 Apr 2015 20:35:34 +0800
> Cc: 20294 <at> debbugs.gnu.org
> From: Chris Zheng <chriszheng99 <at> gmail.com>
> 
> > No, because libgnutls-30.dll exports a binary-incompatible ABI (that's
> > why its name changes in the first place).  Just adding that DLL will
> > cause Emacs compiled against an older GnuTLS to try loading the new
> > DLL, or vice versa, which will most probably crash at run time.
> Sorry I don't know it.
> > Instead, we need to introduce a libgnutls-version variable, whose
> > value depends on the version of GnuTLS as conveyed by version-related
> > macros in the GnuTLS headers, and insert into dynamic-library-alist
> > the DLL whose name matches the version with which Emacs was compiled,
> > like we do with several image libraries.
> According to your suggestion, I've reverted the patch.  Can this one
> be the starting point?

Looks good to me.  Did you test this with both the previous and the
new versions of GnuTLS?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20294; Package emacs. (Sat, 11 Apr 2015 14:23:02 GMT) Full text and rfc822 format available.

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

From: Chris Zheng <chriszheng99 <at> gmail.com>
To: eliz <at> gnu.org
Cc: 20294 <at> debbugs.gnu.org
Subject: Re: bug#20294: 25.0.50; Make Emacs work with GnuTLS 3.4.0 on
 MS-Windows
Date: Sat, 11 Apr 2015 22:22:09 +0800
From: Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#20294: 25.0.50; Make Emacs work with GnuTLS 3.4.0 on MS-Windows
Date: Sat, 11 Apr 2015 15:41:07 +0300

Hi Eli,
> Looks good to me.  Did you test this with both the previous and the
> new versions of GnuTLS?
Thank you for your prompt reply.  Yes, it works fine here.
> Thanks.
Cheers,
Chris




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 11 Apr 2015 15:09:01 GMT) Full text and rfc822 format available.

Notification sent to Chris Zheng <chriszheng99 <at> gmail.com>:
bug acknowledged by developer. (Sat, 11 Apr 2015 15:09:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chris Zheng <chriszheng99 <at> gmail.com>
Cc: 20294-done <at> debbugs.gnu.org
Subject: Re: bug#20294: 25.0.50;
 Make Emacs work with GnuTLS 3.4.0 on MS-Windows
Date: Sat, 11 Apr 2015 18:08:45 +0300
> Date: Sat, 11 Apr 2015 22:22:09 +0800
> Cc: 20294 <at> debbugs.gnu.org
> From: Chris Zheng <chriszheng99 <at> gmail.com>
> 
> From: Eli Zaretskii <eliz <at> gnu.org>
> Subject: Re: bug#20294: 25.0.50; Make Emacs work with GnuTLS 3.4.0 on MS-Windows
> Date: Sat, 11 Apr 2015 15:41:07 +0300
> 
> Hi Eli,
> > Looks good to me.  Did you test this with both the previous and the
> > new versions of GnuTLS?
> Thank you for your prompt reply.  Yes, it works fine here.

Thanks, pushed.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 10 May 2015 11:24:06 GMT) Full text and rfc822 format available.

bug unarchived. Request was from Karol Ostrovsky <karol.ostrovsky <at> gmail.com> to control <at> debbugs.gnu.org. (Fri, 12 Feb 2016 17:08:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20294; Package emacs. (Fri, 12 Feb 2016 17:11:02 GMT) Full text and rfc822 format available.

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

From: Karol Ostrovsky <karol.ostrovsky <at> gmail.com>
To: 20294 <at> debbugs.gnu.org
Subject: Consider this patch for emacs 24
Date: Fri, 12 Feb 2016 18:10:53 +0100
[Message part 1 (text/plain, inline)]
Hello Emacs and especially Eli,

I have just re-compiled latest emacs 24 against the latest MSYS2, and this
problem with GnuTLS 3.4 appeared.  Is it still possible to consider this
patch for emacs 24?  It cannot be applied right away, but I can sent the
required changes.

Best regards,

Karol
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20294; Package emacs. (Fri, 12 Feb 2016 19:00:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Karol Ostrovsky <karol.ostrovsky <at> gmail.com>
Cc: 20294 <at> debbugs.gnu.org
Subject: Re: bug#20294: Consider this patch for emacs 24
Date: Fri, 12 Feb 2016 20:58:55 +0200
> Date: Fri, 12 Feb 2016 18:10:53 +0100
> From: Karol Ostrovsky <karol.ostrovsky <at> gmail.com>
> 
> I have just re-compiled latest emacs 24 against the latest MSYS2, and this problem with GnuTLS 3.4
> appeared. Is it still possible to consider this patch for emacs 24? It cannot be applied right away, but I can
> sent the required changes.

Emacs 24 is no longer maintained.  The next release will be Emacs 25.1
(it is currently in pretest), where this is already fixed.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 12 Mar 2016 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 106 days ago.

Previous Next


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