all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Matthew Leach <matthew@mattleach.net>
To: Alan Mackenzie <acm@muc.de>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: [PATCH 0/5] Add systemd socket launching support.
Date: Sun, 27 Mar 2016 09:41:17 +0100	[thread overview]
Message-ID: <87d1qgxqhe.fsf@mattleach.net> (raw)
In-Reply-To: <20160327004758.GD3061@acm.fritz.box> (Alan Mackenzie's message of "Sun, 27 Mar 2016 00:47:58 +0000")

Alan Mackenzie <acm@muc.de> writes:

> Hello, Matthew.

Hi Alan,

> On Sat, Mar 26, 2016 at 09:16:37PM +0000, Matthew Leach wrote:
>> Systemd has the ability to create a socket, launch a daemon upon
>> connection to that socket and hand over the socket to the new process
>> to handle.  In Emacs' case, we can delay the start of the Emacs daemon
>> until emacsclient is called upon a socket.
>
> Can we really?  What's the purpose of such a delay?

Currently, I start emacs --daemon upon login of my user and this can
delay the login process by a few seconds as Emacs initialises.  The idea
behind socket activation is that, systemd knows about the socket's
existence and won't unmount any file-systems where the socket resides
until the daemon has shut down, this is causing a race condition on
reboot for me.  Also, allows the start of emacs --daemon to be on-demand
and so there is less of a delay at login.

> Systemd is a system initialisation program, one of several available.
> It is highly controversial, and it is fairly obvious that one of its
> aims is to subvert GNU's central position in the GNU/Linux system.

Systemd is licensed under the GNU Lesser General Public License, [1],
and I don't see the harm in a small amount integration with another free
software package.  I can't comment on the controversies that you have
raised here as I don't know about them - I'm just trying to fix a
problem that exists with Emacs on my system.

> One of its methods of proliferation is to persuade maintainers to code
> in direct dependencies on systemd, thus imposing itself on anybody
> wishing to run the program.  (Witness Gnome.) Emacs is a core GNU
> product, and should remain equally accessible to all GNU users.

The proposed systemd integration can be disabled with --without-systemd
at configure time.  Maybe we could make this option disabled by default
as a compromise?  However, even If Emacs is compiled with systemd
support, this change does not affect the current behaviour of Emacs.

> Emacs should not be talking directly to init systems.  There are
> perfectly good, portable system level interfaces for talking to sockets,
> and Emacs should restrict itself to using them.

Given that Emacs becomes larger every day and can behave as a daemon
process, I feel that giving users more options to control when and how
Emacs starts up is a worthwhile endeavour.

> Should your patch be accepted, it would lead to an Emacs version
> specific to an initialisation system, a degree of fragmentation we've
> not had before, as far as I know.
>
> And the idea of making systemd dependency a default for building Emacs
> seems somewhat on the far side of acceptability.

This patch does *not* make systemd a dependency of Emacs.  Again, this
patch provides a small degree of integration which can easily be
disabled and doesn't affect the current Emacs behaviour if enabled.


[1]: https://freedesktop.org/wiki/Software/systemd/

Thanks,
-- 
Matt



  parent reply	other threads:[~2016-03-27  8:41 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-26 21:16 [PATCH 0/5] Add systemd socket launching support Matthew Leach
2016-03-26 21:16 ` [PATCH 1/5] Check for libsystemd when building Emacs Matthew Leach
2016-03-26 21:16 ` [PATCH 2/5] Read the number of sockets passed by systemd Matthew Leach
2016-03-26 21:16 ` [PATCH 3/5] Permit systemd-allocated socket file-descriptors to be used Matthew Leach
2016-03-27 12:08   ` Lars Magne Ingebrigtsen
2016-03-27 12:23     ` Matthew Leach
2016-03-27 12:42       ` Andreas Schwab
2016-03-27 13:38         ` Matthew Leach
2016-03-27 13:05       ` Lars Magne Ingebrigtsen
2016-03-27 13:39         ` Matthew Leach
2016-03-26 21:16 ` [PATCH 4/5] Allow the systed socket fd to be retrieved Matthew Leach
2016-03-26 21:16 ` [PATCH 5/5] When set, use the systemd socket descriptor Matthew Leach
2016-03-27  0:47 ` [PATCH 0/5] Add systemd socket launching support Alan Mackenzie
2016-03-27  0:59   ` Alexis
2016-03-27  8:44     ` Matthew Leach
2016-03-27 11:15       ` Alexis
2016-03-27  8:41   ` Matthew Leach [this message]
2016-03-27 13:48     ` Wolfgang Jenkner
2016-03-27 13:53       ` Matthew Leach
2016-03-27 14:18         ` Wolfgang Jenkner
2016-03-27 15:49     ` Mark Oteiza
2016-03-27 18:16       ` Matthew Leach
2016-03-27 14:49 ` Eli Zaretskii
2016-03-27 15:17   ` Matthew Leach
2016-03-27 15:23     ` Eli Zaretskii
2016-03-27 17:21     ` Philipp Stephani
2016-03-27 18:10       ` Matthew Leach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d1qgxqhe.fsf@mattleach.net \
    --to=matthew@mattleach.net \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.