unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: gnutls for win32
       [not found] <CAJU7zaKH0NTE7ko6u24gXy9WupsNw+CAvhMdVudzxpXvsY2vig@mail.gmail.com>
@ 2011-12-31 13:46 ` Ted Zlatanov
  2012-01-01 11:10   ` Nikos Mavrogiannopoulos
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2011-12-31 13:46 UTC (permalink / raw)
  To: help-gnutls; +Cc: gnutls-devel, emacs-devel

On Sat, 31 Dec 2011 00:55:26 +0200 Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com> wrote: 

NM> Hello all and best wishes for new year,
NM>  I've put pre-built win32 dlls and the other gnutls applications for
NM> 3.0.9 in [0]. I've managed to automate the procedure, so it could be
NM> that next releases (at least the major ones) will have the
NM> corresponding windows dlls released as well.

NM> [0]. http://homes.esat.kuleuven.be/~nikos/gnutls-win32/

Great news!  That lets GNU Emacs use the latest GnuTLS on all the
supported platforms.

Currently we're in a feature freeze for the Emacs pretest, but after the
next Emacs release we'll make GnuTLS 3.x required.  That also lets us
ensure that we're not fighting old, already-fixed bugs.

Could the W32 releases go on the official GnuTLS site so we can point to
them in the GNU Emacs installation notes?  And could you, when able,
publish the build script so developers can make their own W32 builds?

Thanks
Ted

^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2011-12-31 13:46 ` gnutls for win32 Ted Zlatanov
@ 2012-01-01 11:10   ` Nikos Mavrogiannopoulos
  2012-01-01 11:50     ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Nikos Mavrogiannopoulos @ 2012-01-01 11:10 UTC (permalink / raw)
  To: help-gnutls; +Cc: gnutls-devel, emacs-devel

2011/12/31 Ted Zlatanov <tzz@lifelogs.com>:

> NM> Hello all and best wishes for new year,
> NM>  I've put pre-built win32 dlls and the other gnutls applications for
> NM> 3.0.9 in [0]. I've managed to automate the procedure, so it could be
> NM> that next releases (at least the major ones) will have the
> NM> corresponding windows dlls released as well.
> NM> [0]. http://homes.esat.kuleuven.be/~nikos/gnutls-win32/
> Great news!  That lets GNU Emacs use the latest GnuTLS on all the
> supported platforms.
> Currently we're in a feature freeze for the Emacs pretest, but after the
> next Emacs release we'll make GnuTLS 3.x required.  That also lets us
> ensure that we're not fighting old, already-fixed bugs.
> Could the W32 releases go on the official GnuTLS site so we can point to
> them in the GNU Emacs installation notes?  And could you, when able,
> publish the build script so developers can make their own W32 builds?

Hi Ted,
 The build script is on the repository (cross.mk). I'll see what's the
optimal release method of windows binaries.

regards,
Nikos

_______________________________________________
Help-gnutls mailing list
Help-gnutls@gnu.org
https://lists.gnu.org/mailman/listinfo/help-gnutls

^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 11:10   ` Nikos Mavrogiannopoulos
@ 2012-01-01 11:50     ` Eli Zaretskii
  2012-01-01 14:13       ` Ted Zlatanov
  2012-01-01 22:32       ` gnutls for lose32 Richard Stallman
  0 siblings, 2 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-01 11:50 UTC (permalink / raw)
  To: Nikos Mavrogiannopoulos; +Cc: help-gnutls, gnutls-devel, emacs-devel

> Date: Sun, 1 Jan 2012 13:10:22 +0200
> From: Nikos Mavrogiannopoulos <nmav@gnutls.org>
> Cc: gnutls-devel@gnu.org, emacs-devel@gnu.org
> 
> 2011/12/31 Ted Zlatanov <tzz@lifelogs.com>:
> 
> > NM> Hello all and best wishes for new year,
> > NM>  I've put pre-built win32 dlls and the other gnutls applications for
> > NM> 3.0.9 in [0]. I've managed to automate the procedure, so it could be
> > NM> that next releases (at least the major ones) will have the
> > NM> corresponding windows dlls released as well.
> > NM> [0]. http://homes.esat.kuleuven.be/~nikos/gnutls-win32/
> > Great news!  That lets GNU Emacs use the latest GnuTLS on all the
> > supported platforms.
> > Currently we're in a feature freeze for the Emacs pretest, but after the
> > next Emacs release we'll make GnuTLS 3.x required.  That also lets us
> > ensure that we're not fighting old, already-fixed bugs.
> > Could the W32 releases go on the official GnuTLS site so we can point to
> > them in the GNU Emacs installation notes?  And could you, when able,
> > publish the build script so developers can make their own W32 builds?
> 
> Hi Ted,
>  The build script is on the repository (cross.mk). I'll see what's the
> optimal release method of windows binaries.

FWIW, I've built GnuTLS 3.0.9 natively on Windows, using MinGW and
MSYS.  I will make the resulting binaries available shortly, as soon
as I'm done testing it with Emacs.

Note that currently Emacs cannot use GnuTLS 3.0.9 on Windows, because
of a couple of minor incompatibilities in Emacs itself.  I'm working
on a solution as we speak.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 11:50     ` Eli Zaretskii
@ 2012-01-01 14:13       ` Ted Zlatanov
  2012-01-01 16:10         ` Eli Zaretskii
  2012-01-01 22:32       ` gnutls for lose32 Richard Stallman
  1 sibling, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-01 14:13 UTC (permalink / raw)
  To: emacs-devel; +Cc: help-gnutls, gnutls-devel

On Sun, 01 Jan 2012 06:50:12 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

EZ> FWIW, I've built GnuTLS 3.0.9 natively on Windows, using MinGW and
EZ> MSYS.  I will make the resulting binaries available shortly, as soon
EZ> as I'm done testing it with Emacs.

Do you want to work with Christoph Scholtes to make a GnuTLS W32 build
part of the Emacs W32 build?  That would be terrific and we wouldn't
have to tell our users to download an extra DLL every time.

That allows us to make the choice of whether we should keep in sync with
the latest GnuTLS or refresh occasionally.  Testing will be harder if we
keep in sync, but has obvious benefits for both projects.

EZ> Note that currently Emacs cannot use GnuTLS 3.0.9 on Windows, because
EZ> of a couple of minor incompatibilities in Emacs itself.  I'm working
EZ> on a solution as we speak.

Thanks!

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 14:13       ` Ted Zlatanov
@ 2012-01-01 16:10         ` Eli Zaretskii
  2012-01-01 16:38           ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-01 16:10 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Sun, 01 Jan 2012 09:13:35 -0500
> Cc: help-gnutls@gnu.org, gnutls-devel@gnu.org
> 
> On Sun, 01 Jan 2012 06:50:12 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 
> 
> EZ> FWIW, I've built GnuTLS 3.0.9 natively on Windows, using MinGW and
> EZ> MSYS.  I will make the resulting binaries available shortly, as soon
> EZ> as I'm done testing it with Emacs.
> 
> Do you want to work with Christoph Scholtes to make a GnuTLS W32 build
> part of the Emacs W32 build?

Sorry, I don't understand: what is the "GnuTLS W32 build part of the
Emacs W32 build"?  Emacs on Windows can already be built with GnuTLS.

> That would be terrific and we wouldn't have to tell our users to
> download an extra DLL every time.

GnuTLS is more than just one DLL.

> That allows us to make the choice of whether we should keep in sync with
> the latest GnuTLS or refresh occasionally.  Testing will be harder if we
> keep in sync, but has obvious benefits for both projects.

Unless there are known serious bugs, I see no particular reason to
upgrade to the next GnuTLS version, let alone keep in sync all the
time.  It adds unnecessary overhead to people involved in providing
the binary packages.  (E.g., it took me 2 days of my precious time to
build GnuTLS with MinGW, due to various complications and outright
bugs in the GnuTLS configury.  Why would I need to go through that
every month or so?)  Staying a whole major revision behind is indeed
undesirable, which is why I made the effort of building the latest
release.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 16:10         ` Eli Zaretskii
@ 2012-01-01 16:38           ` Ted Zlatanov
  2012-01-01 17:05             ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-01 16:38 UTC (permalink / raw)
  To: emacs-devel

On Sun, 01 Jan 2012 18:10:14 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Sun, 01 Jan 2012 09:13:35 -0500
>> Cc: help-gnutls@gnu.org, gnutls-devel@gnu.org
>> 
>> On Sun, 01 Jan 2012 06:50:12 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 
>> 
EZ> FWIW, I've built GnuTLS 3.0.9 natively on Windows, using MinGW and
EZ> MSYS.  I will make the resulting binaries available shortly, as soon
EZ> as I'm done testing it with Emacs.
>> 
>> Do you want to work with Christoph Scholtes to make a GnuTLS W32 build
>> part of the Emacs W32 build?

EZ> Sorry, I don't understand: what is the "GnuTLS W32 build part of the
EZ> Emacs W32 build"?  Emacs on Windows can already be built with GnuTLS.

That sentence could be parsed both ways, sorry.  I meant: do you want to
work with Christoph to incorporate building GnuTLS into building Emacs
itself?  But it sounds like that's extra work you don't need :)

>> That would be terrific and we wouldn't have to tell our users to
>> download an extra DLL every time.

EZ> GnuTLS is more than just one DLL.

Yes, I mean we want to make the installation easier, that's all.  Right
now they have to get the GnuTLS binaries separately.

>> That allows us to make the choice of whether we should keep in sync with
>> the latest GnuTLS or refresh occasionally.  Testing will be harder if we
>> keep in sync, but has obvious benefits for both projects.

EZ> Unless there are known serious bugs, I see no particular reason to
EZ> upgrade to the next GnuTLS version, let alone keep in sync all the
EZ> time.  It adds unnecessary overhead to people involved in providing
EZ> the binary packages.  (E.g., it took me 2 days of my precious time to
EZ> build GnuTLS with MinGW, due to various complications and outright
EZ> bugs in the GnuTLS configury.  Why would I need to go through that
EZ> every month or so?)  Staying a whole major revision behind is indeed
EZ> undesirable, which is why I made the effort of building the latest
EZ> release.

OK.  In that case, we should build some tests of the GnuTLS
functionality in Emacs so upgrading is easier and less stressful.  I can
keep track of the GnuTLS releases and bump the Emacs support when we
agree it's worthwhile.  (You or anyone else can volunteer to do
this if you want that role...)

Thanks
Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 16:38           ` Ted Zlatanov
@ 2012-01-01 17:05             ` Eli Zaretskii
  2012-01-01 21:17               ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-01 17:05 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Sun, 01 Jan 2012 11:38:33 -0500
> 
> I meant: do you want to work with Christoph to incorporate building
> GnuTLS into building Emacs itself?

I don't think this is practical.  GnuTLS is a very large project (as
you know only too well), building it requires quite a few other
packages (that are its dependencies), and doing so on Windows requires
to have MSYS and many supporting tools installed, in addition and
alongside the MinGW setup.  Asking people who build Emacs to have all
that is way too much, IMO.

On top of that, the Windows build of GnuTLS is not a fire-and-forget
thing, due to various problems I won't go into here.  E.g., the
default static+dynamic build simply fails on Windows.

> Yes, I mean we want to make the installation easier, that's all.  Right
> now they have to get the GnuTLS binaries separately.

I think downloading a single zip archive and unzipping it is much
easier than adding GnuTLS to Emacs.

> OK.  In that case, we should build some tests of the GnuTLS
> functionality in Emacs so upgrading is easier and less stressful.

That would be good, yes.  In particular, it would allow people who
don't normally use GnuTLS related features in Emacs to reliably
produce tested binaries.

> I can keep track of the GnuTLS releases and bump the Emacs support
> when we agree it's worthwhile.  (You or anyone else can volunteer to
> do this if you want that role...)

It should be enough to post a message saying that you recommend
upgrading for this-and-that reason.

TIA



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 17:05             ` Eli Zaretskii
@ 2012-01-01 21:17               ` Ted Zlatanov
  2012-01-01 21:28                 ` Juanma Barranquero
  2012-01-01 21:40                 ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-01 21:17 UTC (permalink / raw)
  To: emacs-devel

On Sun, 01 Jan 2012 19:05:43 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Sun, 01 Jan 2012 11:38:33 -0500
>> 
>> I meant: do you want to work with Christoph to incorporate building
>> GnuTLS into building Emacs itself?

EZ> I don't think this is practical.  GnuTLS is a very large project (as
EZ> you know only too well), building it requires quite a few other
EZ> packages (that are its dependencies), and doing so on Windows requires
EZ> to have MSYS and many supporting tools installed, in addition and
EZ> alongside the MinGW setup.  Asking people who build Emacs to have all
EZ> that is way too much, IMO.

EZ> On top of that, the Windows build of GnuTLS is not a fire-and-forget
EZ> thing, due to various problems I won't go into here.  E.g., the
EZ> default static+dynamic build simply fails on Windows.

OK.

>> Yes, I mean we want to make the installation easier, that's all.  Right
>> now they have to get the GnuTLS binaries separately.

EZ> I think downloading a single zip archive and unzipping it is much
EZ> easier than adding GnuTLS to Emacs.

For every Emacs user?  That seems like a pain.  Can we include it in the
binaries Christoph is putting out, even if it's not built with Emacs
itself?

>> OK.  In that case, we should build some tests of the GnuTLS
>> functionality in Emacs so upgrading is easier and less stressful.

EZ> That would be good, yes.  In particular, it would allow people who
EZ> don't normally use GnuTLS related features in Emacs to reliably
EZ> produce tested binaries.

OK.  Since Emacs won't include the GnuTLS DLLs on Windows, and even if
it did it doesn't have the GnuTLS server functionality, this will
require some extra work.  It should probably hit Savannah.

>> I can keep track of the GnuTLS releases and bump the Emacs support
>> when we agree it's worthwhile.  (You or anyone else can volunteer to
>> do this if you want that role...)

EZ> It should be enough to post a message saying that you recommend
EZ> upgrading for this-and-that reason.

OK.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 21:17               ` Ted Zlatanov
@ 2012-01-01 21:28                 ` Juanma Barranquero
  2012-01-01 21:40                 ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-01 21:28 UTC (permalink / raw)
  To: emacs-devel

2012/1/1 Ted Zlatanov <tzz@lifelogs.com>:

> For every Emacs user?  That seems like a pain.

Not every Emacs user, and certainly not every Windows Emacs user,
needs GnuTLS. We also don't include (most) image libraries.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for win32
  2012-01-01 21:17               ` Ted Zlatanov
  2012-01-01 21:28                 ` Juanma Barranquero
@ 2012-01-01 21:40                 ` Eli Zaretskii
  2012-01-01 23:54                   ` GnuTLS for W32 (was: gnutls for win32) Ted Zlatanov
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-01 21:40 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Sun, 01 Jan 2012 16:17:54 -0500
> 
> EZ> I think downloading a single zip archive and unzipping it is much
> EZ> easier than adding GnuTLS to Emacs.
> 
> For every Emacs user?

Only those who need it.  I'm not sure what fraction would that be, but
if it's not very large, including GnuTLS in the binary package would
unnecessarily punish too many people, by letting them download a
significantly larger file.

> Can we include it in the binaries Christoph is putting out, even if
> it's not built with Emacs itself?

We could, but see above.  We currently don't even include libxpm,
although it's much, much smaller.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-01 11:50     ` Eli Zaretskii
  2012-01-01 14:13       ` Ted Zlatanov
@ 2012-01-01 22:32       ` Richard Stallman
  2012-01-02  6:55         ` Paul Eggert
  1 sibling, 1 reply; 243+ messages in thread
From: Richard Stallman @ 2012-01-01 22:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnutls, gnutls-devel, nmav, emacs-devel

A reminder: please don't use the abbreviation "win" to refer to
Windows.  Please change that whenever you see it.

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use free telephony http://directory.fsf.org/category/tel/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* GnuTLS for W32 (was: gnutls for win32)
  2012-01-01 21:40                 ` Eli Zaretskii
@ 2012-01-01 23:54                   ` Ted Zlatanov
  2012-01-02  0:49                     ` Juanma Barranquero
  2012-01-02  8:47                     ` GnuTLS for W32 (was: gnutls for win32) Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-01 23:54 UTC (permalink / raw)
  To: emacs-devel

On Sun, 01 Jan 2012 23:40:00 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Sun, 01 Jan 2012 16:17:54 -0500
>> 
EZ> I think downloading a single zip archive and unzipping it is much
EZ> easier than adding GnuTLS to Emacs.
>> 
>> For every Emacs user?

EZ> Only those who need it.  I'm not sure what fraction would that be, but
EZ> if it's not very large, including GnuTLS in the binary package would
EZ> unnecessarily punish too many people, by letting them download a
EZ> significantly larger file.

>> Can we include it in the binaries Christoph is putting out, even if
>> it's not built with Emacs itself?

EZ> We could, but see above.  We currently don't even include libxpm,
EZ> although it's much, much smaller.

On Sun, 1 Jan 2012 22:28:58 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> Not every Emacs user, and certainly not every Windows Emacs user,
JB> needs GnuTLS. We also don't include (most) image libraries.

I think nowadays it's a really good idea to include GnuTLS to encrypt
network connections within Emacs.  Unlike image libraries, opening
network connections unencrypted or through tunneling programs can
actually expose secret user data and introduces many unpleasant bugs and
workarounds, *especially* on W32.  I think the download size is tiny
either way by today's standards, but I understand the bloat concern.
Can we download and install the GnuTLS opportunistically, e.g. through
a GNU ELPA package?

I am obviously biased, so I'd like Lars, Stefan, Chong, and any other
concerned developers and users to give their opinion.

Thanks
Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32 (was: gnutls for win32)
  2012-01-01 23:54                   ` GnuTLS for W32 (was: gnutls for win32) Ted Zlatanov
@ 2012-01-02  0:49                     ` Juanma Barranquero
  2012-01-02  1:33                       ` GnuTLS for W32 Óscar Fuentes
  2012-01-02  8:47                     ` GnuTLS for W32 (was: gnutls for win32) Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02  0:49 UTC (permalink / raw)
  To: emacs-devel

2012/1/2 Ted Zlatanov <tzz@lifelogs.com>:

> I think nowadays it's a really good idea to include GnuTLS to encrypt
> network connections within Emacs.

I've been using Emacs on Windows for fourteen years, and the only
network connections I start from Emacs are between server.el and
emacsclient (all of them local). I bet there are many other Windows
users that do not read e-mail, use ftp, visit web pages etc. from
Emacs.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  0:49                     ` Juanma Barranquero
@ 2012-01-02  1:33                       ` Óscar Fuentes
  2012-01-02  1:44                         ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-02  1:33 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> 2012/1/2 Ted Zlatanov <tzz@lifelogs.com>:
>
>> I think nowadays it's a really good idea to include GnuTLS to encrypt
>> network connections within Emacs.
>
> I've been using Emacs on Windows for fourteen years, and the only
> network connections I start from Emacs are between server.el and
> emacsclient (all of them local). I bet there are many other Windows
> users that do not read e-mail, use ftp, visit web pages etc. from
> Emacs.

Security default settings must be appropriate for those who are at risk.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  1:33                       ` GnuTLS for W32 Óscar Fuentes
@ 2012-01-02  1:44                         ` Juanma Barranquero
  2012-01-02  2:35                           ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02  1:44 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Mon, Jan 2, 2012 at 02:33, Óscar Fuentes <ofv@wanadoo.es> wrote:

> Security default settings must be appropriate for those who are at risk.

That assumes that those at risk are many, or the cost of these
defaults are small. We can now discuss (without any real data, I
think) just how many Windows users of Emacs are at risk, and how
convenient or inconvenient is to assume distributing the GnuTLS binary
vs. pointing the users to an alternative download place.

And, just to put things in perspective, until now Emacs had no GnuTLS
support and we haven't seen a flood of network-related security
reports from Windows users.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  1:44                         ` Juanma Barranquero
@ 2012-01-02  2:35                           ` Óscar Fuentes
  2012-01-02  2:57                             ` Juanma Barranquero
  2012-01-02  8:48                             ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-02  2:35 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Mon, Jan 2, 2012 at 02:33, Óscar Fuentes <ofv@wanadoo.es> wrote:
>
>> Security default settings must be appropriate for those who are at risk.
>
> That assumes that those at risk are many,

Do we implement security only when many users are at risk?

> or the cost of these defaults are small.  We can now discuss (without
> any real data, I think) just how many Windows users of Emacs are at
> risk, and how convenient or inconvenient is to assume distributing the
> GnuTLS binary vs. pointing the users to an alternative download place.

Including the GnuTLS binary with the official binary packages shouldn't
be too costly, if we consider how rare Emacs releases are. As for the
other option, GnuTLS support could be prominently advertised, not just
listed as another item on NEWS.

> And, just to put things in perspective, until now Emacs had no GnuTLS
> support and we haven't seen a flood of network-related security
> reports from Windows users.

Shrugh. Security-wise, this way of thinking is responsible for lots of
disasters.

I wouldn't detect if someone were eavesdropping my network
communications, nor would you.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  2:35                           ` Óscar Fuentes
@ 2012-01-02  2:57                             ` Juanma Barranquero
  2012-01-02  3:18                               ` Óscar Fuentes
  2012-01-02  8:48                             ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02  2:57 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> Do we implement security only when many users are at risk?

Irrelevant. We've implemented security, we're talking about defaults.
And that's what cost-benefit analysis is for. The answer could well be
yes, if the alternative to "many" is "almost no-one".

> Including the GnuTLS binary with the official binary packages shouldn't
> be too costly, if we consider how rare Emacs releases are.

The moment a serious bug is detected in GnuTLS, you have to issue
updated packages and get the word out. It's not as easy as you put it.

> As for the
> other option, GnuTLS support could be prominently advertised, not just
> listed as another item on NEWS.

Agreed.

> Shrugh. Security-wise, this way of thinking is responsible for lots of
> disasters.

For some definition of "lots", sure.

> I wouldn't detect if someone were eavesdropping my network
> communications, nor would you.

Considering that I'm in a very small, non-WiFi network behind a rather
paranoid firewall, trust me: if someone is eavesdropping my network,
Emacs is the lesser of my troubles.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  2:57                             ` Juanma Barranquero
@ 2012-01-02  3:18                               ` Óscar Fuentes
  2012-01-02  4:02                                 ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-02  3:18 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

>> Do we implement security only when many users are at risk?
>
> Irrelevant. We've implemented security, we're talking about defaults.

What's the difference?

> And that's what cost-benefit analysis is for. The answer could well be
> yes, if the alternative to "many" is "almost no-one".

You can count me on. See below.

>> Including the GnuTLS binary with the official binary packages shouldn't
>> be too costly, if we consider how rare Emacs releases are.
>
> The moment a serious bug is detected in GnuTLS, you have to issue
> updated packages and get the word out. It's not as easy as you put it.

Granted, that's a considerable side-effect. I've looked at the release
history for GnuTLS and there are lots of them. I don't how many contain
fixes for serious bugs, though.

[snip]

>> Shrugh. Security-wise, this way of thinking is responsible for lots of
>> disasters.
>
> For some definition of "lots", sure.

Directly or indirectly, almost all of them, I would say.

>> I wouldn't detect if someone were eavesdropping my network
>> communications, nor would you.
>
> Considering that I'm in a very small, non-WiFi network behind a rather
> paranoid firewall, trust me: if someone is eavesdropping my network,
> Emacs is the lesser of my troubles.

AFAIK Emacs can use GnuTLS for talking to the outside world too. SMTP,
for instance. There are ISPs (like the one I use) that offer both
encrypted and plain login on their mail servers. That's pretty serious
stuff.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  3:18                               ` Óscar Fuentes
@ 2012-01-02  4:02                                 ` Juanma Barranquero
  2012-01-02 16:16                                   ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02  4:02 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Mon, Jan 2, 2012 at 04:18, Óscar Fuentes <ofv@wanadoo.es> wrote:

> What's the difference?

We have offered the tools and we're leaving the issue in the hands of the users.

> Granted, that's a considerable side-effect. I've looked at the release
> history for GnuTLS and there are lots of them. I don't how many contain
> fixes for serious bugs, though.

If we start distributing GnuTLS binaries, it's suddenly our (=
"someone's") work to know when a release fixes serious bugs and when
it does not.

> Directly or indirectly, almost all of them, I would say.

Yes, it's already clear that's your opinion. Another way of seeing it
is, we haven't seen many security reports because the users have not
had many security incidents.

> AFAIK Emacs can use GnuTLS for talking to the outside world too. SMTP,
> for instance. There are ISPs (like the one I use) that offer both
> encrypted and plain login on their mail servers.

Of course. And then we're back to square one. Does anyone know how
many people *on Windows* uses Emacs to connect to the wide, wild
world? How many of them read e-mail from Emacs, for example? I don't
(I very much doubt there's any reliable statistics), and if I had to
bet, I'd bet on the side of few.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-01 22:32       ` gnutls for lose32 Richard Stallman
@ 2012-01-02  6:55         ` Paul Eggert
  2012-01-02 10:46           ` Carsten Mattner
  0 siblings, 1 reply; 243+ messages in thread
From: Paul Eggert @ 2012-01-02  6:55 UTC (permalink / raw)
  To: rms; +Cc: gnutls-devel, Eli Zaretskii, help-gnutls, nmav, emacs-devel

On 01/01/12 14:32, Richard Stallman wrote:
> A reminder: please don't use the abbreviation "win" to refer to
> Windows.  Please change that whenever you see it.

Thanks for the reminder.  I looked in the Emacs source code
for instances of this problem, and proposed a patch to fix them
in Bug#10421.

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10421

There are some other instances that come from upstream code
in Gnulib; I'll propose fixes for them upstream.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32 (was: gnutls for win32)
  2012-01-01 23:54                   ` GnuTLS for W32 (was: gnutls for win32) Ted Zlatanov
  2012-01-02  0:49                     ` Juanma Barranquero
@ 2012-01-02  8:47                     ` Eli Zaretskii
  2012-01-02  9:47                       ` GnuTLS for W32 Jason Rumney
  2012-01-03 19:51                       ` Lars Magne Ingebrigtsen
  1 sibling, 2 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02  8:47 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Sun, 01 Jan 2012 18:54:56 -0500
> 
> I think nowadays it's a really good idea to include GnuTLS to encrypt
> network connections within Emacs.  Unlike image libraries, opening
> network connections unencrypted or through tunneling programs can
> actually expose secret user data and introduces many unpleasant bugs and
> workarounds, *especially* on W32.  I think the download size is tiny
> either way by today's standards, but I understand the bloat concern.
> Can we download and install the GnuTLS opportunistically, e.g. through
> a GNU ELPA package?

Why are we talking only about Windows?  Do packages of Emacs 24
development snapshots on GNU/Linux come with GnuTLS in the same
package?  If they do, then I agree that the Windows binaries should
also include GnuTLS; but if not, I don't see why Windows should be
special in this regard.  We don't want to confuse users by providing
functionality only on some platforms.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  2:35                           ` Óscar Fuentes
  2012-01-02  2:57                             ` Juanma Barranquero
@ 2012-01-02  8:48                             ` Eli Zaretskii
  2012-01-02 10:42                               ` Andreas Schwab
  2012-01-02 12:26                               ` Lars Magne Ingebrigtsen
  1 sibling, 2 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02  8:48 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Mon, 02 Jan 2012 03:35:02 +0100
> 
> I wouldn't detect if someone were eavesdropping my network
> communications, nor would you.

I hope your wireless connections are encrypted on the network level,
then (mine are).  GnuTLS will encrypt only some of the traffic, but
not all of it.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  8:47                     ` GnuTLS for W32 (was: gnutls for win32) Eli Zaretskii
@ 2012-01-02  9:47                       ` Jason Rumney
  2012-01-03 19:51                       ` Lars Magne Ingebrigtsen
  1 sibling, 0 replies; 243+ messages in thread
From: Jason Rumney @ 2012-01-02  9:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Why are we talking only about Windows?  Do packages of Emacs 24
> development snapshots on GNU/Linux come with GnuTLS in the same
> package?

The Debian and Ubuntu packages depend on the following:

libgnutls26 (>= 2.9.11-0)

Windows does not have a package system that supports dependency, so it
cannot be compared directly.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  8:48                             ` Eli Zaretskii
@ 2012-01-02 10:42                               ` Andreas Schwab
  2012-01-02 11:20                                 ` Eli Zaretskii
  2012-01-02 12:26                               ` Lars Magne Ingebrigtsen
  1 sibling, 1 reply; 243+ messages in thread
From: Andreas Schwab @ 2012-01-02 10:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Óscar Fuentes, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> I hope your wireless connections are encrypted on the network level,
> then (mine are).

Hopefully you have disabled WPS.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02  6:55         ` Paul Eggert
@ 2012-01-02 10:46           ` Carsten Mattner
  2012-01-02 11:51             ` Juanma Barranquero
  2012-01-02 12:17             ` Paul Eggert
  0 siblings, 2 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-02 10:46 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Eli Zaretskii, rms, nmav, emacs-devel

On Mon, Jan 2, 2012 at 7:55 AM, Paul Eggert <eggert@cs.ucla.edu> wrote:
> On 01/01/12 14:32, Richard Stallman wrote:
>> A reminder: please don't use the abbreviation "win" to refer to
>> Windows.  Please change that whenever you see it.
>
> Thanks for the reminder.  I looked in the Emacs source code
> for instances of this problem, and proposed a patch to fix them
> in Bug#10421.
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10421
>
> There are some other instances that come from upstream code
> in Gnulib; I'll propose fixes for them upstream.

I'm not sure this is a good idea.
"win32" is used in the same way as "posix" to refer to a set of
platform APIs. "win" alone should be expanded.
"w32" is something which few users will imagine to grep for
when searching for it.

"win32" and "windows" look reasonable to me, while I agree that
"win" is not descriptive enough.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 10:42                               ` Andreas Schwab
@ 2012-01-02 11:20                                 ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02 11:20 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: ofv, emacs-devel

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: Óscar Fuentes <ofv@wanadoo.es>,  emacs-devel@gnu.org
> Date: Mon, 02 Jan 2012 11:42:36 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > I hope your wireless connections are encrypted on the network level,
> > then (mine are).
> 
> Hopefully you have disabled WPS.

Never even considered it as a possibility.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 10:46           ` Carsten Mattner
@ 2012-01-02 11:51             ` Juanma Barranquero
  2012-01-02 13:09               ` Carsten Mattner
  2012-01-02 19:05               ` Drew Adams
  2012-01-02 12:17             ` Paul Eggert
  1 sibling, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02 11:51 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Eli Zaretskii, Paul Eggert, rms, nmav, emacs-devel

On Mon, Jan 2, 2012 at 11:46, Carsten Mattner
<carstenmattner@googlemail.com> wrote:

> I'm not sure this is a good idea.
> "win32" is used in the same way as "posix" to refer to a set of
> platform APIs. "win" alone should be expanded.

And yet, imagine that Microsoft were to add some program, library or
product called "Windows Win", and that we had to refer to it in the
documentation. What would we call it? "Windows Lose"? Really? And
would that really help the users in any way, or just confuse them?

I won't deny the power of words. But sometimes, a name is just a name.
The crusade against "win32" is a bit silly IMHO; it's hard to believe
that anyone, outside of a few old timers, reads it as "a form of
praise".

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 10:46           ` Carsten Mattner
  2012-01-02 11:51             ` Juanma Barranquero
@ 2012-01-02 12:17             ` Paul Eggert
  2012-01-02 13:06               ` Carsten Mattner
  1 sibling, 1 reply; 243+ messages in thread
From: Paul Eggert @ 2012-01-02 12:17 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Eli Zaretskii, rms, nmav, emacs-devel

On 01/02/12 02:46, Carsten Mattner wrote:

> "win32" is used in the same way as "posix" to refer to a set of
> platform APIs.

That's one name, but it's not the only one and it's not necessarily
even the most common one in practice.  As discussed in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10421#23>,
Microsoft prefers the name "Windows API" to "Win32 API",
and "Windows API" is quite commonly used.  Using this common
name to talk about the API helps us to avoid the problem with "win".

For Emacs's own identifiers, common practice is to use "w32_"
as a prefix; perhaps that should be changed to something else
at some point (when 64-bit Windows takes over?), but this should
be an independent issue.  The proposed patch by and large
leaves "w32" alone, since "w32" doesn't run afoul of the "win"
issue.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  8:48                             ` Eli Zaretskii
  2012-01-02 10:42                               ` Andreas Schwab
@ 2012-01-02 12:26                               ` Lars Magne Ingebrigtsen
  2012-01-02 12:41                                 ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-02 12:26 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> I hope your wireless connections are encrypted on the network level,
> then (mine are).  GnuTLS will encrypt only some of the traffic, but
> not all of it.

With all the attacks on wifi security being revealed weekly, I would
consider wifi-level encryption a moot point now.  If you don't do
end-to-end encryption now (i.e. TLS), and you use wifi, then it's likely
that someone who's really interested can probably listen in to whatever
you're doing on the network.

Sort of.  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 12:26                               ` Lars Magne Ingebrigtsen
@ 2012-01-02 12:41                                 ` Eli Zaretskii
  2012-01-02 14:03                                   ` Andreas Schwab
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02 12:41 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: emacs-devel

> From: Lars Magne Ingebrigtsen <larsi@gnus.org>
> Date: Mon, 02 Jan 2012 13:26:15 +0100
> Mail-Copies-To: never
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > I hope your wireless connections are encrypted on the network level,
> > then (mine are).  GnuTLS will encrypt only some of the traffic, but
> > not all of it.
> 
> With all the attacks on wifi security being revealed weekly, I would
> consider wifi-level encryption a moot point now.

You mean, attacks on WPS "encryption"?  Or on home networks that let
anyone in the neighborhood connect and surf at will?

Don't dismiss wifi encryption and security so quickly, just because a
bunch of people with unknown interests wrote something in some blog,
or because too many people who don't have a clue leave their networks
wide open to anyone.

> If you don't do end-to-end encryption now (i.e. TLS), and you use
> wifi, then it's likely that someone who's really interested can
> probably listen in to whatever you're doing on the network.

I never said that wifi encryption is a replacement for other
encryptions, just that someone who cares about eavesdropping should
_also_ have her wifi encrypted.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 12:17             ` Paul Eggert
@ 2012-01-02 13:06               ` Carsten Mattner
  0 siblings, 0 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-02 13:06 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Eli Zaretskii, rms, nmav, emacs-devel

On Mon, Jan 2, 2012 at 1:17 PM, Paul Eggert <eggert@cs.ucla.edu> wrote:
> On 01/02/12 02:46, Carsten Mattner wrote:
>
>> "win32" is used in the same way as "posix" to refer to a set of
>> platform APIs.
>
> That's one name, but it's not the only one and it's not necessarily
> even the most common one in practice.  As discussed in
> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10421#23>,
> Microsoft prefers the name "Windows API" to "Win32 API",

I have a hard time to decipher/interpret the following unambiguously:
"(Note that this was formerly called the Win32 API. The name
Windows API more accurately reflects its roots in 16-bit Windows
and its support on 64-bit Windows.)"

> and "Windows API" is quite commonly used.  Using this common
> name to talk about the API helps us to avoid the problem with "win".

It's the same imprecise definition as for posix.

> For Emacs's own identifiers, common practice is to use "w32_"
> as a prefix; perhaps that should be changed to something else
> at some point (when 64-bit Windows takes over?), but this should
> be an independent issue.  The proposed patch by and large
> leaves "w32" alone, since "w32" doesn't run afoul of the "win"
> issue.

I never understood what win64 is with the same code written
for "win32" compiled for x86_64 being a "win64" binary.
win32 was probably introduced during the Windows 95/Windows NT
move to differentiate 16-bit APIs. They shouldn't have introduced
a new name in the first place, but it's one of the companies which
strives to give stuff a new name and sell it as something brand new.
A preprocessor definition or compiler switch would have been
enough. This is probably what you get when marketing is involved
when naming internal technical stuff.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 11:51             ` Juanma Barranquero
@ 2012-01-02 13:09               ` Carsten Mattner
  2012-01-02 13:15                 ` Juanma Barranquero
                                   ` (3 more replies)
  2012-01-02 19:05               ` Drew Adams
  1 sibling, 4 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-02 13:09 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: Eli Zaretskii, Paul Eggert, rms, nmav, emacs-devel

On Mon, Jan 2, 2012 at 12:51 PM, Juanma Barranquero <lekktu@gmail.com> wrote:
> On Mon, Jan 2, 2012 at 11:46, Carsten Mattner
> <carstenmattner@googlemail.com> wrote:
>
>> I'm not sure this is a good idea.
>> "win32" is used in the same way as "posix" to refer to a set of
>> platform APIs. "win" alone should be expanded.
>
> And yet, imagine that Microsoft were to add some program, library or
> product called "Windows Win", and that we had to refer to it in the
> documentation. What would we call it? "Windows Lose"? Really? And
> would that really help the users in any way, or just confuse them?
>
> I won't deny the power of words. But sometimes, a name is just a name.
> The crusade against "win32" is a bit silly IMHO; it's hard to believe
> that anyone, outside of a few old timers, reads it as "a form of
> praise".

Is the intent to hide or deny the existence of Windows?

In any case, I believe this wastes resources better applied for real
Emacs work.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 13:09               ` Carsten Mattner
@ 2012-01-02 13:15                 ` Juanma Barranquero
  2012-01-02 13:28                 ` Juanma Barranquero
                                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02 13:15 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Eli Zaretskii, Paul Eggert, rms, nmav, emacs-devel

On Mon, Jan 2, 2012 at 14:09, Carsten Mattner
<carstenmattner@googlemail.com> wrote:

> Is the intent to hide or deny the existence of Windows?

Belittle, I suppose.

> In any case, I believe this wastes resources better applied for real
> Emacs work.

Agreed.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 13:09               ` Carsten Mattner
  2012-01-02 13:15                 ` Juanma Barranquero
@ 2012-01-02 13:28                 ` Juanma Barranquero
  2012-01-02 19:05                   ` Drew Adams
  2012-01-02 16:17                 ` Ted Zlatanov
  2012-01-02 22:52                 ` Richard Stallman
  3 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02 13:28 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Eli Zaretskii, Paul Eggert, rms, nmav, emacs-devel

On Mon, Jan 2, 2012 at 14:09, Carsten Mattner
<carstenmattner@googlemail.com> wrote:

> Is the intent to hide or deny the existence of Windows?

And do not forget all the references to "MS-DOG", which I personally
find both infantile and a bit insulting. If denying any supposed
positive inference in "win32" merits such effort, fighting the
negative connotations of that particular idiomatic use of "dog" would
be even worthier, as dogs are quite wonderful creatures (recent
archaeological findings have pushed the estimated domestication of
wolves into dogs back from 12,000 to 30,000+ years, so we've been
friends time enough to start showing them some respect...).

    Juanma


(Sorry: I cooperate with a rescue org specializing in saving Spanish
Greyhounds, which quite likely are the most abused breed in the world,
and see dogs disrespected and brutalized almost daily. I'm touchy in
all things dog.)



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 12:41                                 ` Eli Zaretskii
@ 2012-01-02 14:03                                   ` Andreas Schwab
  2012-01-02 17:34                                     ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Andreas Schwab @ 2012-01-02 14:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Lars Magne Ingebrigtsen, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> You mean, attacks on WPS "encryption"?

WPS is not an encryption, but a configuration system with very weak
authentication.

(Did you mean WEP?)

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  4:02                                 ` Juanma Barranquero
@ 2012-01-02 16:16                                   ` Ted Zlatanov
  2012-01-02 17:31                                     ` Juanma Barranquero
                                                       ` (2 more replies)
  0 siblings, 3 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-02 16:16 UTC (permalink / raw)
  To: emacs-devel

On Mon, 2 Jan 2012 05:02:45 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> If we start distributing GnuTLS binaries, it's suddenly our (=
JB> "someone's") work to know when a release fixes serious bugs and when
JB> it does not.

I stated I would do that monitoring.  In any case, it's better to have
the *ability* to issue updates than not to.  In that context, it seems
more sensible to package GnuTLS support as an ELPA package so it can be
upgraded without upgrading Emacs as a whole.  So perhaps we just need a
versioned "gnutls-w32" ELPA package to DTRT.  W32 users can choose to
install it or it can be installed by default, whichever we or the
distribution decides.  We can do similar solutions for other platforms
that need it, but I think W32 is the only one.

>> AFAIK Emacs can use GnuTLS for talking to the outside world too. SMTP,
>> for instance. There are ISPs (like the one I use) that offer both
>> encrypted and plain login on their mail servers.

JB> Of course. And then we're back to square one. Does anyone know how
JB> many people *on Windows* uses Emacs to connect to the wide, wild
JB> world? How many of them read e-mail from Emacs, for example? I don't
JB> (I very much doubt there's any reliable statistics), and if I had to
JB> bet, I'd bet on the side of few.

I'd guess we have at least 100 W32 users.  That number will certainly
grow if Emacs can offer better foolproof connectivity.  If you ever
tried to set up CLI helpers for W32 Emacs network connectivity before
GnuTLS came along, you know it was a big deterrent to adoption.

On Mon, 02 Jan 2012 03:47:03 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Sun, 01 Jan 2012 18:54:56 -0500
>> 
>> I think nowadays it's a really good idea to include GnuTLS to encrypt
>> network connections within Emacs.  Unlike image libraries, opening
>> network connections unencrypted or through tunneling programs can
>> actually expose secret user data and introduces many unpleasant bugs and
>> workarounds, *especially* on W32.  I think the download size is tiny
>> either way by today's standards, but I understand the bloat concern.
>> Can we download and install the GnuTLS opportunistically, e.g. through
>> a GNU ELPA package?

EZ> Why are we talking only about Windows?  Do packages of Emacs 24
EZ> development snapshots on GNU/Linux come with GnuTLS in the same
EZ> package?  If they do, then I agree that the Windows binaries should
EZ> also include GnuTLS; but if not, I don't see why Windows should be
EZ> special in this regard.  We don't want to confuse users by providing
EZ> functionality only on some platforms.

Absolutely; my post was about GnuTLS in general but so far, W32
packaging has been the issue (which was remedied by Nicos' work, which
started this thread).  Mac OS X and GNU/Linux packaging for GnuTLS is
not a problem.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 13:09               ` Carsten Mattner
  2012-01-02 13:15                 ` Juanma Barranquero
  2012-01-02 13:28                 ` Juanma Barranquero
@ 2012-01-02 16:17                 ` Ted Zlatanov
  2012-01-02 22:52                 ` Richard Stallman
  3 siblings, 0 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-02 16:17 UTC (permalink / raw)
  To: emacs-devel

On Mon, 2 Jan 2012 14:09:17 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote: 

CM> In any case, I believe this wastes resources better applied for real
CM> Emacs work.

I think we should stick to W32 because, so far, we have.

That way we can search docs and discussions for "W32" reliably.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 16:16                                   ` Ted Zlatanov
@ 2012-01-02 17:31                                     ` Juanma Barranquero
  2012-01-02 17:39                                     ` Eli Zaretskii
  2012-01-02 17:54                                     ` Eli Zaretskii
  2 siblings, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-02 17:31 UTC (permalink / raw)
  To: emacs-devel

2012/1/2 Ted Zlatanov <tzz@lifelogs.com>:

> I stated I would do that monitoring.  In any case, it's better to have
> the *ability* to issue updates than not to.

We already have the ability to issue updates, because any update is
just getting the info to the user (whether they download a binary
tarball from us or somewhere else, the only real trouble is getting
the user to know that there's a security issue to be fixed in the
first place). In that regard, announcing a new release or announcing
that the user should upgrade their GnuTLS binary is largely
irrelevant.

But anyway, the issue is not just monitoring. Someone has to build
updated binary GnuTLS packages for Windows. That Eli just did it does
not mean we can burden him with the task forever.

> In that context, it seems
> more sensible to package GnuTLS support as an ELPA package so it can be
> upgraded without upgrading Emacs as a whole.  So perhaps we just need a
> versioned "gnutls-w32" ELPA package to DTRT.  W32 users can choose to
> install it or it can be installed by default, whichever we or the
> distribution decides.

I think my objections regarding the burden we heap upon ourselves are
equally valid (or not) for an ELPA package, with the only mitigating
factor that at least in that case a security upgrade does not force a
reissue of Emacs tarballs.

> I'd guess we have at least 100 W32 users.

Worldwide? ;-)

> That number will certainly
> grow if Emacs can offer better foolproof connectivity.  If you ever
> tried to set up CLI helpers for W32 Emacs network connectivity before
> GnuTLS came along, you know it was a big deterrent to adoption.

I suppose you're talking of corporate environments or the like. I
still find hard to believe that's a representative sample of Windows
users.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 14:03                                   ` Andreas Schwab
@ 2012-01-02 17:34                                     ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02 17:34 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: larsi, emacs-devel

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: Lars Magne Ingebrigtsen <larsi@gnus.org>,  emacs-devel@gnu.org
> Date: Mon, 02 Jan 2012 15:03:15 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > You mean, attacks on WPS "encryption"?
> 
> WPS is not an encryption, but a configuration system with very weak
> authentication.

Right, thus the quotes.  I guess the joke wasn't a successful one...

> (Did you mean WEP?)

That, too.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 16:16                                   ` Ted Zlatanov
  2012-01-02 17:31                                     ` Juanma Barranquero
@ 2012-01-02 17:39                                     ` Eli Zaretskii
  2012-01-02 18:51                                       ` Lars Ingebrigtsen
                                                         ` (2 more replies)
  2012-01-02 17:54                                     ` Eli Zaretskii
  2 siblings, 3 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02 17:39 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Mon, 02 Jan 2012 11:16:34 -0500
> 
> On Mon, 2 Jan 2012 05:02:45 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 
> 
> JB> If we start distributing GnuTLS binaries, it's suddenly our (=
> JB> "someone's") work to know when a release fixes serious bugs and when
> JB> it does not.
> 
> I stated I would do that monitoring.

Yes, thanks.

> In any case, it's better to have the *ability* to issue updates than
> not to.  In that context, it seems more sensible to package GnuTLS
> support as an ELPA package so it can be upgraded without upgrading
> Emacs as a whole.

It makes sense, but how is ELPA easier than any other download
address?  All that's needed is to download a single zip archive and
unzip it.  Why does it matter if it comes from ELPA or from elsewhere?

>  So perhaps we just need a versioned "gnutls-w32" ELPA package to
> DTRT.  W32 users can choose to install it or it can be installed by
> default, whichever we or the distribution decides.

The w32 "distribution" is just a single zip file which you unzip
wherever you want it, and add the bin subdirectory to PATH.  A zip
file cannot "decide" anything.

The alternatives are:

 . have GnuTLS as part of the binary zip

 . have GnuTLS as a separate zip alongside the binary zip (we do this
   for libxpm)

 . have GnuTLS available for download from some other address



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 16:16                                   ` Ted Zlatanov
  2012-01-02 17:31                                     ` Juanma Barranquero
  2012-01-02 17:39                                     ` Eli Zaretskii
@ 2012-01-02 17:54                                     ` Eli Zaretskii
  2 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-02 17:54 UTC (permalink / raw)
  To: emacs-devel; +Cc: Christoph Scholtes

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Mon, 02 Jan 2012 11:16:34 -0500
> 
> so far, W32 packaging has been the issue (which was remedied by
> Nicos' work, which started this thread).

I've put the w32 binary package I compiled myself here:

  http://sourceforge.net/projects/ezwinports/files/gnutls-3.0.9-w32-bin.zip/download

Christoph helped to verify this package works with the current trunk,
including if the binary was built with headers from the older 2.10
version that is in widespread use on Windows.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 17:39                                     ` Eli Zaretskii
@ 2012-01-02 18:51                                       ` Lars Ingebrigtsen
  2012-01-02 22:35                                       ` Ted Zlatanov
  2012-01-03 14:14                                       ` Jason Rumney
  2 siblings, 0 replies; 243+ messages in thread
From: Lars Ingebrigtsen @ 2012-01-02 18:51 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> The w32 "distribution" is just a single zip file which you unzip
> wherever you want it, and add the bin subdirectory to PATH.  A zip
> file cannot "decide" anything.
>
> The alternatives are:
>
>  . have GnuTLS as part of the binary zip

Having the network connections from Emacs be encrypted has traditionally
been a tricky issue.  The user had to install additional binaries and do
additional manual configuration to make stuff work.

With Emacs 24, almost all of the "built-in" interfaces (web, mail, news,
etc) now do encryption by default, if possible.

On Linux, it sounds like the major distributions, at least, are going to
make Emacs depend on libgnutls, which means that most Linux users are
going to start seeing encryption working by default, with no
configuration.

So the question is: What do we want to do here about the binary
distributions that we do ourselves?  (And by "ourselves", I mean you,
obviously.  :-)

If the Windows version of Emacs 24 is the only one that doesn't have
network encryption enabled by default -- wouldn't that be less than
ideal?  If it's easy and possible to package up the gnutls libraries in
the distribution, wouldn't that be a win, overall?

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




^ permalink raw reply	[flat|nested] 243+ messages in thread

* RE: gnutls for lose32
  2012-01-02 13:28                 ` Juanma Barranquero
@ 2012-01-02 19:05                   ` Drew Adams
  0 siblings, 0 replies; 243+ messages in thread
From: Drew Adams @ 2012-01-02 19:05 UTC (permalink / raw)
  To: 'Juanma Barranquero', 'Carsten Mattner'
  Cc: 'Eli Zaretskii', 'Paul Eggert', rms, nmav,
	emacs-devel

> And do not forget all the references to "MS-DOG", which I personally
> find both infantile and a bit insulting. If denying any supposed
> positive inference in "win32" merits such effort, fighting the
> negative connotations of that particular idiomatic use of "dog" would
> be even worthier, as dogs are quite wonderful creatures (recent
> archaeological findings have pushed the estimated domestication of
> wolves into dogs back from 12,000 to 30,000+ years, so we've been
> friends time enough to start showing them some respect...).
> 
>     Juanma
> 
> (Sorry: I cooperate with a rescue org specializing in saving Spanish
> Greyhounds, which quite likely are the most abused breed in the world,
> and see dogs disrespected and brutalized almost daily. I'm touchy in
> all things dog.)

Love it.  I think it was the following documentary that pointed out the
possibility that humans might never have moved beyond hunter-gatherer to settled
agriculture and animal domestication were it not for dogs.  If true, that's
pretty important!

http://www.pbs.org/wgbh/nova/nature/dogs-decoded.html

 - Drew, whom no one on the Internet can tell is a dog




^ permalink raw reply	[flat|nested] 243+ messages in thread

* RE: gnutls for lose32
  2012-01-02 11:51             ` Juanma Barranquero
  2012-01-02 13:09               ` Carsten Mattner
@ 2012-01-02 19:05               ` Drew Adams
  1 sibling, 0 replies; 243+ messages in thread
From: Drew Adams @ 2012-01-02 19:05 UTC (permalink / raw)
  To: 'Juanma Barranquero', 'Carsten Mattner'
  Cc: 'Eli Zaretskii', 'Paul Eggert', rms, nmav,
	emacs-devel

> The crusade against "win32" is a bit silly IMHO; it's hard to believe
> that anyone, outside of a few old timers, reads it as "a form of
> praise".

+1, from one old-timer

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10421#26




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 17:39                                     ` Eli Zaretskii
  2012-01-02 18:51                                       ` Lars Ingebrigtsen
@ 2012-01-02 22:35                                       ` Ted Zlatanov
  2012-01-03  0:48                                         ` Óscar Fuentes
                                                           ` (2 more replies)
  2012-01-03 14:14                                       ` Jason Rumney
  2 siblings, 3 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-02 22:35 UTC (permalink / raw)
  To: emacs-devel

On Mon, 02 Jan 2012 19:39:12 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Mon, 02 Jan 2012 11:16:34 -0500
>> 
>> In any case, it's better to have the *ability* to issue updates than
>> not to.  In that context, it seems more sensible to package GnuTLS
>> support as an ELPA package so it can be upgraded without upgrading
>> Emacs as a whole.

EZ> It makes sense, but how is ELPA easier than any other download
EZ> address?  All that's needed is to download a single zip archive and
EZ> unzip it.  Why does it matter if it comes from ELPA or from
EZ> elsewhere?

ELPA updates can be done entirely from within Emacs.  Downloading and
unzipping a file is a nuisance.  Imagine if you asked GNU/Linux users to
do the same.  "But they have package managers..."  Exactly!  And so does
Emacs, now that package.el is here!  So let's use packages for
non-trivial work.

>> So perhaps we just need a versioned "gnutls-w32" ELPA package to
>> DTRT.  W32 users can choose to install it or it can be installed by
>> default, whichever we or the distribution decides.

EZ> The alternatives are:

EZ>  . have GnuTLS as part of the binary zip

EZ>  . have GnuTLS as a separate zip alongside the binary zip (we do this
EZ>    for libxpm)

EZ>  . have GnuTLS available for download from some other address

I think the right solution is to ask the user "you don't have the GnuTLS
package for W32, do you want to get it?" and then do it through ELPA,
when they try to use HTTPS for instance.  The same, actually, should be
done with libxpm and any other add-on DLLs.  So this work could become
much more useful than just for GnuTLS.

Can Emacs modify the DLL search path on W32 so it can install some DLL
from ELPA and then activate it dynamically?  Or does it require a
restart and modifying the global PATH?  Either way, can the process be
automated?

On Mon, 2 Jan 2012 18:31:24 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/2 Ted Zlatanov <tzz@lifelogs.com>:

>> I stated I would do that monitoring.  In any case, it's better to have
>> the *ability* to issue updates than not to.

JB> We already have the ability to issue updates, because any update is
JB> just getting the info to the user (whether they download a binary
JB> tarball from us or somewhere else, the only real trouble is getting
JB> the user to know that there's a security issue to be fixed in the
JB> first place). In that regard, announcing a new release or announcing
JB> that the user should upgrade their GnuTLS binary is largely
JB> irrelevant.

ELPA, however, can show the user all the packages that need to be
updated in one place, so they don't have to check for GnuTLS updates on
W32 specifically.  It should be set up to check on startup, IMHO.
That's a win (heh heh) for everyone, and fits with what users expect
nowadays, compared with other extensible software like Firefox and
Chrome.

JB> But anyway, the issue is not just monitoring. Someone has to build
JB> updated binary GnuTLS packages for Windows. That Eli just did it does
JB> not mean we can burden him with the task forever.

We can automate that.  Eli and Nicos have done the hard part, I think.
Ditto for an ELPA package, if we can do it once it can be automated.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: gnutls for lose32
  2012-01-02 13:09               ` Carsten Mattner
                                   ` (2 preceding siblings ...)
  2012-01-02 16:17                 ` Ted Zlatanov
@ 2012-01-02 22:52                 ` Richard Stallman
  3 siblings, 0 replies; 243+ messages in thread
From: Richard Stallman @ 2012-01-02 22:52 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: lekktu, eliz, eggert, nmav, emacs-devel

    Is the intent to hide or deny the existence of Windows?

Our policy is not to use "win" as a reference to "windows".

Once you learn to write "w32" or "Windows32" or "Windows API",
it takes no extra effort.  So please do it.

-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use free telephony http://directory.fsf.org/category/tel/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 22:35                                       ` Ted Zlatanov
@ 2012-01-03  0:48                                         ` Óscar Fuentes
  2012-01-03  6:37                                           ` Eli Zaretskii
  2012-01-03  7:14                                         ` Eli Zaretskii
  2012-01-03  7:48                                         ` Eli Zaretskii
  2 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03  0:48 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

[snip]

> Can Emacs modify the DLL search path on W32 so it can install some DLL
> from ELPA and then activate it dynamically?  Or does it require a
> restart and modifying the global PATH?  Either way, can the process be
> automated?

The relevant MS Windows API function (LoadLibrary) accepts a full
pathname, so no need for restarts nor changing PATH.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03  0:48                                         ` Óscar Fuentes
@ 2012-01-03  6:37                                           ` Eli Zaretskii
  2012-01-03 14:07                                             ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03  6:37 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 03 Jan 2012 01:48:20 +0100
> 
> > Can Emacs modify the DLL search path on W32 so it can install some DLL
> > from ELPA and then activate it dynamically?  Or does it require a
> > restart and modifying the global PATH?  Either way, can the process be
> > automated?
> 
> The relevant MS Windows API function (LoadLibrary) accepts a full
> pathname

That's a factual truth, but it would be a grave mistake on our part to
use absolute file names for loading dynamic libraries, because it will
mean a major inconvenience to users.  It is hard on Windows to pick up
a fixed directory where every user could easily put the library: the
only directories that are guaranteed to exist on every Windows system
are frequently locked up by security policies, the only disk drive
guaranteed to exist can be a remote drive or even a read-only drive,
etc.  It would be a step in the wrong direction.

Besides, even if we did follow this path, it wouldn't solve the
problem, because:

> so no need for restarts nor changing PATH.

There's much more to loading a new DLL in the middle of a session than
just the location of the new DLL.  I will address that in a separate
message.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 22:35                                       ` Ted Zlatanov
  2012-01-03  0:48                                         ` Óscar Fuentes
@ 2012-01-03  7:14                                         ` Eli Zaretskii
  2012-01-03 13:06                                           ` Ted Zlatanov
  2012-01-03  7:48                                         ` Eli Zaretskii
  2 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03  7:14 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Mon, 02 Jan 2012 17:35:21 -0500
> 
> EZ> It makes sense, but how is ELPA easier than any other download
> EZ> address?  All that's needed is to download a single zip archive and
> EZ> unzip it.  Why does it matter if it comes from ELPA or from
> EZ> elsewhere?
> 
> ELPA updates can be done entirely from within Emacs.

See below: currently, using this for anything not Lisp-based, like
installing a new dynamic library, is a pipe dream.  (Actually, even
downloading a new version of a Lisp library into a running session has
its problems, as discussed here recently; but I digress.)

> Downloading and unzipping a file is a nuisance.  Imagine if you
> asked GNU/Linux users to do the same.  "But they have package
> managers..."  Exactly!  And so does Emacs, now that package.el is
> here!

And I thought only Windows users were spoiled enough to demand
one-click installations.  "Downloading and unzipping is a
nuisance"... sheesh.

> Can Emacs modify the DLL search path on W32 so it can install some DLL
> from ELPA and then activate it dynamically?  Or does it require a
> restart and modifying the global PATH?  Either way, can the process be
> automated?

We currently lack infrastructure to replace a DLL that is already used
by a running Emacs process.  The code that loads a DLL and initializes
the function pointers used to access its APIs assumes this will be
done only once in a given session, so currently we do need a restart.

To be able to replace a DLL without restarting Emacs, we would need to
add code to free and unload a used DLL from the Emacs process, and
then load the new one.  This might be complicate if there are data
structures lying around that use the DLL facilities, like an existing
connection using GnuTLS or an image displayed using an image DLL.  We
will need to shut down the relevant Emacs features before replacing
the DLL.

There will also be complications with this if another Emacs process
runs the same binary and uses the same DLL, because I don't think you
can overwrite the DLL from under the feet of that other process.

If you are thinking about a limited goal of installing for the first
time a DLL that does not yet exist and is not loaded into Emacs, then
it can be done, although some code will need to be written for that as
well, and I'm not sure package.el is designed to handle such
"packages".  Moreover, I'm not sure such a limited goal would be in
the spirit of package managing, since upgrading an installed package
is an important part of that, perhaps more important than the initial
installation.

> JB> But anyway, the issue is not just monitoring. Someone has to build
> JB> updated binary GnuTLS packages for Windows. That Eli just did it does
> JB> not mean we can burden him with the task forever.
> 
> We can automate that.

Who exactly are "we" in this sentence?

> Eli and Nicos have done the hard part, I think.

I did nothing of the kind.  I just configured and built the stock
distribution, and fought whatever problems I found that prevented the
build and the test suite to run to completion.  The record of that
fight includes 18 "issues" which I will be reporting to GnuTLS
developers soon; until those are resolved, the build I did is anything
but an automatic thing.  And I don't see how anyone else's build can
be fully automated, unless the "issues" I bumped into are due to my
own misunderstandings.

In any case, my experience indicates that having a steady feed of
regular updates of Windows builds of any non-trivial package can never
be based on a single individual, no matter if his/her name is Eli,
Nicos, or something else.  People invest in this some time for as long
as they have it or are interested, and then go away to pursue other
interests or go on with their lives.  You cannot build a reliable
infrastructure on something that is not part of your project.

Bottom line, I feel that letting users download and unzip DLLs is by
far more practical for this purpose than what you suggest.  It also
has the advantage of already working.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 22:35                                       ` Ted Zlatanov
  2012-01-03  0:48                                         ` Óscar Fuentes
  2012-01-03  7:14                                         ` Eli Zaretskii
@ 2012-01-03  7:48                                         ` Eli Zaretskii
  2012-01-03 13:09                                           ` Ted Zlatanov
  2 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03  7:48 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Mon, 02 Jan 2012 17:35:21 -0500
> 
> We can automate that.  Eli and Nicos have done the hard part, I think.

Btw, for some reason Nicos disables creation of gnutls-openssl
library, and I don't understand why.  Doesn't Emacs need it?

(My primary motivation for building GnuTLS was to compile the latest
wget, btw.)



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03  7:14                                         ` Eli Zaretskii
@ 2012-01-03 13:06                                           ` Ted Zlatanov
  2012-01-03 13:37                                             ` Juanma Barranquero
  2012-01-03 14:02                                             ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-03 13:06 UTC (permalink / raw)
  To: emacs-devel

On Tue, 03 Jan 2012 02:14:19 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Mon, 02 Jan 2012 17:35:21 -0500
>> 
EZ> It makes sense, but how is ELPA easier than any other download
EZ> address?  All that's needed is to download a single zip archive and
EZ> unzip it.  Why does it matter if it comes from ELPA or from
EZ> elsewhere?
>> 
>> ELPA updates can be done entirely from within Emacs.

EZ> See below: currently, using this for anything not Lisp-based, like
EZ> installing a new dynamic library, is a pipe dream.  (Actually, even
EZ> downloading a new version of a Lisp library into a running session has
EZ> its problems, as discussed here recently; but I digress.)

You're taking current technical limitations and applying them to a UI
comparison.  The package.el UI is far superior to a download+unzip
process, especially if that process needs to happen more than once and
for more than one package.

>> Downloading and unzipping a file is a nuisance.  Imagine if you
>> asked GNU/Linux users to do the same.  "But they have package
>> managers..."  Exactly!  And so does Emacs, now that package.el is
>> here!

EZ> And I thought only Windows users were spoiled enough to demand
EZ> one-click installations.  "Downloading and unzipping is a
EZ> nuisance"... sheesh.

It's 2012.  Emacs must be compared with Firefox and Chrome, not with
vi/vim.

If you don't see how passing the download+unzip burden to the user is a
nuisance to them and consider it "spoiling," I think that's unfortunate.

>> Can Emacs modify the DLL search path on W32 so it can install some DLL
>> from ELPA and then activate it dynamically?  Or does it require a
>> restart and modifying the global PATH?  Either way, can the process be
>> automated?

EZ> We currently lack infrastructure to replace a DLL that is already used
EZ> by a running Emacs process.  The code that loads a DLL and initializes
EZ> the function pointers used to access its APIs assumes this will be
EZ> done only once in a given session, so currently we do need a restart.

EZ> To be able to replace a DLL without restarting Emacs, we would need to
EZ> add code to free and unload a used DLL from the Emacs process, and
EZ> then load the new one.  This might be complicate if there are data
EZ> structures lying around that use the DLL facilities, like an existing
EZ> connection using GnuTLS or an image displayed using an image DLL.  We
EZ> will need to shut down the relevant Emacs features before replacing
EZ> the DLL.

EZ> There will also be complications with this if another Emacs process
EZ> runs the same binary and uses the same DLL, because I don't think you
EZ> can overwrite the DLL from under the feet of that other process.

EZ> If you are thinking about a limited goal of installing for the first
EZ> time a DLL that does not yet exist and is not loaded into Emacs, then
EZ> it can be done, although some code will need to be written for that as
EZ> well, and I'm not sure package.el is designed to handle such
EZ> "packages".  Moreover, I'm not sure such a limited goal would be in
EZ> the spirit of package managing, since upgrading an installed package
EZ> is an important part of that, perhaps more important than the initial
EZ> installation.

OK, so let's do a restart after a DLL package install or upgrade.  It's
better than nothing.  Can this process be reused for other DLLs like the
libxpm DLL?  Can we activate the new DLL after Emacs restarts, so the
old one will remain active as long as Emacs is using it and the user is
not forced to restart immediately?

I'm not sure if multiple Emacs processes are an important use case.  I
would guess it's an edge case on W32 and can probably be handled by
scanning the process table and insisting that all Emacs instances be
shut down.

JB> But anyway, the issue is not just monitoring. Someone has to build
JB> updated binary GnuTLS packages for Windows. That Eli just did it does
JB> not mean we can burden him with the task forever.
>> 
>> We can automate that.

EZ> Who exactly are "we" in this sentence?

emacs-devel; at least me specifically.

>> Eli and Nicos have done the hard part, I think.

EZ> I did nothing of the kind.  I just configured and built the stock
EZ> distribution, and fought whatever problems I found that prevented the
EZ> build and the test suite to run to completion.  The record of that
EZ> fight includes 18 "issues" which I will be reporting to GnuTLS
EZ> developers soon; until those are resolved, the build I did is anything
EZ> but an automatic thing.  And I don't see how anyone else's build can
EZ> be fully automated, unless the "issues" I bumped into are due to my
EZ> own misunderstandings.

EZ> In any case, my experience indicates that having a steady feed of
EZ> regular updates of Windows builds of any non-trivial package can never
EZ> be based on a single individual, no matter if his/her name is Eli,
EZ> Nicos, or something else.  People invest in this some time for as long
EZ> as they have it or are interested, and then go away to pursue other
EZ> interests or go on with their lives.  You cannot build a reliable
EZ> infrastructure on something that is not part of your project.

I'm not sure what you and Juanma want to say.  That because we don't
have salaried positions for tracking GnuTLS updates to Emacs, it's a
burden?  Or that we shouldn't even do it?  Or that we need more people
to run the Emacs infrastructure?  What's the problem and how can we
solve it?

EZ> Bottom line, I feel that letting users download and unzip DLLs is by
EZ> far more practical for this purpose than what you suggest.  It also
EZ> has the advantage of already working.

It certainly is easier for us, the developers.  But I think it's not the
best solution we can offer to the users.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03  7:48                                         ` Eli Zaretskii
@ 2012-01-03 13:09                                           ` Ted Zlatanov
  2012-01-03 17:06                                             ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-03 13:09 UTC (permalink / raw)
  To: emacs-devel

On Tue, 03 Jan 2012 02:48:19 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Mon, 02 Jan 2012 17:35:21 -0500
>> 
>> We can automate that.  Eli and Nicos have done the hard part, I think.

EZ> Btw, for some reason Nicos disables creation of gnutls-openssl
EZ> library, and I don't understand why.  Doesn't Emacs need it?

That's just the OpenSSL compatibility layer and Emacs doesn't currently
use it AFAIK.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 13:06                                           ` Ted Zlatanov
@ 2012-01-03 13:37                                             ` Juanma Barranquero
  2012-01-03 14:02                                             ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-03 13:37 UTC (permalink / raw)
  To: emacs-devel

2012/1/3 Ted Zlatanov <tzz@lifelogs.com>:

> I'm not sure what you and Juanma want to say.  That because we don't
> have salaried positions for tracking GnuTLS updates to Emacs, it's a
> burden?  Or that we shouldn't even do it?  Or that we need more people
> to run the Emacs infrastructure?  What's the problem and how can we
> solve it?

What I want to say is that is a problem already fixed elsewhere, and I
see no point in diverting resources to fix it again poorly.

> It certainly is easier for us, the developers.  But I think it's not the
> best solution we can offer to the users.

The best thing we can offer to the users is invest our resources in
developing Emacs, not packaging what does not really need to be
packaged.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 13:06                                           ` Ted Zlatanov
  2012-01-03 13:37                                             ` Juanma Barranquero
@ 2012-01-03 14:02                                             ` Eli Zaretskii
  2012-01-03 15:00                                               ` Ted Zlatanov
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 14:02 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Tue, 03 Jan 2012 08:06:51 -0500
> 
> On Tue, 03 Jan 2012 02:14:19 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 
> 
> OK, so let's do a restart after a DLL package install or upgrade.  It's
> better than nothing.  Can this process be reused for other DLLs like the
> libxpm DLL?  Can we activate the new DLL after Emacs restarts, so the
> old one will remain active as long as Emacs is using it and the user is
> not forced to restart immediately?

We can, although it'd probably still need some code changes.  E.g.,
displaying the splash image at startup will automatically load an
image library, and we will have to defer that until after the DLL is
replaced.  (Assuming I understand you correctly that you propose to
run package.el in the new, restarted instance of Emacs and replace the
DLL before it is first used.)

> I'm not sure if multiple Emacs processes are an important use case.  I
> would guess it's an edge case on W32

Happens to me all the time when I'm working on some bug and have the
"regular" Emacs running alongside.  Also, I understand that some
people who use Gnus have it run in a separate session.

> I'm not sure what you and Juanma want to say.  That because we don't
> have salaried positions for tracking GnuTLS updates to Emacs, it's a
> burden?  Or that we shouldn't even do it?  Or that we need more people
> to run the Emacs infrastructure?  What's the problem and how can we
> solve it?

What I want to say is this:

> EZ> Bottom line, I feel that letting users download and unzip DLLs is by
> EZ> far more practical for this purpose than what you suggest.  It also
> EZ> has the advantage of already working.

What you propose is a laudable goal, but I think it has practical
complications that make its gain not worth the effort.  Please keep in
mind that Windows users of Emacs already know how to download and
unzip a distribution, because that's how they install Emacs in the
first place.

That said, if someone is motivated enough to invest the effort, I'll
applaud them.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03  6:37                                           ` Eli Zaretskii
@ 2012-01-03 14:07                                             ` Óscar Fuentes
  2012-01-03 17:21                                               ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03 14:07 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> > Can Emacs modify the DLL search path on W32 so it can install some DLL
>> > from ELPA and then activate it dynamically?  Or does it require a
>> > restart and modifying the global PATH?  Either way, can the process be
>> > automated?
>> 
>> The relevant MS Windows API function (LoadLibrary) accepts a full
>> pathname
>
> That's a factual truth, but it would be a grave mistake on our part to
> use absolute file names for loading dynamic libraries, because it will
> mean a major inconvenience to users.  It is hard on Windows to pick up
> a fixed directory where every user could easily put the library: the
> only directories that are guaranteed to exist on every Windows system
> are frequently locked up by security policies, the only disk drive
> guaranteed to exist can be a remote drive or even a read-only drive,
> etc.  It would be a step in the wrong direction.

You are providing reasons for the package approach: if it is hard for
the user to put the dll in the correct directory, let Emacs do it.

> Besides, even if we did follow this path, it wouldn't solve the
> problem, because:
>
>> so no need for restarts nor changing PATH.
>
> There's much more to loading a new DLL in the middle of a session than
> just the location of the new DLL.  I will address that in a separate
> message.

I was not proposing to unload the old dll and load the new one on the
fly (BTW, I was not prososing anything at all, just providing technical
info). I know very well that that is unfeasible in general. What is
possible: if GnuTLS is absent and the user wants it, download the dll
and start using it right away. If GnuTLS needs to be upgraded, advertise
the fact to the user, ask for his permission, and proceed to
download(*), with an Emacs restart at the end (or some variation of this
sequence of actions).

* DLLs which are in use are not file-writable. Either the dll must be
  unloaded first (which may be unfeasible) or the new version must be
  downloaded to a temporary location and moved to the final place later.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02 17:39                                     ` Eli Zaretskii
  2012-01-02 18:51                                       ` Lars Ingebrigtsen
  2012-01-02 22:35                                       ` Ted Zlatanov
@ 2012-01-03 14:14                                       ` Jason Rumney
  2 siblings, 0 replies; 243+ messages in thread
From: Jason Rumney @ 2012-01-03 14:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> The w32 "distribution" is just a single zip file which you unzip
> wherever you want it, and add the bin subdirectory to PATH.  A zip
> file cannot "decide" anything.
>
> The alternatives are:
>
>  . have GnuTLS as part of the binary zip
>
>  . have GnuTLS as a separate zip alongside the binary zip (we do this
>    for libxpm)

Not quite true. libxpm.dll is included in the binary zip for emacs. The
separate zip for libxpm is the sources, since we need to distribute the
sources for libraries we distribute according to the GPL (libxpm is
under a more permissive license I think, but since we distribute it as
part of Emacs, we have an obligation to follow GPL as well).

>  . have GnuTLS available for download from some other address



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 14:02                                             ` Eli Zaretskii
@ 2012-01-03 15:00                                               ` Ted Zlatanov
  2012-01-03 15:05                                                 ` Juanma Barranquero
  2012-01-03 17:29                                                 ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-03 15:00 UTC (permalink / raw)
  To: emacs-devel

On Tue, 03 Jan 2012 09:02:17 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Tue, 03 Jan 2012 08:06:51 -0500
>> 
>> On Tue, 03 Jan 2012 02:14:19 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 
>> 
>> OK, so let's do a restart after a DLL package install or upgrade.  It's
>> better than nothing.  Can this process be reused for other DLLs like the
>> libxpm DLL?  Can we activate the new DLL after Emacs restarts, so the
>> old one will remain active as long as Emacs is using it and the user is
>> not forced to restart immediately?

EZ> We can, although it'd probably still need some code changes.  E.g.,
EZ> displaying the splash image at startup will automatically load an
EZ> image library, and we will have to defer that until after the DLL is
EZ> replaced.  (Assuming I understand you correctly that you propose to
EZ> run package.el in the new, restarted instance of Emacs and replace the
EZ> DLL before it is first used.)

The mechanism is not too important from a UI perspective, as long as it
DTRT, and I don't know the W32 platform well enough to specify how it
should operate.  If you think replacing the DLL is possible entirely
from within Emacs, I'm OK with that.

As a first cut, could we have a gnutls-w32 package, version 3.09
currently, which when activated will download and install the 3.09
GnuTLS DLL if it's missing?  Where should this DLL be written?

Does W32 have APIs or mechanisms to update DLLs safely?

As an alternate solution, could GnuTLS itself have an installer and an
updater?

>> I'm not sure if multiple Emacs processes are an important use case.  I
>> would guess it's an edge case on W32

EZ> Happens to me all the time when I'm working on some bug and have the
EZ> "regular" Emacs running alongside.  Also, I understand that some
EZ> people who use Gnus have it run in a separate session.

Emacs developers are always an edge case :)

>> I'm not sure what you and Juanma want to say.  That because we don't
>> have salaried positions for tracking GnuTLS updates to Emacs, it's a
>> burden?  Or that we shouldn't even do it?  Or that we need more people
>> to run the Emacs infrastructure?  What's the problem and how can we
>> solve it?

EZ> What I want to say is this:

EZ> Bottom line, I feel that letting users download and unzip DLLs is by
EZ> far more practical for this purpose than what you suggest.  It also
EZ> has the advantage of already working.

Unlike other libraries we support with Emacs, we have a responsibility
to the user to keep GnuTLS updated.  The worst case is that their
security is compromised, not that Emacs won't run.

On W32 this is a worse problem than anywhere else IIUC (Mac OS X has
MacPorts and GNU/Linux has a billion package managers).  So, we either
tell the user to download and unzip the GnuTLS DLLs every time there's a
critical fix, or we do it automatically for them from the package.el UI,
or we pass the responsibility to the GnuTLS developers to write an
updater.  I don't think we have the option, as responsible developers,
of just ignoring that responsibility.

On Tue, 3 Jan 2012 14:37:00 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> What I want to say is that is a problem already fixed elsewhere, and I
JB> see no point in diverting resources to fix it again poorly.

The problem of pushing out a critical GnuTLS fix to Emacs users on W32
is not fixed AFAIK.  We just have a DLL in a zip file.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 15:00                                               ` Ted Zlatanov
@ 2012-01-03 15:05                                                 ` Juanma Barranquero
  2012-01-03 17:29                                                 ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-03 15:05 UTC (permalink / raw)
  To: emacs-devel

2012/1/3 Ted Zlatanov <tzz@lifelogs.com>:

> The problem of pushing out a critical GnuTLS fix to Emacs users on W32
> is not fixed AFAIK.  We just have a DLL in a zip file.

Again: the problem is letting them now that something needs to be
fixed. Downloading a zip is not the hard part.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 13:09                                           ` Ted Zlatanov
@ 2012-01-03 17:06                                             ` Eli Zaretskii
  2012-01-04 11:02                                               ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 17:06 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Tue, 03 Jan 2012 08:09:25 -0500
> 
> EZ> Btw, for some reason Nicos disables creation of gnutls-openssl
> EZ> library, and I don't understand why.  Doesn't Emacs need it?
> 
> That's just the OpenSSL compatibility layer and Emacs doesn't currently
> use it AFAIK.

OK, so Emacs will be happy, but some other program that does need
OpenSSL might not be.  IOW, that w32 build could be incomplete.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 14:07                                             ` Óscar Fuentes
@ 2012-01-03 17:21                                               ` Eli Zaretskii
  2012-01-03 17:48                                                 ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 17:21 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 03 Jan 2012 15:07:02 +0100
> 
> >> The relevant MS Windows API function (LoadLibrary) accepts a full
> >> pathname
> >
> > That's a factual truth, but it would be a grave mistake on our part to
> > use absolute file names for loading dynamic libraries, because it will
> > mean a major inconvenience to users.  It is hard on Windows to pick up
> > a fixed directory where every user could easily put the library: the
> > only directories that are guaranteed to exist on every Windows system
> > are frequently locked up by security policies, the only disk drive
> > guaranteed to exist can be a remote drive or even a read-only drive,
> > etc.  It would be a step in the wrong direction.
> 
> You are providing reasons for the package approach: if it is hard for
> the user to put the dll in the correct directory, let Emacs do it.

No, it is _not_ hard for the user to put the DLL in the correct
directory.  It is hard for _us_, the programmers of package.el, to
select a fixed directory that would work for all users, so that we
could hardcode its absolute file name in the Emacs sources.  An
entirely different issue.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 15:00                                               ` Ted Zlatanov
  2012-01-03 15:05                                                 ` Juanma Barranquero
@ 2012-01-03 17:29                                                 ` Eli Zaretskii
  2012-01-03 18:10                                                   ` Óscar Fuentes
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 17:29 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Tue, 03 Jan 2012 10:00:15 -0500
> 
> The mechanism is not too important from a UI perspective, as long as it
> DTRT, and I don't know the W32 platform well enough to specify how it
> should operate.  If you think replacing the DLL is possible entirely
> from within Emacs, I'm OK with that.

Anything's possible: this is software, after all.  It is just that it
takes a non-trivial effort.

> As a first cut, could we have a gnutls-w32 package, version 3.09
> currently, which when activated will download and install the 3.09
> GnuTLS DLL if it's missing?

We can, if someone does the job.

> Where should this DLL be written?

To the directory where emacs.exe lives.

> Does W32 have APIs or mechanisms to update DLLs safely?

If it does, I'm not familiar with them (which doesn't mean they don't
exist; I don't consider myself an expert on the gazillion APIs
scattered across MS-Windows-land).

> As an alternate solution, could GnuTLS itself have an installer and an
> updater?

Alternative for what? for package.el or for replacing a DLL without
restarting Emacs?

> On W32 this is a worse problem than anywhere else IIUC (Mac OS X has
> MacPorts and GNU/Linux has a billion package managers).  So, we either
> tell the user to download and unzip the GnuTLS DLLs every time there's a
> critical fix, or we do it automatically for them from the package.el UI,
> or we pass the responsibility to the GnuTLS developers to write an
> updater.  I don't think we have the option, as responsible developers,
> of just ignoring that responsibility.

I don't ignore it, I built the W32 DLL in the first place, remember?
I just think this puts us 99% of the way to the goal, that's all.  But
if someone has motivation to go the extra 1%, my hat.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 17:21                                               ` Eli Zaretskii
@ 2012-01-03 17:48                                                 ` Óscar Fuentes
  2012-01-03 18:14                                                   ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03 17:48 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> You are providing reasons for the package approach: if it is hard for
>> the user to put the dll in the correct directory, let Emacs do it.
>
> No, it is _not_ hard for the user to put the DLL in the correct
> directory.

The user needs to know the correct directory (where "correct" implies
"with write access to it and Emacs can find the dll there"). That's
anything but trivial even for a computer-savvy user (BTW, since when
Emacs changed its policy and is targeted to geeks only again?)

> It is hard for _us_, the programmers of package.el, to
> select a fixed directory that would work for all users, so that we
> could hardcode its absolute file name in the Emacs sources.  An
> entirely different issue.

Elisp packages downloaded by package.el are already saved on a
well-known directory where Emacs has write access to. So the problem is
solved.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 17:29                                                 ` Eli Zaretskii
@ 2012-01-03 18:10                                                   ` Óscar Fuentes
  0 siblings, 0 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03 18:10 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

[snip]

>> Where should this DLL be written?
>
> To the directory where emacs.exe lives.

Keep in mind that such operation may require Admin privileges. Writing
under the user's home directory doesn't require elevated
privileges. Ted, please see my other response to Eli. Writing on the
under the same directory where the Elisp packages retrieved by
package.el should no pose problems.

>> Does W32 have APIs or mechanisms to update DLLs safely?

The standard MS installers have a mechanism for detecting when a dll is
in use and, if the result is positive, arrange things for updating it on
the next restart or login. A poor's man method for detecting when a dll
is in use is just trying to overwrite it (after you know that you have
write access to the file).

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 17:48                                                 ` Óscar Fuentes
@ 2012-01-03 18:14                                                   ` Eli Zaretskii
  2012-01-03 18:34                                                     ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 18:14 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 03 Jan 2012 18:48:17 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> You are providing reasons for the package approach: if it is hard for
> >> the user to put the dll in the correct directory, let Emacs do it.
> >
> > No, it is _not_ hard for the user to put the DLL in the correct
> > directory.
> 
> The user needs to know the correct directory (where "correct" implies
> "with write access to it and Emacs can find the dll there"). That's
> anything but trivial even for a computer-savvy user

The same user already unzipped the Emacs binary distro, so why exactly
would it be hard for her to unzip another zip file from the same
place?

> (BTW, since when Emacs changed its policy and is targeted to geeks
> only again?)

Since about forever?

> > It is hard for _us_, the programmers of package.el, to
> > select a fixed directory that would work for all users, so that we
> > could hardcode its absolute file name in the Emacs sources.  An
> > entirely different issue.
> 
> Elisp packages downloaded by package.el are already saved on a
> well-known directory where Emacs has write access to. So the problem is
> solved.

Solved my foot! we need to know that directory's absolute file name in
advance, to hardcode it into the C sources of Emacs.  How's that
going to work, if package.el doesn't know where that directory will be
until it is run by Emacs?




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 18:14                                                   ` Eli Zaretskii
@ 2012-01-03 18:34                                                     ` Óscar Fuentes
  2012-01-03 19:38                                                       ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03 18:34 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Óscar Fuentes <ofv@wanadoo.es>
>> Date: Tue, 03 Jan 2012 18:48:17 +0100
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> You are providing reasons for the package approach: if it is hard for
>> >> the user to put the dll in the correct directory, let Emacs do it.
>> >
>> > No, it is _not_ hard for the user to put the DLL in the correct
>> > directory.
>> 
>> The user needs to know the correct directory (where "correct" implies
>> "with write access to it and Emacs can find the dll there"). That's
>> anything but trivial even for a computer-savvy user
>
> The same user

Not necessarily the same user. But I admit that I'm nitpicking.

> already unzipped the Emacs binary distro, so why exactly
> would it be hard for her to unzip another zip file from the same
> place?

He must unzip the file on a very specific directory, not just on the
same directory where he installs every program.

BTW, zip files is a terrible way to install software on MS Windows. Only
geeks who already decided to try Emacs go through the process of
installing from a zip file. I find quite ironic that `make install'
creates the Emacs icon on the Start menu but with the standard binary
distribution the user need to figure out how to start Emacs.

>> (BTW, since when Emacs changed its policy and is targeted to geeks
>> only again?)
>
> Since about forever?

Then lots of time was wasted on writing documentation that is clearly
targeted to non-geeks.

>> > It is hard for _us_, the programmers of package.el, to
>> > select a fixed directory that would work for all users, so that we
>> > could hardcode its absolute file name in the Emacs sources.  An
>> > entirely different issue.
>> 
>> Elisp packages downloaded by package.el are already saved on a
>> well-known directory where Emacs has write access to. So the problem is
>> solved.
>
> Solved my foot! we need to know that directory's absolute file name in
> advance, to hardcode it into the C sources of Emacs.  How's that
> going to work, if package.el doesn't know where that directory will be
> until it is run by Emacs?

You don't need to know the directory at compile time. GnuTLS and
potentially other libraries (those that provide image support, for
instance) are perfectly fine if you load them on demand at run time. I
think that's what already happens with the GnuTLS on MS Windows.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 18:34                                                     ` Óscar Fuentes
@ 2012-01-03 19:38                                                       ` Eli Zaretskii
  2012-01-03 19:48                                                         ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 19:38 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 03 Jan 2012 19:34:55 +0100
> 
> >> Elisp packages downloaded by package.el are already saved on a
> >> well-known directory where Emacs has write access to. So the problem is
> >> solved.
> >
> > Solved my foot! we need to know that directory's absolute file name in
> > advance, to hardcode it into the C sources of Emacs.  How's that
> > going to work, if package.el doesn't know where that directory will be
> > until it is run by Emacs?
> 
> You don't need to know the directory at compile time. GnuTLS and
> potentially other libraries (those that provide image support, for
> instance) are perfectly fine if you load them on demand at run time.

Yes, but loaded from where?  They can either be in the same directory
where the Emacs executable lives, or on Path, or in the Windows's
system32 directory, or in some other place, but in the latter case we
must pass an absolute file name to LoadLibrary.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 19:38                                                       ` Eli Zaretskii
@ 2012-01-03 19:48                                                         ` Óscar Fuentes
  2012-01-03 20:09                                                           ` Eli Zaretskii
  2012-01-04  3:45                                                           ` Stephen J. Turnbull
  0 siblings, 2 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03 19:48 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> >> Elisp packages downloaded by package.el are already saved on a
>> >> well-known directory where Emacs has write access to. So the problem is
>> >> solved.
>> >
>> > Solved my foot! we need to know that directory's absolute file name in
>> > advance, to hardcode it into the C sources of Emacs.  How's that
>> > going to work, if package.el doesn't know where that directory will be
>> > until it is run by Emacs?
>> 
>> You don't need to know the directory at compile time. GnuTLS and
>> potentially other libraries (those that provide image support, for
>> instance) are perfectly fine if you load them on demand at run time.
>
> Yes, but loaded from where?  They can either be in the same directory
> where the Emacs executable lives, or on Path, or in the Windows's
> system32 directory, or in some other place, but in the latter case we
> must pass an absolute file name to LoadLibrary.

If, at run time, you can find the elisp packages downloaded by
package.el, what's the problem with finding a dll on the same directory
(or a subdirectory of it, if you wish) ?




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-02  8:47                     ` GnuTLS for W32 (was: gnutls for win32) Eli Zaretskii
  2012-01-02  9:47                       ` GnuTLS for W32 Jason Rumney
@ 2012-01-03 19:51                       ` Lars Magne Ingebrigtsen
  1 sibling, 0 replies; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-03 19:51 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Why are we talking only about Windows?  Do packages of Emacs 24
> development snapshots on GNU/Linux come with GnuTLS in the same
> package?  If they do, then I agree that the Windows binaries should
> also include GnuTLS; but if not, I don't see why Windows should be
> special in this regard.  We don't want to confuse users by providing
> functionality only on some platforms.

And since the (major) binary GNU/Linux distributions will be providing
the gnutls libraries with Emacs, then we should, too?  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 19:48                                                         ` Óscar Fuentes
@ 2012-01-03 20:09                                                           ` Eli Zaretskii
  2012-01-03 20:25                                                             ` Óscar Fuentes
  2012-01-04  6:48                                                             ` Chong Yidong
  2012-01-04  3:45                                                           ` Stephen J. Turnbull
  1 sibling, 2 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-03 20:09 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 03 Jan 2012 20:48:23 +0100
> 
> If, at run time, you can find the elisp packages downloaded by
> package.el, what's the problem with finding a dll on the same directory
> (or a subdirectory of it, if you wish) ?

Because load-path is used for loading Lisp, but not for loading DLLs.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 20:09                                                           ` Eli Zaretskii
@ 2012-01-03 20:25                                                             ` Óscar Fuentes
  2012-01-04  6:48                                                             ` Chong Yidong
  1 sibling, 0 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-03 20:25 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> If, at run time, you can find the elisp packages downloaded by
>> package.el, what's the problem with finding a dll on the same directory
>> (or a subdirectory of it, if you wish) ?
>
> Because load-path is used for loading Lisp, but not for loading DLLs.

That has an obvious answer.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 19:48                                                         ` Óscar Fuentes
  2012-01-03 20:09                                                           ` Eli Zaretskii
@ 2012-01-04  3:45                                                           ` Stephen J. Turnbull
  2012-01-04  5:21                                                             ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-04  3:45 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes writes:

 > If, at run time, you can find the elisp packages downloaded by
 > package.el, what's the problem with finding a dll on the same directory
 > (or a subdirectory of it, if you wish) ?

None, AFAICS.  That's (actually, a sibling directory) is what XEmacs
does[1], and what Python does (same directory, if desired).


Footnotes: 
[1]  Except that we don't provide DLLs for download, for various
reasons, the most important of which is that binary distributions are
bug magnets that distract the maintainers disproportionately, and
non-maintainers are generally unwilling to touch.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04  3:45                                                           ` Stephen J. Turnbull
@ 2012-01-04  5:21                                                             ` Eli Zaretskii
  2012-01-04  7:03                                                               ` Stephen J. Turnbull
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04  5:21 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: ofv, emacs-devel

> From: "Stephen J. Turnbull" <stephen@xemacs.org>
> Date: Wed, 04 Jan 2012 12:45:47 +0900
> Cc: emacs-devel@gnu.org
> 
> Óscar Fuentes writes:
> 
>  > If, at run time, you can find the elisp packages downloaded by
>  > package.el, what's the problem with finding a dll on the same directory
>  > (or a subdirectory of it, if you wish) ?
> 
> None, AFAICS.  That's (actually, a sibling directory) is what XEmacs
> does[1], and what Python does (same directory, if desired).

Please don't say that without telling the details.  There are people
reading this thread who don't know enough about Windows and are likely
to take this at face value.

Once again: the way the current C code is written, Emacs _cannot_ load
DLLs except from directories which Windows searches for dynamic
libraries.  Those directories do not include load-path, and therefore
no amount of coding in package.el alone will be able to make
package.el usable for downloading and installing DLLs (even if we
resolve the issue of doing so from within a running Emacs session).
Changes on the C level are needed to make that possible; but if we are
going to make C-level changes, it would be much better to have DLL
downloaded to the same directory where emacs.exe lives or (if the user
so wishes) to some directory on PATH, because that's where DLLs are
normally located.

An alternative is to modify PATH to include site-lisp or some other
directory on load-path, but that is a much worse idea, and it cannot
be done from a running Emacs session anyway.

> [1]  Except that we don't provide DLLs for download, for various
> reasons, the most important of which is that binary distributions are
> bug magnets that distract the maintainers disproportionately, and
> non-maintainers are generally unwilling to touch.

That point was made in this thread more than once, but Ted is still
pushing for it.  Which is fine by me, assuming that someone will step
forward and do the job.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 20:09                                                           ` Eli Zaretskii
  2012-01-03 20:25                                                             ` Óscar Fuentes
@ 2012-01-04  6:48                                                             ` Chong Yidong
  2012-01-04  8:15                                                               ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Chong Yidong @ 2012-01-04  6:48 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Óscar Fuentes, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Óscar Fuentes <ofv@wanadoo.es>
>> Date: Tue, 03 Jan 2012 20:48:23 +0100
>>
>> If, at run time, you can find the elisp packages downloaded by
>> package.el, what's the problem with finding a dll on the same directory
>> (or a subdirectory of it, if you wish) ?
>
> Because load-path is used for loading Lisp, but not for loading DLLs.

The code in a Lisp package can extract its package directory from the
variable `load-file-name'.  The Multi-file Packages node of the Lisp
manual gives an example of this.

I'm not saying we should distribute GnuTLS support via ELPA, only that
the Package system is no technical barrier.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04  5:21                                                             ` Eli Zaretskii
@ 2012-01-04  7:03                                                               ` Stephen J. Turnbull
  2012-01-04  8:21                                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-04  7:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ofv, emacs-devel

Eli Zaretskii writes:
 > > Óscar Fuentes writes:
 > > 
 > >  > If, at run time, you can find the elisp packages downloaded by
 > >  > package.el, what's the problem with finding a dll on the same directory
 > >  > (or a subdirectory of it, if you wish) ?
 > > 
 > > None, AFAICS.  That's (actually, a sibling directory) is what XEmacs
 > > does[1], and what Python does (same directory, if desired).
 > 
 > Please don't say that without telling the details.  There are people
 > reading this thread who don't know enough about Windows and are likely
 > to take this at face value.
 > 
 > Once again: the way the current C code is written, Emacs _cannot_ load
 > DLLs except from directories which Windows searches for dynamic
 > libraries.

OK, you may be right (I mean, for XEmacs too, I concede your expertise
on Emacs).  I don't understand the ins and outs of the Windows native
build, but it looks like support for a configurable modules directory
was removed from that port of XEmacs after 21.4 (which was when I was
reasonably familiar with the port), and what actually happens now is
that modules built at XEmacs build time are installed in the same
directory as the XEmacs binary.  It's quite possible the alleged
support was removed because it didn't actually work for the reasons
you give.

I don't know the details, but I'm pretty sure that Python does support
DLLs anywhere that a .py can be found, though, because where something
lives on PYTHONPATH is essential to figuring out what its name (as a
module in Python) is.

 > > [1]  Except that we don't provide DLLs for download, for various
 > > reasons, the most important of which is that binary distributions are
 > > bug magnets that distract the maintainers disproportionately, and
 > > non-maintainers are generally unwilling to touch.
 > 
 > That point was made in this thread more than once, but Ted is still
 > pushing for it.  Which is fine by me, assuming that someone will step
 > forward and do the job.

In my experience, such volunteers are only reliable in the long run if
they're paid to support Emacs by building installers etc.  But it's a
new year, so anything could happen!  Good luck finding the volunteer!



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04  6:48                                                             ` Chong Yidong
@ 2012-01-04  8:15                                                               ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04  8:15 UTC (permalink / raw)
  To: Chong Yidong; +Cc: ofv, emacs-devel

> From: Chong Yidong <cyd@gnu.org>
> Cc: Óscar Fuentes <ofv@wanadoo.es>,  emacs-devel@gnu.org
> Date: Wed, 04 Jan 2012 14:48:22 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Óscar Fuentes <ofv@wanadoo.es>
> >> Date: Tue, 03 Jan 2012 20:48:23 +0100
> >>
> >> If, at run time, you can find the elisp packages downloaded by
> >> package.el, what's the problem with finding a dll on the same directory
> >> (or a subdirectory of it, if you wish) ?
> >
> > Because load-path is used for loading Lisp, but not for loading DLLs.
> 
> The code in a Lisp package can extract its package directory from the
> variable `load-file-name'.  The Multi-file Packages node of the Lisp
> manual gives an example of this.

The issue is not figuring out the directory where the DLL lives.  The
issue is instructing the code that needs to load that DLL where to
look for it.

Currently, we load the DLLs by specifying their basename, without
leading directories, which causes the corresponding Windows API to
search for the DLL in known places, as documented in the MS
documentation.  To change that and give Lisp programs control of where
to look for DLLs, we need changes on the C level.

The other problem is how to upgrade a DLL from an Emacs session that
already uses the previous version of that DLL.  I think this is hard
without restarting Emacs, and not trivial even with restarting.

> I'm not saying we should distribute GnuTLS support via ELPA, only that
> the Package system is no technical barrier.

The barrier I was talking about has nothing to do with package.el.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04  7:03                                                               ` Stephen J. Turnbull
@ 2012-01-04  8:21                                                                 ` Eli Zaretskii
  2012-01-04 11:21                                                                   ` Stephen J. Turnbull
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04  8:21 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: ofv, emacs-devel

> From: "Stephen J. Turnbull" <stephen@xemacs.org>
> Cc: ofv@wanadoo.es,
>     emacs-devel@gnu.org
> Date: Wed, 04 Jan 2012 16:03:26 +0900
> 
> I don't know the details, but I'm pretty sure that Python does support
> DLLs anywhere that a .py can be found, though, because where something
> lives on PYTHONPATH is essential to figuring out what its name (as a
> module in Python) is.

That's also what I know (although my Python-related knowledge is
considerably smaller than yours).

But there is a difference between Python's .pyd DLLs and
general-purpose DLLs such as libgnutls.  The former are generally not
useful for anything but Python programs.  By contrast, the latter can
be used by programs that have nothing to do with Emacs.  For example,
GnuTLS is used by wget (in fact, building the latest wget was the
original reason why I built the latest GnuTLS on Windows).

For this reason, I think we should give Emacs users an option to put
the downloaded DLL in some directory that is not Emacs-specific, so
that other programs could use it.

>  > > [1]  Except that we don't provide DLLs for download, for various
>  > > reasons, the most important of which is that binary distributions are
>  > > bug magnets that distract the maintainers disproportionately, and
>  > > non-maintainers are generally unwilling to touch.
>  > 
>  > That point was made in this thread more than once, but Ted is still
>  > pushing for it.  Which is fine by me, assuming that someone will step
>  > forward and do the job.
> 
> In my experience, such volunteers are only reliable in the long run if
> they're paid to support Emacs by building installers etc.  But it's a
> new year, so anything could happen!  Good luck finding the volunteer!

Seconded.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-03 17:06                                             ` Eli Zaretskii
@ 2012-01-04 11:02                                               ` Ted Zlatanov
  2012-01-04 12:26                                                 ` joakim
  2012-01-04 14:22                                                 ` Óscar Fuentes
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-04 11:02 UTC (permalink / raw)
  To: emacs-devel

On Tue, 03 Jan 2012 19:21:14 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

EZ> No, it is _not_ hard for the user to put the DLL in the correct
EZ> directory.  It is hard for _us_, the programmers of package.el, to
EZ> select a fixed directory that would work for all users, so that we
EZ> could hardcode its absolute file name in the Emacs sources.  An
EZ> entirely different issue.

The addendum is "...and so GnuTLS is available to non-Emacs processes
too" which is something I did not consider carefully but your mention of
wget brought up.  We don't want multiple versions of the GnuTLS DLL all
over the place, that could be worse for security than a single outdated
version.  So the package.el install is not a good W32 solution to
deliver GnuTLS, after all.

On Tue, 03 Jan 2012 20:51:28 +0100 Lars Magne Ingebrigtsen <larsi@gnus.org> wrote: 

LMI> And since the (major) binary GNU/Linux distributions will be providing
LMI> the gnutls libraries with Emacs, then we should, too?  :-)

We should find a way, yes.  But we should be smart about it, and a
GnuTLS installer, separate from Emacs, would benefit far more users and
projects, and it would use the right APIs to deploy the DLL.

On Tue, 03 Jan 2012 19:10:14 +0100 Óscar Fuentes <ofv@wanadoo.es> wrote: 

ÓF> The standard MS installers have a mechanism for detecting when a dll is
ÓF> in use and, if the result is positive, arrange things for updating it on
ÓF> the next restart or login. A poor's man method for detecting when a dll
ÓF> is in use is just trying to overwrite it (after you know that you have
ÓF> write access to the file).

Because of this, I think we (emacs-devel and gnutls-devel) should just
put together a W32 installer for GnuTLS.  Obviously this would be
connected to the GnuTLS project but I think Nikos (whose name I've
misspelled as Nicos a few times) could use some help with such an
installer.  Is there another GNU project that provides a W32 DLL
*self-updating* installer, so I can get them started with that project?

I may end up owning that installer, we'll see what the GnuTLS developers
want.  But it would let GnuTLS issue updates, remove a release
dependency between their project and Emacs, and remove the tedious
requirement of downloading a zip file and installing it manually.

On the Emacs side on W32, if GnuTLS is not installed, we should tell the
user how to install it by pointing to the W32 installer (running it
automatically is probably too aggressive).  The more I think about it,
the more appropriate this solution seems for everyone concerned.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04  8:21                                                                 ` Eli Zaretskii
@ 2012-01-04 11:21                                                                   ` Stephen J. Turnbull
  2012-01-04 11:33                                                                     ` Lars Magne Ingebrigtsen
  2012-01-04 13:57                                                                     ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-04 11:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ofv, emacs-devel

Eli Zaretskii writes:

 > For this reason, I think we should give Emacs users an option to put
 > the downloaded DLL in some directory that is not Emacs-specific, so
 > that other programs could use it.

Well, as you know I'm not a Windows person, but my understanding is
that one reason that DLL hell is called "DLL hell" is that programs
install their own versions of DLLs *in the system directories* that
for one reason or another are inappropriate for other programs.  So in
fact you're asking a lot of knowledge on the user's part to get this
right.

This is not unknown on other OSes.  For example, on most GNU/Linux
systems glibc will depend on a specific version of the kernel headers,
which may or may not correspond to the kernel actually running on the
system.  So glibc has its private version of the kernel headers, which
it then imposes on the whole system.  This actually seems to work
pretty well, but only because everybody knows that the most important
thing is for libc to work!  gnutls isn't going to have that priority.

I think that the thing to do is for Emacs to install private versions
of DLLs when it installs any at all, and if/when people complain about
"bloat", add some logic (maybe in the installer routine) to check to
see if there is an appropriate DLL already on the Windows DLL path.
(Yes, I understand that implementing this isn't going to be all that
simple either, but in principle I don't think Emacs should add to DLL
hell.)



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:21                                                                   ` Stephen J. Turnbull
@ 2012-01-04 11:33                                                                     ` Lars Magne Ingebrigtsen
  2012-01-04 11:57                                                                       ` Lennart Borgman
  2012-01-04 18:19                                                                       ` Eli Zaretskii
  2012-01-04 13:57                                                                     ` Eli Zaretskii
  1 sibling, 2 replies; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-04 11:33 UTC (permalink / raw)
  To: emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> I think that the thing to do is for Emacs to install private versions
> of DLLs when it installs any at all, and if/when people complain about
> "bloat", add some logic (maybe in the installer routine) to check to
> see if there is an appropriate DLL already on the Windows DLL path.

I agree.  Assuming that the size of these things is comparable on
Windows and Debian, the added size doesn't seem particularly daunting:

[larsi@stories ~]$ ls -lh /usr/lib/libgnutls.so.26.14.12 src/emacs/trunk/src/emacs /usr/lib/libxml2.so.2.7.8              
-rwxr-xr-x 3 larsi larsi  19M Jan  3 20:41 src/emacs/trunk/src/emacs
-rw-r--r-- 1 root  root  654K Mar 20  2010 /usr/lib/libgnutls.so.26.14.12
-rw-r--r-- 1 root  root  1.4M Jun  4  2011 /usr/lib/libxml2.so.2.7.8

And the .elc files seem to take a further 38MB, if I wc correctly.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:33                                                                     ` Lars Magne Ingebrigtsen
@ 2012-01-04 11:57                                                                       ` Lennart Borgman
  2012-01-04 12:06                                                                         ` Lars Magne Ingebrigtsen
  2012-01-04 18:19                                                                       ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Lennart Borgman @ 2012-01-04 11:57 UTC (permalink / raw)
  To: emacs-devel

Off topic: Lars Magne, why is it not possible to reach you at the mail
address you are using here. Gmail gives me this:

The recipient server did not accept our requests to connect. Learn
more at http://mail.google.com/support/bin/answer.py?answer=7720
[quimby.gnus.org. (10): No route to host]



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:57                                                                       ` Lennart Borgman
@ 2012-01-04 12:06                                                                         ` Lars Magne Ingebrigtsen
  2012-01-04 12:37                                                                           ` David Engster
  0 siblings, 1 reply; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-04 12:06 UTC (permalink / raw)
  To: Lennart Borgman; +Cc: emacs-devel

Lennart Borgman <lennart.borgman@gmail.com> writes:

> Off topic: Lars Magne, why is it not possible to reach you at the mail
> address you are using here. Gmail gives me this:
>
> The recipient server did not accept our requests to connect. Learn
> more at http://mail.google.com/support/bin/answer.py?answer=7720
> [quimby.gnus.org. (10): No route to host]

I get plenty of email at my larsi@gnus.org address.  Perhaps it's a
Gmail bug?

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:02                                               ` Ted Zlatanov
@ 2012-01-04 12:26                                                 ` joakim
  2012-01-04 14:22                                                 ` Óscar Fuentes
  1 sibling, 0 replies; 243+ messages in thread
From: joakim @ 2012-01-04 12:26 UTC (permalink / raw)
  To: emacs-devel; +Cc: tzz

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Tue, 03 Jan 2012 19:21:14 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 
>
> EZ> No, it is _not_ hard for the user to put the DLL in the correct
> EZ> directory.  It is hard for _us_, the programmers of package.el, to
> EZ> select a fixed directory that would work for all users, so that we
> EZ> could hardcode its absolute file name in the Emacs sources.  An
> EZ> entirely different issue.
>
> The addendum is "...and so GnuTLS is available to non-Emacs processes
> too" which is something I did not consider carefully but your mention of
> wget brought up.  We don't want multiple versions of the GnuTLS DLL all
> over the place, that could be worse for security than a single outdated
> version.  So the package.el install is not a good W32 solution to
> deliver GnuTLS, after all.
>
> On Tue, 03 Jan 2012 20:51:28 +0100 Lars Magne Ingebrigtsen <larsi@gnus.org> wrote: 
>
> LMI> And since the (major) binary GNU/Linux distributions will be providing
> LMI> the gnutls libraries with Emacs, then we should, too?  :-)
>
> We should find a way, yes.  But we should be smart about it, and a
> GnuTLS installer, separate from Emacs, would benefit far more users and
> projects, and it would use the right APIs to deploy the DLL.
>
> On Tue, 03 Jan 2012 19:10:14 +0100 Óscar Fuentes <ofv@wanadoo.es> wrote: 
>
> ÓF> The standard MS installers have a mechanism for detecting when a dll is
> ÓF> in use and, if the result is positive, arrange things for updating it on
> ÓF> the next restart or login. A poor's man method for detecting when a dll
> ÓF> is in use is just trying to overwrite it (after you know that you have
> ÓF> write access to the file).
>
> Because of this, I think we (emacs-devel and gnutls-devel) should just
> put together a W32 installer for GnuTLS.  Obviously this would be
> connected to the GnuTLS project but I think Nikos (whose name I've
> misspelled as Nicos a few times) could use some help with such an
> installer.  Is there another GNU project that provides a W32 DLL
> *self-updating* installer, so I can get them started with that project?
>
> I may end up owning that installer, we'll see what the GnuTLS developers
> want.  But it would let GnuTLS issue updates, remove a release
> dependency between their project and Emacs, and remove the tedious
> requirement of downloading a zip file and installing it manually.
>
> On the Emacs side on W32, if GnuTLS is not installed, we should tell the
> user how to install it by pointing to the W32 installer (running it
> automatically is probably too aggressive).  The more I think about it,
> the more appropriate this solution seems for everyone concerned.

I haven't followed this thread too closely but I can offer advice on how
to use the NSIS installer (http://nsis.sourceforge.net/Main_Page) if
that is at all relevant (NSIS is free software and stuff)


>
> Ted
>

-- 
Joakim Verona



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 12:06                                                                         ` Lars Magne Ingebrigtsen
@ 2012-01-04 12:37                                                                           ` David Engster
  2012-01-04 18:42                                                                             ` Lennart Borgman
  0 siblings, 1 reply; 243+ messages in thread
From: David Engster @ 2012-01-04 12:37 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: Lennart Borgman, emacs-devel

Lars Magne Ingebrigtsen writes:
> Lennart Borgman <lennart.borgman@gmail.com> writes:
>
>> Off topic: Lars Magne, why is it not possible to reach you at the mail
>> address you are using here. Gmail gives me this:
>>
>> The recipient server did not accept our requests to connect. Learn
>> more at http://mail.google.com/support/bin/answer.py?answer=7720
>> [quimby.gnus.org. (10): No route to host]
>
> I get plenty of email at my larsi@gnus.org address.  Perhaps it's a
> Gmail bug?

Lennart, when did you send the mail? quimby.gnus.org was down for
several days after christmas.

-David



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:21                                                                   ` Stephen J. Turnbull
  2012-01-04 11:33                                                                     ` Lars Magne Ingebrigtsen
@ 2012-01-04 13:57                                                                     ` Eli Zaretskii
  2012-01-04 14:14                                                                       ` Óscar Fuentes
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 13:57 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: ofv, emacs-devel

> From: "Stephen J. Turnbull" <stephen@xemacs.org>
> Cc: ofv@wanadoo.es,
>     emacs-devel@gnu.org
> Date: Wed, 04 Jan 2012 20:21:07 +0900
> 
> Eli Zaretskii writes:
> 
>  > For this reason, I think we should give Emacs users an option to put
>  > the downloaded DLL in some directory that is not Emacs-specific, so
>  > that other programs could use it.
> 
> Well, as you know I'm not a Windows person, but my understanding is
> that one reason that DLL hell is called "DLL hell"

An aside: the "DLL hell"s flames are much lower now than they used to
be, see

   http://en.wikipedia.org/wiki/Side-by-side_assembly

FWIW, I didn't have a single problem for years on my XP boxes.  YMMV,
of course.

> is that programs install their own versions of DLLs *in the system
> directories* that for one reason or another are inappropriate for
> other programs.  So in fact you're asking a lot of knowledge on the
> user's part to get this right.

Only as an option, which I expect to be used by someone who really
knows what they are doing.  By default, we should install into the
directory of emacs.exe.

(Btw, it doesn't have to be a system directory to be useful to other
programs.  A DLL that is not a standard component on Windows can be
put in some directory on PATH that was created and is maintained by
the user.  That's what I do, FWIW.)

> I think that the thing to do is for Emacs to install private versions
> of DLLs when it installs any at all

By default, certainly.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 13:57                                                                     ` Eli Zaretskii
@ 2012-01-04 14:14                                                                       ` Óscar Fuentes
  2012-01-04 15:05                                                                         ` Juanma Barranquero
                                                                                           ` (2 more replies)
  0 siblings, 3 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 14:14 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: "Stephen J. Turnbull" <stephen@xemacs.org>
>> Cc: ofv@wanadoo.es,
>>     emacs-devel@gnu.org
>> Date: Wed, 04 Jan 2012 20:21:07 +0900
>> 
>> Eli Zaretskii writes:
>> 
>>  > For this reason, I think we should give Emacs users an option to put
>>  > the downloaded DLL in some directory that is not Emacs-specific, so
>>  > that other programs could use it.
>> 
>> Well, as you know I'm not a Windows person, but my understanding is
>> that one reason that DLL hell is called "DLL hell"
>
> An aside: the "DLL hell"s flames are much lower now than they used to
> be, see
>
>    http://en.wikipedia.org/wiki/Side-by-side_assembly

That requires an installer that follows MS guidelines. It's not as easy
as unzipping a file on a directory.

On the topic of how hard is to load a dll from an arbitrary location,
that is what I found on the Emacs sources:

/* The argument LIBRARIES is an alist that associates a symbol
   LIBRARY_ID, identifying an external DLL library known to Emacs, to
   a list of filenames under which the library is usually found.  In
   most cases, the argument passed as LIBRARIES is the variable
   `dynamic-library-alist', which is initialized to a list of common
   library names.  If the function loads the library successfully, it
   returns the handle of the DLL, and records the filename in the
   property :loaded-from of LIBRARY_ID; it returns NULL if the library
   could not be found, or when it was already loaded (because the
   handle is not recorded anywhere, and so is lost after use).  It
   would be trivial to save the handle too in :loaded-from, but
   currently there's no use case for it.  */
HMODULE
w32_delayed_load (Lisp_Object libraries, Lisp_Object library_id)
{
  HMODULE library_dll = NULL;

  CHECK_SYMBOL (library_id);

  if (CONSP (libraries) && NILP (Fassq (library_id, Vlibrary_cache)))
    {
      Lisp_Object found = Qnil;
      Lisp_Object dlls = Fassq (library_id, libraries);

      if (CONSP (dlls))
        for (dlls = XCDR (dlls); CONSP (dlls); dlls = XCDR (dlls))
          {
            CHECK_STRING_CAR (dlls);
            if ((library_dll = LoadLibrary (SDATA (XCAR (dlls)))))
              {
                found = XCAR (dlls);
                break;
              }
          }

      Fput (library_id, QCloaded_from, found);
    }

  return library_dll;
}


I think that Emacs is right now capable of loading a dll from an
arbitrary place. Just set dynamic-library-alist as it contains ('gnutls
. "/path/to/gnutls/gnutls.dll") (or whatever are the right names). In
any case, creating a new function that loads a .dll by name seems quite
straightforward, once we have seem how w32_delayed_load is implemented.

> FWIW, I didn't have a single problem for years on my XP boxes.  YMMV,
> of course.

On the last 5 years I the only occurrences of the dll hell I had were
related to Free software which uses naive installers. Cygwin, MSYS and
GnuWin32 does not get along very well, and even updating some of their
component may create havoc due to incompatibilities of the new dlls with
some of the old tools. The safe method is to update the whole lot.

Installing a dll intended to be used by Emacs on a shared place is
asking for trouble.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:02                                               ` Ted Zlatanov
  2012-01-04 12:26                                                 ` joakim
@ 2012-01-04 14:22                                                 ` Óscar Fuentes
  2012-01-04 18:03                                                   ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 14:22 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Tue, 03 Jan 2012 19:21:14 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 
>
> EZ> No, it is _not_ hard for the user to put the DLL in the correct
> EZ> directory.  It is hard for _us_, the programmers of package.el, to
> EZ> select a fixed directory that would work for all users, so that we
> EZ> could hardcode its absolute file name in the Emacs sources.  An
> EZ> entirely different issue.
>
> The addendum is "...and so GnuTLS is available to non-Emacs processes
> too" which is something I did not consider carefully but your mention of
> wget brought up.  We don't want multiple versions of the GnuTLS DLL all
> over the place, that could be worse for security than a single outdated
> version.  So the package.el install is not a good W32 solution to
> deliver GnuTLS, after all.

You are very wrong. For starters, MS Windows is not like most GNU/Linux
distribution that use a system for keeping all installed software in
sync. The wget example is a red herring. Sharing the gnutls dll is so
wrong at some many levels that I wont start discussing it.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 14:14                                                                       ` Óscar Fuentes
@ 2012-01-04 15:05                                                                         ` Juanma Barranquero
  2012-01-04 15:42                                                                           ` Óscar Fuentes
  2012-01-04 15:15                                                                         ` Juanma Barranquero
  2012-01-04 18:09                                                                         ` Eli Zaretskii
  2 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-04 15:05 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Wed, Jan 4, 2012 at 15:14, Óscar Fuentes <ofv@wanadoo.es> wrote:

> On the topic of how hard is to load a dll from an arbitrary location,
> that is what I found on the Emacs sources:

I think Eli's already aware of that function.

> I think that Emacs is right now capable of loading a dll from an
> arbitrary place. Just set dynamic-library-alist as it contains ('gnutls
> . "/path/to/gnutls/gnutls.dll") (or whatever are the right names).

We know that. Nobody discusses that you can use a full pathname to
load a DLL from an arbitrary place. Only the convenience of handling
the installation of DLLs in arbitrary places. (Well, not only; we're
mainly discussing the convenience of turning Emacs into a distribution
point for arbitrary Windows binaries from other projects; but I
digress.)

> In
> any case, creating a new function that loads a .dll by name seems quite
> straightforward, once we have seem how w32_delayed_load is implemented.

What do you mean?

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 14:14                                                                       ` Óscar Fuentes
  2012-01-04 15:05                                                                         ` Juanma Barranquero
@ 2012-01-04 15:15                                                                         ` Juanma Barranquero
  2012-01-04 18:09                                                                         ` Eli Zaretskii
  2 siblings, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-04 15:15 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Wed, Jan 4, 2012 at 15:14, Óscar Fuentes <ofv@wanadoo.es> wrote:

> On the topic of how hard is to load a dll from an arbitrary location,
> that is what I found on the Emacs sources:

And BTW, I prefer the patched version from bug#10424, which records
the full pathname too, and which I'll commit after 24.1 (at least this
change, the one in misc.el could be circumvented with better
customizability of tabulated-list-mode).

> /* The argument LIBRARIES is an alist that associates a symbol
>   LIBRARY_ID, identifying an external DLL library known to Emacs, to
>   a list of filenames under which the library is usually found.  In
>   most cases, the argument passed as LIBRARIES is the variable
>   `dynamic-library-alist', which is initialized to a list of common
>   library names.  If the function loads the library successfully, it
>   returns the handle of the DLL, and records the filename in the
>   property :loaded-from of LIBRARY_ID; it returns NULL if the library
>   could not be found, or when it was already loaded (because the
>   handle is not recorded anywhere, and so is lost after use).  It
>   would be trivial to save the handle too in :loaded-from, but
>   currently there's no use case for it.  */
> HMODULE
> w32_delayed_load (Lisp_Object libraries, Lisp_Object library_id)
> {
>  HMODULE library_dll = NULL;
>
>  CHECK_SYMBOL (library_id);
>
>  if (CONSP (libraries) && NILP (Fassq (library_id, Vlibrary_cache)))
>    {
>      Lisp_Object found = Qnil;
>      Lisp_Object dlls = Fassq (library_id, libraries);
>
>      if (CONSP (dlls))
>        for (dlls = XCDR (dlls); CONSP (dlls); dlls = XCDR (dlls))
>          {
>            CHECK_STRING_CAR (dlls);
>            if ((library_dll = LoadLibrary (SDATA (XCAR (dlls)))))
>              {
-                found = XCAR (dlls);
+                char name[MAX_PATH];
+                DWORD len;
+
+                len = GetModuleFileNameA (library_dll, name, sizeof (name));
+                found = Fcons (XCAR (dlls),
+                               (len > 0)
+                               /* Possibly truncated */
+                               ? make_specified_string (name, -1, len, 1)
+                               : Qnil);
>                break;
>              }
>          }
>
>      Fput (library_id, QCloaded_from, found);
>    }
>
>  return library_dll;
> }

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 15:05                                                                         ` Juanma Barranquero
@ 2012-01-04 15:42                                                                           ` Óscar Fuentes
  2012-01-04 16:29                                                                             ` Ted Zlatanov
  2012-01-04 18:10                                                                             ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 15:42 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Wed, Jan 4, 2012 at 15:14, Óscar Fuentes <ofv@wanadoo.es> wrote:
>
>> On the topic of how hard is to load a dll from an arbitrary location,
>> that is what I found on the Emacs sources:
>
> I think Eli's already aware of that function.

He's repeating that loading a dll with a pathname would require changes
at the C level.

>> I think that Emacs is right now capable of loading a dll from an
>> arbitrary place. Just set dynamic-library-alist as it contains ('gnutls
>> . "/path/to/gnutls/gnutls.dll") (or whatever are the right names).
>
> We know that. Nobody discusses that you can use a full pathname to
> load a DLL from an arbitrary place. Only the convenience of handling
> the installation of DLLs in arbitrary places. (Well, not only; we're
> mainly discussing the convenience of turning Emacs into a distribution
> point for arbitrary Windows binaries from other projects; but I
> digress.)

I don't know how a key component for an Emacs feature can be deemed as
"arbitrary".

As far as I'm concerned, there are two sane options here: suppose that
the user is a geek, advertise GnuTLS support citing the dll requirement
finishing with "now that's your problem". The other approach is to do
the job from Emacs, do it well, and automatically download and upgrade
the dll from Elpa.

Related to this, I'm convinced that Emacs packages too much on the
standard distribution. Things like org-mode, Gnus, Semantic... would be
better on Elpa. That would free resources from the Emacs developers
(less packaging, less maintenance, less administratrivia...), free
resources from the package developers (no merging back and forth) and,
finally, would provide the users updated packages. Oh, and would
diminish the pressure for releasing new Emacs versions.

>> In
>> any case, creating a new function that loads a .dll by name seems quite
>> straightforward, once we have seem how w32_delayed_load is implemented.
>
> What do you mean?

Just that if w32_delayed_load does not fit the bill, writing the
required function by tweaking w32_delayed_load is so easy that someone
like me who doesn't know the Emacs C dialect can do the job.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 15:42                                                                           ` Óscar Fuentes
@ 2012-01-04 16:29                                                                             ` Ted Zlatanov
  2012-01-04 17:00                                                                               ` Juanma Barranquero
  2012-01-04 19:21                                                                               ` Óscar Fuentes
  2012-01-04 18:10                                                                             ` Eli Zaretskii
  1 sibling, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-04 16:29 UTC (permalink / raw)
  To: emacs-devel

On Wed, 04 Jan 2012 16:42:11 +0100 Óscar Fuentes <ofv@wanadoo.es> wrote: 

ÓF> As far as I'm concerned, there are two sane options here: suppose that
ÓF> the user is a geek, advertise GnuTLS support citing the dll requirement
ÓF> finishing with "now that's your problem". The other approach is to do
ÓF> the job from Emacs, do it well, and automatically download and upgrade
ÓF> the dll from Elpa.

If those are the only two options, obviously the second one is better.

On Wed, 04 Jan 2012 15:22:18 +0100 Óscar Fuentes <ofv@wanadoo.es> wrote: 

ÓF> Sharing the gnutls dll is so wrong at some many levels that I wont
ÓF> start discussing it.

I am puzzled by this.  Why is it wrong to share the GnuTLS DLL?

If you and Eli and other W32 experts say a standalone self-updating
installer that drops a shared GnuTLS DLL in a common area is a bad idea,
I won't argue.  But you have to at least explain your reasoning.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 16:29                                                                             ` Ted Zlatanov
@ 2012-01-04 17:00                                                                               ` Juanma Barranquero
  2012-01-04 18:48                                                                                 ` Ted Zlatanov
  2012-01-04 19:21                                                                               ` Óscar Fuentes
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-04 17:00 UTC (permalink / raw)
  To: emacs-devel

2012/1/4 Ted Zlatanov <tzz@lifelogs.com>:

> I am puzzled by this.  Why is it wrong to share the GnuTLS DLL?
>
> If you and Eli and other W32 experts say a standalone self-updating
> installer that drops a shared GnuTLS DLL in a common area is a bad idea,

I think is a good idea. Fortunately, we don't have to discuss it,
because Óscar "won't start discussing it" ;-)

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 14:22                                                 ` Óscar Fuentes
@ 2012-01-04 18:03                                                   ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 18:03 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 15:22:18 +0100
> 
> > The addendum is "...and so GnuTLS is available to non-Emacs processes
> > too" which is something I did not consider carefully but your mention of
> > wget brought up.  We don't want multiple versions of the GnuTLS DLL all
> > over the place, that could be worse for security than a single outdated
> > version.  So the package.el install is not a good W32 solution to
> > deliver GnuTLS, after all.
> 
> You are very wrong. For starters, MS Windows is not like most GNU/Linux
> distribution that use a system for keeping all installed software in
> sync. The wget example is a red herring. Sharing the gnutls dll is so
> wrong at some many levels that I wont start discussing it.

FUD




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 14:14                                                                       ` Óscar Fuentes
  2012-01-04 15:05                                                                         ` Juanma Barranquero
  2012-01-04 15:15                                                                         ` Juanma Barranquero
@ 2012-01-04 18:09                                                                         ` Eli Zaretskii
  2012-01-04 19:39                                                                           ` Óscar Fuentes
  2 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 18:09 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 15:14:28 +0100
> 
> >    http://en.wikipedia.org/wiki/Side-by-side_assembly
> 
> That requires an installer that follows MS guidelines.

And granted, the DLLs that were causing the hell come with an
installer.

> It's not as easy as unzipping a file on a directory.

Nobody suggested that; it was an aside.

> I think that Emacs is right now capable of loading a dll from an
> arbitrary place.

With great care, yes.  dynamic-library-alist is carefully hand-crafted
to DTRT with several DLLs of different versions on the same machine.
Just pushing arbitrary file name there is not the best idea.

> Just set dynamic-library-alist as it contains ('gnutls
> . "/path/to/gnutls/gnutls.dll") (or whatever are the right names).

Putting DLLs in arbitrary places is not TRT.  We should put it in the
same directory where emacs.exe lives, and then there's no need to do
anything with dynamic-library-alist.

> Installing a dll intended to be used by Emacs on a shared place is
> asking for trouble.

Please give me the credit that when I do that I know what I'm doing.
I have been doing that for years with no problems at all.  I'm sure
others have succeeded in learning a few simple rules of how to do this
safely.  That's why an _option_ to do it available to knowledgeable
users would be a bonus.  The default place should be where emacs.exe
lives.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 15:42                                                                           ` Óscar Fuentes
  2012-01-04 16:29                                                                             ` Ted Zlatanov
@ 2012-01-04 18:10                                                                             ` Eli Zaretskii
  2012-01-04 19:42                                                                               ` Óscar Fuentes
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 18:10 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 16:42:11 +0100
> 
> Juanma Barranquero <lekktu@gmail.com> writes:
> 
> > On Wed, Jan 4, 2012 at 15:14, Óscar Fuentes <ofv@wanadoo.es> wrote:
> >
> >> On the topic of how hard is to load a dll from an arbitrary location,
> >> that is what I found on the Emacs sources:
> >
> > I think Eli's already aware of that function.
> 
> He's repeating that loading a dll with a pathname would require changes
> at the C level.

And I still submit that is so.

> Just that if w32_delayed_load does not fit the bill, writing the
> required function by tweaking w32_delayed_load is so easy that someone
> like me who doesn't know the Emacs C dialect can do the job.

You are welcome to do that and present a complete solution for the
issue at hand.  Maybe then this thread will become anything but
hand-waving.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 11:33                                                                     ` Lars Magne Ingebrigtsen
  2012-01-04 11:57                                                                       ` Lennart Borgman
@ 2012-01-04 18:19                                                                       ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 18:19 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: emacs-devel

> From: Lars Magne Ingebrigtsen <larsi@gnus.org>
> Date: Wed, 04 Jan 2012 12:33:11 +0100
> 
> "Stephen J. Turnbull" <stephen@xemacs.org> writes:
> 
> > I think that the thing to do is for Emacs to install private versions
> > of DLLs when it installs any at all, and if/when people complain about
> > "bloat", add some logic (maybe in the installer routine) to check to
> > see if there is an appropriate DLL already on the Windows DLL path.
> 
> I agree.  Assuming that the size of these things is comparable on
> Windows and Debian, the added size doesn't seem particularly daunting:
> 
> [larsi@stories ~]$ ls -lh /usr/lib/libgnutls.so.26.14.12 src/emacs/trunk/src/emacs /usr/lib/libxml2.so.2.7.8              
> -rwxr-xr-x 3 larsi larsi  19M Jan  3 20:41 src/emacs/trunk/src/emacs
> -rw-r--r-- 1 root  root  654K Mar 20  2010 /usr/lib/libgnutls.so.26.14.12
> -rw-r--r-- 1 root  root  1.4M Jun  4  2011 /usr/lib/libxml2.so.2.7.8

You missed few dependencies, but yes, the sizes are comparable:

  -rw-rw-rw- 1 Zaretzkii      None    73K 2012-01-02 19:44 libp11-kit-0.dll
  -rw-rw-rw- 1 Zaretzkii      None   148K 2012-01-02 19:44 libnettle-4-3.dll
  -rw-rw-rw- 1 Zaretzkii      None   306K 2012-01-02 19:44 libhogweed-2-1.dll
  -rw-rw-rw- 1 Zaretzkii      None   937K 2012-01-02 19:44 libgnutls-28.dll
  -rw-rw-rw- 1 Zaretzkii      None   417K 2012-01-02 19:44 libgmp-10.dll
  -rw-rw-rw- 1 Zaretzkii      None   966K 2011-06-19 21:52 libxml2.dll



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 12:37                                                                           ` David Engster
@ 2012-01-04 18:42                                                                             ` Lennart Borgman
  0 siblings, 0 replies; 243+ messages in thread
From: Lennart Borgman @ 2012-01-04 18:42 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen, Lennart Borgman, emacs-devel

On Wed, Jan 4, 2012 at 13:37, David Engster <deng@randomsample.de> wrote:
> Lars Magne Ingebrigtsen writes:
>> Lennart Borgman <lennart.borgman@gmail.com> writes:
>>
>>> Off topic: Lars Magne, why is it not possible to reach you at the mail
>>> address you are using here. Gmail gives me this:
>>>
>>> The recipient server did not accept our requests to connect. Learn
>>> more at http://mail.google.com/support/bin/answer.py?answer=7720
>>> [quimby.gnus.org. (10): No route to host]
>>
>> I get plenty of email at my larsi@gnus.org address.  Perhaps it's a
>> Gmail bug?
>
> Lennart, when did you send the mail? quimby.gnus.org was down for
> several days after christmas.

I sent it on 2011-12-28. So maybe that was the reason then. I will try
again and see.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 17:00                                                                               ` Juanma Barranquero
@ 2012-01-04 18:48                                                                                 ` Ted Zlatanov
  2012-01-05  5:40                                                                                   ` joakim
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-04 18:48 UTC (permalink / raw)
  To: emacs-devel

On Wed, 4 Jan 2012 18:00:49 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/4 Ted Zlatanov <tzz@lifelogs.com>:
>> I am puzzled by this.  Why is it wrong to share the GnuTLS DLL?
>> 
>> If you and Eli and other W32 experts say a standalone self-updating
>> installer that drops a shared GnuTLS DLL in a common area is a bad idea,

JB> I think is a good idea. Fortunately, we don't have to discuss it,
JB> because Óscar "won't start discussing it" ;-)

I'd like to discuss it with anyone willing.  Joakim offered to help with
the installer and I can probably follow a build recipe to make the DLLs,
so practically it seems like we could do this.  I just want to make sure
I don't find out in a few days or weeks that the installer approach is
flawed for some obscure W32 reason, which Óscar sort of implied.

On Wed, 04 Jan 2012 20:10:23 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

EZ> Maybe then this thread will become anything but hand-waving.

I think it makes sense to discuss approaches--I had not even thought of
the GnuTLS installer approach until we had this conversation.  Rushing
into development can be fun, but can also hide good ideas.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 16:29                                                                             ` Ted Zlatanov
  2012-01-04 17:00                                                                               ` Juanma Barranquero
@ 2012-01-04 19:21                                                                               ` Óscar Fuentes
  2012-01-04 19:45                                                                                 ` Juanma Barranquero
                                                                                                   ` (2 more replies)
  1 sibling, 3 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 19:21 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> ÓF> Sharing the gnutls dll is so wrong at some many levels that I wont
> ÓF> start discussing it.
>
> I am puzzled by this.  Why is it wrong to share the GnuTLS DLL?

This is a common scenario on MS Windows: multiple providers of binary
packages, multiple installers with different install policies even for
the same installer, lots of directories on PATH (each application lives
on its own directory and often wants to be listed on PATH), varying
policies about where a non-privileged user is allowed to put binaries,
multiple incompatible binary macropackages that provides the same
executables and libraries with the same names (Cygwin, MSYS, GnuWin32
and what-not), a lack of culture of system administration, a growing
tendency to rely on self-updating packages... and the list goes on.

If a user is informed about the need to fix GnuTLS (through the local
newspaper, I guess) his first reaction would be "GnuWhat? Is it on my
machine?" Next, as every desktop computer user would do, he performs a
full HD file search for the library ("and BTW, how is it named,
exactly?") After locating the instance (or multiple instances) he needs
to figure out the correct procedure to update it ("Was this installed
along something else? Has this be put here by an installer of some sort?
Does that installer offer an update method? What depends on this dll?
What's the installed version, and what's the compatible update? Is it
available somewhere? If I use this newer version which I found with a
Google search, can something break apart?")

Sure, for us it all looks very easy, but I suffered DLL hell a few times
and it is very frustrating. Can't imagine how can it be for a novice or
a less computer-savvy user.

For a Windows binary package to be robust, it must be as self-contained
as possible. Quality-wise, one of the best decisions I ever made was to
distribute the C/C++ MS runtime dlls along with the rest of my binaries,
no matter they are already installed on virtually all MS Windows
machines. Certain long-standing, very nasty bugs simply went away.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 18:09                                                                         ` Eli Zaretskii
@ 2012-01-04 19:39                                                                           ` Óscar Fuentes
  2012-01-04 21:30                                                                             ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 19:39 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

[snip]

>> Just set dynamic-library-alist as it contains ('gnutls
>> . "/path/to/gnutls/gnutls.dll") (or whatever are the right names).
>
> Putting DLLs in arbitrary places is not TRT.

Nobody is suggesting an *arbitrary* place. Where ELPA puts its files is
anything but arbitrary.

> We should put it in the
> same directory where emacs.exe lives, and then there's no need to do
> anything with dynamic-library-alist.

Depending on how Emacs was installed, that would require elevated
privileges, something ELPA can not ask for, AFAIK. Please keep in mind
that we (or at least Ted and I) are discussing the feasibility of using
ELPA for providing and updating the required dll for Emacs STARTTLS
capability to work on Windows.

>> Installing a dll intended to be used by Emacs on a shared place is
>> asking for trouble.
>
> Please give me the credit that when I do that I know what I'm doing.
> I have been doing that for years with no problems at all.

Yes, putting the dll along the emacs executable on the same directory
works, that's what I do with my own software. However, my applications
require a privileged user to upgrade or install new components (unless
the user is Administrator on a pre MS Windows Vista machine, something
that is as common as malware targeting those same users).

> I'm sure
> others have succeeded in learning a few simple rules of how to do this
> safely.  That's why an _option_ to do it available to knowledgeable
> users would be a bonus.  The default place should be where emacs.exe
> lives.

Precisely, knowledgeable users would have no problem with putting GnuTLS
along with emacs.exe. A bit annoying, yes. Not very admin-friendly,
too. The non-knowledgeable users would have a problem, because once they
configure Emacs to send mail, they will receive an error
message. Hopefully the message will include detailed, up-to-date
instructions on how to obtain and install the dll, but it would be much
better if Emacs asked: "for this operation Emacs needs to download and
install a library from the Emacs code repository. Do you want to
proceed?" and then everything goes on smoothly. In the general case,
that dll can't be installed by ELPA along emacs.exe, for the reasons
already explained.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 18:10                                                                             ` Eli Zaretskii
@ 2012-01-04 19:42                                                                               ` Óscar Fuentes
  2012-01-04 21:31                                                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 19:42 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> He's repeating that loading a dll with a pathname would require changes
>> at the C level.
>
> And I still submit that is so.
>
>> Just that if w32_delayed_load does not fit the bill, writing the
>> required function by tweaking w32_delayed_load is so easy that someone
>> like me who doesn't know the Emacs C dialect can do the job.
>
> You are welcome to do that and present a complete solution for the
> issue at hand.  Maybe then this thread will become anything but
> hand-waving.

So w32_delayed_load plus dynamic-library-alist is not enough to load a
dll from a precise directory? What remains to be solved?




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 19:21                                                                               ` Óscar Fuentes
@ 2012-01-04 19:45                                                                                 ` Juanma Barranquero
  2012-01-04 23:00                                                                                   ` Óscar Fuentes
  2012-01-04 20:37                                                                                 ` Ted Zlatanov
  2012-01-04 21:23                                                                                 ` Eli Zaretskii
  2 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-04 19:45 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Wed, Jan 4, 2012 at 20:21, Óscar Fuentes <ofv@wanadoo.es> wrote:

> For a Windows binary package to be robust, it must be as self-contained
> as possible. Quality-wise, one of the best decisions I ever made was to
> distribute the C/C++ MS runtime dlls along with the rest of my binaries,
> no matter they are already installed on virtually all MS Windows
> machines. Certain long-standing, very nasty bugs simply went away.

Assuming you're right, that seems like a wonderful side project. Why
not start a project to build a prepackaged Emacs binary installer for
Windows? Aside from installing DLLs, it could set up other things
(after asking the user, of course), like CUA mode, and other binaries,
like a better ftp than the standard one.

I do really believe that a user-friendly installer for Windows is a
good idea. I strongly *don't* believe the Emacs project should bear
the load of it.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 19:21                                                                               ` Óscar Fuentes
  2012-01-04 19:45                                                                                 ` Juanma Barranquero
@ 2012-01-04 20:37                                                                                 ` Ted Zlatanov
  2012-01-04 20:41                                                                                   ` Lars Magne Ingebrigtsen
  2012-01-04 21:23                                                                                 ` Eli Zaretskii
  2 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-04 20:37 UTC (permalink / raw)
  To: emacs-devel

On Wed, 04 Jan 2012 20:21:49 +0100 Óscar Fuentes <ofv@wanadoo.es> wrote: 

ÓF> Ted Zlatanov <tzz@lifelogs.com> writes:
ÓF> Sharing the gnutls dll is so wrong at some many levels that I wont
ÓF> start discussing it.
>> 
>> I am puzzled by this.  Why is it wrong to share the GnuTLS DLL?

ÓF> This is a common scenario on MS Windows: multiple providers of binary
ÓF> packages, multiple installers with different install policies even for
ÓF> the same installer, lots of directories on PATH (each application lives
ÓF> on its own directory and often wants to be listed on PATH), varying
ÓF> policies about where a non-privileged user is allowed to put binaries,
ÓF> multiple incompatible binary macropackages that provides the same
ÓF> executables and libraries with the same names (Cygwin, MSYS, GnuWin32
ÓF> and what-not), a lack of culture of system administration, a growing
ÓF> tendency to rely on self-updating packages... and the list goes on.

OK, thanks for explaining.  I'm not convinced it's *better for the user*
that we use ELPA to deliver the DLL, but it seems like a pain to make a
non-Emacs solution work reliably, so we're better off making our
solution only for Emacs.  How unfortunate.

ÓF> For a Windows binary package to be robust, it must be as self-contained
ÓF> as possible. Quality-wise, one of the best decisions I ever made was to
ÓF> distribute the C/C++ MS runtime dlls along with the rest of my binaries,
ÓF> no matter they are already installed on virtually all MS Windows
ÓF> machines. Certain long-standing, very nasty bugs simply went away.

I see.  So, assuming we agree on the ELPA package approach, maybe we
should ship W32 Emacs with a gnutls-w32 package and the DLL and all the
load paths set up already, so it can self-update and it works by
default.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 20:37                                                                                 ` Ted Zlatanov
@ 2012-01-04 20:41                                                                                   ` Lars Magne Ingebrigtsen
  2012-01-04 22:12                                                                                     ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-04 20:41 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> I see.  So, assuming we agree on the ELPA package approach, maybe we
> should ship W32 Emacs with a gnutls-w32 package and the DLL and all the
> load paths set up already, so it can self-update and it works by
> default.

I don't really see that the ELPA solution really helps much here.
Wouldn't it be easier just to include the gnutls DLL in the Emacs zip
file?  Problem solved.  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 19:21                                                                               ` Óscar Fuentes
  2012-01-04 19:45                                                                                 ` Juanma Barranquero
  2012-01-04 20:37                                                                                 ` Ted Zlatanov
@ 2012-01-04 21:23                                                                                 ` Eli Zaretskii
  2012-01-04 22:34                                                                                   ` Óscar Fuentes
  2 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 21:23 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 20:21:49 +0100
> 
> This is a common scenario on MS Windows: multiple providers of binary
> packages, multiple installers with different install policies even for
> the same installer, lots of directories on PATH (each application lives
> on its own directory and often wants to be listed on PATH), varying
> policies about where a non-privileged user is allowed to put binaries,
> multiple incompatible binary macropackages that provides the same
> executables and libraries with the same names (Cygwin, MSYS, GnuWin32
> and what-not), a lack of culture of system administration, a growing
> tendency to rely on self-updating packages... and the list goes on.
> 
> If a user is informed about the need to fix GnuTLS (through the local
> newspaper, I guess) his first reaction would be "GnuWhat? Is it on my
> machine?" Next, as every desktop computer user would do, he performs a
> full HD file search for the library ("and BTW, how is it named,
> exactly?") After locating the instance (or multiple instances) he needs
> to figure out the correct procedure to update it ("Was this installed
> along something else? Has this be put here by an installer of some sort?
> Does that installer offer an update method? What depends on this dll?
> What's the installed version, and what's the compatible update? Is it
> available somewhere? If I use this newer version which I found with a
> Google search, can something break apart?")
> 
> Sure, for us it all looks very easy, but I suffered DLL hell a few times
> and it is very frustrating. Can't imagine how can it be for a novice or
> a less computer-savvy user.

You are describing a situation that existed on Windows 9X, it no
longer exists on modern machines.  DLLs are either versioned in their
names or use the SxS mechanism.

Take the GnuTLS example: the previous DLL of version 2.x was named
libgnutls-26.dll, while the new 3.x one is libgnutls-28.dll.  Use your
friendly depends.exe program, and you will see that programs that
depend on one of them (were linked with its import library) will
refuse to load the other.  The same is true of libintl, libiconv, and
all the other libraries many Windows ports of GNU software need.
Poof! the problem doesn't exist.

Please stop spreading this FUD, you are tripping people like Ted who
don't know better into wrong conclusions based on what hurt you (and
me) several years ago.  THERE'S NO SUCH PROBLEM ANYMORE!

> For a Windows binary package to be robust, it must be as self-contained
> as possible.

True, but irrelevant.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 19:39                                                                           ` Óscar Fuentes
@ 2012-01-04 21:30                                                                             ` Eli Zaretskii
  2012-01-04 23:18                                                                               ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 21:30 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 20:39:27 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> [snip]
> 
> >> Just set dynamic-library-alist as it contains ('gnutls
> >> . "/path/to/gnutls/gnutls.dll") (or whatever are the right names).
> >
> > Putting DLLs in arbitrary places is not TRT.
> 
> Nobody is suggesting an *arbitrary* place. Where ELPA puts its files is
> anything but arbitrary.

Yes, it is, for DLLs and other binaries.  Those should go where
binaries live, not where Lisp packages live.

> > We should put it in the
> > same directory where emacs.exe lives, and then there's no need to do
> > anything with dynamic-library-alist.
> 
> Depending on how Emacs was installed, that would require elevated
> privileges, something ELPA can not ask for, AFAIK.

FUD.  Emacs is not installed by corporate policies on Windows, so this
won't happen except in very rare cases.

> Please keep in mind that we (or at least Ted and I) are discussing
> the feasibility of using ELPA for providing and updating the
> required dll for Emacs STARTTLS capability to work on Windows.

Excellent.  But please do it right, or your changes will be rejected
flat out.  There's a certain organization to the Emacs tree, including
on Windows; please follow it, so we could give users reasonably clear
explanations for them to be able to maintain the tree.

> Yes, putting the dll along the emacs executable on the same directory
> works, that's what I do with my own software. However, my applications
> require a privileged user to upgrade or install new components

Then it's _your_ problem, and I'm sure you already have a solution for
it.  Having a DLL near the .exe is the recommended practice and a safe
one at that.  Please follow it, if you want to do this job.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 19:42                                                                               ` Óscar Fuentes
@ 2012-01-04 21:31                                                                                 ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-04 21:31 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 20:42:32 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> He's repeating that loading a dll with a pathname would require changes
> >> at the C level.
> >
> > And I still submit that is so.
> >
> >> Just that if w32_delayed_load does not fit the bill, writing the
> >> required function by tweaking w32_delayed_load is so easy that someone
> >> like me who doesn't know the Emacs C dialect can do the job.
> >
> > You are welcome to do that and present a complete solution for the
> > issue at hand.  Maybe then this thread will become anything but
> > hand-waving.
> 
> So w32_delayed_load plus dynamic-library-alist is not enough to load a
> dll from a precise directory? What remains to be solved?

I didn't say it was and I didn't say it wasn't.  I didn't research
the issue enough to know a complete recipe, just enough to realize
that changes _are_ needed.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 20:41                                                                                   ` Lars Magne Ingebrigtsen
@ 2012-01-04 22:12                                                                                     ` Ted Zlatanov
  2012-01-04 22:47                                                                                       ` chad
  2012-01-05  5:24                                                                                       ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-04 22:12 UTC (permalink / raw)
  To: emacs-devel

On Wed, 04 Jan 2012 21:41:20 +0100 Lars Magne Ingebrigtsen <larsi@gnus.org> wrote: 

LMI> Ted Zlatanov <tzz@lifelogs.com> writes:
>> I see.  So, assuming we agree on the ELPA package approach, maybe we
>> should ship W32 Emacs with a gnutls-w32 package and the DLL and all the
>> load paths set up already, so it can self-update and it works by
>> default.

LMI> I don't really see that the ELPA solution really helps much here.
LMI> Wouldn't it be easier just to include the gnutls DLL in the Emacs zip
LMI> file?  Problem solved.  :-)

I'm concerned about GnuTLS updates after the install.  An ELPA package
could do that, a simple DLL drop couldn't.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 21:23                                                                                 ` Eli Zaretskii
@ 2012-01-04 22:34                                                                                   ` Óscar Fuentes
  2012-01-05  6:34                                                                                     ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 22:34 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> You are describing a situation that existed on Windows 9X, it no
> longer exists on modern machines.  DLLs are either versioned in their
> names or use the SxS mechanism.

Before putting too much hope into SxS I encourage you to read the
wikipedia page about it that you linked on a previous post.

> Take the GnuTLS example: the previous DLL of version 2.x was named
> libgnutls-26.dll, while the new 3.x one is libgnutls-28.dll.

The 3.x version is named -28 ?

> Use your friendly depends.exe program, and you will see that programs
> that depend on one of them (were linked with its import library) will
> refuse to load the other.  The same is true of libintl, libiconv, and
> all the other libraries many Windows ports of GNU software need.

Appending a number to a name doesn't solve the problem.

> Poof! the problem doesn't exist.

A simple experiment: put a libgnutls-26.dll on the system32
directory. It is shared, right? Now install cygwin or msys, or any of
multiple standalone applications which are cygwin-based, and put its
binary directory before system32 on PATH. See it?

Another experiment: build an application such as Emacs with VC++ 6 or
MinGW with the default settings. Now make it to use a dll (GnuTLS, an
image library...)  compiled with a modern release of VS. Unless such
library follows a very strict policy about resource handling (and
possibly other aspects) you are asking for problems. I'm sure that I
don't need to explain the dangers of mixing different major versions of
the C runtime library.

Think on a user that discovers that sending mail with Emacs just works
because some other package installed GnuTLS on some directory listed on
PATH. Time later he decides to uninstall the application and afterwards
tries to send an e-mail, just to notice to his dismay that it doesn't
work anymore. Confusing, isn't it?

And then there is the issue with security fixes... If Emacs enters the
bussiness of secure protocols provide a mechanism for notifying the user
about updates, and make the upate process a no-brainer. Do you think it
is serious to let the user with a broken GnuTLS for years? Either take
full responsability or dismiss it completely: "Emacs supports StartTLS
through GnuTLS. The library usually can be downloaded <here>. Such
library is not part of Emacs and no effort is made related to checking
its suitability, correctness, etc."

> Please stop spreading this FUD, you are tripping people like Ted who
> don't know better into wrong conclusions based on what hurt you (and
> me) several years ago.  THERE'S NO SUCH PROBLEM ANYMORE!

Please stop using inflamatory language and offensive assertions. I could
say that your real-world experience distributing, installing and
supporting software across heterogenous environments looks quite
limited, but I'll rather suppose that you were very lucky so far.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 22:12                                                                                     ` Ted Zlatanov
@ 2012-01-04 22:47                                                                                       ` chad
  2012-01-04 23:16                                                                                         ` Ted Zlatanov
  2012-01-05  5:24                                                                                       ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: chad @ 2012-01-04 22:47 UTC (permalink / raw)
  To: emacs-devel

On Jan 4, 2012, at 2:12 PM, Ted Zlatanov wrote:

> LMI> I don't really see that the ELPA solution really helps much here.
> LMI> Wouldn't it be easier just to include the gnutls DLL in the Emacs zip
> LMI> file?  Problem solved.  :-)
> 
> I'm concerned about GnuTLS updates after the install.  An ELPA package
> could do that, a simple DLL drop couldn't.

Reading through the thread, it seems likely that there are two main groups of W32-GnuTLS-interested parties:  those that almost never update a `working' emacs (ala Drew Adams' report about of emacs 21.3 users), and those that update very frequently.  I'd guess that a `stable emacs' w32 installer would be very helpful for the former (and agree with Juanma that it would be good for emacs use in general), while I'd expect the other group to be more comfortable with piecemeal updates of emacs/packages/DLLs/etc. 

If this guess matches reality, then I have a suggestion:  by policy put the DLLs with the binary, make the installer DTRT, and then add some sort of `update alert' facility that checks ELPA to notify users about new versions.  This facility would not necessarily update the software itself, but would notify users that a new version of the software exists, along with notes about the changes (especially the severity of the changes) and instructions for updating.  The installer-based default would only (somehow) bug the user about severe problems (such as security breaches for GnuTLS), pointing them at a new installer.  Users who opted in could be notified of all changes (perhaps displaying ChangeLogs or vc status messages at the far end).

*Chad


^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 19:45                                                                                 ` Juanma Barranquero
@ 2012-01-04 23:00                                                                                   ` Óscar Fuentes
  2012-01-05  0:18                                                                                     ` Juanma Barranquero
  2012-01-05  6:41                                                                                     ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 23:00 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Wed, Jan 4, 2012 at 20:21, Óscar Fuentes <ofv@wanadoo.es> wrote:
>
>> For a Windows binary package to be robust, it must be as self-contained
>> as possible. Quality-wise, one of the best decisions I ever made was to
>> distribute the C/C++ MS runtime dlls along with the rest of my binaries,
>> no matter they are already installed on virtually all MS Windows
>> machines. Certain long-standing, very nasty bugs simply went away.
>
> Assuming you're right,

You can bet on it. At the beginning there was several versions of
MSVCRT.DLL floating around, some of them notoriously buggy. Of course,
everybody installed the dll on system32. The problem was partially fixed
by SxS, which essentially ensured that applications that didn't embed
manifests (and hence didn't required a specific version of the dll) used
the default, "safe" one provided by MS with the OS. That started with
Windows XP, although it doesn't protect you from inadvertently picking a
dll inside a directory that comes first on PATH. With Windows 2000, I
had to face one of the more frustrating bugs on my career: a few users
reported crashes, freezes and data corruption (on a DB app!). It took me
months to discover the problem for one of the users: a mass storage
device driver and accompanying backup utility installed their own
custom-modified MSVCRT.DLL on system32, which somehow caused my app to
freeze when certain gui action was performed. They didn't bothered to
use a different version string or id on the resources of the library, so
it reported itself as one of the "good" dlls. Then I started to put my
runtime dlls on the same directory as the rest of my binaries, and the
problems of those users disappeared. Most of them haven't that storage
device. The issue costed me a several hundred work hours, mostly trying
to desperately find bugs inside my application.

> that seems like a wonderful side project. Why
> not start a project to build a prepackaged Emacs binary installer for
> Windows? Aside from installing DLLs, it could set up other things
> (after asking the user, of course), like CUA mode, and other binaries,
> like a better ftp than the standard one.
>
> I do really believe that a user-friendly installer for Windows is a
> good idea. I strongly *don't* believe the Emacs project should bear
> the load of it.

I think that's more or less what Lennart is already doing, isn't it?

OTOH an installer that could act as an update tool for the dlls could be
interesting.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 22:47                                                                                       ` chad
@ 2012-01-04 23:16                                                                                         ` Ted Zlatanov
  2012-01-05  5:36                                                                                           ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-04 23:16 UTC (permalink / raw)
  To: emacs-devel

On Wed, 4 Jan 2012 14:47:02 -0800 chad <yandros@gmail.com> wrote: 

c> I have a suggestion: by policy put the DLLs with the binary, make the
c> installer DTRT, and then add some sort of `update alert' facility
c> that checks ELPA to notify users about new versions.  This facility
c> would not necessarily update the software itself, but would notify
c> users that a new version of the software exists, along with notes
c> about the changes (especially the severity of the changes) and
c> instructions for updating.  The installer-based default would only
c> (somehow) bug the user about severe problems (such as security
c> breaches for GnuTLS), pointing them at a new installer.  Users who
c> opted in could be notified of all changes (perhaps displaying
c> ChangeLogs or vc status messages at the far end).

I really like your suggestion.  It lets us write the DLL deployment code
later or never, depending on what users want, but at first we will only
do the acceptable minimum.  It can also work with a standalone GnuTLS
W32 installer, if we ever decide that's a better approach.

GnuTLS provides gnutls_check_version() which we can use to dynamically
find out the version of the currently loaded GnuTLS DLL, by calling it
with a NULL.  So the package's version check should be fairly easy to
write, and its version string will simply match the GnuTLS release it's
tracking.

I think, to get this working, we need a list of critical ELPA packages
that Emacs will check for updates on startup and alert the user to
upgrade.  By default that list should be empty on all platforms, except
on W32 it will contain the "gnutls-w32" package.  The actual package
will have to live on the GNU ELPA site, so that will require a network
connection to be opened... this will almost certainly displease some
Emacs users if we make it a default, but I do think it's the right one.

As a user I would like to have such a list, and will probably add a few
packages to it for my personal use.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 21:30                                                                             ` Eli Zaretskii
@ 2012-01-04 23:18                                                                               ` Óscar Fuentes
  2012-01-05  6:44                                                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-04 23:18 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

[snip]

>> Depending on how Emacs was installed, that would require elevated
>> privileges, something ELPA can not ask for, AFAIK.
>
> FUD.  Emacs is not installed by corporate policies on Windows, so this
> won't happen except in very rare cases.

Have you used MS Windows Vista or Seven lately? If you install Emacs on
"Program Files" Emacs itself does not have write rights to its own
directory (actually, sometimes the OS can fool the app into believing
that it is creating or changing files there, but in reality it is
diverting the operation to somewhere else. Look for "File and Registry
Virtualization" for further info). You must fidle with directory
permissions (that is, shutting down a security measure) for Emacs, or
the user in front of the computer, to alter its contents without
escalating privileges.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 23:00                                                                                   ` Óscar Fuentes
@ 2012-01-05  0:18                                                                                     ` Juanma Barranquero
  2012-01-05  2:00                                                                                       ` Óscar Fuentes
  2012-01-05  6:41                                                                                     ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05  0:18 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Thu, Jan 5, 2012 at 00:00, Óscar Fuentes <ofv@wanadoo.es> wrote:

> It took me
> months to discover the problem for one of the users: a mass storage
> device driver and accompanying backup utility installed their own
> custom-modified MSVCRT.DLL on system32, which somehow caused my app to
> freeze when certain gui action was performed. They didn't bothered to
> use a different version string or id on the resources of the library, so
> it reported itself as one of the "good" dlls.

That just means that someone should be hit in the head with a printed
copy of the full MSDN site. Repeatedly.

> Then I started to put my
> runtime dlls on the same directory as the rest of my binaries, and the
> problems of those users disappeared.

Wonderful. But GnuTLS is not "our" runtime DLL, not more than msvcrt.dll is.

Please understand: I'm not really arguing against installing the
GnuTLS DLL along the emacs.exe binary (though, as a separate project,
I still think it's better to install it on its own). I'm arguing
against, and will continue to fight, *distributing* it in the first
place with Emacs. We *are* *not* a binary distribution project, and we
only do it for Windows because most Windows users do not have a
building environment. Going that route means less programming
resources and more administrivia.

> I think that's more or less what Lennart is already doing, isn't it?

Sort of. IMHO, Lennart's EmacsW32 is a fork, because he includes some
changes that aren't just customizations (emacsclient is a prime
example).

> OTOH an installer that could act as an update tool for the dlls could be
> interesting.

Yes, definitely. As long as developing it and maintaining it is
anybody else's (= "not the Emacs w32 people") responsibility :-)

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  0:18                                                                                     ` Juanma Barranquero
@ 2012-01-05  2:00                                                                                       ` Óscar Fuentes
  2012-01-05  2:36                                                                                         ` Juanma Barranquero
  2012-01-05  6:45                                                                                         ` Eli Zaretskii
  0 siblings, 2 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-05  2:00 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Thu, Jan 5, 2012 at 00:00, Óscar Fuentes <ofv@wanadoo.es> wrote:
>
>> It took me
>> months to discover the problem for one of the users: a mass storage
>> device driver and accompanying backup utility installed their own
>> custom-modified MSVCRT.DLL on system32, which somehow caused my app to
>> freeze when certain gui action was performed. They didn't bothered to
>> use a different version string or id on the resources of the library, so
>> it reported itself as one of the "good" dlls.
>
> That just means that someone should be hit in the head with a printed
> copy of the full MSDN site. Repeatedly.

It *also* means that depending on unknown third parties is asking for
trouble.

>> Then I started to put my
>> runtime dlls on the same directory as the rest of my binaries, and the
>> problems of those users disappeared.
>
> Wonderful. But GnuTLS is not "our" runtime DLL, not more than msvcrt.dll is.
>
> Please understand: I'm not really arguing against installing the
> GnuTLS DLL along the emacs.exe binary (though, as a separate project,
> I still think it's better to install it on its own). I'm arguing
> against, and will continue to fight, *distributing* it in the first
> place with Emacs. We *are* *not* a binary distribution project, and we
> only do it for Windows because most Windows users do not have a
> building environment. Going that route means less programming
> resources and more administrivia.

AFAIK Windows binaries are distributed from the GNU servers just because
someone volunteers to do the job, not because it is a requisite for the
release. So it should be up to those volunteers to decide if they want
to include those libraries (GnuTLS, image support, etc) on the binary
package.

And if someone volunteers for maintaining a system that updates those
libraries, it is the job he picked.

A slightly different issue is to decide if changes to Emacs sources are
allowed to do that chore on certain way, but then it is up to the
volunteers again and solid reasons should be given to reject those
contributions.

>> I think that's more or less what Lennart is already doing, isn't it?
>
> Sort of. IMHO, Lennart's EmacsW32 is a fork, because he includes some
> changes that aren't just customizations (emacsclient is a prime
> example).

IIRC Lennart also distributes an unpatched Emacs.

>> OTOH an installer that could act as an update tool for the dlls could be
>> interesting.
>
> Yes, definitely. As long as developing it and maintaining it is
> anybody else's (= "not the Emacs w32 people") responsibility :-)

Ah, yes, the Emacs w32 people. Now I understand your stance better (and
maybe Eli's). I think it would be unfair and unreasonable to make you
responsible of doing the job related to those libraries, but I also
think that you are not obliged in any way to provide binaries of
anything. Keeping the sources on a ready state is enough, thank
you. (Not saying that you are *obliged* to do that either.)




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  2:00                                                                                       ` Óscar Fuentes
@ 2012-01-05  2:36                                                                                         ` Juanma Barranquero
  2012-01-05  6:45                                                                                         ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05  2:36 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Thu, Jan 5, 2012 at 03:00, Óscar Fuentes <ofv@wanadoo.es> wrote:

> It *also* means that depending on unknown third parties is asking for
> trouble.

Yes. Unknown.

> AFAIK Windows binaries are distributed from the GNU servers just because
> someone volunteers to do the job, not because it is a requisite for the
> release.

The binary tarballs for Windows are more or less "blessed". They are
not a requisite for the release, because strictly speaking, nothing
Windows-related is a requisite for the release (I suppose an exception
would be fixing bugs related to data loss or security issues).

> So it should be up to those volunteers to decide if they want
> to include those libraries (GnuTLS, image support, etc) on the binary
> package.

The moment the packages are accesible from the official site, there's
certain responsibilities. For example, to issue security upgrades as
fast as possible.

> A slightly different issue is to decide if changes to Emacs sources are
> allowed to do that chore on certain way, but then it is up to the
> volunteers again and solid reasons should be given to reject those
> contributions.

So far, none of the ways that had been proposed has been convincing,
and solid reasons have been given against them. It's just that we are
not agreeing on what "solid reasons" mean. As far as I'm concerned,
using ELPA to distribute Windows DLLs is gross beyond description, for
example. Any mechanism that makes Emacs try to auto-upgrade itself is
also a no-no (in my view, I don't know Stefan and Chong's opinion).

> IIRC Lennart also distributes an unpatched Emacs.

Yes, though I think he doesn't update it very often (I haven't checked
recently and I could be wrong).

> Ah, yes, the Emacs w32 people. Now I understand your stance better (and
> maybe Eli's). I think it would be unfair and unreasonable to make you
> responsible of doing the job related to those libraries, but I also
> think that you are not obliged in any way to provide binaries of
> anything.

Responsibility and obligation are disjoint concepts. I don't mind the
load, but I hate accepting (not personally, but as a project) the
responsibility to do things, like compiling GnuTLS binaries and
distributing them, that are utterly disconnected from Emacs
development per se. The moment we do that, people will expect we also
provide up-to-date binaries for image libs, libxml2, d-bus, you name
it.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 22:12                                                                                     ` Ted Zlatanov
  2012-01-04 22:47                                                                                       ` chad
@ 2012-01-05  5:24                                                                                       ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05  5:24 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Wed, 04 Jan 2012 17:12:01 -0500
> 
> LMI> I don't really see that the ELPA solution really helps much here.
> LMI> Wouldn't it be easier just to include the gnutls DLL in the Emacs zip
> LMI> file?  Problem solved.  :-)
> 
> I'm concerned about GnuTLS updates after the install.  An ELPA package
> could do that, a simple DLL drop couldn't.

That's true, but if we assume that an urgent need to upgrade GnuTLS
will not be too frequent, we can update it with each release and in
binaries of development snapshots.  That would probably do 80% of the
job, if not more.

That said, I'm not against an ELPA based solution.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 23:16                                                                                         ` Ted Zlatanov
@ 2012-01-05  5:36                                                                                           ` Eli Zaretskii
  2012-01-05 13:50                                                                                             ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05  5:36 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Wed, 04 Jan 2012 18:16:26 -0500
> 
> I think, to get this working, we need a list of critical ELPA packages
> that Emacs will check for updates on startup and alert the user to
> upgrade.  By default that list should be empty on all platforms, except
> on W32 it will contain the "gnutls-w32" package.

Again, why are we treating MS-Windows specially?  Why shouldn't Emacs
issue the same alert on GNU and Unix systems, if GnuTLS is found to be
unavailable?  The fact that several distributions have Emacs depend on
GnuTLS does not mean all of them do or will, and let's not forget that
even in the year 2012 users can build their own Emacs (without GnuTLS).



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 18:48                                                                                 ` Ted Zlatanov
@ 2012-01-05  5:40                                                                                   ` joakim
  2012-01-05 15:52                                                                                     ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: joakim @ 2012-01-05  5:40 UTC (permalink / raw)
  To: emacs-devel; +Cc: tzz

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Wed, 4 Jan 2012 18:00:49 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 
>
> JB> 2012/1/4 Ted Zlatanov <tzz@lifelogs.com>:
>>> I am puzzled by this.  Why is it wrong to share the GnuTLS DLL?
>>> 
>>> If you and Eli and other W32 experts say a standalone self-updating
>>> installer that drops a shared GnuTLS DLL in a common area is a bad idea,
>
> JB> I think is a good idea. Fortunately, we don't have to discuss it,
> JB> because Óscar "won't start discussing it" ;-)
>
> I'd like to discuss it with anyone willing.  Joakim offered to help with
> the installer and I can probably follow a build recipe to make the DLLs,
> so practically it seems like we could do this.  I just want to make sure
> I don't find out in a few days or weeks that the installer approach is
> flawed for some obscure W32 reason, which Óscar sort of implied.
>
> On Wed, 04 Jan 2012 20:10:23 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 
>
> EZ> Maybe then this thread will become anything but hand-waving.
>
> I think it makes sense to discuss approaches--I had not even thought of
> the GnuTLS installer approach until we had this conversation.  Rushing
> into development can be fun, but can also hide good ideas.

Here is my advice based on some commercial installers I worked on.

- use NSIS to install all binaries. Keep all binaries isolated from
everything else, so no fiddling in system directories unless it in
absolutely necessary in which case you should abandon all hope and carry
on to the bitter end.

- NSIS is really a tiny quirky Forth language so you can do a lot of
stuff, including downloading updates, patching, etc. but keep it simple.

- NSIS won't produce the standard MSI installers(not last time I looked
  anyway) but this is just as well since MSI installers are not what
  they are advertised to be

- You can install all of Emacs with a NSIS installer, and distribute
  further update NSIS installers for particular components through ELPA.

Don't underestimate the number of ways a windows installer can fuck up.

If I were to do this I would make a build bot that produced daily
binaries of the installer of a complete Emacs installation including the
dll files. I would not bother with partial updating of particular dll:s
at this time.

Later, I would implement libffi support in Emacs, by including Guile as
an Emacs dependency. Then we could have uniform soft dll support, and
get a step on the way on including Guile in the Emacs core. But I digress.

>
> Ted
>

-- 
Joakim Verona



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 22:34                                                                                   ` Óscar Fuentes
@ 2012-01-05  6:34                                                                                     ` Eli Zaretskii
  2012-01-05 15:17                                                                                       ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05  6:34 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 04 Jan 2012 23:34:50 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > You are describing a situation that existed on Windows 9X, it no
> > longer exists on modern machines.  DLLs are either versioned in their
> > names or use the SxS mechanism.
> 
> Before putting too much hope into SxS I encourage you to read the
> wikipedia page about it that you linked on a previous post.

Believe me, I have.  With today's PC ("on the one hand .... but on the
other hand") stance, you can no longer have articles with definitive
opinions.  Articles need to be "balanced", so they will dig any minor
problem to show "objectivity".  Building evidence on that is silly.

All I can say that "it works for me" on no less than 4 different XP
systems used for 4 different purposes, for 7 years, with not a single
problem that I can remember.

> > Take the GnuTLS example: the previous DLL of version 2.x was named
> > libgnutls-26.dll, while the new 3.x one is libgnutls-28.dll.
> 
> The 3.x version is named -28 ?

Yes.  The number comes from the build.  GnuTLS has some weird scheme
for numbering the releases, take a look at their configure script.
But that's not really relevant here.

> > Use your friendly depends.exe program, and you will see that programs
> > that depend on one of them (were linked with its import library) will
> > refuse to load the other.  The same is true of libintl, libiconv, and
> > all the other libraries many Windows ports of GNU software need.
> 
> Appending a number to a name doesn't solve the problem.

It does solve most of it, because programs look only for DLLs they
were linked against.

> A simple experiment: put a libgnutls-26.dll on the system32
> directory. It is shared, right? Now install cygwin or msys, or any of
> multiple standalone applications which are cygwin-based, and put its
> binary directory before system32 on PATH. See it?

People who install both MinGW and MSYS/Cygwin on the same system have
a lot of rope to hang themselves, if they act stupidly.  Putting a
non-system DLL in system32 is one such stupid act; having MSYS on your
PATH is another.  MSYS installer has an option to stay away of PATH (I
think it's the default); if you read the installation instructions
carefully during installation, you won't get into this trouble.  I
know, because I have MSYS installed on one of my machines, and have no
trouble at all, although the amount of overlap in DLLs is
considerable.

In addition, MSYS names most (if not all) of its DLLs differently,
msys-FOO-NN.dll, which also alleviates this problem.

Finally, for the umpteenth time: the default should be to put the DLL
where emacs.exe lives.  Putting it elsewhere is a bonus option for
experts.  So I have no idea why you keep hitting on this subject; it's
a side track, as far as getting GnuTLS and its updates to Emacs is
concerned.

> Another experiment: build an application such as Emacs with VC++ 6 or
> MinGW with the default settings. Now make it to use a dll (GnuTLS, an
> image library...)  compiled with a modern release of VS. Unless such
> library follows a very strict policy about resource handling (and
> possibly other aspects) you are asking for problems.

These problems are theoretical, we never heard about them here.
dynamic-library-alist is carefully constructed to accept only names of
DLLs that we know are safe, which solves at least part of the
potential for trouble.

And again, if someone mixes MinGW with MSVC, they are in trouble
already and need a lot of discipline to avoid shooting themselves in
the foot.

We were talking about the majority of the users, but your examples are
all from the expert land.  I think it's not a coincidence: there
simply are no such problems in the vast majority of installations
nowadays, in practice.

> Think on a user that discovers that sending mail with Emacs just works
> because some other package installed GnuTLS on some directory listed on
> PATH. Time later he decides to uninstall the application and afterwards
> tries to send an e-mail, just to notice to his dismay that it doesn't
> work anymore. Confusing, isn't it?

It isn't confusing if Emacs displays a clear error message.

Again, this use case is for experts; by default the DLL should be with
emacs.exe.  Experts will know how to avoid that; most uninstallers ask
for an explicit permission to remove DLLs from public directories, and
experts know better than blindly clicking OK.

> > Please stop spreading this FUD, you are tripping people like Ted who
> > don't know better into wrong conclusions based on what hurt you (and
> > me) several years ago.  THERE'S NO SUCH PROBLEM ANYMORE!
> 
> Please stop using inflamatory language and offensive assertions.

Sorry, I cannot watch indifferently as people are talked into wrong
conclusions based on information that is several years obsolete.  It
is ridiculous to base design decision for a _future_ feature on
problems that last happened on Windows 2000, a system whose use today
is marginal at best.  Windows XP was released in 2001, and is already
obsolete, so any version prior to it is definitely so.

> I could say that your real-world experience distributing, installing
> and supporting software across heterogenous environments looks quite
> limited, but I'll rather suppose that you were very lucky so far.

You can call 7 years of safe use on 4 different machines luck if you
want.  I call it discipline and following safe practices.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 23:00                                                                                   ` Óscar Fuentes
  2012-01-05  0:18                                                                                     ` Juanma Barranquero
@ 2012-01-05  6:41                                                                                     ` Eli Zaretskii
  2012-01-05  7:04                                                                                       ` Daniel Colascione
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05  6:41 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Thu, 05 Jan 2012 00:00:57 +0100
> 
> You can bet on it. At the beginning there was several versions of
> MSVCRT.DLL floating around, some of them notoriously buggy. Of course,
> everybody installed the dll on system32. The problem was partially fixed
> by SxS, which essentially ensured that applications that didn't embed
> manifests (and hence didn't required a specific version of the dll) used
> the default, "safe" one provided by MS with the OS. That started with
> Windows XP, although it doesn't protect you from inadvertently picking a
> dll inside a directory that comes first on PATH. With Windows 2000, I
> had to face one of the more frustrating bugs on my career: a few users
> reported crashes, freezes and data corruption (on a DB app!). It took me
> months to discover the problem for one of the users: a mass storage
> device driver and accompanying backup utility installed their own
> custom-modified MSVCRT.DLL on system32, which somehow caused my app to
> freeze when certain gui action was performed. They didn't bothered to
> use a different version string or id on the resources of the library, so
> it reported itself as one of the "good" dlls. Then I started to put my
> runtime dlls on the same directory as the rest of my binaries, and the
> problems of those users disappeared. Most of them haven't that storage
> device. The issue costed me a several hundred work hours, mostly trying
> to desperately find bugs inside my application.

Conclusions based on experiences from Windows 2000 should be tossed as
irrelevant nowadays.  Citing this is a good "war story", but has no
bearing on design decisions for future features.

In addition, latest GnuTLS cannot be compiled with MinGW in a way that
will run on anything older than XP anyway.  (Maybe some non-trivial
tweaking could overcome that, but I didn't bother, and if Nikos built
the stock distribution, which is what I glean from his script, then
his binaries have the same limitation.)

So let's forget about Windows 2000; it's irrelevant for this thread,
if not for any other thread.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-04 23:18                                                                               ` Óscar Fuentes
@ 2012-01-05  6:44                                                                                 ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05  6:44 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Thu, 05 Jan 2012 00:18:42 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> [snip]
> 
> >> Depending on how Emacs was installed, that would require elevated
> >> privileges, something ELPA can not ask for, AFAIK.
> >
> > FUD.  Emacs is not installed by corporate policies on Windows, so this
> > won't happen except in very rare cases.
> 
> Have you used MS Windows Vista or Seven lately? If you install Emacs on
> "Program Files" Emacs itself does not have write rights to its own
> directory (actually, sometimes the OS can fool the app into believing
> that it is creating or changing files there, but in reality it is
> diverting the operation to somewhere else. Look for "File and Registry
> Virtualization" for further info). You must fidle with directory
> permissions (that is, shutting down a security measure) for Emacs, or
> the user in front of the computer, to alter its contents without
> escalating privileges.

Irrelevant: we are talking about the same user who already installed
Emacs on that system, so that user will have already solved this
"problem" using one of the few available solutions, be it privilege
elevation, disabling UAC altogether, installing Emacs not in "Program
Files", or something else.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  2:00                                                                                       ` Óscar Fuentes
  2012-01-05  2:36                                                                                         ` Juanma Barranquero
@ 2012-01-05  6:45                                                                                         ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05  6:45 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Thu, 05 Jan 2012 03:00:15 +0100
> 
> Juanma Barranquero <lekktu@gmail.com> writes:
> 
> > On Thu, Jan 5, 2012 at 00:00, Óscar Fuentes <ofv@wanadoo.es> wrote:
> >
> >> It took me
> >> months to discover the problem for one of the users: a mass storage
> >> device driver and accompanying backup utility installed their own
> >> custom-modified MSVCRT.DLL on system32, which somehow caused my app to
> >> freeze when certain gui action was performed. They didn't bothered to
> >> use a different version string or id on the resources of the library, so
> >> it reported itself as one of the "good" dlls.
> >
> > That just means that someone should be hit in the head with a printed
> > copy of the full MSDN site. Repeatedly.
> 
> It *also* means that depending on unknown third parties is asking for
> trouble.

If we put a DLL on ELPA or some other place and recommend it, it is no
longer "unknown".  The recommendation means someone has tested the DLL
and found it compatible with Emacs and free of nuisances.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  6:41                                                                                     ` Eli Zaretskii
@ 2012-01-05  7:04                                                                                       ` Daniel Colascione
  2012-01-05 11:58                                                                                         ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Daniel Colascione @ 2012-01-05  7:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Óscar Fuentes, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1865 bytes --]

On 1/4/12 10:41 PM, Eli Zaretskii wrote:
>> From: Óscar Fuentes <ofv@wanadoo.es>
>> Date: Thu, 05 Jan 2012 00:00:57 +0100
>>
>> it reported itself as one of the "good" dlls. Then I started to put my
>> runtime dlls on the same directory as the rest of my binaries, and the
>> problems of those users disappeared. Most of them haven't that storage
>> device. The issue costed me a several hundred work hours, mostly trying
>> to desperately find bugs inside my application.
> 
> Conclusions based on experiences from Windows 2000 should be tossed as
> irrelevant nowadays.  Citing this is a good "war story", but has no
> bearing on design decisions for future features.

It underscores a general principle: ship applications as
self-contained units that don't try to muck with the rest of the
system. The only reason doing otherwise remotely feasible on Unixish
systems it the presence of package managers. On systems without
centralized package management, like Windows and OS X, shipping
self-contained packages is the only sane thing to do.

Microsoft even added COM features ("registration-free COM") to make
this approach easier.

With disks being as large as they are now, it makes no sense to try to
optimize for some resource sharing when you can just stick DLLs
alongside other downloaded files in perfect safety.

> In addition, latest GnuTLS cannot be compiled with MinGW in a way that
> will run on anything older than XP anyway.  (Maybe some non-trivial
> tweaking could overcome that, but I didn't bother, and if Nikos built
> the stock distribution, which is what I glean from his script, then
> his binaries have the same limitation.)
> 
> So let's forget about Windows 2000; it's irrelevant for this thread,
> if not for any other thread.

So we can, in fact, ditch ANSI support and use UNICODE everywhere?


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 235 bytes --]

^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  7:04                                                                                       ` Daniel Colascione
@ 2012-01-05 11:58                                                                                         ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05 11:58 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: ofv, emacs-devel

> Date: Wed, 04 Jan 2012 23:04:56 -0800
> From: Daniel Colascione <dancol@dancol.org>
> CC: Óscar Fuentes <ofv@wanadoo.es>, 
>  emacs-devel@gnu.org
> 
> > Conclusions based on experiences from Windows 2000 should be tossed as
> > irrelevant nowadays.  Citing this is a good "war story", but has no
> > bearing on design decisions for future features.
> 
> It underscores a general principle: ship applications as
> self-contained units that don't try to muck with the rest of the
> system.

I agree.

> > So let's forget about Windows 2000; it's irrelevant for this thread,
> > if not for any other thread.
> 
> So we can, in fact, ditch ANSI support and use UNICODE everywhere?

Unicode is not about Windows 2000; and I did say "for this thread".



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  5:36                                                                                           ` Eli Zaretskii
@ 2012-01-05 13:50                                                                                             ` Ted Zlatanov
  2012-01-05 14:14                                                                                               ` Eli Zaretskii
                                                                                                                 ` (3 more replies)
  0 siblings, 4 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-05 13:50 UTC (permalink / raw)
  To: emacs-devel

On Thu, 05 Jan 2012 00:36:57 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> 
>> I think, to get this working, we need a list of critical ELPA packages
>> that Emacs will check for updates on startup and alert the user to
>> upgrade.  By default that list should be empty on all platforms, except
>> on W32 it will contain the "gnutls-w32" package.

EZ> Again, why are we treating MS-Windows specially?  Why shouldn't Emacs
EZ> issue the same alert on GNU and Unix systems, if GnuTLS is found to be
EZ> unavailable?  The fact that several distributions have Emacs depend on
EZ> GnuTLS does not mean all of them do or will, and let's not forget that
EZ> even in the year 2012 users can build their own Emacs (without
EZ> GnuTLS).

You're right.  Do you agree with the general idea of checking for
critical updates on startup, though?

I would actually also like to bundle trusted certificates.  The
Diginotar compromise showed the need for managing the certs proactively,
and we can't rely on what's on W32 systems.  On other platforms we can
let the distribution choose the right cert bundle.  Right now, gnutls.el
will take a list of trustfiles or default to
/etc/ssl/certs/ca-certificates.crt, which is hardly ideal for all
platforms.

On Thu, 5 Jan 2012 03:36:38 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> The moment the packages are accesible from the official site, there's
JB> certain responsibilities. For example, to issue security upgrades as
JB> fast as possible.
...
JB> Responsibility and obligation are disjoint concepts. I don't mind the
JB> load, but I hate accepting (not personally, but as a project) the
JB> responsibility to do things, like compiling GnuTLS binaries and
JB> distributing them, that are utterly disconnected from Emacs
JB> development per se. The moment we do that, people will expect we also
JB> provide up-to-date binaries for image libs, libxml2, d-bus, you name
JB> it.

I think the risk of providing out-of-date libxml2 or libxpm is much
smaller than providing out-of-date GnuTLS.  So while I understand your
concern about this slippery slope, I think we can resist it, and regular
releases can address the general need for updates.

On Thu, 05 Jan 2012 00:24:56 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>

>> I'm concerned about GnuTLS updates after the install.  An ELPA package
>> could do that, a simple DLL drop couldn't.

EZ> That's true, but if we assume that an urgent need to upgrade GnuTLS
EZ> will not be too frequent, we can update it with each release and in
EZ> binaries of development snapshots.  That would probably do 80% of the
EZ> job, if not more.

Unfortunately security issues and their fixes are inherently urgent and
unpredictable (e.g. the Diginotar compromise).  Note above about my
desire to also provide cert bundles in this package, so it could do much
more than a DLL drop.  But if we go with Joakim's full installer idea,
that would do the job better than package.el could.

On Thu, 05 Jan 2012 06:40:27 +0100 joakim@verona.se wrote: 

j> If I were to do this I would make a build bot that produced daily
j> binaries of the installer of a complete Emacs installation including the
j> dll files. I would not bother with partial updating of particular dll:s
j> at this time.

If we tell the user to reinstall because GnuTLS is out of date, would
that be a big burden?  I guess that's a fourth option for distributing
and updating GnuTLS, which could be combined with the ELPA package for
notifications:

1) zipfile drop

2) ELPA package in the GNU ELPA archive with startup GnuTLS version check

3) GnuTLS standalone installer+updater

4) Emacs installer+updater

Combining (4) and (2) seems most convenient for the users: they will
have a single installer for all of Emacs (a convenience that goes beyond
this thread), and they'll get notified on all platforms when GnuTLS is
out of date.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 13:50                                                                                             ` Ted Zlatanov
@ 2012-01-05 14:14                                                                                               ` Eli Zaretskii
  2012-01-05 14:50                                                                                               ` Juanma Barranquero
                                                                                                                 ` (2 subsequent siblings)
  3 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05 14:14 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Thu, 05 Jan 2012 08:50:10 -0500
> 
> Do you agree with the general idea of checking for critical updates
> on startup, though?

I have nothing against it, provided that it's not a nuisance (e.g., I
don't always want to go on-line when I start Emacs).

> I would actually also like to bundle trusted certificates.

Where should they be gotten and how to integrate them with GnuTLS?

> Right now, gnutls.el will take a list of trustfiles or default to
> /etc/ssl/certs/ca-certificates.crt, which is hardly ideal for all
> platforms.

That directory most probably won't exist on Windows.

> If we tell the user to reinstall because GnuTLS is out of date, would
> that be a big burden?

It could be, since Emacs is a large distribution, and GnuTLS libraries
are much smaller in comparison.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 13:50                                                                                             ` Ted Zlatanov
  2012-01-05 14:14                                                                                               ` Eli Zaretskii
@ 2012-01-05 14:50                                                                                               ` Juanma Barranquero
  2012-01-05 16:19                                                                                                 ` chad
  2012-01-07  1:23                                                                                                 ` Stephen J. Turnbull
  2012-01-05 15:08                                                                                               ` joakim
  2012-01-05 15:37                                                                                               ` Lars Ingebrigtsen
  3 siblings, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 14:50 UTC (permalink / raw)
  To: emacs-devel

2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:

> You're right.  Do you agree with the general idea of checking for
> critical updates on startup, though?

FWIW, I don't. That is a step (tiny, I know) in the "software as a
service" direction.

> I think the risk of providing out-of-date libxml2 or libxpm is much
> smaller than providing out-of-date GnuTLS.

If we don't provide GnuTLS libraries, the risk of providing
out-of-date ones is zero.

> So while I understand your
> concern about this slippery slope, I think we can resist it, and regular
> releases can address the general need for updates.

Why? We're not a binary shop. Why go that route?

> Combining (4) and (2) seems most convenient for the users: they will
> have a single installer for all of Emacs (a convenience that goes beyond
> this thread), and they'll get notified on all platforms when GnuTLS is
> out of date.

Does that mean that my Emacs is going to automatically try to
establish a network connection without asking me? Or that I'm gonna be
asked every time?

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 13:50                                                                                             ` Ted Zlatanov
  2012-01-05 14:14                                                                                               ` Eli Zaretskii
  2012-01-05 14:50                                                                                               ` Juanma Barranquero
@ 2012-01-05 15:08                                                                                               ` joakim
  2012-01-05 15:37                                                                                               ` Lars Ingebrigtsen
  3 siblings, 0 replies; 243+ messages in thread
From: joakim @ 2012-01-05 15:08 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Thu, 05 Jan 2012 00:36:57 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 
>
>>> From: Ted Zlatanov <tzz@lifelogs.com>
>>> 
>>> I think, to get this working, we need a list of critical ELPA packages
>>> that Emacs will check for updates on startup and alert the user to
>>> upgrade.  By default that list should be empty on all platforms, except
>>> on W32 it will contain the "gnutls-w32" package.
>
> EZ> Again, why are we treating MS-Windows specially?  Why shouldn't Emacs
> EZ> issue the same alert on GNU and Unix systems, if GnuTLS is found to be
> EZ> unavailable?  The fact that several distributions have Emacs depend on
> EZ> GnuTLS does not mean all of them do or will, and let's not forget that
> EZ> even in the year 2012 users can build their own Emacs (without
> EZ> GnuTLS).
>
> You're right.  Do you agree with the general idea of checking for
> critical updates on startup, though?
>
> I would actually also like to bundle trusted certificates.  The
> Diginotar compromise showed the need for managing the certs proactively,
> and we can't rely on what's on W32 systems.  On other platforms we can
> let the distribution choose the right cert bundle.  Right now, gnutls.el
> will take a list of trustfiles or default to
> /etc/ssl/certs/ca-certificates.crt, which is hardly ideal for all
> platforms.
>
> On Thu, 5 Jan 2012 03:36:38 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 
>
> JB> The moment the packages are accesible from the official site, there's
> JB> certain responsibilities. For example, to issue security upgrades as
> JB> fast as possible.
> ...
> JB> Responsibility and obligation are disjoint concepts. I don't mind the
> JB> load, but I hate accepting (not personally, but as a project) the
> JB> responsibility to do things, like compiling GnuTLS binaries and
> JB> distributing them, that are utterly disconnected from Emacs
> JB> development per se. The moment we do that, people will expect we also
> JB> provide up-to-date binaries for image libs, libxml2, d-bus, you name
> JB> it.
>
> I think the risk of providing out-of-date libxml2 or libxpm is much
> smaller than providing out-of-date GnuTLS.  So while I understand your
> concern about this slippery slope, I think we can resist it, and regular
> releases can address the general need for updates.
>
> On Thu, 05 Jan 2012 00:24:56 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 
>
>>> From: Ted Zlatanov <tzz@lifelogs.com>
>
>>> I'm concerned about GnuTLS updates after the install.  An ELPA package
>>> could do that, a simple DLL drop couldn't.
>
> EZ> That's true, but if we assume that an urgent need to upgrade GnuTLS
> EZ> will not be too frequent, we can update it with each release and in
> EZ> binaries of development snapshots.  That would probably do 80% of the
> EZ> job, if not more.
>
> Unfortunately security issues and their fixes are inherently urgent and
> unpredictable (e.g. the Diginotar compromise).  Note above about my
> desire to also provide cert bundles in this package, so it could do much
> more than a DLL drop.  But if we go with Joakim's full installer idea,
> that would do the job better than package.el could.
>
> On Thu, 05 Jan 2012 06:40:27 +0100 joakim@verona.se wrote: 
>
> j> If I were to do this I would make a build bot that produced daily
> j> binaries of the installer of a complete Emacs installation including the
> j> dll files. I would not bother with partial updating of particular dll:s
> j> at this time.
>
> If we tell the user to reinstall because GnuTLS is out of date, would
> that be a big burden?  I guess that's a fourth option for distributing
> and updating GnuTLS, which could be combined with the ELPA package for
> notifications:
>
> 1) zipfile drop
>
> 2) ELPA package in the GNU ELPA archive with startup GnuTLS version check
>
> 3) GnuTLS standalone installer+updater
>
> 4) Emacs installer+updater
>
> Combining (4) and (2) seems most convenient for the users: they will
> have a single installer for all of Emacs (a convenience that goes beyond
> this thread), and they'll get notified on all platforms when GnuTLS is
> out of date.

I think using a patcher should be sufficient:
http://wiz0u.free.fr/prog/WPatch/
That way we get a one stop solution for all changes.

Surely there must be an existing nsis installer for Emacs somewhere? If
there isn't I can provide a skeleton for someone else to tweak. Emacs
ought to be fairly easy to make an installer for since you basically
just copy the binaries somewhere and run out of tree. (I suppose, I'm
not familiar with how people run Emacs on Windows these days)

BTW the Nsis compiler can run on Gnu/Linux using Wine. There is a native
version as well but I never got it working properly. Also you will be
surprised at how arcane the Nsis language is(partly an artefact of the
domain), so one is often tempted to use something else. Last time I
checked the alternatives were worse, but that might have changed.



> Ted
>

-- 
Joakim Verona



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  6:34                                                                                     ` Eli Zaretskii
@ 2012-01-05 15:17                                                                                       ` Óscar Fuentes
  2012-01-05 18:11                                                                                         ` Eli Zaretskii
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-05 15:17 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

[snip]

>> I could say that your real-world experience distributing, installing
>> and supporting software across heterogenous environments looks quite
>> limited, but I'll rather suppose that you were very lucky so far.
>
> You can call 7 years of safe use on 4 different machines luck if you
> want.  I call it discipline and following safe practices.

Wait a minute. You are basing the points you so vehemently defend on
just personal experience with your own machines? Does that make sense at
all? Do you think that people is so disciplined and knowledgeable (and
lucky!) as you and that makes all the problems you don't have to become
irrelevant for Emacs?

That last paragraph of yours speaks tons about our different stances on
this issue. It is my direct responsability to keep my software up and
running for hundreds of users across dozens of sites and configurations
on machines I don't control, quite a few of them playing a critical
role, and deal with bug reports from tens of thousands of users
more. Acting as if the experience I gather from my desktop were enough
to set the bar for the rest of world would be so foolish that I would be
out of bussiness and sued after the three first months. Maybe Emacs
doesn't need so much careful thinking as mission-critical software does,
but basing design decissions onto very limited personal experiences
looks quite wrong too.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 13:50                                                                                             ` Ted Zlatanov
                                                                                                                 ` (2 preceding siblings ...)
  2012-01-05 15:08                                                                                               ` joakim
@ 2012-01-05 15:37                                                                                               ` Lars Ingebrigtsen
  2012-01-05 17:52                                                                                                 ` Ted Zlatanov
  3 siblings, 1 reply; 243+ messages in thread
From: Lars Ingebrigtsen @ 2012-01-05 15:37 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> You're right.  Do you agree with the general idea of checking for
> critical updates on startup, though?

You didn't ask me, but I certainly do not.  

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05  5:40                                                                                   ` joakim
@ 2012-01-05 15:52                                                                                     ` Óscar Fuentes
  0 siblings, 0 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-05 15:52 UTC (permalink / raw)
  To: emacs-devel

joakim@verona.se writes:

> Here is my advice based on some commercial installers I worked on.

[snipped a chunk of good advice]

> If I were to do this I would make a build bot that produced daily
> binaries of the installer of a complete Emacs installation including the
> dll files. I would not bother with partial updating of particular dll:s
> at this time.

I used NSIS lots of years ago. Finally abandoned it because its poor
support for partial updates. At the time some people were discussing the
possibility of adding a component for updating a package through the
Internet. Like a network installer but with the added capability of
re-running and updating the previously installed files. Guess that
nothing came out of it.

> Later, I would implement libffi support in Emacs, by including Guile as
> an Emacs dependency. Then we could have uniform soft dll support, and
> get a step on the way on including Guile in the Emacs core. But I digress.

I'm eager to see how well Guile competes with Emacs Lisp as a
convenience for extending Emacs :-)




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 14:50                                                                                               ` Juanma Barranquero
@ 2012-01-05 16:19                                                                                                 ` chad
  2012-01-05 20:30                                                                                                   ` Juanma Barranquero
  2012-01-07  1:23                                                                                                 ` Stephen J. Turnbull
  1 sibling, 1 reply; 243+ messages in thread
From: chad @ 2012-01-05 16:19 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel

On Jan 5, 2012, at 6:50 AM, Juanma Barranquero wrote:

> 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:
> 
>> You're right.  Do you agree with the general idea of checking for
>> critical updates on startup, though?
> 
> FWIW, I don't. That is a step (tiny, I know) in the "software as a
> service" direction.

I'm a little surprised to see the suggestion that `checking for critical updates' is objectionable because it's too much like `software as a service' in your mind.  Out of curiosity, do you assemble the pieces of your operating system by hand and manually check for updates yourself? Do you think that most GNU/Linux distributions are too much like `software as a service' for the same reasons?

> Does that mean that my Emacs is going to automatically try to
> establish a network connection without asking me? Or that I'm gonna be
> asked every time?

It would mean that the default Emacs would automatically try to establish a network connection without asking you, yes. If you believe that the default user is opposed to this, I'll suggest that you might not have noticed them all voting with their feet in favor of this at least a decade ago.  This isn't even the old `Windows Majority', even - I can't think of a computing system today that meets the criteria ``might run Emacs 24.2'' and ``does NOT somehow check the network for critical updates in the default installation''.

*Chad




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 15:37                                                                                               ` Lars Ingebrigtsen
@ 2012-01-05 17:52                                                                                                 ` Ted Zlatanov
  2012-01-05 18:29                                                                                                   ` Lars Ingebrigtsen
  2012-01-05 20:36                                                                                                   ` Juanma Barranquero
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-05 17:52 UTC (permalink / raw)
  To: emacs-devel

On Thu, 05 Jan 2012 16:37:04 +0100 Lars Ingebrigtsen <larsi@gnus.org> wrote: 

LI> Ted Zlatanov <tzz@lifelogs.com> writes:
>> You're right.  Do you agree with the general idea of checking for
>> critical updates on startup, though?

LI> You didn't ask me, but I certainly do not.  

I certainly value your opinion.  Could you explain why you disagree with
checking critical packages (just GnuTLS currently)?  How would you
propose letting the user know they are out of date, instead of this?

On Thu, 5 Jan 2012 15:50:40 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:

>> You're right.  Do you agree with the general idea of checking for
>> critical updates on startup, though?

JB> FWIW, I don't. That is a step (tiny, I know) in the "software as a
JB> service" direction.

Not at all.  It's just a convenience based on our desire to take
responsibility for the security of the software we provide.

>> Combining (4) and (2) seems most convenient for the users: they will
>> have a single installer for all of Emacs (a convenience that goes beyond
>> this thread), and they'll get notified on all platforms when GnuTLS is
>> out of date.

JB> Does that mean that my Emacs is going to automatically try to
JB> establish a network connection without asking me? Or that I'm gonna be
JB> asked every time?

It will be configurable and transparent when possible, but yes, at some
point it may ask you once.

If we have a W32 installer I'd make it a checkbox during the install.

On Thu, 05 Jan 2012 09:14:11 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> I would actually also like to bundle trusted certificates.

EZ> Where should they be gotten and how to integrate them with GnuTLS?

(Note this is speculative, I don't know for sure we should do this, but
certainly on W32 the cert bundle has to come from somewhere.)

I think it's safest to use Mozilla's cert bundle but I may sync with
Debian's bundle instead.

They don't integrate with GnuTLS as a library, but rather they are given
to it by gnutls.el.  So it would be maintenance and special cases in
gnutls.el, not in C code.

Our list of certs may diverge from what's built into the OS (e.g. RHEL
vs. Debian vs. Mac OS X).  There's no way to fix that, we have to let
the user choose, and by default use the OS cert bundle when it's
feasible.

>> If we tell the user to reinstall because GnuTLS is out of date, would
>> that be a big burden?

EZ> It could be, since Emacs is a large distribution, and GnuTLS libraries
EZ> are much smaller in comparison.

Maybe the wpatch Joakim mentioned would help here.  But yeah, I see the
problem, and yet everyone (IIUC) is saying a bundled install is the
safest way instead of trying to update DLLs directly.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 15:17                                                                                       ` Óscar Fuentes
@ 2012-01-05 18:11                                                                                         ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-05 18:11 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Thu, 05 Jan 2012 16:17:12 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> [snip]
> 
> >> I could say that your real-world experience distributing, installing
> >> and supporting software across heterogenous environments looks quite
> >> limited, but I'll rather suppose that you were very lucky so far.
> >
> > You can call 7 years of safe use on 4 different machines luck if you
> > want.  I call it discipline and following safe practices.
> 
> Wait a minute. You are basing the points you so vehemently defend on
> just personal experience with your own machines? Does that make sense at
> all? Do you think that people is so disciplined and knowledgeable (and
> lucky!) as you and that makes all the problems you don't have to become
> irrelevant for Emacs?

Most "people" do not install multiple packages, such as MinGW and
MSYS, that could potentially conflict on the same machine.

And yes, I think my experience is fairly common to those who do.

> That last paragraph of yours speaks tons about our different stances on
> this issue. It is my direct responsability to keep my software up and
> running for hundreds of users across dozens of sites and configurations
> on machines I don't control, quite a few of them playing a critical
> role, and deal with bug reports from tens of thousands of users
> more.

Does that involve installing MinGW and MSYS/Cygwin on the same
machine?  Or mixing MSVC 6 with MSVC 13?

> Acting as if the experience I gather from my desktop were enough
> to set the bar for the rest of world would be so foolish

I never set that this bar is for everyone.  For the umpteenth time: BY
DEFAULT THE DLLS SHOULD GO TO THE SAME DIRECTORY AS EMACS.EXE.  Let go!




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 17:52                                                                                                 ` Ted Zlatanov
@ 2012-01-05 18:29                                                                                                   ` Lars Ingebrigtsen
  2012-01-05 20:06                                                                                                     ` Ted Zlatanov
  2012-01-05 20:38                                                                                                     ` Juanma Barranquero
  2012-01-05 20:36                                                                                                   ` Juanma Barranquero
  1 sibling, 2 replies; 243+ messages in thread
From: Lars Ingebrigtsen @ 2012-01-05 18:29 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> I certainly value your opinion.  Could you explain why you disagree with
> checking critical packages (just GnuTLS currently)?

If every program did stuff like that, using a computer would be
untenable.

$ gcc file.c
Checking for new versions of gcc...
New version of gcc found.  Do you want to upgrade? (y/n)

> How would you propose letting the user know they are out of date,
> instead of this?

I wouldn't.

Emacs under Linux doesn't check for stuff like that.  If the user
believes that there's something critical going on that needs updating,
the user says "apt-get update; apt-get upgrade".  If the user believes
that Emacs under Windows needs updating, the user will download the zip
file as usual.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 18:29                                                                                                   ` Lars Ingebrigtsen
@ 2012-01-05 20:06                                                                                                     ` Ted Zlatanov
  2012-01-06  3:15                                                                                                       ` Lars Magne Ingebrigtsen
  2012-01-05 20:38                                                                                                     ` Juanma Barranquero
  1 sibling, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-05 20:06 UTC (permalink / raw)
  To: emacs-devel

On Thu, 05 Jan 2012 19:29:27 +0100 Lars Ingebrigtsen <larsi@gnus.org> wrote: 

LI> Ted Zlatanov <tzz@lifelogs.com> writes:
>> I certainly value your opinion.  Could you explain why you disagree with
>> checking critical packages (just GnuTLS currently)?

LI> If every program did stuff like that, using a computer would be
LI> untenable.

LI> $ gcc file.c
LI> Checking for new versions of gcc...
LI> New version of gcc found.  Do you want to upgrade? (y/n)

GCC, unlike Emacs, is not a self-sufficient environment.  Compare Emacs
to Chrome and Firefox... which, not surprisingly, do tell you about
updates, and they are both layout engines coupled with an interpreter,
like Emacs.

Also, I agree it's silly to interrupt batch mode with questions, as your
example shows.  This update check (which, again, I'm only proposing for
GnuTLS, and can be easily disabled) would be turned off in
batch/noninteractive modes.

>> How would you propose letting the user know they are out of date,
>> instead of this?

LI> I wouldn't.

LI> Emacs under Linux doesn't check for stuff like that.

Emacs' package.el can check and update packages.

LI> If the user believes that there's something critical going on that
LI> needs updating, the user says "apt-get update; apt-get upgrade".  If
LI> the user believes that Emacs under Windows needs updating, the user
LI> will download the zip file as usual.

The user doesn't know, usually, that there's been a critical GnuTLS
release that affects them.  Unlike normal updates, ignoring this can
actually compromise their security, not just corrupt or expose their
data.  This is a crucial distinction.  So I want Emacs to notify the
user their GnuTLS is out of date, or else something else should
(e.g. the self-contained GnuTLS updater for W32 I proposed).

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 16:19                                                                                                 ` chad
@ 2012-01-05 20:30                                                                                                   ` Juanma Barranquero
  2012-01-05 23:14                                                                                                     ` chad
  2012-01-07  1:36                                                                                                     ` Stephen J. Turnbull
  0 siblings, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 20:30 UTC (permalink / raw)
  To: chad; +Cc: emacs-devel

On Thu, Jan 5, 2012 at 17:19, chad <yandros@gmail.com> wrote:

> Out of curiosity, do you assemble the pieces of your operating system by hand

No, because I'm not offered that alternative in the system I use.

> and manually check for updates yourself?

I disable automatic checking and do manual checks every now and then, yes.

> Do you think that most GNU/Linux distributions are too much like `software as a service' for the same reasons?

Certainly I don't like much the way GNU/Linux distributions are going.

> It would mean that the default Emacs would automatically try to establish a network connection without asking you, yes.

If my vote counts, I'll vote against that being the default.

> If you believe that the default user is opposed to this, I'll suggest that you might not have noticed them all voting with their feet in favor of this at least a decade ago.  This isn't even the old `Windows Majority', even - I can't think of a computing system today that meets the criteria ``might run Emacs 24.2'' and ``does NOT somehow check the network for critical updates in the default installation''.

Last I checked, Emacs wasn't yet an operating system. There are plenty
of applications, many of them quite new, with no automatic checking
and/or upgrading.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 17:52                                                                                                 ` Ted Zlatanov
  2012-01-05 18:29                                                                                                   ` Lars Ingebrigtsen
@ 2012-01-05 20:36                                                                                                   ` Juanma Barranquero
  2012-01-05 20:39                                                                                                     ` Richard Riley
  2012-01-05 22:35                                                                                                     ` Ted Zlatanov
  1 sibling, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 20:36 UTC (permalink / raw)
  To: emacs-devel

2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:

> Not at all.  It's just a convenience based on our desire to take
> responsibility for the security of the software we provide.

Starting with the fact that we shouldn't be providing that software in
the first place...

> It will be configurable and transparent when possible, but yes, at some
> point it may ask you once.

Even if I don't use, and don't want to use, and don't plan to use, and
don't even want to know that the binary somehow included, the GnuTLS
DLL?

> If we have a W32 installer I'd make it a checkbox during the install.

If someone creates an installer for Emacs, I don't care what the defaults are.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 18:29                                                                                                   ` Lars Ingebrigtsen
  2012-01-05 20:06                                                                                                     ` Ted Zlatanov
@ 2012-01-05 20:38                                                                                                     ` Juanma Barranquero
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 20:38 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

On Thu, Jan 5, 2012 at 19:29, Lars Ingebrigtsen <larsi@gnus.org> wrote:

> If every program did stuff like that, using a computer would be
> untenable.
>
> $ gcc file.c
> Checking for new versions of gcc...
> New version of gcc found.  Do you want to upgrade? (y/n)

Thanks! I was starting to feel alone in this.

>> How would you propose letting the user know they are out of date,
>> instead of this?
>
> I wouldn't.

+1,000

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 20:36                                                                                                   ` Juanma Barranquero
@ 2012-01-05 20:39                                                                                                     ` Richard Riley
  2012-01-05 22:45                                                                                                       ` Juanma Barranquero
  2012-01-05 22:35                                                                                                     ` Ted Zlatanov
  1 sibling, 1 reply; 243+ messages in thread
From: Richard Riley @ 2012-01-05 20:39 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:
>
>> Not at all.  It's just a convenience based on our desire to take
>> responsibility for the security of the software we provide.
>
> Starting with the fact that we shouldn't be providing that software in
> the first place...
>
>> It will be configurable and transparent when possible, but yes, at some
>> point it may ask you once.
>
> Even if I don't use, and don't want to use, and don't plan to use, and
> don't even want to know that the binary somehow included, the GnuTLS
> DLL?
>
>> If we have a W32 installer I'd make it a checkbox during the install.
>
> If someone creates an installer for Emacs, I don't care what the
> defaults are.

Maybe not, but just about everyone else will. Its why they are
"defaults" : sensible choices.

>
>     Juanma
>




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 20:36                                                                                                   ` Juanma Barranquero
  2012-01-05 20:39                                                                                                     ` Richard Riley
@ 2012-01-05 22:35                                                                                                     ` Ted Zlatanov
  2012-01-05 22:43                                                                                                       ` Juanma Barranquero
  1 sibling, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-05 22:35 UTC (permalink / raw)
  To: emacs-devel

On Thu, 5 Jan 2012 21:36:55 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:
>> Not at all.  It's just a convenience based on our desire to take
>> responsibility for the security of the software we provide.

JB> Starting with the fact that we shouldn't be providing that software in
JB> the first place...

I mean Emacs.  Maybe you do too, I don't know anymore.

>> It will be configurable and transparent when possible, but yes, at some
>> point it may ask you once.

JB> Even if I don't use, and don't want to use, and don't plan to use, and
JB> don't even want to know that the binary somehow included, the GnuTLS
JB> DLL?

Yes, even you personally.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 22:35                                                                                                     ` Ted Zlatanov
@ 2012-01-05 22:43                                                                                                       ` Juanma Barranquero
  2012-01-05 23:28                                                                                                         ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 22:43 UTC (permalink / raw)
  To: Emacs developers

2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:

> I mean Emacs.  Maybe you do too, I don't know anymore.

I meant the GnuTLS DLL, but the Emacs binary too, if possible.
Unfortunately, on Windows is almost a requirement.

> Yes, even you personally.

Well, duh.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 20:39                                                                                                     ` Richard Riley
@ 2012-01-05 22:45                                                                                                       ` Juanma Barranquero
  0 siblings, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 22:45 UTC (permalink / raw)
  To: emacs-devel

On Thu, Jan 5, 2012 at 21:39, Richard Riley <rileyrg@gmail.com> wrote:

> Maybe not, but just about everyone else will. Its why they are
> "defaults" : sensible choices.

What I meant is that I won't use it** so I don't care which defaults
are defined. All of them are equally good to me.

**(Assuming we're talking about an installer for Emacs. I would use an
installer for GnuTLS as a separate package.)

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 20:30                                                                                                   ` Juanma Barranquero
@ 2012-01-05 23:14                                                                                                     ` chad
  2012-01-05 23:32                                                                                                       ` Juanma Barranquero
  2012-01-07  1:36                                                                                                     ` Stephen J. Turnbull
  1 sibling, 1 reply; 243+ messages in thread
From: chad @ 2012-01-05 23:14 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel


On Jan 5, 2012, at 12:30 PM, Juanma Barranquero wrote:

> On Thu, Jan 5, 2012 at 17:19, chad <yandros@gmail.com> wrote:
> 
>> Out of curiosity, do you assemble the pieces of your operating system by hand
> 
> No, because I'm not offered that alternative in the system I use.
> 
>> and manually check for updates yourself?
> 
> I disable automatic checking and do manual checks every now and then, yes.

When you do manual checks, do you run a program that checks for updates, downloads them, and then installs them; or do you load up a web browser, visit some project pages from memory/bookmarks/etc, and start downloading and unpacking zip files?

I certainly don't think that everyone should be *required* to run an automatic critical-update-checker, but we're not talking about that - we're talking about the default setting.  That might involve you being asked a question once ever (something that's been built into emacs at least since I started using in in the 18.43 days), or adding a tiny bit of elisp to your set-up before being asked.

>> Do you think that most GNU/Linux distributions are too much like `software as a service' for the same reasons?
> 
> Certainly I don't like much the way GNU/Linux distributions are going.

Ok, I sympathize (I tend to disable auto-updaters on windows systems myself), but wasn't the question. I assume that you mention SoaS because you think that such systems are opposed to the FSF's and/or GNU project's goals, not just because you don't like them.

You asked, ``if your vote counts'', and - to me, at least - your vote definitely counts.  I'm trying to understand your reasoning for objecting to a default setting that would notify the user about critical issues.  Either I'm not understanding what you're saying, or you're saying that the default users shouldn't have a feature that many (I'd say `vast majority', but `many' is enough) because it might cause you to have to type `n' a few times, and that doesn't match what I expect from seeing your efforts on emacs-devel.

>> If you believe that the default user is opposed to this, I'll suggest that you might not have noticed them all voting with their feet in favor of this at least a decade ago.  This isn't even the old `Windows Majority', even - I can't think of a computing system today that meets the criteria ``might run Emacs 24.2'' and ``does NOT somehow check the network for critical updates in the default installation''.
> 
> There are plenty of applications, many of them quite new, with no automatic checking and/or upgrading.

I don't want to start a flame-war, but I really don't think this statement is true of user software.  Basically everything not hand-hacked on modern GNU/Linux, Mac OS X, or Windows system has an automatic checking (or checking and upgrading) system in place, built in to the application (web browsers, office suites, document/imaging systems, and games, for example) or the operating system.  To my knowledge, emacs is the *only* software I use under windows that doesn't do this, but I don't use windows very often, and mostly just for playing certain computer games. Can you suggest a few `user' applications that don't?

Perhaps this is a matter of nomenclature, but in my opinion, if the operating system's default-run package manager performs such a function, I believe that it counts.  Is that's the distinction you're drawing?

*Chad




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 22:43                                                                                                       ` Juanma Barranquero
@ 2012-01-05 23:28                                                                                                         ` Ted Zlatanov
  2012-01-05 23:38                                                                                                           ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-05 23:28 UTC (permalink / raw)
  To: emacs-devel

On Thu, 5 Jan 2012 23:43:29 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:
>>> Not at all.  It's just a convenience based on our desire to take
>>> responsibility for the security of the software we provide.

JB> Starting with the fact that we shouldn't be providing that software in
JB> the first place...

JB> 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:
>> I mean Emacs.  Maybe you do too, I don't know anymore.

JB> I meant the GnuTLS DLL, but the Emacs binary too, if possible.
JB> Unfortunately, on Windows is almost a requirement.

I meant Emacs, the software, not just its binary form.  Forget the
binaries; you and Lars are protesting a startup check that critical
packages like GnuTLS are not out of date.  I'm saying that's a
convenience I think we should impose on our users at the cost of a
single y/n/never_bug_me_again prompt.  I can't think of a better way to
notify them that an Emacs component is out of date and possibly
compromising their security.  I believe it's our responsibility to do
this.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:14                                                                                                     ` chad
@ 2012-01-05 23:32                                                                                                       ` Juanma Barranquero
  2012-01-05 23:58                                                                                                         ` Richard Riley
  2012-01-06  0:09                                                                                                         ` Juanma Barranquero
  0 siblings, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 23:32 UTC (permalink / raw)
  To: chad; +Cc: emacs-devel

On Fri, Jan 6, 2012 at 00:14, chad <yandros@gmail.com> wrote:

> When you do manual checks, do you run a program that checks for updates,
> downloads them, and then installs them; or do you load up a web browser,
> visit some project pages from memory/bookmarks/etc, and start downloading
> and unpacking zip files?

Well, for the operating system I do the first, because it is what the
system allows. For other software, I do visit the page, unload zip
files or whatever and unpack them.

> I'm trying to understand your reasoning for objecting to a default setting that
> would notify the user about critical issues.  Either I'm not understanding what
> you're saying, or you're saying that the default users shouldn't have a feature
> that many (I'd say `vast majority', but `many' is enough) because it might
> cause you to have to type `n' a few times, and that doesn't match what I
> expect from seeing your efforts on emacs-devel.

My objection is at a more fundamental level: we should not be
distributing binaries. For Windows, we are forced (more or less),
because most Windows users do not have a build environment, so we
should distribute the minimal binary that can possibly work and leave
options to the user.

The objection is twofold: on one hand, the more we do, the less
"customizable" the system is. Of course a dedicated user can change
anything, but defaults tend to be widely used and rarely questioned,
at least on systems with (relatively) unexperienced users, like
Windows. On the other hand, and as I've already said three or four
times, this is a software development project, not a packaging one. We
don't build an "Emacs distribution", we distribute Emacs source
tarballs. That's what I think we should continue doing. I see a lot of
people arguing how secure and convenient will be to have automatic
upgrades, and I wonder why nobody but me finds weird that we are
dedicating so much energy to discuss *binaries* in the first place. At
which moment did we switch goals? Once we have this wonderful system
for the Windows binaries, are we going to start distributing binary
tarballs for RedHat, Ubuntu or gNewSense? Is that what we want to do?
Certainly is not what I want to do, and it pains me seeing resources
diverted to that.

> To my knowledge, emacs is the *only* software I use under windows that doesn't do this, but I don't use windows very often, and mostly just for playing certain computer games. Can you suggest a few `user' applications that don't?

FreeOffice. Battle for Wesnoth. TrueCrypt. Just out of my head, I
haven't checked the software installed in my computer.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:28                                                                                                         ` Ted Zlatanov
@ 2012-01-05 23:38                                                                                                           ` Juanma Barranquero
  2012-01-05 23:55                                                                                                             ` Richard Riley
  2012-01-06  0:43                                                                                                             ` Ted Zlatanov
  0 siblings, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 23:38 UTC (permalink / raw)
  To: emacs-devel

2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:

> I meant Emacs, the software, not just its binary form.  Forget the
> binaries; you and Lars are protesting a startup check that critical
> packages like GnuTLS are not out of date.

When you say that, you are not talking about gnutls.el, you are
talking about the GnuTLS binary, so no, I cannot forget the binaries.
That's the whole point of the discussion (at least, of the part of the
discussion I'm involved in).

> I can't think of a better way to
> notify them that an Emacs component is out of date and possibly
> compromising their security.

The GnuTLS binary is *not* an "Emacs component".

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:38                                                                                                           ` Juanma Barranquero
@ 2012-01-05 23:55                                                                                                             ` Richard Riley
  2012-01-05 23:59                                                                                                               ` Juanma Barranquero
                                                                                                                                 ` (2 more replies)
  2012-01-06  0:43                                                                                                             ` Ted Zlatanov
  1 sibling, 3 replies; 243+ messages in thread
From: Richard Riley @ 2012-01-05 23:55 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> 2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:
>
>> I meant Emacs, the software, not just its binary form.  Forget the
>> binaries; you and Lars are protesting a startup check that critical
>> packages like GnuTLS are not out of date.
>
> When you say that, you are not talking about gnutls.el, you are
> talking about the GnuTLS binary, so no, I cannot forget the binaries.
> That's the whole point of the discussion (at least, of the part of the
> discussion I'm involved in).
>
>> I can't think of a better way to
>> notify them that an Emacs component is out of date and possibly
>> compromising their security.
>
> The GnuTLS binary is *not* an "Emacs component".

Silly word play. It's a required component for Emacs in the context of
this discussion.

>
>     Juanma
>





^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:32                                                                                                       ` Juanma Barranquero
@ 2012-01-05 23:58                                                                                                         ` Richard Riley
  2012-01-06  0:05                                                                                                           ` Juanma Barranquero
  2012-01-06  7:11                                                                                                           ` Eli Zaretskii
  2012-01-06  0:09                                                                                                         ` Juanma Barranquero
  1 sibling, 2 replies; 243+ messages in thread
From: Richard Riley @ 2012-01-05 23:58 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Fri, Jan 6, 2012 at 00:14, chad <yandros@gmail.com> wrote:
>
>> When you do manual checks, do you run a program that checks for updates,
>> downloads them, and then installs them; or do you load up a web browser,
>> visit some project pages from memory/bookmarks/etc, and start downloading
>> and unpacking zip files?
>
> Well, for the operating system I do the first, because it is what the
> system allows. For other software, I do visit the page, unload zip
> files or whatever and unpack them.
>
>> I'm trying to understand your reasoning for objecting to a default setting that
>> would notify the user about critical issues.  Either I'm not understanding what
>> you're saying, or you're saying that the default users shouldn't have a feature
>> that many (I'd say `vast majority', but `many' is enough) because it might
>> cause you to have to type `n' a few times, and that doesn't match what I
>> expect from seeing your efforts on emacs-devel.
>
> My objection is at a more fundamental level: we should not be
> distributing binaries. For Windows, we are forced (more or less),
> because most Windows users do not have a build environment, so we
> should distribute the minimal binary that can possibly work and leave
> options to the user.

The distribution should have everything the user might *optionally*
want. This kind of minimalist thinking doesnt exactly help new users
adopt emacs when they have no clue about building or fetching/installing
such components themsleves. Let the advanced users opt out, but dont cut
off the beginners and new users. Its silly. If distributing binaries
local to the emacs install helps people get going then why not? You can
disable this. You're an advanced user.







^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:55                                                                                                             ` Richard Riley
@ 2012-01-05 23:59                                                                                                               ` Juanma Barranquero
  2012-01-06  7:10                                                                                                               ` Eli Zaretskii
  2012-01-07  2:03                                                                                                               ` Stephen J. Turnbull
  2 siblings, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-05 23:59 UTC (permalink / raw)
  To: emacs-devel

On Fri, Jan 6, 2012 at 00:55, Richard Riley <rileyrg@gmail.com> wrote:

> Silly word play. It's a required component for Emacs in the context of
> this discussion.

No, it's not. Some people are arguing that it should be, and some are
treating it as if it already were, but it is not. There has not ever
been a single official release of Emacs including GnuTLS binaries.

The fact that Emacs can use it does not make it a component. libpng or
giflib are not Emacs components either.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:58                                                                                                         ` Richard Riley
@ 2012-01-06  0:05                                                                                                           ` Juanma Barranquero
  2012-01-06  7:11                                                                                                           ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  0:05 UTC (permalink / raw)
  To: emacs-devel

On Fri, Jan 6, 2012 at 00:58, Richard Riley <rileyrg@gmail.com> wrote:

> The distribution should have everything the user might *optionally* want.

That's just an opinion, and one I happen not to agree with.

> This kind of minimalist thinking doesnt exactly help new users
> adopt emacs when they have no clue about building or fetching/installing
> such components themsleves.

GnuTLS is not required to "adopt Emacs". I would say that, for a
Windows user, adding the image libraries would be more useful that
GnuTLS, because I bet most of them are not going to start using Emacs
to read e-mail or surf the web.

> If distributing binaries
> local to the emacs install helps people get going then why not?

For Windows users, enabling CUA mode by default will "help" them more.
But we don't do it.

But, as for "why not"... Why? Why us? Why cannot the people who is so
interested in doing it just set a side project to build an Emacs
installer, and be done with it?

> You can disable this. You're an advanced user.

Irrelevant.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:32                                                                                                       ` Juanma Barranquero
  2012-01-05 23:58                                                                                                         ` Richard Riley
@ 2012-01-06  0:09                                                                                                         ` Juanma Barranquero
  2012-01-06  1:05                                                                                                           ` chad
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  0:09 UTC (permalink / raw)
  To: chad; +Cc: emacs-devel

On Fri, Jan 6, 2012 at 00:32, Juanma Barranquero <lekktu@gmail.com> wrote:

> FreeOffice.

LibreOffice, I mean.

Steel Bank Common Lisp. InkScape. Wireshark. ActivePerl. Bazaar.
Dropbox. Apache. MySQL. GIMP...

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:38                                                                                                           ` Juanma Barranquero
  2012-01-05 23:55                                                                                                             ` Richard Riley
@ 2012-01-06  0:43                                                                                                             ` Ted Zlatanov
  2012-01-06  0:59                                                                                                               ` Juanma Barranquero
  1 sibling, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-06  0:43 UTC (permalink / raw)
  To: emacs-devel

On Fri, 6 Jan 2012 00:38:41 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:
>> I meant Emacs, the software, not just its binary form.  Forget the
>> binaries; you and Lars are protesting a startup check that critical
>> packages like GnuTLS are not out of date.

JB> When you say that, you are not talking about gnutls.el, you are
JB> talking about the GnuTLS binary, so no, I cannot forget the binaries.
JB> That's the whole point of the discussion (at least, of the part of the
JB> discussion I'm involved in).

No, what I was proposing was a startup check that the "gnutls-critical"
package is up to date, meaning what the user has installed is the
latest on the GNU ELPA.  This does not mean the latest GnuTLS is
installed.

The "gnutls-critical" package may do more afterwards, depending on the
OS.  On W32 it may trigger a patch eventually.  At first it will just
display a warning, as Chad suggested.  On GNU/Linux I think it should
leave the package management alone but still display a warning.

>> I can't think of a better way to notify them that an Emacs component
>> is out of date and possibly compromising their security.

JB> The GnuTLS binary is *not* an "Emacs component".

I think the C glue to GnuTLS is an Emacs component, deeply embedded.
The point of an exploit is that it can cross the barrier between "not a
component/not our problem" and "oh crap."

On Fri, 6 Jan 2012 01:05:36 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> GnuTLS is not required to "adopt Emacs". I would say that, for a
JB> Windows user, adding the image libraries would be more useful that
JB> GnuTLS, because I bet most of them are not going to start using Emacs
JB> to read e-mail or surf the web.

I believe `open-network-stream' can use GnuTLS for HTTPS connections,
which matters for a lot of cases, e.g. package.el.  I agree about the
image libraries, though, they should also be included in an installer.

JB> But, as for "why not"... Why? Why us? Why cannot the people who is so
JB> interested in doing it just set a side project to build an Emacs
JB> installer, and be done with it?

I need the "gnutls-critical" startup check or some other way to tell the
user their GnuTLS version is at risk *by default*.  This will be useful
on Mac OS X as well in some cases, as I mentioned.  That's all I need
from emacs-devel (so Stefan or Chong's approval, I guess); the rest of
the work will be on the GNU ELPA "gnutls-critical" package and a W32
installer, and does not need to involve anyone uninterested.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  0:43                                                                                                             ` Ted Zlatanov
@ 2012-01-06  0:59                                                                                                               ` Juanma Barranquero
  2012-01-06 14:08                                                                                                                 ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  0:59 UTC (permalink / raw)
  To: emacs-devel

2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:

> No, what I was proposing was a startup check that the "gnutls-critical"
> package is up to date, meaning what the user has installed is the
> latest on the GNU ELPA.

At the end of the "gnutls-critical" chain, the intention is, either to
update non-binaries (gnutls.c, gnutls.el), or binaries (the DLL). In
the first case, I don't know why do we need such a special mechanism
(security releases have been handled before, just by issuing a new
release or an updated tarball); in the second case, you already know
my objections, so I won't repeat them again.

> The "gnutls-critical" package may do more afterwards, depending on the
> OS.  On W32 it may trigger a patch eventually.  At first it will just
> display a warning, as Chad suggested.

And then, we're going to implement something similar for image
libraries, because they can also have security-related bugs. Aren't
we?

We could also make our own MinGW/MSYS distribution, for people that
builds their own Windows Emacs. We would automatically upgrade it in
case there's a security issue. And let's not forget binutils, and
texinfo. Yes, I'm being facetious. Or not, I'm not sure anymore.

> I think the C glue to GnuTLS is an Emacs component, deeply embedded.
> The point of an exploit is that it can cross the barrier between "not a
> component/not our problem" and "oh crap."

Lots of code in Emacs calls external tools (from grep to nslookup to
make). Anyone of them could turn into an "oh crap" moment. But we
don't feel the impulse to distribute grep and make sure it is up to
date.

> I believe `open-network-stream' can use GnuTLS for HTTPS connections,
> which matters for a lot of cases, e.g. package.el.

I disagree with "a lot of cases". There are a few Emacs components
that connect to the network, but it is perfectly possible (and, I
think, even common) not to need them on Windows.

> I agree about the image libraries, though, they should also be included in an installer.

As long as you say "an installer" and do not say "automatically
check", I'm fine.

> I need the "gnutls-critical" startup check or some other way to tell the
> user their GnuTLS version is at risk *by default*.

s/need/want/.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  0:09                                                                                                         ` Juanma Barranquero
@ 2012-01-06  1:05                                                                                                           ` chad
  2012-01-06  1:13                                                                                                             ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: chad @ 2012-01-06  1:05 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel


On Jan 5, 2012, at 4:09 PM, Juanma Barranquero wrote:

> On Fri, Jan 6, 2012 at 00:32, Juanma Barranquero <lekktu@gmail.com> wrote:
> 
> LibreOffice, I mean.
> 
> Steel Bank Common Lisp. InkScape. Wireshark. ActivePerl. Bazaar.
> Dropbox. Apache. MySQL. GIMP...

DropBox updates itself without telling you:

	How do I upgrade to the latest version of the Dropbox application?

	[...] Dropbox will silently update itself in the background.

LibreOffice has automatic updates:

	http://help.libreoffice.org/Common/Online_Update

Bazaar tells you to use your package manager (although not on Windows):

	Use your package manager to upgrade to the latest version.

I stopped looking there.

Most of those are typically (that is, for the typical user/administrator) checked and managed by the operating system's package manager, as far as I can tell. Sure, people can manage them by hand (I have and still do myself), but that's certainly not *typical*.  When I still lived inside of GNU/Linux, I used kernel distributions only long enough to configure and build my own, but I certainly don't expect that kind of behavior from the typical Windows, Mac OS X, or Ubuntu user.  I also don't think it should be the default.  As I understand it, you seem to be saying that it should.

To be clear: I'm asking you why you object to an easily-disabled system that checks for the existence of updates deemed critical by a human being, and warns the user if it finds them. I'm not talking about distributing binaries (although there certainly are people who are saying it would be convenient if someone did that, too).

*Chad






^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  1:05                                                                                                           ` chad
@ 2012-01-06  1:13                                                                                                             ` Juanma Barranquero
  2012-01-06  1:24                                                                                                               ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  1:13 UTC (permalink / raw)
  To: chad; +Cc: emacs-devel

On Fri, Jan 6, 2012 at 02:05, chad <yandros@gmail.com> wrote:

> DropBox updates itself without telling you:
>
>        How do I upgrade to the latest version of the Dropbox application?
>
>        [...] Dropbox will silently update itself in the background.

No. DropBox tells that, but it is false. This morning I had to
manually upgrade it. Apparently it auto upgrades just for very minor
changes, but not to pass from 1.1.X to 1.2.X. The same happens, for
example, with ESET Smart Security: it updates the engine for minor
changes, but when they switched from release 4 to release 5, it didn't
even warn me.

> LibreOffice has automatic updates:

Not enabled by default: "Online Update is a module that can be
selected or deselected to be installed. Choose the customized
installation in the Setup of LibreOffice."

> Bazaar tells you to use your package manager (although not on Windows):

I'm glad we agree.

> I stopped looking there.

Please, continue.

> To be clear: I'm asking you why you object to an easily-disabled system that checks for the existence of updates deemed critical by a human being

I don't object to that. I object to that being part of Emacs. By all
means, build an installer for GnuTLS and put all automatic checking
you want on it. Make it part of the Windows startup if you want. But
don't make Emacs connect to Internet every time it starts just to
check that yes, that GnuTLS that you are not really using for anything
at all is still safe to use (or ignore).

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  1:13                                                                                                             ` Juanma Barranquero
@ 2012-01-06  1:24                                                                                                               ` Óscar Fuentes
  2012-01-06  1:48                                                                                                                 ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-06  1:24 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

[snip]

Please note that notifying the user about security vulnerabilities and
critical fixes has nothing to do with the source/binary discussion. Even
on a source-only world, it is a nice (maybe the correct word nowadays
would be "required") service to users to proactively inform them.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  1:24                                                                                                               ` Óscar Fuentes
@ 2012-01-06  1:48                                                                                                                 ` Juanma Barranquero
  2012-01-06  2:37                                                                                                                   ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  1:48 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Fri, Jan 6, 2012 at 02:24, Óscar Fuentes <ofv@wanadoo.es> wrote:

> Please note that notifying the user about security vulnerabilities and
> critical fixes has nothing to do with the source/binary discussion.

No, but the source/binary discussion is being swept under the carpet
as if there were nothing to discuss and it was *evident* that we
should distribute the binaries. Perhaps you have noticed that I
disagree with that idea.

> Even
> on a source-only world, it is a nice (maybe the correct word nowadays
> would be "required") service to users to proactively inform them.

Yes. And I bet that in most source-only projects, like Emacs, the
usual way is to put a notice in the project web page, publish an
announcement in the relevant mailing lists and newsgroups, or send
people an e-mail if they are subscribed to e-mail notifications.

Which are perfectly fine ways to do it and won't get the tiniest
objection from me.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  1:48                                                                                                                 ` Juanma Barranquero
@ 2012-01-06  2:37                                                                                                                   ` Óscar Fuentes
  2012-01-06  3:08                                                                                                                     ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-06  2:37 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Fri, Jan 6, 2012 at 02:24, Óscar Fuentes <ofv@wanadoo.es> wrote:
>
>> Please note that notifying the user about security vulnerabilities and
>> critical fixes has nothing to do with the source/binary discussion.
>
> No, but the source/binary discussion is being swept under the carpet
> as if there were nothing to discuss and it was *evident* that we
> should distribute the binaries. Perhaps you have noticed that I
> disagree with that idea.

I have no objections to your disagreement towards this and your POV wrt
the Emacs project distributing binaries. Furthermore, if that's the
sentiment on the rest of the w32 emacs people and the project leaders,
I'll urge you to stop distributing MS Windows binaries. I'm pretty sure
that there will be no shortage of Emacs binaries for MS Windows.

>> Even
>> on a source-only world, it is a nice (maybe the correct word nowadays
>> would be "required") service to users to proactively inform them.
>
> Yes. And I bet that in most source-only projects, like Emacs, the
> usual way is to put a notice in the project web page, publish an
> announcement in the relevant mailing lists and newsgroups, or send
> people an e-mail if they are subscribed to e-mail notifications.

That's not proactive. I don't periodically visit the project the web
page of all sensitive software I use searching for critical updates, nor
subscribe to mailing lists, e-mail notifications (is there one for
Emacs?) nor read newsgroups. That's totally unrealistic as it would take
lots of time. Really, I can't see how you object to automatic checks for
critical updates. Even less can I understand how you object to that
feature in principle, not just as personal preference.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  2:37                                                                                                                   ` Óscar Fuentes
@ 2012-01-06  3:08                                                                                                                     ` Juanma Barranquero
  2012-01-06  3:56                                                                                                                       ` Óscar Fuentes
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  3:08 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Fri, Jan 6, 2012 at 03:37, Óscar Fuentes <ofv@wanadoo.es> wrote:

> Furthermore, if that's the
> sentiment on the rest of the w32 emacs people and the project leaders,
> I'll urge you to stop distributing MS Windows binaries. I'm pretty sure
> that there will be no shortage of Emacs binaries for MS Windows.

Oh, I'm not against distributing our binaries. Emphasis in "our".

> That's not proactive.

What's the proactive way to do it in a source-only project? Are you
suggesting that all projects do include some kind of run-time check? I
already gave a short list of some software in my computer that does
not take proactive action. I could add lots more, like git, mercurial,
MinGW, Take Command, Python, Evernote, etc. Some of them have a menu
option to check for updates, or installer programs with an update
option, but they don't do it automatically.

> Really, I can't see how you object to automatic checks for
> critical updates.

Because we don't have (or very rarely have) critical updates. Let
GnuTLS announce their critical updates any way they see fit.

> Even less can I understand how you object to that
> feature in principle, not just as personal preference.

It's a change from one model of development and distribution to
another one. I like the way Emacs is right now. Source. You compile
it, and have a binary that does not depend on some mythical,
externally maintained resource.

I don't like ELPA much, either, though I understand how can be useful.
But I'm distressed by the impulse to move things from Emacs to ELPA.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 20:06                                                                                                     ` Ted Zlatanov
@ 2012-01-06  3:15                                                                                                       ` Lars Magne Ingebrigtsen
  2012-01-06  3:37                                                                                                         ` chad
  0 siblings, 1 reply; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-06  3:15 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> The user doesn't know, usually, that there's been a critical GnuTLS
> release that affects them.  Unlike normal updates, ignoring this can
> actually compromise their security, not just corrupt or expose their
> data.

$ ssh gnu.org
Checking for updates to ssh...  please wait
Apparently somebody has made a brute-force attack feasible against
the encryption algorithm ssh was going to use against the remote server.
Download and install a new version of ssh?

> This is a crucial distinction.  So I want Emacs to notify the
> user their GnuTLS is out of date, or else something else should
> (e.g. the self-contained GnuTLS updater for W32 I proposed).

I don't really see that there's much of a difference between bugs in
libgnutls and in the Emacs binary proper.  If a major security hole was
discovered in Emacs, then presumably a new Emacs release would be made.
If a major libgnutls hole was discovered, then presumably someone would
zip up a new Windows release.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  3:15                                                                                                       ` Lars Magne Ingebrigtsen
@ 2012-01-06  3:37                                                                                                         ` chad
  0 siblings, 0 replies; 243+ messages in thread
From: chad @ 2012-01-06  3:37 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: emacs-devel


On Jan 5, 2012, at 7:15 PM, Lars Magne Ingebrigtsen wrote:
> If a major libgnutls hole was discovered, then presumably someone would
> zip up a new Windows release.

How would the users know to download it?

*Chad




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  3:08                                                                                                                     ` Juanma Barranquero
@ 2012-01-06  3:56                                                                                                                       ` Óscar Fuentes
  2012-01-06  4:11                                                                                                                         ` Juanma Barranquero
  2012-01-07  2:31                                                                                                                         ` Stephen J. Turnbull
  0 siblings, 2 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-06  3:56 UTC (permalink / raw)
  To: emacs-devel

Juanma Barranquero <lekktu@gmail.com> writes:

> On Fri, Jan 6, 2012 at 03:37, Óscar Fuentes <ofv@wanadoo.es> wrote:
>
>> Furthermore, if that's the
>> sentiment on the rest of the w32 emacs people and the project leaders,
>> I'll urge you to stop distributing MS Windows binaries. I'm pretty sure
>> that there will be no shortage of Emacs binaries for MS Windows.
>
> Oh, I'm not against distributing our binaries. Emphasis in "our".

Then I'm misunderstanding. IIRC you said, more or less: "we are a source
code shop and MS Windows is an exception because those users would have
a hard time getting an Emacs running on their machines". I fully
sympathize with the "we are a source code shop", but at the same time
I'll like to remark that the rest is no longer true.

>> That's not proactive.
>
> What's the proactive way to do it in a source-only project? Are you
> suggesting that all projects do include some kind of run-time check?

We are on emacs-devel, not on all-projects-devel.

But now that you ask, yes, I'll appreciate that all projects would
include a system for notifying me that its software is putting my
machine at risk.

> I already gave a short list of some software in my computer that does
> not take proactive action. I could add lots more, like git, mercurial,
> MinGW, Take Command, Python, Evernote, etc. Some of them have a menu
> option to check for updates, or installer programs with an update
> option, but they don't do it automatically.

The key here is to determine what the Right Thing is. Have you
considered the possibility that some or most of those projects doesn't
have the automatic notification not because they think it is a bad idea,
but because some other reason?

>> Really, I can't see how you object to automatic checks for
>> critical updates.
>
> Because we don't have (or very rarely have) critical updates.

That's like saying that smoke detectors are unneeded because fires
rarely occur, if at all, on most housings.

> Let GnuTLS announce their critical updates any way they see fit.
>
>> Even less can I understand how you object to that
>> feature in principle, not just as personal preference.
>
> It's a change from one model of development and distribution to
> another one. I like the way Emacs is right now. Source. You compile
> it, and have a binary that does not depend on some mythical,
> externally maintained resource.

You are sidetracking from my question by going back to the GnuTLS
dll. I'm genuinely interested in your reasoning for rejecting an
automatic notification system built into Emacs. Something you can use to
warn users that a problem was found that would pose a risk to their data
(a security breach, data corruption, whatever). That's independent from
how the user obtained its binary package.

[snip]




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  3:56                                                                                                                       ` Óscar Fuentes
@ 2012-01-06  4:11                                                                                                                         ` Juanma Barranquero
  2012-01-06  5:49                                                                                                                           ` chad
  2012-01-07  2:31                                                                                                                         ` Stephen J. Turnbull
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06  4:11 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

On Fri, Jan 6, 2012 at 04:56, Óscar Fuentes <ofv@wanadoo.es> wrote:

> Then I'm misunderstanding. IIRC you said, more or less: "we are a source
> code shop and MS Windows is an exception because those users would have
> a hard time getting an Emacs running on their machines". I fully
> sympathize with the "we are a source code shop", but at the same time
> I'll like to remark that the rest is no longer true.

I don't know what causes your misunderstanding. I would prefer not to
distribute binaries, can accept distributing our own because they are
useful, dislike the idea of distributing other project's binaries
unless they are *strictly* required to run our Emacs binary.

> We are on emacs-devel, not on all-projects-devel.

You were the one talking about "source-only worlds".

> But now that you ask, yes, I'll appreciate that all projects would
> include a system for notifying me that its software is putting my
> machine at risk.

If GnuTLS has a security issue, I wouldn't say that Emacs puts my
machine at risk. GnuTLS does.

> The key here is to determine what the Right Thing is. Have you
> considered the possibility that some or most of those projects doesn't
> have the automatic notification not because they think it is a bad idea,
> but because some other reason?

Why the second guessing? I was told that almost all software packages
today did automatic upgrading, and I mentioned some that do not. I
don't know why they don't offer it, and neither do you.

> That's like saying that smoke detectors are unneeded because fires
> rarely occur, if at all, on most housings.

Nonsense. It's like saying that a smoke detector is not needed in this
particular house because it is built with fireproof materials and the
likelihood of a fire is almost zero.

Do you have an smoke detector in your home? I don't. I don't have a
fire extinguisher, either.

> You are sidetracking from my question by going back to the GnuTLS dll.

No, I'm not.

> I'm genuinely interested in your reasoning for rejecting an
> automatic notification system built into Emacs.

That's what I've answered.

> Something you can use to
> warn users that a problem was found that would pose a risk to their data
> (a security breach, data corruption, whatever). That's independent from
> how the user obtained its binary package.

There are zillions of ways their data could be lost. Are you going to
add a program to Emacs to test the hard drive for bad spots? That kind
of checks (updates, I mean, not the disk test tool ;-) instill false
security. It's like the people who has an AV installed and thinks that
it is protected because the AV software has not detected anything.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  4:11                                                                                                                         ` Juanma Barranquero
@ 2012-01-06  5:49                                                                                                                           ` chad
  2012-01-06  7:12                                                                                                                             ` Eli Zaretskii
  2012-01-06 13:39                                                                                                                             ` Juanma Barranquero
  0 siblings, 2 replies; 243+ messages in thread
From: chad @ 2012-01-06  5:49 UTC (permalink / raw)
  To: Emacs developers

[-- Attachment #1: Type: text/plain, Size: 1299 bytes --]

On Jan 5, 2012, at 8:11 PM, Juanma Barranquero wrote:
> 
> Why the second guessing? I was told that almost all software packages
> today did automatic upgrading, and I mentioned some that do not. I
> don't know why they don't offer it, and neither do you.

I suspect the answer is ``most of them do, either built in to the app, via a default package system, and/or via the operating system''.  You

> Do you have an smoke detector in your home? I don't. I don't have a
> fire extinguisher, either.

I do, as does basically everyone I know.  They're required in various ways here in the US. Perhaps we're ruining it for the rest of you. :)

Regardless, you have made it clear that you object to oranges because they might someday turn into apples.  To be explicit, here is the `sweeping under the carpet' to which you have repeatedly voiced objection:

On Jan 4, 2012, at 3:16 PM, Ted Zlatanov wrote:
> I really like your suggestion.  It lets us write the DLL deployment code
> later or never, depending on what users want, but at first we will only
> do the acceptable minimum.  It can also work with a standalone GnuTLS
> W32 installer, if we ever decide that's a better approach.


Apparently `later or never' is too much like `evident that we should' for you.

*Chad



[-- Attachment #2: Type: text/html, Size: 1832 bytes --]

^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:55                                                                                                             ` Richard Riley
  2012-01-05 23:59                                                                                                               ` Juanma Barranquero
@ 2012-01-06  7:10                                                                                                               ` Eli Zaretskii
  2012-01-07  2:03                                                                                                               ` Stephen J. Turnbull
  2 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-06  7:10 UTC (permalink / raw)
  To: emacs-devel

> From: Richard Riley <rileyrg@gmail.com>
> Date: Fri, 06 Jan 2012 00:55:46 +0100
> 
> >> I can't think of a better way to
> >> notify them that an Emacs component is out of date and possibly
> >> compromising their security.
> >
> > The GnuTLS binary is *not* an "Emacs component".
> 
> Silly word play. It's a required component for Emacs in the context of
> this discussion.

As are grep, find, ls, ispell/aspell, and many others.

That way lies madness.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:58                                                                                                         ` Richard Riley
  2012-01-06  0:05                                                                                                           ` Juanma Barranquero
@ 2012-01-06  7:11                                                                                                           ` Eli Zaretskii
  1 sibling, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-06  7:11 UTC (permalink / raw)
  To: emacs-devel

> From: Richard Riley <rileyrg@gmail.com>
> Date: Fri, 06 Jan 2012 00:58:23 +0100
> 
> The distribution should have everything the user might *optionally*
> want.

You are either not serious or didn't think about the consequences of
this approach.  On any system that is not GNU/Linux, this will require
us to package half of the GNU project into the binary distro.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  5:49                                                                                                                           ` chad
@ 2012-01-06  7:12                                                                                                                             ` Eli Zaretskii
  2012-01-06 12:35                                                                                                                               ` Juanma Barranquero
  2012-01-06 13:39                                                                                                                             ` Juanma Barranquero
  1 sibling, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-06  7:12 UTC (permalink / raw)
  To: chad; +Cc: emacs-devel

> From: chad <yandros@gmail.com>
> Date: Thu, 5 Jan 2012 21:49:38 -0800
> 
> > Do you have an smoke detector in your home? I don't. I don't have a
> > fire extinguisher, either.
> 
> I do, as does basically everyone I know.  They're required in various ways here in the US. Perhaps we're ruining it for the rest of you. :)

Then I suggest that the check for updates be turned on by default for
US locales.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  7:12                                                                                                                             ` Eli Zaretskii
@ 2012-01-06 12:35                                                                                                                               ` Juanma Barranquero
  2012-01-07  2:34                                                                                                                                 ` Stephen J. Turnbull
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06 12:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: chad, emacs-devel

On Fri, Jan 6, 2012 at 08:12, Eli Zaretskii <eliz@gnu.org> wrote:

> Then I suggest that the check for updates be turned on by default for
> US locales.

+1 :-)

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  5:49                                                                                                                           ` chad
  2012-01-06  7:12                                                                                                                             ` Eli Zaretskii
@ 2012-01-06 13:39                                                                                                                             ` Juanma Barranquero
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06 13:39 UTC (permalink / raw)
  To: chad; +Cc: Emacs developers

On Fri, Jan 6, 2012 at 06:49, chad <yandros@gmail.com> wrote:

> I suspect the answer is ``most of them do, either built in to the app, via a
> default package system, and/or via the operating system''.

Please tell me of a software project whose security issues would be
more far reaching that Apache. And still, not a single Apache I've
ever installed has tried to automatically check for updates.

> Regardless, you have made it clear that you object to oranges because they
> might someday turn into apples.

No. I object to oranges because, last time I checked, we were in the
business of selling seafood, not vegetables and fruit.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  0:59                                                                                                               ` Juanma Barranquero
@ 2012-01-06 14:08                                                                                                                 ` Ted Zlatanov
  2012-01-06 14:35                                                                                                                   ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-06 14:08 UTC (permalink / raw)
  To: emacs-devel

On Fri, 6 Jan 2012 01:59:32 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:
>> No, what I was proposing was a startup check that the "gnutls-critical"
>> package is up to date, meaning what the user has installed is the
>> latest on the GNU ELPA.

JB> At the end of the "gnutls-critical" chain, the intention is, either to
JB> update non-binaries (gnutls.c, gnutls.el), or binaries (the DLL).

The intention is to do whatever is appropriate on the platform to let
the user know they need to update and make the update easy.

>> The "gnutls-critical" package may do more afterwards, depending on the
>> OS.  On W32 it may trigger a patch eventually.  At first it will just
>> display a warning, as Chad suggested.

JB> And then, we're going to implement something similar for image
JB> libraries, because they can also have security-related bugs. Aren't
JB> we?

I'm not.  The risk is not worth the effort with image libraries.  The
risk outweighs the effort with GnuTLS, in my opinion.

>> I think the C glue to GnuTLS is an Emacs component, deeply embedded.
>> The point of an exploit is that it can cross the barrier between "not a
>> component/not our problem" and "oh crap."

JB> Lots of code in Emacs calls external tools (from grep to nslookup to
JB> make). Anyone of them could turn into an "oh crap" moment. But we
JB> don't feel the impulse to distribute grep and make sure it is up to
JB> date.

You're ignoring the "deeply embedded" part.  Obviously external
utilities are not able to compromise Emacs like internal C glue.  Can
you stick to comparable components like the libxml2 glue?

>> I believe `open-network-stream' can use GnuTLS for HTTPS connections,
>> which matters for a lot of cases, e.g. package.el.

JB> I disagree with "a lot of cases". There are a few Emacs components
JB> that connect to the network, but it is perfectly possible (and, I
JB> think, even common) not to need them on Windows.

If you don't think the package manager is important to our users, you've
got your head stuck in the sand.

>> I need the "gnutls-critical" startup check or some other way to tell the
>> user their GnuTLS version is at risk *by default*.

JB> s/need/want/.

I appreciate your attention to detail, but "need" is the verb I meant to
write there.

On Fri, 06 Jan 2012 04:15:28 +0100 Lars Magne Ingebrigtsen <larsi@gnus.org> wrote: 

LMI> Ted Zlatanov <tzz@lifelogs.com> writes:

>> The user doesn't know, usually, that there's been a critical GnuTLS
>> release that affects them.  Unlike normal updates, ignoring this can
>> actually compromise their security, not just corrupt or expose their
>> data.

LMI> $ ssh gnu.org
LMI> Checking for updates to ssh...  please wait
LMI> Apparently somebody has made a brute-force attack feasible against
LMI> the encryption algorithm ssh was going to use against the remote server.
LMI> Download and install a new version of ssh?

Are we talking GNU/Linux, where the package manager will handle this
update?  Or, say, Putty on W32, where such an auto-update makes more
sense (I don't know if Putty updates itself but that's not the point)?

SSH clients are not extensible layout engines with embedded interpreters
and flexible package managers.  As I keep saying, compare Emacs to
Firefox and Chrome, not to `vim' or `ssh' and `grep'.  It hasn't been
just an editor in a long while.  Eclipse is another good comparison
point.

But you raise an interesting point: even without client updates, the
server admin may disable the algorithm (manually or through a
sshd_config update), and the SSH protocol will try another algorithm as
configured on both sides.  And what if there's no algorithm they can
agree upon?  The connection fails mysteriously.  So yes, it matters to
the user sometimes that an algorithm has been compromised.

>> This is a crucial distinction.  So I want Emacs to notify the
>> user their GnuTLS is out of date, or else something else should
>> (e.g. the self-contained GnuTLS updater for W32 I proposed).

LMI> I don't really see that there's much of a difference between bugs in
LMI> libgnutls and in the Emacs binary proper.  If a major security hole was
LMI> discovered in Emacs, then presumably a new Emacs release would be made.
LMI> If a major libgnutls hole was discovered, then presumably someone would
LMI> zip up a new Windows release.

I just want a way to tell the users about it.  I don't care how we
deliver the update, if at all.  That should depend on the OS and as I
said should not be done by emacs-devel.

On Fri, 6 Jan 2012 05:11:47 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> If GnuTLS has a security issue, I wouldn't say that Emacs puts my
JB> machine at risk. GnuTLS does.

That's oversimplifying the problem, but yes, this is the fundamental
question.  I think, considering how Emacs is used and positioned as a
software package, we should take responsibility to notify the user on
the W32 platform and maybe on Mac OS X.  Probably not on GNU/Linux,
since we can assume on that platform the package manager's policies are
what the user wants, even if those policies put the user at risk.

This is my personal opinion.  You and Lars are clearly against that
approach.  I won't make any changes to Emacs in this direction until
either you're convinced otherwise, or the maintainers make a decision.

JB> Are you going to add a program to Emacs to test the hard drive for
JB> bad spots? That kind of checks (updates, I mean, not the disk test
JB> tool ;-) instill false security.

I was planning on that next.  How did you know?

JB> It's like the people who has an AV installed and thinks that it is
JB> protected because the AV software has not detected anything.

No, it's not like that at all.  Intrusion detection and security
advisories are completely different things.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 14:08                                                                                                                 ` Ted Zlatanov
@ 2012-01-06 14:35                                                                                                                   ` Juanma Barranquero
  2012-01-06 15:26                                                                                                                     ` Ted Zlatanov
  2012-01-07 21:03                                                                                                                     ` Reiner Steib
  0 siblings, 2 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06 14:35 UTC (permalink / raw)
  To: emacs-devel

2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:

> The intention is to do whatever is appropriate on the platform to let
> the user know they need to update and make the update easy.

There's no single, general definition of "appropriate".

> I'm not.  The risk is not worth the effort with image libraries.

I don't understand why. Buffer overruns exploited through
carefully-crafted images have been used before. I would fear that (as
a vector for malware) much more than someone eavesdropping my
communications.

> You're ignoring the "deeply embedded" part.  Obviously external
> utilities are not able to compromise Emacs like internal C glue.  Can
> you stick to comparable components like the libxml2 glue?

See the image libraries comment above.

> If you don't think the package manager is important to our users, you've
> got your head stuck in the sand.

I don't know about "our" users, but certainly is unimportant to many
Emacs users (starting with myself).

And, please, let's not turn this discussion into a description of the
relative positions of our respective heads or other body parts.

> I appreciate your attention to detail, but "need" is the verb I meant to
> write there.

I don't doubt it. My correction turned what you said into what I
believe is real.

> SSH clients are not extensible layout engines with embedded interpreters
> and flexible package managers.  As I keep saying, compare Emacs to
> Firefox and Chrome, not to `vim' or `ssh' and `grep'.  It hasn't been
> just an editor in a long while.  Eclipse is another good comparison
> point.

Compare it to Apache, which can be infinitely extended via external
modules and it's mission-critical for so many business.

> That's oversimplifying the problem, but yes, this is the fundamental
> question.

You think it's an oversimplification, I think it's approaching it in a
realistic way.

> I was planning on that next.  How did you know?

With the head under the sand I had plenty of time to think, and I
started having premonitions.

> No, it's not like that at all.  Intrusion detection and security
> advisories are completely different things.

I thought it was evident I was not comparing situations, but
inadequate feelings of security.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 14:35                                                                                                                   ` Juanma Barranquero
@ 2012-01-06 15:26                                                                                                                     ` Ted Zlatanov
  2012-01-06 15:47                                                                                                                       ` Juanma Barranquero
  2012-01-07 21:03                                                                                                                     ` Reiner Steib
  1 sibling, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-06 15:26 UTC (permalink / raw)
  To: emacs-devel

On Fri, 6 Jan 2012 15:35:44 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> 2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:

>> I'm not.  The risk is not worth the effort with image libraries.

JB> I don't understand why. Buffer overruns exploited through
JB> carefully-crafted images have been used before. I would fear that (as
JB> a vector for malware) much more than someone eavesdropping my
JB> communications.

I don't think those are as risky, but even if I did it doesn't really
support your point.

>> SSH clients are not extensible layout engines with embedded interpreters
>> and flexible package managers.  As I keep saying, compare Emacs to
>> Firefox and Chrome, not to `vim' or `ssh' and `grep'.  It hasn't been
>> just an editor in a long while.  Eclipse is another good comparison
>> point.

JB> Compare it to Apache, which can be infinitely extended via external
JB> modules and it's mission-critical for so many business.

That's a very tough comparison.  I'm listing "extensible layout engines
with embedded interpreters and flexible package managers" which Apache
has never been, never mind that it's not interactive with the user since
it's a daemon.

>> No, it's not like that at all.  Intrusion detection and security
>> advisories are completely different things.

JB> I thought it was evident I was not comparing situations, but
JB> inadequate feelings of security.

Yes, I understood your point.  While you're right that AV software can
provide a false feeling of security, security advisories do not provide
a feeling of security at all.  They let you know when your security is
at risk.  None of my proposal aims to make users feel secure, but rather
to tell them when they are not.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 15:26                                                                                                                     ` Ted Zlatanov
@ 2012-01-06 15:47                                                                                                                       ` Juanma Barranquero
  2012-01-06 16:50                                                                                                                         ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-06 15:47 UTC (permalink / raw)
  To: emacs-devel

2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:

> I don't think those are as risky, but even if I did it doesn't really
> support your point.

It does support my point that if we do it for GnuTLS, we should do it
for other libraries. Of course, I believe we shouldn't.

> That's a very tough comparison.  I'm listing "extensible layout engines
> with embedded interpreters and flexible package managers" which Apache
> has never been, never mind that it's not interactive with the user since
> it's a daemon.

It could still check and write a log entry for the administrator. Or
it could have a module, accessible only to some authenticated user,
that listed recommended upgrades. It doesn't.

And it's not necessarily a daemon. You can start it in batch mode to
check things. It could have an option to check upgrades in that case.
It doesn't, either.

> None of my proposal aims to make users feel secure, but rather
> to tell them when they are not.

And, as soon as they have upgraded, the users feel secure again.
Particularly on Windows, where most people is not very
security-conscious.

Anyway, I think the dead equine has been beaten to a pulp and turned
into fertilizer. We don't really advance anything rehashing the same
arguments again and again, IMHO. YMMV.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 15:47                                                                                                                       ` Juanma Barranquero
@ 2012-01-06 16:50                                                                                                                         ` Ted Zlatanov
  2012-01-07 10:24                                                                                                                           ` Chong Yidong
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-06 16:50 UTC (permalink / raw)
  To: emacs-devel

On Fri, 6 Jan 2012 16:47:56 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> Anyway, I think the dead equine has been beaten to a pulp and turned
JB> into fertilizer. We don't really advance anything rehashing the same
JB> arguments again and again, IMHO. YMMV.

I appreciate your opinions and hope we can find some middle ground that
will satisfy everyone's expectations.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 14:50                                                                                               ` Juanma Barranquero
  2012-01-05 16:19                                                                                                 ` chad
@ 2012-01-07  1:23                                                                                                 ` Stephen J. Turnbull
  1 sibling, 0 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-07  1:23 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: emacs-devel

Juanma Barranquero writes:
 > 2012/1/5 Ted Zlatanov <tzz@lifelogs.com>:
 > 
 > > You're right.  Do you agree with the general idea of checking for
 > > critical updates on startup, though?
 > 
 > FWIW, I don't. That is a step (tiny, I know) in the "software as a
 > service" direction.

No, it's not.  Providing software *as* a service is a different issue
from providing software *with* a service.

There is an issue of "ET phoning home" here, which is not an easy one
for free software (at least as I understand Richard's positions on
these things).  But please don't call it "software as a service,"
which is a business model based on decreasing the range of choices
and information available to the user; Ted is suggesting increasing
both, while decreasing certain costs to some users at relatively low
(but not insignificant!) cost to the Emacs project.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 20:30                                                                                                   ` Juanma Barranquero
  2012-01-05 23:14                                                                                                     ` chad
@ 2012-01-07  1:36                                                                                                     ` Stephen J. Turnbull
  2012-01-07  1:46                                                                                                       ` Juanma Barranquero
  1 sibling, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-07  1:36 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: chad, emacs-devel

Juanma Barranquero writes:

 > Last I checked, Emacs wasn't yet an operating system.

Comparing kinds of software here is bogus.  The question is "what do
users want?"  Obviously, there is a vocal faction (and I believe it's
large) of Emacs users who don't like processes running on their hosts
that they didn't explicitly start, and especially not networking
processes.  But there are also an awful lot of people who would
appreciate this service, I'm sure.

I think is it quite reasonable to provide the service, default the
automatic check OFF in the sources that the Emacs project publishes,
and let redistributors make their own choices.

However, there are alternative ways to provide notification services,
such as providing an RSS feed for the update page, and making that
easy to access manually (eg, from the Help or File menus).




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  1:36                                                                                                     ` Stephen J. Turnbull
@ 2012-01-07  1:46                                                                                                       ` Juanma Barranquero
  2012-01-07  5:07                                                                                                         ` Stephen J. Turnbull
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-07  1:46 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: chad, emacs-devel

On Sat, Jan 7, 2012 at 02:36, Stephen J. Turnbull <stephen@xemacs.org> wrote:

> Comparing kinds of software here is bogus.

It wasn't me who proposed comparing software.

> The question is "what do users want?"

I think that's a strange metric. Users might want all kind of things
that we wouldn't want to offer, because of lack of resources, project
policies, etc. I think the question is "What can we offer (and want to
offer) while maximizing usefulness to the users?"

> I think is it quite reasonable to provide the service, default the
> automatic check OFF in the sources that the Emacs project publishes,
> and let redistributors make their own choices.

In this scenario, if the redistributor enables checking for GnuTLS
updates, who will distribute the DLL? The GNU project, or the
redistributor? If the latter, I'm OK with this proposal (the OFF part
is important, of course).

> However, there are alternative ways to provide notification services,
> such as providing an RSS feed for the update page, and making that
> easy to access manually (eg, from the Help or File menus).

Right.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-05 23:55                                                                                                             ` Richard Riley
  2012-01-05 23:59                                                                                                               ` Juanma Barranquero
  2012-01-06  7:10                                                                                                               ` Eli Zaretskii
@ 2012-01-07  2:03                                                                                                               ` Stephen J. Turnbull
  2012-01-07  5:40                                                                                                                 ` Richard Riley
  2 siblings, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-07  2:03 UTC (permalink / raw)
  To: emacs-devel

Richard Riley writes:
 > Juanma Barranquero <lekktu@gmail.com> writes:

 > > The GnuTLS binary is *not* an "Emacs component".
 > 
 > Silly word play.

Not at all.  It's an admirably precise statement of Juanma's opinion,
and it corresponds to what I believe to be the project's policy on
such things.

 > It's a required component for Emacs in the context of this
 > discussion.

Of course it's not.  Nothing related to Windows can be required of
Emacs, only permitted given the needed volunteers.

Even if a similar practice were a good idea for GNU/Linux systems, it
would still be the project's choice whether to consider such a DLL a
"component of Emacs" or not.  The former means the project accepts
responsibility for it (in some "moral" sense even though the license
disclaims all legal responsibility), the latter means it's delivered
"as is" and defects are the user's problem entirely.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06  3:56                                                                                                                       ` Óscar Fuentes
  2012-01-06  4:11                                                                                                                         ` Juanma Barranquero
@ 2012-01-07  2:31                                                                                                                         ` Stephen J. Turnbull
  2012-01-07  3:37                                                                                                                           ` Óscar Fuentes
  2012-01-07  9:30                                                                                                                           ` Juanma Barranquero
  1 sibling, 2 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-07  2:31 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes writes:

 > But now that you ask, yes, I'll appreciate that all projects would
 > include a system for notifying me that its software is putting my
 > machine at risk.

Óscar, I'll tell you right now: all of the software on all of your
machines is putting your systems at risk.  If those systems are
connected to the Internet (including by "sneakernet"), that risk is
nonnegligible.  You know that.

What one[1] really wants is something like "I'll appreciate that all
projects will inform me that features of their software that I use has
a known and relatively high security risk."  But identifying features
that you use is impossible; at best the software can determine what
features you have used in the past.  The software also cannot
determine what you mean by "relatively high"; it can only use some
"objective" criterion of exploitability, which might or might not
matter to you.  The bar has to be higher than zero (or you'd just add
my first paragraph to the startup message, no need to check), so some
users (and I gather you are a member of that group) will not get as
many warnings as they like.  But others will get too many, and shut
off a system that they would find beneficial if the bar were set higher.

 > You are sidetracking from my question by going back to the GnuTLS
 > dll. I'm genuinely interested in your reasoning for rejecting an
 > automatic notification system built into Emacs.

Did he reject such a system, or simply insist that it not be turned on
by default?  I don't see how he can reject the system itself, if
somebody else volunteers to create and maintain it.  Rejection is
different from what he actually said, which is that he thinks those
volunteers would be doing a better service for Emacs by developing
Emacs instead of trying to keep up with the security details (which
are normally not public, as you know) of an independent project.

 > Something you can use to warn users that a problem was found that
 > would pose a risk to their data (a security breach, data
 > corruption, whatever).

Something includes "email", "website", "RSS feed", etc; you just want
to feed that information to all users, including many who don't want
it, and some who believe in turning off all services that they don't
need, and won't approve of having Emacs turn it on for them by default.


Footnotes: 
[1]  Cf. larsi's infinitely extensible example of why he doesn't like
checks at startup.  Maybe you would be happy to see that, but I doubt
very many people would.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 12:35                                                                                                                               ` Juanma Barranquero
@ 2012-01-07  2:34                                                                                                                                 ` Stephen J. Turnbull
  0 siblings, 0 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-07  2:34 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: Eli Zaretskii, chad, emacs-devel

Juanma Barranquero writes:
 > On Fri, Jan 6, 2012 at 08:12, Eli Zaretskii <eliz@gnu.org> wrote:
 > 
 > > Then I suggest that the check for updates be turned on by default for
 > > US locales.
 > 
 > +1 :-)

Please, no.  That will make the Tea Partyers attack Emacs.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  2:31                                                                                                                         ` Stephen J. Turnbull
@ 2012-01-07  3:37                                                                                                                           ` Óscar Fuentes
  2012-01-07  9:30                                                                                                                           ` Juanma Barranquero
  1 sibling, 0 replies; 243+ messages in thread
From: Óscar Fuentes @ 2012-01-07  3:37 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> Óscar, I'll tell you right now: all of the software on all of your
> machines is putting your systems at risk.

Yes, and we are all gonna die, but somehow find more interesting a
diagnostic of brain cancer than the statistics about life expectancy.

Please excuse me for not commenting on the rest of your post, but I've
already devoted too much energy to this discussion and it ceased to be
productive since almost the beginning.

[snip]



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  1:46                                                                                                       ` Juanma Barranquero
@ 2012-01-07  5:07                                                                                                         ` Stephen J. Turnbull
  0 siblings, 0 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-07  5:07 UTC (permalink / raw)
  To: Juanma Barranquero; +Cc: chad, emacs-devel

Juanma Barranquero writes:

 > In this scenario, if the redistributor enables checking for GnuTLS
 > updates, who will distribute the DLL? The GNU project, or the
 > redistributor? If the latter, I'm OK with this proposal (the OFF part
 > is important, of course).

The latter, of course.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  2:03                                                                                                               ` Stephen J. Turnbull
@ 2012-01-07  5:40                                                                                                                 ` Richard Riley
  2012-01-07 13:35                                                                                                                   ` Ted Zlatanov
  2012-01-08  7:40                                                                                                                   ` GnuTLS for W32 Stephen J. Turnbull
  0 siblings, 2 replies; 243+ messages in thread
From: Richard Riley @ 2012-01-07  5:40 UTC (permalink / raw)
  To: emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> writes:

> Richard Riley writes:
>  > Juanma Barranquero <lekktu@gmail.com> writes:
>
>  > > The GnuTLS binary is *not* an "Emacs component".
>  > 
>  > Silly word play.
>
> Not at all.  It's an admirably precise statement of Juanma's opinion,
> and it corresponds to what I believe to be the project's policy on
> such things.

It is word play when everyone knows its not an emacs developed
component. The whole point is whether to ship this external
components. Had you not snipped, my point would clearer.

Ted said:

,----
| > I can't think of a better way to
| > notify them that an Emacs component is out of date and possibly
| > compromising their security.
`----

and the reply was

,----
| The GnuTLS binary is *not* an "Emacs component".
`----

It was quite clear in the context what was meant by "emacs component" :
a component which contributes to a working and complete emacs
installation.


>
>  > It's a required component for Emacs in the context of this
>  > discussion.
>
> Of course it's not.  Nothing related to Windows can be required of
> Emacs, only permitted given the needed volunteers.
>

More word play. Sorry. Clearly no one thinks its an emacs component per
se : but IS a component required by emacs on windows for certain subsets
of emacs users. Its why this thread is taking place. Its not unique to
emacs to have to or want to ship a support 3rd party element in order to
facilitate installation. The location etc has been covered elsewhere.

I dont want to bicker and be petty but felt Ted was getting a bit of a
hard time for merely wanting to make things better for the end user and,
more importantly, the new adopter.





^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  2:31                                                                                                                         ` Stephen J. Turnbull
  2012-01-07  3:37                                                                                                                           ` Óscar Fuentes
@ 2012-01-07  9:30                                                                                                                           ` Juanma Barranquero
  2012-01-07 13:37                                                                                                                             ` Ted Zlatanov
  1 sibling, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-07  9:30 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Óscar Fuentes, emacs-devel

On Sat, Jan 7, 2012 at 03:31, Stephen J. Turnbull <stephen@xemacs.org> wrote:

> Did he reject such a system, or simply insist that it not be turned on
> by default?  I don't see how he can reject the system itself, if
> somebody else volunteers to create and maintain it.  Rejection is
> different from what he actually said, which is that he thinks those
> volunteers would be doing a better service for Emacs by developing
> Emacs instead of trying to keep up with the security details (which
> are normally not public, as you know) of an independent project.

Right. I don't reject adding such a system, with a note in NEWS
saying: "if you want automatic warning of updates, customize the
variable `emacs-check-for-updates'"- However, I do fear that, once the
system is in place, for 24.2 or 25.1 we will heard people say that the
default should be t.

(I'm leaving aside the issue of distributing binaries.)

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 16:50                                                                                                                         ` Ted Zlatanov
@ 2012-01-07 10:24                                                                                                                           ` Chong Yidong
  2012-01-07 13:14                                                                                                                             ` Juanma Barranquero
  2012-01-07 13:28                                                                                                                             ` Ted Zlatanov
  0 siblings, 2 replies; 243+ messages in thread
From: Chong Yidong @ 2012-01-07 10:24 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Fri, 6 Jan 2012 16:47:56 +0100 Juanma Barranquero <lekktu@gmail.com> wrote:
>
> JB> Anyway, I think the dead equine has been beaten to a pulp and turned
> JB> into fertilizer. We don't really advance anything rehashing the same
> JB> arguments again and again, IMHO. YMMV.
>
> I appreciate your opinions and hope we can find some middle ground that
> will satisfy everyone's expectations.

Here are my thoughts:

- First of all, any change involving distributing GnuTLS with Emacs
  should be post-24.1.

- Phoning home on startup by default is out of the question.  There are
  lots of users with the "open Emacs many times" usage pattern, even
  though that usage pattern is discouraged.  Accessing the network for
  each startup would be unreasonable, quite apart from the privacy
  concerns (GNU knows each time you launch Emacs!)

- I am open to improvements to package.el to implement _periodic_ update
  checking, and improvements to check for updates in M-x list-packages.
  It is probably not too difficult to add some infrastructure to
  highlight "strongly recommended updates" in the Package Menu.

- I agree with Lars' point that

> I don't really see that there's much of a difference between bugs in
> libgnutls and in the Emacs binary proper.  If a major security hole was
> discovered in Emacs, then presumably a new Emacs release would be made.
> If a major libgnutls hole was discovered, then presumably someone would
> zip up a new Windows release.

  If a really serious security flaw is found in GnuPG, and we are
  distributing GnuPG with Emacs, we should make an Emacs security
  release, exactly as though it was a security flaw in Emacs itself.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07 10:24                                                                                                                           ` Chong Yidong
@ 2012-01-07 13:14                                                                                                                             ` Juanma Barranquero
  2012-01-07 13:28                                                                                                                             ` Ted Zlatanov
  1 sibling, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-07 13:14 UTC (permalink / raw)
  To: Chong Yidong; +Cc: emacs-devel

On Sat, Jan 7, 2012 at 11:24, Chong Yidong <cyd@gnu.org> wrote:

> - First of all, any change involving distributing GnuTLS with Emacs
>  should be post-24.1.
>
> - Phoning home on startup by default is out of the question.  [...]
>
> - I am open to improvements to package.el to implement _periodic_ update
>  checking, [...]

I 100% agree with all the points above.

>  If a really serious security flaw is found in GnuPG, and we are
>  distributing GnuPG with Emacs, we should make an Emacs security
>  release, exactly as though it was a security flaw in Emacs itself.

I think that's clear. But IMO, in the case we are discussing, we
should not distribute the GnuTLS DLL, just as we don't distribute
libpng or libxml2. If we make it available through ELPA (which I don't
like, but like much more than the alternative), then of course
security releases of the relevant package would be available through
ELPA too.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07 10:24                                                                                                                           ` Chong Yidong
  2012-01-07 13:14                                                                                                                             ` Juanma Barranquero
@ 2012-01-07 13:28                                                                                                                             ` Ted Zlatanov
  1 sibling, 0 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-07 13:28 UTC (permalink / raw)
  To: emacs-devel

On Sat, 07 Jan 2012 18:24:39 +0800 Chong Yidong <cyd@gnu.org> wrote: 

CY> - First of all, any change involving distributing GnuTLS with Emacs
CY>   should be post-24.1.

OK; see below.

CY> - Phoning home on startup by default is out of the question.  There are
CY>   lots of users with the "open Emacs many times" usage pattern, even
CY>   though that usage pattern is discouraged.  Accessing the network for
CY>   each startup would be unreasonable, quite apart from the privacy
CY>   concerns (GNU knows each time you launch Emacs!)

CY> - I am open to improvements to package.el to implement _periodic_ update
CY>   checking, and improvements to check for updates in M-x list-packages.
CY>   It is probably not too difficult to add some infrastructure to
CY>   highlight "strongly recommended updates" in the Package Menu.

OK.  How about a new variable `package-critical-packages' which is empty
by default?  When it has elements, Emacs will check on startup if those
packages have been updated, and after the 24.1 release we can add
highlighting to the package list, plus some UI to add/remove packages to
the critical list.  I would really like to get the basic functionality,
off by default, into 24.1.  I think the risk is minimal and the benefit
to users is significant.  The UI will also be simpler, just y/n to the
update (no need for the "never bother me about this again" choice),
since we know that any packages in the critical list were added by the
user.

I think periodic checks won't work well in the Emacs world, but perhaps
I am misunderstanding what you mean.

CY> - I agree with Lars' point that

>> I don't really see that there's much of a difference between bugs in
>> libgnutls and in the Emacs binary proper.  If a major security hole was
>> discovered in Emacs, then presumably a new Emacs release would be made.
>> If a major libgnutls hole was discovered, then presumably someone would
>> zip up a new Windows release.

CY>   If a really serious security flaw is found in GnuPG, and we are
CY>   distributing GnuPG with Emacs, we should make an Emacs security
CY>   release, exactly as though it was a security flaw in Emacs itself.

OK.  Since the consensus seems to be that the platform-specific
installer's maintainers, not emacs-devel, should deal with installing
GnuTLS and other third-party libraries, the responsibility for such
security releases should be with the installer's maintainers, and each
platform will have to figure out its own way to notify the user that
there's a critical security update.

If you agree, this work doesn't have to wait for the 24.1 release since
it won't require changes to Emacs.  For a W32 installer I can work with
Joakim.  For Mac OS X I don't know if the NS port, when bundled as an
app, can include its own GnuTLS and other libraries, or if we'll require
a real installer.  On both those platforms self-updating should be
possible.  Does all of that make sense?

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  5:40                                                                                                                 ` Richard Riley
@ 2012-01-07 13:35                                                                                                                   ` Ted Zlatanov
  2012-01-07 14:51                                                                                                                     ` Richard Riley
  2012-01-08  7:40                                                                                                                   ` GnuTLS for W32 Stephen J. Turnbull
  1 sibling, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-07 13:35 UTC (permalink / raw)
  To: emacs-devel

On Sat, 07 Jan 2012 06:40:38 +0100 Richard Riley <rileyrg@gmail.com> wrote: 

RR> I dont want to bicker and be petty but felt Ted was getting a bit of
RR> a hard time for merely wanting to make things better for the end
RR> user and, more importantly, the new adopter.

Not at all, everyone in the discussion made good points and helped me
(and others, I hope) see things more clearly.  It's not always obvious
to any single developer, especially me with my limited W32 experience,
what's the right approach on a particular platform and how to balance
that with the general Emacs needs.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  9:30                                                                                                                           ` Juanma Barranquero
@ 2012-01-07 13:37                                                                                                                             ` Ted Zlatanov
  2012-01-07 15:10                                                                                                                               ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-07 13:37 UTC (permalink / raw)
  To: emacs-devel

On Sat, 7 Jan 2012 10:30:27 +0100 Juanma Barranquero <lekktu@gmail.com> wrote: 

JB> Right. I don't reject adding such a system, with a note in NEWS
JB> saying: "if you want automatic warning of updates, customize the
JB> variable `emacs-check-for-updates'"- However, I do fear that, once the
JB> system is in place, for 24.2 or 25.1 we will heard people say that the
JB> default should be t.

I think the final decision should be up to the Emacs maintainers.  So
far Stefan and Chong have said there is no chance of enabling automatic
update checks by default, so I think you can stop worrying.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07 13:35                                                                                                                   ` Ted Zlatanov
@ 2012-01-07 14:51                                                                                                                     ` Richard Riley
  2012-01-07 15:12                                                                                                                       ` Juanma Barranquero
  0 siblings, 1 reply; 243+ messages in thread
From: Richard Riley @ 2012-01-07 14:51 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Sat, 07 Jan 2012 06:40:38 +0100 Richard Riley <rileyrg@gmail.com> wrote: 
>
> RR> I dont want to bicker and be petty but felt Ted was getting a bit of
> RR> a hard time for merely wanting to make things better for the end
> RR> user and, more importantly, the new adopter.
>
> Not at all, everyone in the discussion made good points and helped me

Possibly you are more battle hardened in the discussions here ;)

There is a clear group specific technique to fall back on : and much of
it is word games. Well, thats how I read it .. and invariably its down
to the point I noted about fixating on phrases like "emacs component":
anyways - nothing more from me on the subject other than to say whatever
can be done ot support the inexperienced or new user the better - the
more eperienced users can toggle defaults to how they want them. 




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07 13:37                                                                                                                             ` Ted Zlatanov
@ 2012-01-07 15:10                                                                                                                               ` Juanma Barranquero
  0 siblings, 0 replies; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-07 15:10 UTC (permalink / raw)
  To: emacs-devel

2012/1/7 Ted Zlatanov <tzz@lifelogs.com>:

> I think the final decision should be up to the Emacs maintainers.

Of course.

> So
> far Stefan and Chong have said there is no chance of enabling automatic
> update checks by default, so I think you can stop worrying.

Consider me officially un-worried.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07 14:51                                                                                                                     ` Richard Riley
@ 2012-01-07 15:12                                                                                                                       ` Juanma Barranquero
  2012-01-08 15:33                                                                                                                         ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Juanma Barranquero @ 2012-01-07 15:12 UTC (permalink / raw)
  To: emacs-devel

On Sat, Jan 7, 2012 at 15:51, Richard Riley <rileyrg@gmail.com> wrote:

> There is a clear group specific technique to fall back on : and much of
> it is word games. Well, thats how I read it .. and invariably its down
> to the point I noted about fixating on phrases like "emacs component":

FWIW, I wasn't involving in word games, and I was not fixated in such
a phrase. I rejected the notion, clear and simple. It had nothing to
do with the wording.

    Juanma



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-06 14:35                                                                                                                   ` Juanma Barranquero
  2012-01-06 15:26                                                                                                                     ` Ted Zlatanov
@ 2012-01-07 21:03                                                                                                                     ` Reiner Steib
  1 sibling, 0 replies; 243+ messages in thread
From: Reiner Steib @ 2012-01-07 21:03 UTC (permalink / raw)
  To: emacs-devel

On Fri, Jan 06 2012, Juanma Barranquero wrote:

> 2012/1/6 Ted Zlatanov <tzz@lifelogs.com>:
>
>> The intention is to do whatever is appropriate on the platform to let
>> the user know they need to update and make the update easy.
>
> There's no single, general definition of "appropriate".
>
>> I'm not.  The risk is not worth the effort with image libraries.
>
> I don't understand why. Buffer overruns exploited through
> carefully-crafted images have been used before. 

yes, see e.g. CVE-2011-0408, http://www.kb.cert.org/vuls/id/388984,
http://www.google.com/search?q=libpng+arbitrary+code+execution

> I would fear that (as a vector for malware) much more than someone
> eavesdropping my communications.

I agree.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07  5:40                                                                                                                 ` Richard Riley
  2012-01-07 13:35                                                                                                                   ` Ted Zlatanov
@ 2012-01-08  7:40                                                                                                                   ` Stephen J. Turnbull
  2012-01-08  8:34                                                                                                                     ` Eli Zaretskii
  1 sibling, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-08  7:40 UTC (permalink / raw)
  To: emacs-devel

Richard Riley writes:

 > It was quite clear in the context what was meant by "emacs component" :
 > a component which contributes to a working and complete emacs
 > installation.

In context, I don't disagree with that definition.  I merely deny that
GnuTLS is needed for a complete Emacs distribution in that sense from
the point of view of the GNU Emacs project.  I believe that Juanma and
Eli would agree with me that those two points are the main ones,
though we respectfully disagree with each other on many other grounds.

 > I dont want to bicker and be petty but felt Ted was getting a bit
 > of a hard time for merely wanting to make things better for the end
 > user and, more importantly, the new adopter.

But this is not petty, it's fundamental!  Proponents who argue that
distribution of GnuTLS binaries is needed for Windows users are
ignoring a very important distinction: users (new adopters) of the GNU
System (and at lower priority, free OSes in general) vs. users of
non-free OSes and OSes whose attractiveness is based on non-free
software.  Supporting the former is the policy of GNU Emacs;
supporting the latter is not (though of course individual developers
are free to contribute to such support if they like).

I'm not sure that the above even applies to Ted, though.  AIUI, you
misread Ted's main argument, which is that an automatic notification
service for security updates (not necessarily involving distribution
of GnuTLS binaries for Windows users, though it *could* eventually do
so) would be beneficial for (almost) all Emacs users and therefore the
project.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-08  7:40                                                                                                                   ` GnuTLS for W32 Stephen J. Turnbull
@ 2012-01-08  8:34                                                                                                                     ` Eli Zaretskii
  0 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-08  8:34 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: emacs-devel

> From: "Stephen J. Turnbull" <stephen@xemacs.org>
> Date: Sun, 08 Jan 2012 16:40:34 +0900
> 
> Richard Riley writes:
> 
>  > It was quite clear in the context what was meant by "emacs component" :
>  > a component which contributes to a working and complete emacs
>  > installation.
> 
> In context, I don't disagree with that definition.  I merely deny that
> GnuTLS is needed for a complete Emacs distribution in that sense from
> the point of view of the GNU Emacs project.  I believe that Juanma and
> Eli would agree with me that those two points are the main ones,
> though we respectfully disagree with each other on many other grounds.

I do agree, mainly because the concept of a "working and complete
emacs installation" defined above will lead us to absurdity, whereby
we will need to provide many programs and packages Emacs uses in some
of its features, which on Windows are not available out of the box.
GnuTLS is not different from Grep or Find or Ispell/Aspell or Awk, to
name just a few (and that's even before you consider the tools needed
to build programs from Emacs).

Building these add-ons and providing installers for them must be a job
of a separate group of volunteers, not of the Emacs project.  The job
of the Emacs project is to provide infrastructure for integration with
those add-ons, such as dynamic-library-alist populated with the names
of the supported DLLs and the machinery to load the DLLs on demand.

>  > I dont want to bicker and be petty but felt Ted was getting a bit
>  > of a hard time for merely wanting to make things better for the end
>  > user and, more importantly, the new adopter.
> 
> But this is not petty, it's fundamental!  Proponents who argue that
> distribution of GnuTLS binaries is needed for Windows users are
> ignoring a very important distinction: users (new adopters) of the GNU
> System (and at lower priority, free OSes in general) vs. users of
> non-free OSes and OSes whose attractiveness is based on non-free
> software.  Supporting the former is the policy of GNU Emacs;
> supporting the latter is not (though of course individual developers
> are free to contribute to such support if they like).

That is true, but we don't even distribute GnuTLS for GNU systems, so
talking about doing that for Windows is _really_ far-fetched.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-07 15:12                                                                                                                       ` Juanma Barranquero
@ 2012-01-08 15:33                                                                                                                         ` Ted Zlatanov
  2012-01-09  1:04                                                                                                                           ` Stefan Monnier
  2012-01-09 14:26                                                                                                                           ` NaCl support for Emacs (was: GnuTLS for W32) Ted Zlatanov
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-08 15:33 UTC (permalink / raw)
  To: emacs-devel

On Sun, 08 Jan 2012 16:40:34 +0900 "Stephen J. Turnbull" <stephen@xemacs.org> wrote: 

SJT> I'm not sure that the above even applies to Ted, though.  AIUI, you
SJT> misread Ted's main argument, which is that an automatic notification
SJT> service for security updates (not necessarily involving distribution
SJT> of GnuTLS binaries for Windows users, though it *could* eventually do
SJT> so) would be beneficial for (almost) all Emacs users and therefore the
SJT> project.

What I've now propsed, after Chong clarified the maintainers' position,
is the same service, enabled by default but with no packages (so an
interested user only has to customize one variable and it does nothing
otherwise).  I think that's the middle ground we've been looking for.

I only need to know, from Stefan or Chong, if that proposal is OK and if
it should go into the current trunk or if it should wait until 24.1 is out.

On Sun, 08 Jan 2012 03:34:46 -0500 Eli Zaretskii <eliz@gnu.org> wrote: 

EZ> Building these add-ons and providing installers for them must be a job
EZ> of a separate group of volunteers, not of the Emacs project.  The job
EZ> of the Emacs project is to provide infrastructure for integration with
EZ> those add-ons, such as dynamic-library-alist populated with the names
EZ> of the supported DLLs and the machinery to load the DLLs on demand.

>> But this is not petty, it's fundamental!  Proponents who argue that
>> distribution of GnuTLS binaries is needed for Windows users are
>> ignoring a very important distinction: users (new adopters) of the GNU
>> System (and at lower priority, free OSes in general) vs. users of
>> non-free OSes and OSes whose attractiveness is based on non-free
>> software.  Supporting the former is the policy of GNU Emacs;
>> supporting the latter is not (though of course individual developers
>> are free to contribute to such support if they like).

EZ> That is true, but we don't even distribute GnuTLS for GNU systems, so
EZ> talking about doing that for Windows is _really_ far-fetched.

Let's agree the GNU Emacs project will not be distributing GnuTLS (or
any other third-party library) binaries for any platform.  I think I was
clear on that from the beginning but maybe I did not state it well.

My proposals for distributing binaries were either a GNU ELPA package; a
standalone GnuTLS installer; or an Emacs installer (anything but
downloading a zip file!).  Through our discussion I've seen that an
Emacs installer/patcher as Joakim suggested is the best choice, with a
GNU ELPA package set up as an opt-in update notifier if my notification
proposal above is approved.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-08 15:33                                                                                                                         ` Ted Zlatanov
@ 2012-01-09  1:04                                                                                                                           ` Stefan Monnier
  2012-01-09 14:26                                                                                                                             ` Ted Zlatanov
  2012-01-09 14:26                                                                                                                           ` NaCl support for Emacs (was: GnuTLS for W32) Ted Zlatanov
  1 sibling, 1 reply; 243+ messages in thread
From: Stefan Monnier @ 2012-01-09  1:04 UTC (permalink / raw)
  To: emacs-devel

> What I've now propsed, after Chong clarified the maintainers' position,
> is the same service, enabled by default but with no packages (so an
> interested user only has to customize one variable and it does nothing
> otherwise).  I think that's the middle ground we've been looking for.

> I only need to know, from Stefan or Chong, if that proposal is OK and if
> it should go into the current trunk or if it should wait until 24.1 is out.

I don't see a problem with it, but it's too late for 24.1.


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-08 15:33                                                                                                                         ` Ted Zlatanov
  2012-01-09  1:04                                                                                                                           ` Stefan Monnier
@ 2012-01-09 14:26                                                                                                                           ` Ted Zlatanov
  2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
                                                                                                                                               ` (2 more replies)
  1 sibling, 3 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-09 14:26 UTC (permalink / raw)
  To: emacs-devel

Speaking of security libraries...

I'm interested in bringing in support for the NaCl cryptographic library
for Emacs, after 24.1 is out.  There is info on NaCl here:

http://nacl.cr.yp.to/index.html

The library is in the public domain, with no usage or distribution
restrictions.  I'm not sure if that means we can or can't include the
support.

My rationale for supporting this library is that it's fast, very simple
on the client side, and provides good security for arbitrary binary
payloads.  There are many places within Emacs where that's appropriate,
whereas heavyweight network-oriented security like GnuTLS is either not
appropriate or not usable.  An example is EPA/EPG, which currently
relies on the external GPG utility.  Emacs could provide similar
functionality (perhaps integrated with EPA/EPG, perhaps standalone)
without relying on external utilities if it has NaCl support.

NaCl can't replace GnuTLS for many reasons, but I think by itself it
would be a good addition to Emacs.  The C API is really simple compared
to GnuTLS, so the actual C support will not take long to write.

Thanks
Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: GnuTLS for W32
  2012-01-09  1:04                                                                                                                           ` Stefan Monnier
@ 2012-01-09 14:26                                                                                                                             ` Ted Zlatanov
  0 siblings, 0 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-09 14:26 UTC (permalink / raw)
  To: emacs-devel

On Sun, 08 Jan 2012 20:04:53 -0500 Stefan Monnier <monnier@IRO.UMontreal.CA> wrote: 

>> What I've now propsed, after Chong clarified the maintainers' position,
>> is the same service, enabled by default but with no packages (so an
>> interested user only has to customize one variable and it does nothing
>> otherwise).  I think that's the middle ground we've been looking for.

>> I only need to know, from Stefan or Chong, if that proposal is OK and if
>> it should go into the current trunk or if it should wait until 24.1 is out.

SM> I don't see a problem with it, but it's too late for 24.1.

OK, thanks.  I'll add it after the release.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 14:26                                                                                                                           ` NaCl support for Emacs (was: GnuTLS for W32) Ted Zlatanov
@ 2012-01-09 15:30                                                                                                                             ` Stefan Monnier
  2012-01-09 16:43                                                                                                                               ` Carsten Mattner
                                                                                                                                                 ` (2 more replies)
  2012-01-09 17:09                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
  2012-01-10 10:01                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
  2 siblings, 3 replies; 243+ messages in thread
From: Stefan Monnier @ 2012-01-09 15:30 UTC (permalink / raw)
  To: emacs-devel

> I'm interested in bringing in support for the NaCl cryptographic library
> for Emacs, after 24.1 is out.  There is info on NaCl here:

While it might be an interesting feature to provide for future Elisp
packages, its immediate usefulness is much less obvious, so the kind of
compile-time linking model we use for things like libgnutls would not be
appropriate (e.g. Debian wouldn't want to add nacl as a dependency if
it's not actually used).

OTOH that might be a good motivation to add support for dynamic loading
of extension libraries.


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
@ 2012-01-09 16:43                                                                                                                               ` Carsten Mattner
  2012-01-09 16:59                                                                                                                                 ` Ted Zlatanov
  2012-01-09 16:53                                                                                                                               ` Ted Zlatanov
  2012-01-09 20:48                                                                                                                               ` joakim
  2 siblings, 1 reply; 243+ messages in thread
From: Carsten Mattner @ 2012-01-09 16:43 UTC (permalink / raw)
  To: Stefan Monnier, tzz; +Cc: emacs-devel

On Mon, Jan 9, 2012 at 4:30 PM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>> I'm interested in bringing in support for the NaCl cryptographic library
>> for Emacs, after 24.1 is out.  There is info on NaCl here:
>
> While it might be an interesting feature to provide for future Elisp
> packages, its immediate usefulness is much less obvious, so the kind of
> compile-time linking model we use for things like libgnutls would not be
> appropriate (e.g. Debian wouldn't want to add nacl as a dependency if
> it's not actually used).
>
> OTOH that might be a good motivation to add support for dynamic loading
> of extension libraries.

Only if NaCl's "Automatic CPU-specific tuning" can be done at run-time
and not only at compile-time. Ted, what's the status with that?



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
  2012-01-09 16:43                                                                                                                               ` Carsten Mattner
@ 2012-01-09 16:53                                                                                                                               ` Ted Zlatanov
  2012-01-09 22:23                                                                                                                                 ` Stefan Monnier
  2012-01-09 20:48                                                                                                                               ` joakim
  2 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-09 16:53 UTC (permalink / raw)
  To: emacs-devel

On Mon, 09 Jan 2012 10:30:23 -0500 Stefan Monnier <monnier@IRO.UMontreal.CA> wrote: 

>> I'm interested in bringing in support for the NaCl cryptographic library
>> for Emacs, after 24.1 is out.  There is info on NaCl here:

SM> While it might be an interesting feature to provide for future Elisp
SM> packages, its immediate usefulness is much less obvious

Many places in the Emacs core (C and ELisp) could use a fast easy
encryption library for arbitrary data that supports public and
secret-key encryption, in addition to EPA/EPG that I already mentioned.
In-memory storage of secrets (auth-source.el and many places in Gnus)
and emacsclient-style RPC control of Emacs come to mind immediately.

The biggest advantage over GnuTLS in my opinion is the much simpler
interface.  There are less than 30 functions, as opposed to hundreds in
GnuTLS, and they are modeless which makes the API easy to learn and use.

SM> so the kind of compile-time linking model we use for things like
SM> libgnutls would not be appropriate (e.g. Debian wouldn't want to add
SM> nacl as a dependency if it's not actually used).

SM> OTOH that might be a good motivation to add support for dynamic loading
SM> of extension libraries.

It would be cool if I could put out a GNU ELPA package that provided the
NaCl library hookup, but NaCl is not written to be dynamically loaded.
NaCl is all C/C++, just 160K in a compressed tarball and 300K as a
static libnacl.a file.  The code is available through a GitHub clone,
see https://github.com/jeremywohl/nacl.git or you can get the tarball
from http://hyperelliptic.org/nacl/nacl-20110221.tar.bz2

I don't know how much work it would be to adapt NaCl through a custom
dynamic library or if it's better to make it part of the Emacs C tree.
Let me know what you think.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 16:43                                                                                                                               ` Carsten Mattner
@ 2012-01-09 16:59                                                                                                                                 ` Ted Zlatanov
  2012-01-09 17:48                                                                                                                                   ` Carsten Mattner
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-09 16:59 UTC (permalink / raw)
  To: emacs-devel

On Mon, 9 Jan 2012 17:43:58 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote: 

CM> On Mon, Jan 9, 2012 at 4:30 PM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>>> I'm interested in bringing in support for the NaCl cryptographic library
>>> for Emacs, after 24.1 is out.  There is info on NaCl here:
>> 
>> While it might be an interesting feature to provide for future Elisp
>> packages, its immediate usefulness is much less obvious, so the kind of
>> compile-time linking model we use for things like libgnutls would not be
>> appropriate (e.g. Debian wouldn't want to add nacl as a dependency if
>> it's not actually used).
>> 
>> OTOH that might be a good motivation to add support for dynamic loading
>> of extension libraries.

CM> Only if NaCl's "Automatic CPU-specific tuning" can be done at run-time
CM> and not only at compile-time. Ted, what's the status with that?

If we manage it as a GNU ELPA package with an included tarball, so it's
downloaded and compiled locally, sure.  But otherwise yeah, it's not so
nice.  NaCl is a nice library with no community, AFAICT, and that's
really my biggest concern about integrating with it.  There's no place
to propose changes or get updates.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-09 14:26                                                                                                                           ` NaCl support for Emacs (was: GnuTLS for W32) Ted Zlatanov
  2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
@ 2012-01-09 17:09                                                                                                                             ` Eli Zaretskii
  2012-01-09 17:26                                                                                                                               ` NaCl support for Emacs Ted Zlatanov
                                                                                                                                                 ` (2 more replies)
  2012-01-10 10:01                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
  2 siblings, 3 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-09 17:09 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Mon, 09 Jan 2012 09:26:21 -0500
> 
> I'm interested in bringing in support for the NaCl cryptographic library
> for Emacs, after 24.1 is out.  There is info on NaCl here:
> 
> http://nacl.cr.yp.to/index.html

Why not libnettle?  We already use it, albeit indirectly, because
latest versions of GnuTLS depend on it.

There's also libgcrypt, which is a dependency of libxml2.

If the functionalities are comparable, bringing in yet another, third,
dependency of the same kind doesn't make sense, IMO.

> My rationale for supporting this library is that it's fast, very simple
> on the client side, and provides good security for arbitrary binary
> payloads.  There are many places within Emacs where that's appropriate,
> whereas heavyweight network-oriented security like GnuTLS is either not
> appropriate or not usable.  An example is EPA/EPG, which currently
> relies on the external GPG utility.  Emacs could provide similar
> functionality (perhaps integrated with EPA/EPG, perhaps standalone)
> without relying on external utilities if it has NaCl support.

Isn't GPG built on top of a library that itself sits on top of
libgcrypt?  If so, it would make sense to use these libraries instead
of yet another one.

With each new external dependency, we (a) increase the number of
external know-how needed to maintain Emacs; (b) increase the
complexity of building a feature-rich Emacs on anything but the few
most popular GNU/Linux systems; and (c) increase the amount of energy
Emacs maintainers/contributors need to spend on external projects --
to build them regularly, participate in discussions, contribute
patches, etc.

I say, let's bring these dependencies and energy spent on other
projects to the absolute minimum, and if we already depend on some
functionality, even if it isn't the latest and the greatest, let's use
it for as long as it satisfies our needs.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 17:09                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
@ 2012-01-09 17:26                                                                                                                               ` Ted Zlatanov
  2012-01-09 17:29                                                                                                                               ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
  2012-01-10  0:57                                                                                                                               ` NaCl support for Emacs Lars Magne Ingebrigtsen
  2 siblings, 0 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-09 17:26 UTC (permalink / raw)
  To: emacs-devel

On Mon, 09 Jan 2012 19:09:34 +0200 Eli Zaretskii <eliz@gnu.org> wrote: 

>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Mon, 09 Jan 2012 09:26:21 -0500
>> 
>> I'm interested in bringing in support for the NaCl cryptographic library
>> for Emacs, after 24.1 is out.  There is info on NaCl here:
>> 
>> http://nacl.cr.yp.to/index.html

EZ> Why not libnettle?  We already use it, albeit indirectly, because
EZ> latest versions of GnuTLS depend on it.

EZ> There's also libgcrypt, which is a dependency of libxml2.

EZ> If the functionalities are comparable, bringing in yet another, third,
EZ> dependency of the same kind doesn't make sense, IMO.

The NaCl API is simplest and it seems to be really fast, that's what
attracted me to it.

I agree, though, that libnettle or libgcrypt may be a better choice.
NaCl is not required at all.  I simply didn't think of libnettle and
libgcrypt.

EZ> Isn't GPG built on top of a library that itself sits on top of
EZ> libgcrypt?  If so, it would make sense to use these libraries instead
EZ> of yet another one.

Unfortunately there's no way to use GPG's functionality without invoking
GPG itself, so libgcrypt is no better than libnettle in this context.

EZ> With each new external dependency, we (a) increase the number of
EZ> external know-how needed to maintain Emacs; (b) increase the
EZ> complexity of building a feature-rich Emacs on anything but the few
EZ> most popular GNU/Linux systems; and (c) increase the amount of energy
EZ> Emacs maintainers/contributors need to spend on external projects --
EZ> to build them regularly, participate in discussions, contribute
EZ> patches, etc.

EZ> I say, let's bring these dependencies and energy spent on other
EZ> projects to the absolute minimum, and if we already depend on some
EZ> functionality, even if it isn't the latest and the greatest, let's use
EZ> it for as long as it satisfies our needs.

OK, I agree.  I'll look at libgcrypt and libnettle and see if they are
easily exposed.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-09 17:09                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
  2012-01-09 17:26                                                                                                                               ` NaCl support for Emacs Ted Zlatanov
@ 2012-01-09 17:29                                                                                                                               ` Eli Zaretskii
  2012-01-10  0:57                                                                                                                               ` NaCl support for Emacs Lars Magne Ingebrigtsen
  2 siblings, 0 replies; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-09 17:29 UTC (permalink / raw)
  To: emacs-devel

> Date: Mon, 09 Jan 2012 19:09:34 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> 
> There's also libgcrypt, which is a dependency of libxml2.

Sorry, this part is wrong, I confused libxml2 with libxslt.

All the rest still stands, however, as libnettle is brought in by
GnuTLS.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 16:59                                                                                                                                 ` Ted Zlatanov
@ 2012-01-09 17:48                                                                                                                                   ` Carsten Mattner
  2012-01-09 18:17                                                                                                                                     ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Carsten Mattner @ 2012-01-09 17:48 UTC (permalink / raw)
  To: emacs-devel

2012/1/9 Ted Zlatanov <tzz@lifelogs.com>:
> On Mon, 9 Jan 2012 17:43:58 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote:
>
> CM> On Mon, Jan 9, 2012 at 4:30 PM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>>>> I'm interested in bringing in support for the NaCl cryptographic library
>>>> for Emacs, after 24.1 is out.  There is info on NaCl here:
>>>
>>> While it might be an interesting feature to provide for future Elisp
>>> packages, its immediate usefulness is much less obvious, so the kind of
>>> compile-time linking model we use for things like libgnutls would not be
>>> appropriate (e.g. Debian wouldn't want to add nacl as a dependency if
>>> it's not actually used).
>>>
>>> OTOH that might be a good motivation to add support for dynamic loading
>>> of extension libraries.
>
> CM> Only if NaCl's "Automatic CPU-specific tuning" can be done at run-time
> CM> and not only at compile-time. Ted, what's the status with that?
>
> If we manage it as a GNU ELPA package with an included tarball, so it's
> downloaded and compiled locally, sure.  But otherwise yeah, it's not so
> nice.  NaCl is a nice library with no community, AFAICT, and that's

That sounds like a good plan :).

> really my biggest concern about integrating with it.  There's no place
> to propose changes or get updates.

NaCl's design goals, implementation and patent cleanness make it attractive
to anyone who's had to make use of any kind of cipher functionality.
If there's no forum, I suggest addressing the authors listed in
http://cr.yp.to/highspeed/coolnacl-20111201.pdf
If you're bound by FIPS rules, your choices are limited and different.
I wouldn't put much weight on that.

djb has time and time again proven that his work is solid and provides less
attack surface.

Part of the reason that there's much asm code involved may be that
NaCl avoids timing attacks by design.

I'd definitely favor NaCl, just because they provide a simple API with known
safe defaults. Way safer than using OpenSSL without a the required
crypto background.
Most bugs surface in combination of the different tools from a crypto lib,
because too much code is written without being aware of all the semantics of
the used ciphers and modes.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 17:48                                                                                                                                   ` Carsten Mattner
@ 2012-01-09 18:17                                                                                                                                     ` Ted Zlatanov
  2012-01-09 18:21                                                                                                                                       ` Carsten Mattner
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-09 18:17 UTC (permalink / raw)
  To: emacs-devel

On Mon, 9 Jan 2012 18:48:58 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote: 

CM> NaCl's design goals, implementation and patent cleanness make it attractive
CM> to anyone who's had to make use of any kind of cipher functionality.

I think it makes sense to provide a GNU ELPA package with NaCl,
absolutely.  But it's provided as a static library and I don't know how
to convert it to dynamically loaded, and Emacs doesn't have facilities
to load arbitrary dynamic libraries at runtime.  The rest (packaging,
on-activation compile) I can handle in the package itself.  If you want
to help out... or anyone else... let me know off-list.

CM> I'd definitely favor NaCl, just because they provide a simple API with known
CM> safe defaults. Way safer than using OpenSSL without a the required
CM> crypto background.
CM> Most bugs surface in combination of the different tools from a crypto lib,
CM> because too much code is written without being aware of all the semantics of
CM> the used ciphers and modes.

Look at libnettle as Eli suggested, I'm leaning towards it since we
already have it through GnuTLS, for the Emacs core.  I still would like
to provide the NaCl support as a GNU ELPA package.

Thanks
Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 18:17                                                                                                                                     ` Ted Zlatanov
@ 2012-01-09 18:21                                                                                                                                       ` Carsten Mattner
  2012-01-10  1:45                                                                                                                                         ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Carsten Mattner @ 2012-01-09 18:21 UTC (permalink / raw)
  To: emacs-devel

2012/1/9 Ted Zlatanov <tzz@lifelogs.com>:
> On Mon, 9 Jan 2012 18:48:58 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote:
>
> CM> NaCl's design goals, implementation and patent cleanness make it attractive
> CM> to anyone who's had to make use of any kind of cipher functionality.
>
> I think it makes sense to provide a GNU ELPA package with NaCl,
> absolutely.  But it's provided as a static library and I don't know how
> to convert it to dynamically loaded, and Emacs doesn't have facilities
> to load arbitrary dynamic libraries at runtime.  The rest (packaging,
> on-activation compile) I can handle in the package itself.  If you want
> to help out... or anyone else... let me know off-list.

Does wrapping the .a file in a dynamic lib make sense?



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
  2012-01-09 16:43                                                                                                                               ` Carsten Mattner
  2012-01-09 16:53                                                                                                                               ` Ted Zlatanov
@ 2012-01-09 20:48                                                                                                                               ` joakim
  2 siblings, 0 replies; 243+ messages in thread
From: joakim @ 2012-01-09 20:48 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> I'm interested in bringing in support for the NaCl cryptographic library
>> for Emacs, after 24.1 is out.  There is info on NaCl here:
>
> While it might be an interesting feature to provide for future Elisp
> packages, its immediate usefulness is much less obvious, so the kind of
> compile-time linking model we use for things like libgnutls would not be
> appropriate (e.g. Debian wouldn't want to add nacl as a dependency if
> it's not actually used).
>
> OTOH that might be a good motivation to add support for dynamic loading
> of extension libraries.

I've been toying with the idea of using linking Guile to Emacs so as to
access Guiles libffi integration in Emacs. Granted, if all you wanted
was Emacs + libffi than Emacs + Guile + libffi would seem stupid. OTOH I
think it would be a good project to nudge the two platforms closer.

>
>
>         Stefan

-- 
Joakim Verona



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 16:53                                                                                                                               ` Ted Zlatanov
@ 2012-01-09 22:23                                                                                                                                 ` Stefan Monnier
  2012-01-10  1:06                                                                                                                                   ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Stefan Monnier @ 2012-01-09 22:23 UTC (permalink / raw)
  To: emacs-devel

> Many places in the Emacs core (C and ELisp) could use a fast easy
> encryption library for arbitrary data that supports public and
> secret-key encryption, in addition to EPA/EPG that
> I already mentioned.

Could be.  There's no hard evidence for it yet.

> I don't know how much work it would be to adapt NaCl through a custom
> dynamic library or if it's better to make it part of the Emacs C tree.

I don't want such a thing in the Emacs C tree.


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 17:09                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
  2012-01-09 17:26                                                                                                                               ` NaCl support for Emacs Ted Zlatanov
  2012-01-09 17:29                                                                                                                               ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
@ 2012-01-10  0:57                                                                                                                               ` Lars Magne Ingebrigtsen
  2 siblings, 0 replies; 243+ messages in thread
From: Lars Magne Ingebrigtsen @ 2012-01-10  0:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> Why not libnettle?  We already use it, albeit indirectly, because
> latest versions of GnuTLS depend on it.

The libnettle interface functions look sensible (from a very quick
perusal of the examples):

http://www.lysator.liu.se/~nisse/nettle/nettle.html#Example

So adding built-in support for encryption via libnettle in Emacs looks
pretty sensible, I think.

libnettle also does digests, which we already have via the secure_hash
function/gnulib.  Would it make long-term sense to make libnettle a
prerequisite and drop all the gnulib digest code from the tree?

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 22:23                                                                                                                                 ` Stefan Monnier
@ 2012-01-10  1:06                                                                                                                                   ` Ted Zlatanov
  2012-01-10  1:30                                                                                                                                     ` Stefan Monnier
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10  1:06 UTC (permalink / raw)
  To: emacs-devel

On Mon, 09 Jan 2012 17:23:22 -0500 Stefan Monnier <monnier@IRO.UMontreal.CA> wrote: 

>> Many places in the Emacs core (C and ELisp) could use a fast easy
>> encryption library for arbitrary data that supports public and
>> secret-key encryption, in addition to EPA/EPG that
>> I already mentioned.

SM> Could be.  There's no hard evidence for it yet.

I listed three places I think could use it, how much harder does the
evidence have to be?

- auth-source's cache of file contents

- EPA/EPG or something like it that does not rely on the external GPG
  utility

- general ELisp storage of secret data

You may disagree with these, but we've had discussions over the years of
each of them and at least some people agreed with me that those would be
useful.

>> I don't know how much work it would be to adapt NaCl through a custom
>> dynamic library or if it's better to make it part of the Emacs C tree.

SM> I don't want such a thing in the Emacs C tree.

Understood, and as I said libnettle is a better fit as it's already
brought in by GnuTLS.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  1:06                                                                                                                                   ` Ted Zlatanov
@ 2012-01-10  1:30                                                                                                                                     ` Stefan Monnier
  2012-01-10  1:43                                                                                                                                       ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Stefan Monnier @ 2012-01-10  1:30 UTC (permalink / raw)
  To: emacs-devel

>>> Many places in the Emacs core (C and ELisp) could use a fast easy
>>> encryption library for arbitrary data that supports public and
>>> secret-key encryption, in addition to EPA/EPG that
>>> I already mentioned.
SM> Could be.  There's no hard evidence for it yet.
> I listed three places I think could use it, how much harder does the
> evidence have to be?
> - auth-source's cache of file contents
> - EPA/EPG or something like it that does not rely on the external GPG
>   utility
> - general ELisp storage of secret data

I don't think Emacs should reinvent every wheel.  GPG does this job well
and using it means that those files can be decrypted without Emacs.

I'm sure there are cases where doing the encryption in Emacs can make
sense, but I'd first like to see actual code (aka "hard evidence").


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  1:30                                                                                                                                     ` Stefan Monnier
@ 2012-01-10  1:43                                                                                                                                       ` Ted Zlatanov
  2012-01-10  1:54                                                                                                                                         ` Richard Riley
                                                                                                                                                           ` (2 more replies)
  0 siblings, 3 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10  1:43 UTC (permalink / raw)
  To: emacs-devel

On Mon, 09 Jan 2012 20:30:48 -0500 Stefan Monnier <monnier@IRO.UMontreal.CA> wrote: 

>>>> Many places in the Emacs core (C and ELisp) could use a fast easy
>>>> encryption library for arbitrary data that supports public and
>>>> secret-key encryption, in addition to EPA/EPG that
>>>> I already mentioned.
SM> Could be.  There's no hard evidence for it yet.
>> I listed three places I think could use it, how much harder does the
>> evidence have to be?
>> - auth-source's cache of file contents
>> - EPA/EPG or something like it that does not rely on the external GPG utility
>> - general ELisp storage of secret data

SM> I don't think Emacs should reinvent every wheel.  GPG does this job well
SM> and using it means that those files can be decrypted without Emacs.

Calling out to an external process is less secure than using built-in
encryption primitives.  So while in general you're right, in this case
I'll respectfully disagree.  It may be convenient but it's not secure.

SM> I'm sure there are cases where doing the encryption in Emacs can make
SM> sense, but I'd first like to see actual code (aka "hard evidence").

Argh.  The auth-source cache is already implemented as a hack, is that
hard enough evidence?  Quoting the relevant bit from
`auth-source-netrc-parse':

#+begin_src lisp
;; cache all netrc files (used to be just .gpg files)
;; Store the contents of the file heavily encrypted in memory.
;; (note for the irony-impaired: they are just obfuscated)
(aput 'auth-source-netrc-cache file
      (list :mtime (nth 5 (file-attributes file))
            :secret (lexical-let ((v (mapcar '1+ (buffer-string))))
                      (lambda () (apply 'string (mapcar '1- v))))))
#+end_src

Similarly auth-source.el returns passwords in a `lexical-let' wrapper so
they can't be leaked into the logs, they have to be evaluated, but it
doesn't attempt to obfuscate them like the code above.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-09 18:21                                                                                                                                       ` Carsten Mattner
@ 2012-01-10  1:45                                                                                                                                         ` Ted Zlatanov
  0 siblings, 0 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10  1:45 UTC (permalink / raw)
  To: emacs-devel

On Mon, 9 Jan 2012 19:21:36 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote: 

CM> 2012/1/9 Ted Zlatanov <tzz@lifelogs.com>:
>> On Mon, 9 Jan 2012 18:48:58 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote:
>> 
CM> NaCl's design goals, implementation and patent cleanness make it attractive
CM> to anyone who's had to make use of any kind of cipher functionality.
>> 
>> I think it makes sense to provide a GNU ELPA package with NaCl,
>> absolutely.  But it's provided as a static library and I don't know how
>> to convert it to dynamically loaded, and Emacs doesn't have facilities
>> to load arbitrary dynamic libraries at runtime.  The rest (packaging,
>> on-activation compile) I can handle in the package itself.  If you want
>> to help out... or anyone else... let me know off-list.

CM> Does wrapping the .a file in a dynamic lib make sense?

If you could point me to a tutorial on this, I'd appreciate it, but I
think we're too far off-topic for emacs-devel.  If anyone else is
interested in packaging NaCl on the GNU ELPA, let me know directly.

Joakim's suggestion of bringing in libffi is good, but that's a lot of
work!  I hope someone is interested in doing it.

Thanks
Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  1:43                                                                                                                                       ` Ted Zlatanov
@ 2012-01-10  1:54                                                                                                                                         ` Richard Riley
  2012-01-10  2:34                                                                                                                                           ` libnettle for Emacs (was: NaCl support for Emacs) Ted Zlatanov
  2012-01-10  3:01                                                                                                                                         ` NaCl support " Daniel Colascione
  2012-01-10  3:21                                                                                                                                         ` Stefan Monnier
  2 siblings, 1 reply; 243+ messages in thread
From: Richard Riley @ 2012-01-10  1:54 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Mon, 09 Jan 2012 20:30:48 -0500 Stefan Monnier <monnier@IRO.UMontreal.CA> wrote: 
>
>>>>> Many places in the Emacs core (C and ELisp) could use a fast easy
>>>>> encryption library for arbitrary data that supports public and
>>>>> secret-key encryption, in addition to EPA/EPG that
>>>>> I already mentioned.
> SM> Could be.  There's no hard evidence for it yet.
>>> I listed three places I think could use it, how much harder does the
>>> evidence have to be?
>>> - auth-source's cache of file contents
>>> - EPA/EPG or something like it that does not rely on the external GPG utility
>>> - general ELisp storage of secret data
>
> SM> I don't think Emacs should reinvent every wheel.  GPG does this job well
> SM> and using it means that those files can be decrypted without Emacs.
>
> Calling out to an external process is less secure than using built-in
> encryption primitives.  So while in general you're right, in this case
> I'll respectfully disagree.  It may be convenient but it's not secure.

probably naive Q but : this library encrypts/decrypts identically to the
external gpg? e.g a file I encrypt with gpg can be read using this new
proposal and vice versa?







^ permalink raw reply	[flat|nested] 243+ messages in thread

* libnettle for Emacs (was: NaCl support for Emacs)
  2012-01-10  1:54                                                                                                                                         ` Richard Riley
@ 2012-01-10  2:34                                                                                                                                           ` Ted Zlatanov
  2012-01-10  2:43                                                                                                                                             ` libnettle for Emacs Richard Riley
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10  2:34 UTC (permalink / raw)
  To: emacs-devel

On Tue, 10 Jan 2012 02:54:48 +0100 Richard Riley <rileyrg@gmail.com> wrote: 

RR> probably naive Q but : this library [libnettle] encrypts/decrypts
RR> identically to the external gpg? e.g a file I encrypt with gpg can
RR> be read using this new proposal and vice versa?

Nope, libnettle is not compatible with GPG.  The intention is not to
cooperate with GPG (which EPA/EPG can already do) but to have an
internal solution to Emacs' encryption needs when the producer and the
consumer are both Emacs (not necessarily the same process).

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: libnettle for Emacs
  2012-01-10  2:34                                                                                                                                           ` libnettle for Emacs (was: NaCl support for Emacs) Ted Zlatanov
@ 2012-01-10  2:43                                                                                                                                             ` Richard Riley
  0 siblings, 0 replies; 243+ messages in thread
From: Richard Riley @ 2012-01-10  2:43 UTC (permalink / raw)
  To: emacs-devel

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Tue, 10 Jan 2012 02:54:48 +0100 Richard Riley <rileyrg@gmail.com> wrote: 
>
> RR> probably naive Q but : this library [libnettle] encrypts/decrypts
> RR> identically to the external gpg? e.g a file I encrypt with gpg can
> RR> be read using this new proposal and vice versa?
>
> Nope, libnettle is not compatible with GPG.  The intention is not to
> cooperate with GPG (which EPA/EPG can already do) but to have an
> internal solution to Emacs' encryption needs when the producer and the
> consumer are both Emacs (not necessarily the same process).

Ah, so its an addition. Fair enough. Well so long as gpg stays supported
then. gpg stuff is used all over the desktop for mail encryption, doc
encryption and handled in the keyring managers for things like gnome and
cached using stuff like gpg-agent as you'll know better than me ;)
epa/epg is used in stuff like org-crypt so all my :crypt: entries are
encrypted using my gpg keys. pani over ;) regards,r .





^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  1:43                                                                                                                                       ` Ted Zlatanov
  2012-01-10  1:54                                                                                                                                         ` Richard Riley
@ 2012-01-10  3:01                                                                                                                                         ` Daniel Colascione
  2012-01-10 11:45                                                                                                                                           ` Ted Zlatanov
  2012-01-10  3:21                                                                                                                                         ` Stefan Monnier
  2 siblings, 1 reply; 243+ messages in thread
From: Daniel Colascione @ 2012-01-10  3:01 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 617 bytes --]

On 1/9/12 5:43 PM, Ted Zlatanov wrote:
> SM> I don't think Emacs should reinvent every wheel.  GPG does this job well
> SM> and using it means that those files can be decrypted without Emacs.
> 
> Calling out to an external process is less secure than using built-in
> encryption primitives.  So while in general you're right, in this case
> I'll respectfully disagree.  It may be convenient but it's not secure.

If an attacker can read the bytes sent over a pipe between your Emacs
and its GPG subprocess, you've already lost. I'm not sure what
reasonable definition of "secure" you meant to use here.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 235 bytes --]

^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  1:43                                                                                                                                       ` Ted Zlatanov
  2012-01-10  1:54                                                                                                                                         ` Richard Riley
  2012-01-10  3:01                                                                                                                                         ` NaCl support " Daniel Colascione
@ 2012-01-10  3:21                                                                                                                                         ` Stefan Monnier
  2012-01-10 11:54                                                                                                                                           ` Ted Zlatanov
  2 siblings, 1 reply; 243+ messages in thread
From: Stefan Monnier @ 2012-01-10  3:21 UTC (permalink / raw)
  To: emacs-devel

> Argh.  The auth-source cache is already implemented as a hack, is that
> hard enough evidence?  Quoting the relevant bit from
> `auth-source-netrc-parse':

> #+begin_src lisp
> ;; cache all netrc files (used to be just .gpg files)
> ;; Store the contents of the file heavily encrypted in memory.
> ;; (note for the irony-impaired: they are just obfuscated)
> (aput 'auth-source-netrc-cache file
>       (list :mtime (nth 5 (file-attributes file))
>             :secret (lexical-let ((v (mapcar '1+ (buffer-string))))
>                       (lambda () (apply 'string (mapcar '1- v))))))
> #+end_src

Not only I'm not worried about that, but I'm not sure libnettle (or any
other encryption library) would help you fix the underlying problem:
Emacs needs to be able to recover the password for later use anyway, so
anything we do can only ever be obfuscation, AFAIK.  Maybe there's some
clever way to do better, but again, for lack of hard evidence
I'm unconvinced.


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-09 14:26                                                                                                                           ` NaCl support for Emacs (was: GnuTLS for W32) Ted Zlatanov
  2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
  2012-01-09 17:09                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
@ 2012-01-10 10:01                                                                                                                             ` Eli Zaretskii
  2012-01-10 10:46                                                                                                                               ` Carsten Mattner
  2 siblings, 1 reply; 243+ messages in thread
From: Eli Zaretskii @ 2012-01-10 10:01 UTC (permalink / raw)
  To: emacs-devel

> From: Ted Zlatanov <tzz@lifelogs.com>
> Date: Mon, 09 Jan 2012 09:26:21 -0500
> 
> I'm interested in bringing in support for the NaCl cryptographic library
> for Emacs, after 24.1 is out.  There is info on NaCl here:
> 
> http://nacl.cr.yp.to/index.html

Call me weird or old-fashioned, but that library's build procedure
looks odd, to say the least.

It's as if Make and Autoconf never existed: the entire build is done
by a series of shell scripts, all of them called `do', which have
specific knowledge about several platforms hardcoded into them (do the
developers really intend to maintain all this mess?).

On top of that, the top-level `do' modifies PATH and LD_LIBRAY_PATH
(what?  why??) as it sees fit, and redirects all its output to a log
file, so you basically run blind, like in bad old DOS days (can you
say "tail -f"?).

Also, the scripts run all kinds of non-standard tools and compiler
switches, and although they seem to ignore the resulting errors, how
would J.R. Hacker become confident that the build succeeded and she
can use the results?  E.g., what do you get out of this snippet of the
build log:

  === Tue Jan 10 03:28:17 EST 2012 === checking gcc -m32 -fomit-frame-pointer
  /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgcc.a when searching for -lgcc
  /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgcc.a when searching for -lgcc
  /usr/bin/ld: cannot find -lgcc
  collect2: ld returned 1 exit status

Is it good? is it bad? can I trust the results?

Finally, there's no Makefile anywhere in sight, and no installation
script that I could find.  Bye-bye, "make install-strip", hello manual
installation.

Sorry, but I wouldn't touch such "software" with a 3-mile stick.  Not
for Emacs, anyway.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-10 10:01                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
@ 2012-01-10 10:46                                                                                                                               ` Carsten Mattner
  2012-01-11  5:09                                                                                                                                 ` Stephen J. Turnbull
  0 siblings, 1 reply; 243+ messages in thread
From: Carsten Mattner @ 2012-01-10 10:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On Tue, Jan 10, 2012 at 11:01 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Ted Zlatanov <tzz@lifelogs.com>
>> Date: Mon, 09 Jan 2012 09:26:21 -0500
>>
>> I'm interested in bringing in support for the NaCl cryptographic library
>> for Emacs, after 24.1 is out.  There is info on NaCl here:
>>
>> http://nacl.cr.yp.to/index.html
>
> Call me weird or old-fashioned, but that library's build procedure
> looks odd, to say the least.
>
> It's as if Make and Autoconf never existed: the entire build is done
> by a series of shell scripts, all of them called `do', which have
> specific knowledge about several platforms hardcoded into them (do the
> developers really intend to maintain all this mess?).
>
> On top of that, the top-level `do' modifies PATH and LD_LIBRAY_PATH
> (what?  why??) as it sees fit, and redirects all its output to a log
> file, so you basically run blind, like in bad old DOS days (can you
> say "tail -f"?).
>
> Also, the scripts run all kinds of non-standard tools and compiler
> switches, and although they seem to ignore the resulting errors, how
> would J.R. Hacker become confident that the build succeeded and she
> can use the results?  E.g., what do you get out of this snippet of the
> build log:
>
>  === Tue Jan 10 03:28:17 EST 2012 === checking gcc -m32 -fomit-frame-pointer
>  /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgcc.a when searching for -lgcc
>  /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libgcc.a when searching for -lgcc
>  /usr/bin/ld: cannot find -lgcc
>  collect2: ld returned 1 exit status
>
> Is it good? is it bad? can I trust the results?
>
> Finally, there's no Makefile anywhere in sight, and no installation
> script that I could find.  Bye-bye, "make install-strip", hello manual
> installation.
>
> Sorry, but I wouldn't touch such "software" with a 3-mile stick.  Not
> for Emacs, anyway.

For better or worse Dan's software is packaged and licensed as he
sees fit. It is somtimes unconventional, but is something which can be
handled to get at the good stuff within :). People tolerate JavaScript to
get stuff done. We tolerate C as a (limited overhead) porting layer
between us and the machine.

Some reading material:
http://cr.yp.to/redo.html
https://github.com/apenwarr/redo
http://thedjbway.b0llix.net/future.html



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  3:01                                                                                                                                         ` NaCl support " Daniel Colascione
@ 2012-01-10 11:45                                                                                                                                           ` Ted Zlatanov
  2012-01-10 12:51                                                                                                                                             ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10 11:45 UTC (permalink / raw)
  To: emacs-devel

On Mon, 09 Jan 2012 19:01:48 -0800 Daniel Colascione <dancol@dancol.org> wrote: 

DC> On 1/9/12 5:43 PM, Ted Zlatanov wrote:
SM> I don't think Emacs should reinvent every wheel.  GPG does this job well
SM> and using it means that those files can be decrypted without Emacs.
>> 
>> Calling out to an external process is less secure than using built-in
>> encryption primitives.  So while in general you're right, in this case
>> I'll respectfully disagree.  It may be convenient but it's not secure.

DC> If an attacker can read the bytes sent over a pipe between your Emacs
DC> and its GPG subprocess, you've already lost. I'm not sure what
DC> reasonable definition of "secure" you meant to use here.

I'm being polite.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10  3:21                                                                                                                                         ` Stefan Monnier
@ 2012-01-10 11:54                                                                                                                                           ` Ted Zlatanov
  2012-01-10 12:51                                                                                                                                             ` Carsten Mattner
  0 siblings, 1 reply; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10 11:54 UTC (permalink / raw)
  To: emacs-devel

On Mon, 09 Jan 2012 22:21:19 -0500 Stefan Monnier <monnier@iro.umontreal.ca> wrote: 

>> Argh.  The auth-source cache is already implemented as a hack, is that
>> hard enough evidence?  Quoting the relevant bit from
>> `auth-source-netrc-parse':

>> #+begin_src lisp
>> ;; cache all netrc files (used to be just .gpg files)
>> ;; Store the contents of the file heavily encrypted in memory.
>> ;; (note for the irony-impaired: they are just obfuscated)
>> (aput 'auth-source-netrc-cache file
>> (list :mtime (nth 5 (file-attributes file))
>> :secret (lexical-let ((v (mapcar '1+ (buffer-string))))
>> (lambda () (apply 'string (mapcar '1- v))))))
>> #+end_src

SM> Not only I'm not worried about that, but I'm not sure libnettle (or any
SM> other encryption library) would help you fix the underlying problem:
SM> Emacs needs to be able to recover the password for later use anyway, so
SM> anything we do can only ever be obfuscation, AFAIK.  Maybe there's some
SM> clever way to do better, but again, for lack of hard evidence
SM> I'm unconvinced.

With true encryption with libnettle, we can encrypt the secret in
memory, on the wire, and on disk so a casual attacker doesn't have the
chance to grab it.  This should hook into the Lisp object printer, for
instance, so it's effortless to print and read encrypted objects.

I'm worried about treating obfuscation as "good enough" security.  That
has a history of backfiring.  Would it convince you to show an attack
that succeeds with obfuscation but fails with true encryption?

I know Emacs is not designed with security in mind.  We have to start
somewhere; this will at least harden the outer shell.  You may not be
worried about it, but I am.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10 11:45                                                                                                                                           ` Ted Zlatanov
@ 2012-01-10 12:51                                                                                                                                             ` Ted Zlatanov
  0 siblings, 0 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10 12:51 UTC (permalink / raw)
  To: emacs-devel

On Tue, 10 Jan 2012 06:45:49 -0500 Ted Zlatanov <tzz@lifelogs.com> wrote: 

TZ> On Mon, 09 Jan 2012 19:01:48 -0800 Daniel Colascione <dancol@dancol.org> wrote: 
DC> On 1/9/12 5:43 PM, Ted Zlatanov wrote:

>>> Calling out to an external process is less secure than using built-in
>>> encryption primitives.  So while in general you're right, in this case
>>> I'll respectfully disagree.  It may be convenient but it's not secure.

DC> If an attacker can read the bytes sent over a pipe between your Emacs
DC> and its GPG subprocess, you've already lost. I'm not sure what
DC> reasonable definition of "secure" you meant to use here.

TZ> I'm being polite.

I sent this off too quickly accidentally.  I was writing that I don't
want to say Emacs is insecure currently, only that it can be made more
so.

To answer your question, the risk of calling an external process is not
limited to just the IPC (although that can be compromised too, depending
on the platform and its security model).  On Unix an attacker can
replace /usr/bin/gpg, for instance--that's much easier than compromising
the kernel.  The risk is in the external dependency, not GPG in
particular.  My point is, if we can gain some security by using
libnettle, which is already part of Emacs when it's compiled with
GnuTLS, then it makes sense to do it.  The cost is minimal.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10 11:54                                                                                                                                           ` Ted Zlatanov
@ 2012-01-10 12:51                                                                                                                                             ` Carsten Mattner
  2012-01-10 13:49                                                                                                                                               ` Ted Zlatanov
  0 siblings, 1 reply; 243+ messages in thread
From: Carsten Mattner @ 2012-01-10 12:51 UTC (permalink / raw)
  To: emacs-devel

2012/1/10 Ted Zlatanov <tzz@lifelogs.com>:
> On Mon, 09 Jan 2012 22:21:19 -0500 Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>
>>> Argh.  The auth-source cache is already implemented as a hack, is that
>>> hard enough evidence?  Quoting the relevant bit from
>>> `auth-source-netrc-parse':
>
>>> #+begin_src lisp
>>> ;; cache all netrc files (used to be just .gpg files)
>>> ;; Store the contents of the file heavily encrypted in memory.
>>> ;; (note for the irony-impaired: they are just obfuscated)
>>> (aput 'auth-source-netrc-cache file
>>> (list :mtime (nth 5 (file-attributes file))
>>> :secret (lexical-let ((v (mapcar '1+ (buffer-string))))
>>> (lambda () (apply 'string (mapcar '1- v))))))
>>> #+end_src
>
> SM> Not only I'm not worried about that, but I'm not sure libnettle (or any
> SM> other encryption library) would help you fix the underlying problem:
> SM> Emacs needs to be able to recover the password for later use anyway, so
> SM> anything we do can only ever be obfuscation, AFAIK.  Maybe there's some
> SM> clever way to do better, but again, for lack of hard evidence
> SM> I'm unconvinced.
>
> With true encryption with libnettle, we can encrypt the secret in
> memory, on the wire, and on disk so a casual attacker doesn't have the

isn't the secret to decrypt it available in emacs process space
for ready retrieval?

usually you also overwrite that memory to prevent leakage as
soon as possible.

unlocking a keychain and keeping that "safe" open for the time
a user is using the environment is common practice.

aren't you going to implement something like gnome's or kde's
locked keychain?

there will be at least a couple users demanding integration
with existing keychain systems (kde, osx, gnome, ...).
git has recently implemented support for various systems
with an abstraction layer and a caching "daemon".

> chance to grab it.  This should hook into the Lisp object printer, for
> instance, so it's effortless to print and read encrypted objects.
>
> I'm worried about treating obfuscation as "good enough" security.  That
> has a history of backfiring.  Would it convince you to show an attack
> that succeeds with obfuscation but fails with true encryption?
>
> I know Emacs is not designed with security in mind.  We have to start
> somewhere; this will at least harden the outer shell.  You may not be
> worried about it, but I am.

when Emacs was written legend tells that passwords were not in
common use in the timeshare environment Richard worked with.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10 12:51                                                                                                                                             ` Carsten Mattner
@ 2012-01-10 13:49                                                                                                                                               ` Ted Zlatanov
  2012-01-10 16:01                                                                                                                                                 ` Carsten Mattner
  2012-01-10 20:01                                                                                                                                                 ` Stefan Monnier
  0 siblings, 2 replies; 243+ messages in thread
From: Ted Zlatanov @ 2012-01-10 13:49 UTC (permalink / raw)
  To: emacs-devel

On Tue, 10 Jan 2012 13:51:13 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote: 

CM> isn't the secret to decrypt it available in emacs process space for
CM> ready retrieval?

Not necessarily.  But even if it is, the attacker has to know where to
find the private key and run non-trivial code to use it.  The risk is
smaller than plopping the secret data in plain view.

CM> usually you also overwrite that memory to prevent leakage as
CM> soon as possible.

Yes, and we've discussed how ELisp makes that hard, so this will require
work at the C level.  It's not trivial, absolutely.

CM> unlocking a keychain and keeping that "safe" open for the time
CM> a user is using the environment is common practice.

CM> aren't you going to implement something like gnome's or kde's
CM> locked keychain?

That's a possibility but not my target currently.

CM> there will be at least a couple users demanding integration with
CM> existing keychain systems (kde, osx, gnome, ...).

We have KDE+GNOME in auth-source already, through the Secrets API.  We
also had an attempt to provide an interface to the Mac OS X keychain
last year, but I don't think it was fruitful.

CM> git has recently implemented support for various systems with an
CM> abstraction layer and a caching "daemon".

Yes, I've followed Jeff King's patches with great interest, although I
was absolutely swamped last year and could not test them as I wanted to.
I intend to work on integrating VC and Magit with Git's credentials,
probably with auth-source support.

Ted




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10 13:49                                                                                                                                               ` Ted Zlatanov
@ 2012-01-10 16:01                                                                                                                                                 ` Carsten Mattner
  2012-01-10 20:01                                                                                                                                                 ` Stefan Monnier
  1 sibling, 0 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-10 16:01 UTC (permalink / raw)
  To: emacs-devel

2012/1/10 Ted Zlatanov <tzz@lifelogs.com>:
> On Tue, 10 Jan 2012 13:51:13 +0100 Carsten Mattner <carstenmattner@googlemail.com> wrote:
>
> CM> isn't the secret to decrypt it available in emacs process space for
> CM> ready retrieval?
>
> Not necessarily.  But even if it is, the attacker has to know where to
> find the private key and run non-trivial code to use it.  The risk is
> smaller than plopping the secret data in plain view.

When it comes to security, you have to clearly document things like this,
so that it's at least clear what's going on, and there is no false sense
of safety.
I tend to view security from a "the worst will happen" angle.
That way you can try to minimize surprises by being aware of
all the attack vectors.

> CM> usually you also overwrite that memory to prevent leakage as
> CM> soon as possible.
>
> Yes, and we've discussed how ELisp makes that hard, so this will require
> work at the C level.  It's not trivial, absolutely.
>
> CM> unlocking a keychain and keeping that "safe" open for the time
> CM> a user is using the environment is common practice.
>
> CM> aren't you going to implement something like gnome's or kde's
> CM> locked keychain?
>
> That's a possibility but not my target currently.
>
> CM> there will be at least a couple users demanding integration with
> CM> existing keychain systems (kde, osx, gnome, ...).
>
> We have KDE+GNOME in auth-source already, through the Secrets API.  We
> also had an attempt to provide an interface to the Mac OS X keychain
> last year, but I don't think it was fruitful.
>
> CM> git has recently implemented support for various systems with an
> CM> abstraction layer and a caching "daemon".
>
> Yes, I've followed Jeff King's patches with great interest, although I
> was absolutely swamped last year and could not test them as I wanted to.
> I intend to work on integrating VC and Magit with Git's credentials,
> probably with auth-source support.

Also on my TODO list.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-10 13:49                                                                                                                                               ` Ted Zlatanov
  2012-01-10 16:01                                                                                                                                                 ` Carsten Mattner
@ 2012-01-10 20:01                                                                                                                                                 ` Stefan Monnier
  1 sibling, 0 replies; 243+ messages in thread
From: Stefan Monnier @ 2012-01-10 20:01 UTC (permalink / raw)
  To: emacs-devel

> Not necessarily.  But even if it is, the attacker has to know where to
> find the private key and run non-trivial code to use it.  The risk is
> smaller than plopping the secret data in plain view.

I call that "obfuscation".  The non-trivial code is not a deterrent either
because it comes with Emacs ;-)


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-10 10:46                                                                                                                               ` Carsten Mattner
@ 2012-01-11  5:09                                                                                                                                 ` Stephen J. Turnbull
  2012-01-11 10:42                                                                                                                                   ` Carsten Mattner
  2012-01-11 19:40                                                                                                                                   ` NaCl support for Emacs (was: GnuTLS for W32) Richard Stallman
  0 siblings, 2 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-11  5:09 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Eli Zaretskii, emacs-devel

Carsten Mattner writes:

 > For better or worse Dan's software is packaged and licensed as he
 > sees fit.

If it's anything like Dan's usual "license", you're going to need a
real lawyer to decide if it's free enough for Emacs.  IIRC, Dan often
does not permit distribution of modified versions, which is right out.




^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-11  5:09                                                                                                                                 ` Stephen J. Turnbull
@ 2012-01-11 10:42                                                                                                                                   ` Carsten Mattner
  2012-01-11 12:26                                                                                                                                     ` Stephen J. Turnbull
  2012-01-11 14:07                                                                                                                                     ` Stefan Monnier
  2012-01-11 19:40                                                                                                                                   ` NaCl support for Emacs (was: GnuTLS for W32) Richard Stallman
  1 sibling, 2 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-11 10:42 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Eli Zaretskii, emacs-devel

On Wed, Jan 11, 2012 at 6:09 AM, Stephen J. Turnbull <stephen@xemacs.org> wrote:
> Carsten Mattner writes:
>
>  > For better or worse Dan's software is packaged and licensed as he
>  > sees fit.
>
> If it's anything like Dan's usual "license", you're going to need a
> real lawyer to decide if it's free enough for Emacs.  IIRC, Dan often
> does not permit distribution of modified versions, which is right out.

It's public domain. Is that a problem?



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-11 10:42                                                                                                                                   ` Carsten Mattner
@ 2012-01-11 12:26                                                                                                                                     ` Stephen J. Turnbull
  2012-01-11 12:49                                                                                                                                       ` NaCl support for Emacs Harald Hanche-Olsen
  2012-01-11 14:07                                                                                                                                     ` Stefan Monnier
  1 sibling, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-11 12:26 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Eli Zaretskii, emacs-devel

Carsten Mattner writes:

 > It's public domain. Is that a problem?

Not if it really is.  I'm just saying that Bernstein's licensing and
distribution practices for much of his software, if applied here,
would be problematic, and it deserves checking before doing too much
work on adding support for it to Emacs.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 12:26                                                                                                                                     ` Stephen J. Turnbull
@ 2012-01-11 12:49                                                                                                                                       ` Harald Hanche-Olsen
  2012-01-11 12:59                                                                                                                                         ` Carsten Mattner
  2012-01-11 15:47                                                                                                                                         ` Stephen J. Turnbull
  0 siblings, 2 replies; 243+ messages in thread
From: Harald Hanche-Olsen @ 2012-01-11 12:49 UTC (permalink / raw)
  To: emacs-devel

["Stephen J. Turnbull" <stephen@xemacs.org> (2012-01-11 12:26:22 UTC)]

> Not if it really is.  I'm just saying that Bernstein's licensing and
> distribution practices for much of his software, if applied here,
> would be problematic, and it deserves checking before doing too much
> work on adding support for it to Emacs.

That used to be true, several years ago. But in late 2007, he
announced that he was changing that, and all his software – past and
future – would be in the public domain [1]. (It may be that some old
distributions of his still have the old license files, though.)

[1] http://video.google.com/videoplay?docid=-3147768955127254412&hl=en

As far as I know the term "public domain", there is really only one
kind, so you cannot attach license conditions to something in the
public domain. That would be a contradiction in terms, like hair on a
bald head. (In some jurisdictions, such as Norway, there are moral
rights attached to a work that cannot be given away, such as the right
to be identified as the author of the work. But that is another
matter.)

- Harald



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 12:49                                                                                                                                       ` NaCl support for Emacs Harald Hanche-Olsen
@ 2012-01-11 12:59                                                                                                                                         ` Carsten Mattner
  2012-01-11 15:47                                                                                                                                         ` Stephen J. Turnbull
  1 sibling, 0 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-11 12:59 UTC (permalink / raw)
  To: Harald Hanche-Olsen; +Cc: emacs-devel

On Wed, Jan 11, 2012 at 1:49 PM, Harald Hanche-Olsen
<hanche@math.ntnu.no> wrote:
> ["Stephen J. Turnbull" <stephen@xemacs.org> (2012-01-11 12:26:22 UTC)]
>
>> Not if it really is.  I'm just saying that Bernstein's licensing and
>> distribution practices for much of his software, if applied here,
>> would be problematic, and it deserves checking before doing too much
>> work on adding support for it to Emacs.
>
> That used to be true, several years ago. But in late 2007, he
> announced that he was changing that, and all his software – past and
> future – would be in the public domain [1]. (It may be that some old
> distributions of his still have the old license files, though.)
>
> [1] http://video.google.com/videoplay?docid=-3147768955127254412&hl=en
>
> As far as I know the term "public domain", there is really only one
> kind, so you cannot attach license conditions to something in the
> public domain. That would be a contradiction in terms, like hair on a
> bald head. (In some jurisdictions, such as Norway, there are moral
> rights attached to a work that cannot be given away, such as the right
> to be identified as the author of the work. But that is another
> matter.)

Even if it had a non public-domain license, that license may not be
enforceable.

We already have a hard time as developers of free code when it comes
to deciding whether a combination of two pieces of code is legal.
I wish there was a matrix listing all combinations of "free" licenses.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 10:42                                                                                                                                   ` Carsten Mattner
  2012-01-11 12:26                                                                                                                                     ` Stephen J. Turnbull
@ 2012-01-11 14:07                                                                                                                                     ` Stefan Monnier
  2012-01-11 14:23                                                                                                                                       ` Carsten Mattner
  2012-01-11 16:04                                                                                                                                       ` Stephen J. Turnbull
  1 sibling, 2 replies; 243+ messages in thread
From: Stefan Monnier @ 2012-01-11 14:07 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Stephen J. Turnbull, Eli Zaretskii, emacs-devel

> It's public domain.  Is that a problem?

IIUC that depends on how he made it "public domain".  More specifically,
IIRC, it is impossible to really place in the public domain something
you created recently (i.e. you can't relinquish your copyright rights so
easily).  OTOH, you can get a morally equivalent result, by using an
appropriate license, see http://creativecommons.org/about/cc0.


        Stefan



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 14:07                                                                                                                                     ` Stefan Monnier
@ 2012-01-11 14:23                                                                                                                                       ` Carsten Mattner
  2012-01-11 16:04                                                                                                                                       ` Stephen J. Turnbull
  1 sibling, 0 replies; 243+ messages in thread
From: Carsten Mattner @ 2012-01-11 14:23 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Stephen J. Turnbull, Eli Zaretskii, emacs-devel

On Wed, Jan 11, 2012 at 3:07 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>> It's public domain.  Is that a problem?
>
> IIUC that depends on how he made it "public domain".  More specifically,
> IIRC, it is impossible to really place in the public domain something
> you created recently (i.e. you can't relinquish your copyright rights so
> easily).  OTOH, you can get a morally equivalent result, by using an
> appropriate license, see http://creativecommons.org/about/cc0.

So selecting MIT or X11 is a better choice then, isn't it?
IANAL and believe we're speculating here somewhat.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 12:49                                                                                                                                       ` NaCl support for Emacs Harald Hanche-Olsen
  2012-01-11 12:59                                                                                                                                         ` Carsten Mattner
@ 2012-01-11 15:47                                                                                                                                         ` Stephen J. Turnbull
  2012-01-11 15:58                                                                                                                                           ` Carsten Mattner
  1 sibling, 1 reply; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-11 15:47 UTC (permalink / raw)
  To: Harald Hanche-Olsen; +Cc: emacs-devel

Harald Hanche-Olsen writes:

 > That used to be true, several years ago. But in late 2007, he
 > announced that he was changing that, and all his software – past and
 > future – would be in the public domain [1].

Oh, that's good!

 > (It may be that some old distributions of his still have the old
 > license files, though.)

Well, that was one of the problems with some of those distributions
... there were no license files!

 > As far as I know the term "public domain", there is really only one
 > kind, so you cannot attach license conditions to something in the
 > public domain.

Sure, but that's assuming that Carsten knows what the public domain
is.  No offense intended, I just don't know him.  OTOH, Bernstein's
reputation as a copyright crank is well-deserved, you know, even if
it's been several years since he changed his mind.  Unfortunately,
that attitude has meant that his software, which is universally
respected for its security and performance, has been relegated to the
backwaters of FLOSS (because it usually wasn't).



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 15:47                                                                                                                                         ` Stephen J. Turnbull
@ 2012-01-11 15:58                                                                                                                                           ` Carsten Mattner
  2012-01-11 16:33                                                                                                                                             ` Stephen J. Turnbull
  0 siblings, 1 reply; 243+ messages in thread
From: Carsten Mattner @ 2012-01-11 15:58 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Harald Hanche-Olsen, emacs-devel

On Wed, Jan 11, 2012 at 4:47 PM, Stephen J. Turnbull <stephen@xemacs.org> wrote:
> Harald Hanche-Olsen writes:
>  > As far as I know the term "public domain", there is really only one
>  > kind, so you cannot attach license conditions to something in the
>  > public domain.
>
> Sure, but that's assuming that Carsten knows what the public domain
> is.  No offense intended, I just don't know him.  OTOH, Bernstein's

I'm not offended, but find it funny that you'd have to know me
to know whether I know what public domain is.
I get what you intend to express with that.
Mildly amused and yes you're right, I'm no licensing expert.

> reputation as a copyright crank is well-deserved, you know, even if
> it's been several years since he changed his mind.  Unfortunately,
> that attitude has meant that his software, which is universally
> respected for its security and performance, has been relegated to the
> backwaters of FLOSS (because it usually wasn't).

All I know about public domain is that it's not a license per se
and something similar to how old recordings of Bach are free for
most useses after n years. Which is something a couple politicians
intend to extend so that n is more than 70 or 100 (don't remember the
values say for the US).



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 14:07                                                                                                                                     ` Stefan Monnier
  2012-01-11 14:23                                                                                                                                       ` Carsten Mattner
@ 2012-01-11 16:04                                                                                                                                       ` Stephen J. Turnbull
  1 sibling, 0 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-11 16:04 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Eli Zaretskii, Carsten Mattner, emacs-devel

Stefan Monnier writes:
 > > It's public domain.  Is that a problem?
 > 
 > IIUC that depends on how he made it "public domain".  More specifically,
 > IIRC, it is impossible to really place in the public domain something
 > you created recently (i.e. you can't relinquish your copyright rights so
 > easily).

AFAIK Richard has stated explicitly that public domain software may be
incorporated in Emacs, but the legal staff recommends (and he agrees)
that the author needs to file a statement of dedication or something
like that with the FSF.  I don't recall him saying you need to be
careful about how old the software is.

Larry Rosen told me that a public statement of dedication (including
as a permission notice in the source) should be sufficient, up to the
question of proving in court if the author removed the evidence (such
as the tarballs on his site).

So, yes, some lawyers do say that in the U.S. there is no explicit
basis in legislation or case law for public domain dedications, and
therefore the only reliable way for a work to enter the public domain
is via lapse of copyright (which thanks to Disney and Sonny Bono's
widow won't happen again in our lifetimes, but it's the principle of
the thing, you know!)  But most lawyers (of the dozen or so I've
talked to on a "not legal advice" basis, usually with wine in hand :-)
seem to think that an appropriately written dedication should be
sufficient.



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs
  2012-01-11 15:58                                                                                                                                           ` Carsten Mattner
@ 2012-01-11 16:33                                                                                                                                             ` Stephen J. Turnbull
  0 siblings, 0 replies; 243+ messages in thread
From: Stephen J. Turnbull @ 2012-01-11 16:33 UTC (permalink / raw)
  To: Carsten Mattner; +Cc: Harald Hanche-Olsen, emacs-devel

Carsten Mattner writes:

 > All I know about public domain is that it's not a license per se

Right.  But more precise is that it is the absence of copyright, so no
license is needed (up to the considerations of moral rights that
Harald mentioned).

 > and something similar to how old recordings of Bach are free for
 > most useses after n years.

Not just similar; those old recordings *are* in the public domain.

 > Which is something a couple politicians intend to extend so that n
 > is more than 70 or 100 (don't remember the values say for the US).

Something like 95 years, and renewable.  So Disney will be free to sue
kindergartens at least into the *next* century. :-(



^ permalink raw reply	[flat|nested] 243+ messages in thread

* Re: NaCl support for Emacs (was: GnuTLS for W32)
  2012-01-11  5:09                                                                                                                                 ` Stephen J. Turnbull
  2012-01-11 10:42                                                                                                                                   ` Carsten Mattner
@ 2012-01-11 19:40                                                                                                                                   ` Richard Stallman
  1 sibling, 0 replies; 243+ messages in thread
From: Richard Stallman @ 2012-01-11 19:40 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: eliz, carstenmattner, emacs-devel

If there is a license that needs evaluation, and it isn't in
gnu.org/licenses/license-list.html, please mail it to me.
I and my advisors will study it together.


-- 
Dr Richard Stallman
President, Free Software Foundation
51 Franklin St
Boston MA 02110
USA
www.fsf.org  www.gnu.org
Skype: No way! That's nonfree (freedom-denying) software.
  Use free telephony http://directory.fsf.org/category/tel/



^ permalink raw reply	[flat|nested] 243+ messages in thread

end of thread, other threads:[~2012-01-11 19:40 UTC | newest]

Thread overview: 243+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CAJU7zaKH0NTE7ko6u24gXy9WupsNw+CAvhMdVudzxpXvsY2vig@mail.gmail.com>
2011-12-31 13:46 ` gnutls for win32 Ted Zlatanov
2012-01-01 11:10   ` Nikos Mavrogiannopoulos
2012-01-01 11:50     ` Eli Zaretskii
2012-01-01 14:13       ` Ted Zlatanov
2012-01-01 16:10         ` Eli Zaretskii
2012-01-01 16:38           ` Ted Zlatanov
2012-01-01 17:05             ` Eli Zaretskii
2012-01-01 21:17               ` Ted Zlatanov
2012-01-01 21:28                 ` Juanma Barranquero
2012-01-01 21:40                 ` Eli Zaretskii
2012-01-01 23:54                   ` GnuTLS for W32 (was: gnutls for win32) Ted Zlatanov
2012-01-02  0:49                     ` Juanma Barranquero
2012-01-02  1:33                       ` GnuTLS for W32 Óscar Fuentes
2012-01-02  1:44                         ` Juanma Barranquero
2012-01-02  2:35                           ` Óscar Fuentes
2012-01-02  2:57                             ` Juanma Barranquero
2012-01-02  3:18                               ` Óscar Fuentes
2012-01-02  4:02                                 ` Juanma Barranquero
2012-01-02 16:16                                   ` Ted Zlatanov
2012-01-02 17:31                                     ` Juanma Barranquero
2012-01-02 17:39                                     ` Eli Zaretskii
2012-01-02 18:51                                       ` Lars Ingebrigtsen
2012-01-02 22:35                                       ` Ted Zlatanov
2012-01-03  0:48                                         ` Óscar Fuentes
2012-01-03  6:37                                           ` Eli Zaretskii
2012-01-03 14:07                                             ` Óscar Fuentes
2012-01-03 17:21                                               ` Eli Zaretskii
2012-01-03 17:48                                                 ` Óscar Fuentes
2012-01-03 18:14                                                   ` Eli Zaretskii
2012-01-03 18:34                                                     ` Óscar Fuentes
2012-01-03 19:38                                                       ` Eli Zaretskii
2012-01-03 19:48                                                         ` Óscar Fuentes
2012-01-03 20:09                                                           ` Eli Zaretskii
2012-01-03 20:25                                                             ` Óscar Fuentes
2012-01-04  6:48                                                             ` Chong Yidong
2012-01-04  8:15                                                               ` Eli Zaretskii
2012-01-04  3:45                                                           ` Stephen J. Turnbull
2012-01-04  5:21                                                             ` Eli Zaretskii
2012-01-04  7:03                                                               ` Stephen J. Turnbull
2012-01-04  8:21                                                                 ` Eli Zaretskii
2012-01-04 11:21                                                                   ` Stephen J. Turnbull
2012-01-04 11:33                                                                     ` Lars Magne Ingebrigtsen
2012-01-04 11:57                                                                       ` Lennart Borgman
2012-01-04 12:06                                                                         ` Lars Magne Ingebrigtsen
2012-01-04 12:37                                                                           ` David Engster
2012-01-04 18:42                                                                             ` Lennart Borgman
2012-01-04 18:19                                                                       ` Eli Zaretskii
2012-01-04 13:57                                                                     ` Eli Zaretskii
2012-01-04 14:14                                                                       ` Óscar Fuentes
2012-01-04 15:05                                                                         ` Juanma Barranquero
2012-01-04 15:42                                                                           ` Óscar Fuentes
2012-01-04 16:29                                                                             ` Ted Zlatanov
2012-01-04 17:00                                                                               ` Juanma Barranquero
2012-01-04 18:48                                                                                 ` Ted Zlatanov
2012-01-05  5:40                                                                                   ` joakim
2012-01-05 15:52                                                                                     ` Óscar Fuentes
2012-01-04 19:21                                                                               ` Óscar Fuentes
2012-01-04 19:45                                                                                 ` Juanma Barranquero
2012-01-04 23:00                                                                                   ` Óscar Fuentes
2012-01-05  0:18                                                                                     ` Juanma Barranquero
2012-01-05  2:00                                                                                       ` Óscar Fuentes
2012-01-05  2:36                                                                                         ` Juanma Barranquero
2012-01-05  6:45                                                                                         ` Eli Zaretskii
2012-01-05  6:41                                                                                     ` Eli Zaretskii
2012-01-05  7:04                                                                                       ` Daniel Colascione
2012-01-05 11:58                                                                                         ` Eli Zaretskii
2012-01-04 20:37                                                                                 ` Ted Zlatanov
2012-01-04 20:41                                                                                   ` Lars Magne Ingebrigtsen
2012-01-04 22:12                                                                                     ` Ted Zlatanov
2012-01-04 22:47                                                                                       ` chad
2012-01-04 23:16                                                                                         ` Ted Zlatanov
2012-01-05  5:36                                                                                           ` Eli Zaretskii
2012-01-05 13:50                                                                                             ` Ted Zlatanov
2012-01-05 14:14                                                                                               ` Eli Zaretskii
2012-01-05 14:50                                                                                               ` Juanma Barranquero
2012-01-05 16:19                                                                                                 ` chad
2012-01-05 20:30                                                                                                   ` Juanma Barranquero
2012-01-05 23:14                                                                                                     ` chad
2012-01-05 23:32                                                                                                       ` Juanma Barranquero
2012-01-05 23:58                                                                                                         ` Richard Riley
2012-01-06  0:05                                                                                                           ` Juanma Barranquero
2012-01-06  7:11                                                                                                           ` Eli Zaretskii
2012-01-06  0:09                                                                                                         ` Juanma Barranquero
2012-01-06  1:05                                                                                                           ` chad
2012-01-06  1:13                                                                                                             ` Juanma Barranquero
2012-01-06  1:24                                                                                                               ` Óscar Fuentes
2012-01-06  1:48                                                                                                                 ` Juanma Barranquero
2012-01-06  2:37                                                                                                                   ` Óscar Fuentes
2012-01-06  3:08                                                                                                                     ` Juanma Barranquero
2012-01-06  3:56                                                                                                                       ` Óscar Fuentes
2012-01-06  4:11                                                                                                                         ` Juanma Barranquero
2012-01-06  5:49                                                                                                                           ` chad
2012-01-06  7:12                                                                                                                             ` Eli Zaretskii
2012-01-06 12:35                                                                                                                               ` Juanma Barranquero
2012-01-07  2:34                                                                                                                                 ` Stephen J. Turnbull
2012-01-06 13:39                                                                                                                             ` Juanma Barranquero
2012-01-07  2:31                                                                                                                         ` Stephen J. Turnbull
2012-01-07  3:37                                                                                                                           ` Óscar Fuentes
2012-01-07  9:30                                                                                                                           ` Juanma Barranquero
2012-01-07 13:37                                                                                                                             ` Ted Zlatanov
2012-01-07 15:10                                                                                                                               ` Juanma Barranquero
2012-01-07  1:36                                                                                                     ` Stephen J. Turnbull
2012-01-07  1:46                                                                                                       ` Juanma Barranquero
2012-01-07  5:07                                                                                                         ` Stephen J. Turnbull
2012-01-07  1:23                                                                                                 ` Stephen J. Turnbull
2012-01-05 15:08                                                                                               ` joakim
2012-01-05 15:37                                                                                               ` Lars Ingebrigtsen
2012-01-05 17:52                                                                                                 ` Ted Zlatanov
2012-01-05 18:29                                                                                                   ` Lars Ingebrigtsen
2012-01-05 20:06                                                                                                     ` Ted Zlatanov
2012-01-06  3:15                                                                                                       ` Lars Magne Ingebrigtsen
2012-01-06  3:37                                                                                                         ` chad
2012-01-05 20:38                                                                                                     ` Juanma Barranquero
2012-01-05 20:36                                                                                                   ` Juanma Barranquero
2012-01-05 20:39                                                                                                     ` Richard Riley
2012-01-05 22:45                                                                                                       ` Juanma Barranquero
2012-01-05 22:35                                                                                                     ` Ted Zlatanov
2012-01-05 22:43                                                                                                       ` Juanma Barranquero
2012-01-05 23:28                                                                                                         ` Ted Zlatanov
2012-01-05 23:38                                                                                                           ` Juanma Barranquero
2012-01-05 23:55                                                                                                             ` Richard Riley
2012-01-05 23:59                                                                                                               ` Juanma Barranquero
2012-01-06  7:10                                                                                                               ` Eli Zaretskii
2012-01-07  2:03                                                                                                               ` Stephen J. Turnbull
2012-01-07  5:40                                                                                                                 ` Richard Riley
2012-01-07 13:35                                                                                                                   ` Ted Zlatanov
2012-01-07 14:51                                                                                                                     ` Richard Riley
2012-01-07 15:12                                                                                                                       ` Juanma Barranquero
2012-01-08 15:33                                                                                                                         ` Ted Zlatanov
2012-01-09  1:04                                                                                                                           ` Stefan Monnier
2012-01-09 14:26                                                                                                                             ` Ted Zlatanov
2012-01-09 14:26                                                                                                                           ` NaCl support for Emacs (was: GnuTLS for W32) Ted Zlatanov
2012-01-09 15:30                                                                                                                             ` NaCl support for Emacs Stefan Monnier
2012-01-09 16:43                                                                                                                               ` Carsten Mattner
2012-01-09 16:59                                                                                                                                 ` Ted Zlatanov
2012-01-09 17:48                                                                                                                                   ` Carsten Mattner
2012-01-09 18:17                                                                                                                                     ` Ted Zlatanov
2012-01-09 18:21                                                                                                                                       ` Carsten Mattner
2012-01-10  1:45                                                                                                                                         ` Ted Zlatanov
2012-01-09 16:53                                                                                                                               ` Ted Zlatanov
2012-01-09 22:23                                                                                                                                 ` Stefan Monnier
2012-01-10  1:06                                                                                                                                   ` Ted Zlatanov
2012-01-10  1:30                                                                                                                                     ` Stefan Monnier
2012-01-10  1:43                                                                                                                                       ` Ted Zlatanov
2012-01-10  1:54                                                                                                                                         ` Richard Riley
2012-01-10  2:34                                                                                                                                           ` libnettle for Emacs (was: NaCl support for Emacs) Ted Zlatanov
2012-01-10  2:43                                                                                                                                             ` libnettle for Emacs Richard Riley
2012-01-10  3:01                                                                                                                                         ` NaCl support " Daniel Colascione
2012-01-10 11:45                                                                                                                                           ` Ted Zlatanov
2012-01-10 12:51                                                                                                                                             ` Ted Zlatanov
2012-01-10  3:21                                                                                                                                         ` Stefan Monnier
2012-01-10 11:54                                                                                                                                           ` Ted Zlatanov
2012-01-10 12:51                                                                                                                                             ` Carsten Mattner
2012-01-10 13:49                                                                                                                                               ` Ted Zlatanov
2012-01-10 16:01                                                                                                                                                 ` Carsten Mattner
2012-01-10 20:01                                                                                                                                                 ` Stefan Monnier
2012-01-09 20:48                                                                                                                               ` joakim
2012-01-09 17:09                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
2012-01-09 17:26                                                                                                                               ` NaCl support for Emacs Ted Zlatanov
2012-01-09 17:29                                                                                                                               ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
2012-01-10  0:57                                                                                                                               ` NaCl support for Emacs Lars Magne Ingebrigtsen
2012-01-10 10:01                                                                                                                             ` NaCl support for Emacs (was: GnuTLS for W32) Eli Zaretskii
2012-01-10 10:46                                                                                                                               ` Carsten Mattner
2012-01-11  5:09                                                                                                                                 ` Stephen J. Turnbull
2012-01-11 10:42                                                                                                                                   ` Carsten Mattner
2012-01-11 12:26                                                                                                                                     ` Stephen J. Turnbull
2012-01-11 12:49                                                                                                                                       ` NaCl support for Emacs Harald Hanche-Olsen
2012-01-11 12:59                                                                                                                                         ` Carsten Mattner
2012-01-11 15:47                                                                                                                                         ` Stephen J. Turnbull
2012-01-11 15:58                                                                                                                                           ` Carsten Mattner
2012-01-11 16:33                                                                                                                                             ` Stephen J. Turnbull
2012-01-11 14:07                                                                                                                                     ` Stefan Monnier
2012-01-11 14:23                                                                                                                                       ` Carsten Mattner
2012-01-11 16:04                                                                                                                                       ` Stephen J. Turnbull
2012-01-11 19:40                                                                                                                                   ` NaCl support for Emacs (was: GnuTLS for W32) Richard Stallman
2012-01-08  7:40                                                                                                                   ` GnuTLS for W32 Stephen J. Turnbull
2012-01-08  8:34                                                                                                                     ` Eli Zaretskii
2012-01-06  0:43                                                                                                             ` Ted Zlatanov
2012-01-06  0:59                                                                                                               ` Juanma Barranquero
2012-01-06 14:08                                                                                                                 ` Ted Zlatanov
2012-01-06 14:35                                                                                                                   ` Juanma Barranquero
2012-01-06 15:26                                                                                                                     ` Ted Zlatanov
2012-01-06 15:47                                                                                                                       ` Juanma Barranquero
2012-01-06 16:50                                                                                                                         ` Ted Zlatanov
2012-01-07 10:24                                                                                                                           ` Chong Yidong
2012-01-07 13:14                                                                                                                             ` Juanma Barranquero
2012-01-07 13:28                                                                                                                             ` Ted Zlatanov
2012-01-07 21:03                                                                                                                     ` Reiner Steib
2012-01-05  5:24                                                                                       ` Eli Zaretskii
2012-01-04 21:23                                                                                 ` Eli Zaretskii
2012-01-04 22:34                                                                                   ` Óscar Fuentes
2012-01-05  6:34                                                                                     ` Eli Zaretskii
2012-01-05 15:17                                                                                       ` Óscar Fuentes
2012-01-05 18:11                                                                                         ` Eli Zaretskii
2012-01-04 18:10                                                                             ` Eli Zaretskii
2012-01-04 19:42                                                                               ` Óscar Fuentes
2012-01-04 21:31                                                                                 ` Eli Zaretskii
2012-01-04 15:15                                                                         ` Juanma Barranquero
2012-01-04 18:09                                                                         ` Eli Zaretskii
2012-01-04 19:39                                                                           ` Óscar Fuentes
2012-01-04 21:30                                                                             ` Eli Zaretskii
2012-01-04 23:18                                                                               ` Óscar Fuentes
2012-01-05  6:44                                                                                 ` Eli Zaretskii
2012-01-03  7:14                                         ` Eli Zaretskii
2012-01-03 13:06                                           ` Ted Zlatanov
2012-01-03 13:37                                             ` Juanma Barranquero
2012-01-03 14:02                                             ` Eli Zaretskii
2012-01-03 15:00                                               ` Ted Zlatanov
2012-01-03 15:05                                                 ` Juanma Barranquero
2012-01-03 17:29                                                 ` Eli Zaretskii
2012-01-03 18:10                                                   ` Óscar Fuentes
2012-01-03  7:48                                         ` Eli Zaretskii
2012-01-03 13:09                                           ` Ted Zlatanov
2012-01-03 17:06                                             ` Eli Zaretskii
2012-01-04 11:02                                               ` Ted Zlatanov
2012-01-04 12:26                                                 ` joakim
2012-01-04 14:22                                                 ` Óscar Fuentes
2012-01-04 18:03                                                   ` Eli Zaretskii
2012-01-03 14:14                                       ` Jason Rumney
2012-01-02 17:54                                     ` Eli Zaretskii
2012-01-02  8:48                             ` Eli Zaretskii
2012-01-02 10:42                               ` Andreas Schwab
2012-01-02 11:20                                 ` Eli Zaretskii
2012-01-02 12:26                               ` Lars Magne Ingebrigtsen
2012-01-02 12:41                                 ` Eli Zaretskii
2012-01-02 14:03                                   ` Andreas Schwab
2012-01-02 17:34                                     ` Eli Zaretskii
2012-01-02  8:47                     ` GnuTLS for W32 (was: gnutls for win32) Eli Zaretskii
2012-01-02  9:47                       ` GnuTLS for W32 Jason Rumney
2012-01-03 19:51                       ` Lars Magne Ingebrigtsen
2012-01-01 22:32       ` gnutls for lose32 Richard Stallman
2012-01-02  6:55         ` Paul Eggert
2012-01-02 10:46           ` Carsten Mattner
2012-01-02 11:51             ` Juanma Barranquero
2012-01-02 13:09               ` Carsten Mattner
2012-01-02 13:15                 ` Juanma Barranquero
2012-01-02 13:28                 ` Juanma Barranquero
2012-01-02 19:05                   ` Drew Adams
2012-01-02 16:17                 ` Ted Zlatanov
2012-01-02 22:52                 ` Richard Stallman
2012-01-02 19:05               ` Drew Adams
2012-01-02 12:17             ` Paul Eggert
2012-01-02 13:06               ` Carsten Mattner

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