Re: [systemd-devel] [PATCH] timedated: support split usr v3

2015-01-27 Thread Lennart Poettering
On Sun, 18.01.15 10:53, Shawn Landden (sh...@churchofgit.com) wrote:

> From: Shawn Paul Landden 
> 
> The current Debian solution to this is really ugly, and I would rather
> have them use the correct patch even if split usr is dumb.

Again, I really don't grok what the point of this is. The right fix is
to mount /usr from the initrd. It's certainly not to add hacks to
systemd.

Sorry, but there's no way this will get in.

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] timedated: support split usr v3

2015-01-19 Thread Shawn Landden
On Sun, Jan 18, 2015 at 12:52 PM, Kay Sievers  wrote:

> On Sun, Jan 18, 2015 at 7:53 PM, Shawn Landden 
> wrote:
> > From: Shawn Paul Landden 
> >
> > The current Debian solution to this is really ugly, and I would rather
> > have them use the correct patch even if split usr is dumb.
>
> Please keep this local to the distro, this is no upstream material.
> /etc/timezon is redundant information in a separate file. We do not
> want to support this thing in systemd.
>
> The split /usr support is pretty much limited to locations of files,
> but should not change fundamental logic or introduce new concepts or
> config files.
>
> While I have no problem with this position as I support unified usr,
realize that without this timedated does not support split usr, and systemd
be clear about this in the "split-usr-is-broken" warning/essay.

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



-- 
Shawn Landden
From 0f0d2f6b3e295c8d67a689e48b23188a027ce6b3 Mon Sep 17 00:00:00 2001
From: Shawn Paul Landden 
Date: Sun, 21 Dec 2014 23:00:01 -0800
Subject: [PATCH] timedated: support split usr v3

The current Debian solution to this is really ugly, and I would rather
have them use the correct patch even if split usr is dumb.

Read: http://rusty.ozlabs.org/?p=236
 ("Why Everyone Must Oppose The Merging of /usr and /")

(I managed to skip the pulseaudio implamentation mess because I
had a fancy emu10k1 SoundBlaster Live! 5.1 which does its own
hardware mixing.)

Putting the reading of /etc/timezone inside #ifdef CONFIG_SPLIT_USR
assumes a system with never go from NORMAL_USR to SPLIT_USR

v3: revert 99f861310d3f05f4
v4: was missing a git add
---
 src/timedate/timedated.c | 21 +
 1 file changed, 21 insertions(+)

diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
index 753c3d1..7f748df 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -29,6 +29,7 @@
 #include "sd-bus.h"
 
 #include "util.h"
+#include "copy.h"
 #include "strv.h"
 #include "def.h"
 #include "clock-util.h"
@@ -95,6 +96,14 @@ static int context_read_data(Context *c) {
 }
 }
 
+#ifdef HAVE_SPLIT_USR
+r = read_one_line_file("/etc/timezone", &c->zone);
+if (r < 0) {
+if (r != -ENOENT)
+log_warning("Failed to read /etc/timezone: %s", strerror(-r));
+}
+#endif
+
 have_timezone:
 if (isempty(c->zone)) {
 free(c->zone);
@@ -123,9 +132,21 @@ static int context_write_data_timezone(Context *c) {
 if (!p)
 return log_oom();
 
+#ifdef HAVE_SPLIT_USR
+r = write_string_file_atomic("/etc/timezone", c->zone);
+if (r < 0)
+return r;
+
+   /* "/usr/sha..." */
+r = copy_file((p + 2), "/etc/localtime", O_TRUNC,
+S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, 0); /*644*/
+if (r < 0)
+return r;
+#else
 r = symlink_atomic(p, "/etc/localtime");
 if (r < 0)
 return r;
+#endif
 
 return 0;
 }
-- 
2.1.4

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


Re: [systemd-devel] [PATCH] timedated: support split usr v3

2015-01-18 Thread Kay Sievers
On Sun, Jan 18, 2015 at 7:53 PM, Shawn Landden  wrote:
> From: Shawn Paul Landden 
>
> The current Debian solution to this is really ugly, and I would rather
> have them use the correct patch even if split usr is dumb.

Please keep this local to the distro, this is no upstream material.
/etc/timezon is redundant information in a separate file. We do not
want to support this thing in systemd.

The split /usr support is pretty much limited to locations of files,
but should not change fundamental logic or introduce new concepts or
config files.

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


[systemd-devel] [PATCH] timedated: support split usr v3

2015-01-18 Thread Shawn Landden
From: Shawn Paul Landden 

The current Debian solution to this is really ugly, and I would rather
have them use the correct patch even if split usr is dumb.

Read: http://rusty.ozlabs.org/?p=236
 ("Why Everyone Must Oppose The Merging of /usr and /")

(I managed to skip the pulseaudio implamentation mess because I
had a fancy emu10k1 SoundBlaster Live! 5.1 which does its own
hardware mixing.)

v3: revert 99f861310d3f05f4
---
 src/timedate/timedated.c | 21 +
 1 file changed, 21 insertions(+)

diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
index 753c3d1..3fbc24e 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -29,6 +29,7 @@
 #include "sd-bus.h"
 
 #include "util.h"
+#include "copy.h"
 #include "strv.h"
 #include "def.h"
 #include "clock-util.h"
@@ -95,6 +96,14 @@ static int context_read_data(Context *c) {
 }
 }
 
+#ifdef HAVE_SPLIT_USR
+r = read_one_line_file("/etc/timezone", c->zone);
+if (r < 0) {
+if (r != -ENOENT)
+log_warning("Failed to read /etc/timezone: %s", 
strerror(-r));
+}
+#endif
+
 have_timezone:
 if (isempty(c->zone)) {
 free(c->zone);
@@ -123,9 +132,21 @@ static int context_write_data_timezone(Context *c) {
 if (!p)
 return log_oom();
 
+#ifdef HAVE_SPLIT_USR
+r = write_string_file_atomic("/etc/timezone", c->zone);
+if (r < 0)
+return r;
+
+   /* "/usr/sha..." */
+r = copy_file((p + 2), "/etc/localtime", O_TRUNC,
+S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); /*644*/
+if (r < 0)
+return r;
+#else
 r = symlink_atomic(p, "/etc/localtime");
 if (r < 0)
 return r;
+#endif
 
 return 0;
 }
-- 
2.1.4

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


Re: [systemd-devel] [PATCH] timedated: support split usr

2014-12-22 Thread Simon McVittie
On 22/12/14 14:33, Lennart Poettering wrote:
> I thought Debian would nowadays mount /usr from the initrd too?

We now do that in unstable, but unfortunately this change wasn't well
coordinated and caused several serious regressions, so it's unlikely to
migrate into Debian 8. (A separate /usr on mdadm RAID or certain LVM
configurations no longer works; some cryptsetup configurations were also
broken but are now fixed.)

I'm trying to fix the regressions so we can at least have reliably
initrd-mounted /usr in Debian 9.

S

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


Re: [systemd-devel] [PATCH] timedated: support split usr

2014-12-22 Thread Lennart Poettering
On Sun, 21.12.14 22:55, Shawn Paul Landden (sh...@churchofgit.com) wrote:

> The current Debian solution to this is really ugly, and I would rather
> have them use the correct patch even if split usr is dumb.

Well, just copying the file cannot really work. We read the symlink
back to figure out what the current timezone is, hence if the thing is
not a symlink this information is lost.

I thought Debian would nowadays mount /usr from the initrd too? Hence,
is this problem even really a problem still?

Lennart

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


[systemd-devel] [PATCH] timedated: support split usr v2

2014-12-21 Thread Shawn Paul Landden
The current Debian solution to this is really ugly, and I would rather
have them use the correct patch even if split usr is dumb.

Read: http://rusty.ozlabs.org/?p=236
 ("Why Everyone Must Oppose The Merging of /usr and /")

(I managed to skip the pulseaudio implamentation mess because I
had a fancy emu10k1 SoundBlaster Live! 5.1 which does its own
hardware mixing.)

v2: forgot to commit my debugging results before submitting
---
 src/timedate/timedated.c | 13 +
 1 file changed, 13 insertions(+)

diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
index bf567a1..a2fd781 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -30,6 +30,7 @@
 #include "sd-bus.h"
 
 #include "util.h"
+#include "copy.h"
 #include "strv.h"
 #include "def.h"
 #include "clock-util.h"
@@ -123,9 +124,21 @@ static int context_write_data_timezone(Context *c) {
 if (!p)
 return log_oom();
 
+#ifdef HAVE_SPLIT_USR
+r = write_string_file_atomic("/etc/timezone", c->zone);
+if (r < 0)
+return r;
+
+   /* "/usr/sha..." */
+r = copy_file((p + 2), "/etc/localtime", O_TRUNC,
+S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); /*644*/
+if (r < 0)
+return r;
+#else
 r = symlink_atomic(p, "/etc/localtime");
 if (r < 0)
 return r;
+#endif
 
 return 0;
 }
-- 
2.1.0

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


[systemd-devel] [PATCH] timedated: support split usr

2014-12-21 Thread Shawn Paul Landden
The current Debian solution to this is really ugly, and I would rather
have them use the correct patch even if split usr is dumb.

Read: http://rusty.ozlabs.org/?p=236
 ("Why Everyone Must Oppose The Merging of /usr and /")

(I managed to skip the pulseaudio implamentation mess because I
had a fancy emu10k1 SoundBlaster Live! 5.1 which does its own
hardware mixing.)
---
 src/timedate/timedated.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
index bf567a1..985864a 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -123,9 +123,20 @@ static int context_write_data_timezone(Context *c) {
 if (!p)
 return log_oom();
 
+#ifdef HAVE_SPLIT_USR
+r = write_one_line_file_atomic("/etc/timezone", c->zone);
+if (r < 0)
+return r;
+
+   /* "/usr/sha..." */
+r = copy_file((p + 2), "/etc/localtime");
+if (r < 0)
+return r;
+#else
 r = symlink_atomic(p, "/etc/localtime");
 if (r < 0)
 return r;
+#endif
 
 return 0;
 }
-- 
2.1.0

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