Re: [systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread Lennart Poettering
On Wed, 27.05.15 15:30, Peter Lemenkov (lemen...@gmail.com) wrote:

> This directory is used for storing transient/generated network service
> files. Unfortunately it doesn't generated during systemd-networkd
> startup. Let's fix that.

Hmm, how did you generate these network files?

Why not make the tool you used create the dirs on its own?

> ---
>  src/network/networkd.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/network/networkd.c b/src/network/networkd.c
> index 543a4e4..a98855f 100644
> --- a/src/network/networkd.c
> +++ b/src/network/networkd.c
> @@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
>  if (r < 0)
>  log_warning_errno(r, "Could not create runtime directory 
> 'lldp': %m");
>  
> +/* Create a directory for the generated transient network services */
> +mkdir_p("/run/systemd/network", 0755);
> +
>  r = drop_privileges(uid, gid,
>  (1ULL << CAP_NET_ADMIN) |
>  (1ULL << CAP_NET_BIND_SERVICE) |
> -- 
> 2.4.1
> 
> ___
> systemd-devel mailing list
> systemd-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread Lennart Poettering
On Wed, 27.05.15 15:40, Lukáš Nykrýn (lnyk...@redhat.com) wrote:

> Lennart Poettering píše v St 27. 05. 2015 v 15:01 +0200:
> > On Wed, 27.05.15 14:34, Martin Pitt (martin.p...@ubuntu.com) wrote:
> > 
> > > Hey Peter,
> > > 
> > > Peter Lemenkov [2015-05-27 15:30 +0300]:
> > > > This directory is used for storing transient/generated network service
> > > > files. Unfortunately it doesn't generated during systemd-networkd
> > > > startup. Let's fix that.
> > > > ---
> > > >  src/network/networkd.c | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > > 
> > > > diff --git a/src/network/networkd.c b/src/network/networkd.c
> > > > index 543a4e4..a98855f 100644
> > > > --- a/src/network/networkd.c
> > > > +++ b/src/network/networkd.c
> > > > @@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
> > > >  if (r < 0)
> > > >  log_warning_errno(r, "Could not create runtime 
> > > > directory 'lldp': %m");
> > > >  
> > > > +/* Create a directory for the generated transient network 
> > > > services */
> > > > +mkdir_p("/run/systemd/network", 0755);
> > > 
> > > Should that perhaps go into /usr/lib/tmpfiles.d/systemd.conf instead,
> > > together with the related
> > > 
> > >   d /run/systemd/netif 0755 systemd-network systemd-network -
> > >   d /run/systemd/netif/links 0755 systemd-network systemd-network -
> > >   d /run/systemd/netif/leases 0755 systemd-network systemd-network -
> > > 
> > > ?
> > 
> > This would not suffice, as networkd can run in early-boot, but
> > tmpfiles only runs after /var and friends have been mounted.
> 
> For some cases we need that directory really soon. For example for a
> generator which creates a .link file that renames a device.

Nah, systemd generators should only generate unit files, and nothing
else, and do so in the directories that are passed to it on the
command line arguments. 

tools that generate .link/.network/.netdev files should probably live
in their own mini-service that is ordered before networkd and
udev. And those tools should probably just create the dirs on their
own if they are missing to make this race-free.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread Lukáš Nykrýn
Lennart Poettering píše v St 27. 05. 2015 v 15:01 +0200:
> On Wed, 27.05.15 14:34, Martin Pitt (martin.p...@ubuntu.com) wrote:
> 
> > Hey Peter,
> > 
> > Peter Lemenkov [2015-05-27 15:30 +0300]:
> > > This directory is used for storing transient/generated network service
> > > files. Unfortunately it doesn't generated during systemd-networkd
> > > startup. Let's fix that.
> > > ---
> > >  src/network/networkd.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/src/network/networkd.c b/src/network/networkd.c
> > > index 543a4e4..a98855f 100644
> > > --- a/src/network/networkd.c
> > > +++ b/src/network/networkd.c
> > > @@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
> > >  if (r < 0)
> > >  log_warning_errno(r, "Could not create runtime directory 
> > > 'lldp': %m");
> > >  
> > > +/* Create a directory for the generated transient network 
> > > services */
> > > +mkdir_p("/run/systemd/network", 0755);
> > 
> > Should that perhaps go into /usr/lib/tmpfiles.d/systemd.conf instead,
> > together with the related
> > 
> >   d /run/systemd/netif 0755 systemd-network systemd-network -
> >   d /run/systemd/netif/links 0755 systemd-network systemd-network -
> >   d /run/systemd/netif/leases 0755 systemd-network systemd-network -
> > 
> > ?
> 
> This would not suffice, as networkd can run in early-boot, but
> tmpfiles only runs after /var and friends have been mounted.
> 
> Lennart

For some cases we need that directory really soon. For example for a
generator which creates a .link file that renames a device.

Lukas


___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread systemd github import bot
Patchset imported to github.
Pull request:


--
Generated by https://github.com/haraldh/mail2git
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread Lennart Poettering
On Wed, 27.05.15 14:34, Martin Pitt (martin.p...@ubuntu.com) wrote:

> Hey Peter,
> 
> Peter Lemenkov [2015-05-27 15:30 +0300]:
> > This directory is used for storing transient/generated network service
> > files. Unfortunately it doesn't generated during systemd-networkd
> > startup. Let's fix that.
> > ---
> >  src/network/networkd.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/src/network/networkd.c b/src/network/networkd.c
> > index 543a4e4..a98855f 100644
> > --- a/src/network/networkd.c
> > +++ b/src/network/networkd.c
> > @@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
> >  if (r < 0)
> >  log_warning_errno(r, "Could not create runtime directory 
> > 'lldp': %m");
> >  
> > +/* Create a directory for the generated transient network services 
> > */
> > +mkdir_p("/run/systemd/network", 0755);
> 
> Should that perhaps go into /usr/lib/tmpfiles.d/systemd.conf instead,
> together with the related
> 
>   d /run/systemd/netif 0755 systemd-network systemd-network -
>   d /run/systemd/netif/links 0755 systemd-network systemd-network -
>   d /run/systemd/netif/leases 0755 systemd-network systemd-network -
> 
> ?

This would not suffice, as networkd can run in early-boot, but
tmpfiles only runs after /var and friends have been mounted.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread Martin Pitt
Hey Peter,

Peter Lemenkov [2015-05-27 15:30 +0300]:
> This directory is used for storing transient/generated network service
> files. Unfortunately it doesn't generated during systemd-networkd
> startup. Let's fix that.
> ---
>  src/network/networkd.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/network/networkd.c b/src/network/networkd.c
> index 543a4e4..a98855f 100644
> --- a/src/network/networkd.c
> +++ b/src/network/networkd.c
> @@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
>  if (r < 0)
>  log_warning_errno(r, "Could not create runtime directory 
> 'lldp': %m");
>  
> +/* Create a directory for the generated transient network services */
> +mkdir_p("/run/systemd/network", 0755);

Should that perhaps go into /usr/lib/tmpfiles.d/systemd.conf instead,
together with the related

  d /run/systemd/netif 0755 systemd-network systemd-network -
  d /run/systemd/netif/links 0755 systemd-network systemd-network -
  d /run/systemd/netif/leases 0755 systemd-network systemd-network -

?

Thanks,

Martin
-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH 1/1] Ensure that /run/systemd/network exists

2015-05-27 Thread Peter Lemenkov
This directory is used for storing transient/generated network service
files. Unfortunately it doesn't generated during systemd-networkd
startup. Let's fix that.
---
 src/network/networkd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/network/networkd.c b/src/network/networkd.c
index 543a4e4..a98855f 100644
--- a/src/network/networkd.c
+++ b/src/network/networkd.c
@@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
 if (r < 0)
 log_warning_errno(r, "Could not create runtime directory 
'lldp': %m");
 
+/* Create a directory for the generated transient network services */
+mkdir_p("/run/systemd/network", 0755);
+
 r = drop_privileges(uid, gid,
 (1ULL << CAP_NET_ADMIN) |
 (1ULL << CAP_NET_BIND_SERVICE) |
-- 
2.4.1

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel