Re: [systemd-devel] [ANNOUNCE] systemd 219

2015-02-17 Thread Andrei Borzenkov
В Wed, 18 Feb 2015 01:14:44 +0100
Zbigniew Jędrzejewski-Szmek zbys...@in.waw.pl пишет:

 On Tue, Feb 17, 2015 at 08:05:29PM +0100, Goffredo Baroncelli wrote:
  Hi Lennart,
  
  On 2015-02-16 23:59, Lennart Poettering wrote:
   * journald now sets the special FS_NOCOW file flag for its
 journal files. This should improve performance on btrfs, by
 avoiding heavy fragmentation when journald's write-pattern
 is used on COW file systems. It degrades btrfs' data
 integrity guarantees for the files to the same levels as for
 ext3/ext4 however. This should be OK though as journald does
 its own data integrity checks and all its objects are
 checksummed on disk. Also, journald should handle btrfs disk
 full events a lot more gracefully now, by processing SIGBUS
 errors, and not relying on fallocate() anymore.
  
  If I read correctly the code, the FS_NOCOW is a temporary workaround, i.e.
  when the file is closed (or rotated ?) the FS_NOCOW flags is unset again. 
  It is true ?
 Yes, but you miss the point in general. FS_NOCOW is set during the
 entire time when the file is being written to, which could be months,
 and then it is unset when the file will not be written to anymore. So
 indeed, the file is not protected by btrfs checksums for the majority
 of time, but journald does its own checksumming, so the contents are
 protected in a different way.
 

btrfs checksumming theoretically allows you to transparently recover
after media corruption if filesystem has redundancy (more than one copy
of data). Journald checksum will probably detect corruption, but can it
repair it?


  If so, the time window where a file is un-protect by the checksum is
  quite small. I was worried not about the corruption detection but about 
  loosing 
  the ability to recover the file from a good copy (if available) in case of 
  corruption. 
  But this seems limited only when the file is in use (before the next 
  rotation).
 
 Zbyszek
 ___
 systemd-devel mailing list
 systemd-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/systemd-devel

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


Re: [systemd-devel] [PATCH v4] Added support for Uplink Failure Detection using BindCarrier

2015-02-17 Thread Andrei Borzenkov
В Tue, 17 Feb 2015 04:06:57 -0800
Alin Rauta alin.ra...@intel.com пишет:

 +
 +static int link_handle_bound_to_list(Link *link) {
 +Link *l;
 +Iterator i;
 +int r;
 +bool required_up = false;
 +bool link_is_up = false;
 +
 +assert(link);
 +
 +if (hashmap_isempty(link-bound_to_links))
 +return 0;
 +
 +if (link-flags  IFF_UP)
 +link_is_up = true;
 +
 +HASHMAP_FOREACH (l, link-bound_to_links, i)
 +if (link_has_carrier(l)) {
 +required_up = true;
 +break;
 +}
 +
 +if (!required_up  link_is_up) {
 +r = link_down(link);
 +if (r  0)
 +return r;
 +} else if (required_up  !link_is_up) {
 +r = link_up(link);
 +if (r  0)
 +return r;
 +}
 +
 +return 0;
 +}
 +

This means if link was administratively down it will be
reactivated again

ip link set dev down-link down
unplug up-link
plug up-link

down-link is now up. Is it intentional?
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 3/9] Connect to plymouth and support cancellation of in, progress fsck

2015-02-17 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Feb 17, 2015 at 05:26:05PM +0100, Didier Roche wrote:
 Le 14/02/2015 17:38, Zbigniew Jędrzejewski-Szmek a écrit :
 On Thu, Feb 05, 2015 at 06:09:24PM +0100, Didier Roche wrote:
  From ec3b3d2cd4b0097f9fafa6c3f0f400e06292e21c Mon Sep 17 00:00:00 2001
 From: Didier Roche didro...@ubuntu.com
 Date: Thu, 5 Feb 2015 17:08:18 +0100
 Subject: [PATCH 3/9] Connect to plymouth and support cancellation of in
   progress fsck
 
 Try to connect and send to plymouth (if running) some checked report 
 progress,
 using direct plymouth protocole.
 
 Update message is the following:
 fsckd:num_devices:progress:string
 * num_devices corresponds to the current number of devices being checked 
 (int)
 * progress corresponds to the current minimum percentage of all devices 
 being
checked (float, from 0 to 100)
 * string is a translated message ready to be displayed by the plymouth theme
displaying the information above. It can be overriden by plymouth themes
supporting i18n.
 
 Grab in fsckd plymouth watch key Control+C, and propagate this cancel 
 request
 to systemd-fsck which will terminate fsck.
 
 Send a message to signal to user what key we are grabbing for fsck cancel.
 
 Message is: fsckd-cancel-msg:string
 Where string is a translated string ready to be displayed by the plymouth 
 theme
 indicating that Control+C can be used to cancel current checks. It can be
 overriden (matching only fsckd-cancel-msg prefix) for themes supporting 
 i18n.
 ---
   src/fsck/fsck.c   |  33 +
   src/fsckd/fsckd.c | 145 
  +-
   src/fsckd/fsckd.h |   5 ++
   3 files changed, 173 insertions(+), 10 deletions(-)
 
 diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
 index d5aaf9e..1f5a3de 100644
 --- a/src/fsck/fsck.c
 +++ b/src/fsck/fsck.c
 @@ -132,7 +132,7 @@ static void test_files(void) {
   }
 -static int process_progress(int fd, dev_t device_num) {
 +static int process_progress(int fd, pid_t fsck_pid, dev_t device_num) {
   _cleanup_fclose_ FILE *f = NULL;
   usec_t last = 0;
   _cleanup_close_ int fsckd_fd = -1;
 @@ -159,11 +159,13 @@ static int process_progress(int fd, dev_t device_num) 
 {
   while (!feof(f)) {
   int pass;
 +size_t buflen;
   size_t cur, max;
 -ssize_t n;
 +ssize_t r;
   usec_t t;
   _cleanup_free_ char *device = NULL;
   FsckProgress progress;
 +FsckdMessage fsckd_message;
   if (fscanf(f, %i %lu %lu %ms, pass, cur, max, 
  device) != 4)
   break;
 @@ -181,9 +183,19 @@ static int process_progress(int fd, dev_t device_num) {
   progress.max = max;
   progress.pass = pass;
 -n = send(fsckd_fd, progress, sizeof(FsckProgress), 0);
 -if (n  0 || (size_t) n  sizeof(FsckProgress))
 +r = send(fsckd_fd, progress, sizeof(FsckProgress), 0);
 +if (r  0 || (size_t) r  sizeof(FsckProgress))
   log_warning_errno(errno, Cannot communicate fsck 
  progress to fsckd: %m);
 +
 +/* get fsckd requests, only read when we have coherent 
 size data */
 +r = ioctl(fsckd_fd, FIONREAD, buflen);
 +if (r == 0  (size_t) buflen == sizeof(FsckdMessage)) {
 Shoudlnt' this be = ? If two messages are queued, buflen will be
 bigger then one message, and we'll never read it.
 
 Indeed, changed it.
 
 +r = recv(fsckd_fd, fsckd_message, 
 sizeof(FsckdMessage), 0);
 +if (r  0  fsckd_message.cancel) {
 +log_warning(Request to cancel fsck from 
 fsckd);
 log_notice or log_info. Actually log_info I think, since this is a
 legitimate user request.
 Done.
 
 +
 +n = send(current-fd, cancel_msg, sizeof(FsckdMessage), 0);
 +if (n  0 || (size_t) n  sizeof(FsckdMessage))
 +return log_warning_errno(n, Cannot send cancel to fsck on 
 (%u, %u): %m, major(current-devnum), minor(current-devnum));
 line wrap please.
 
 Done. Btw, I was wondering if there was any kind of contributor rule
 like a style guideline in systemd? I probably just missed it.
CODING_STYLE.

There's a bit of a inconsitency about good line length limits, but
this one wraps two times in my window which I consider too much :)

 +
 +if (!m-plymouth_cancel_sent) {
 +/* indicate to plymouth that we listen to Ctrl+C */
 +r = loop_write(m-plymouth_fd, PLYMOUTH_REQUEST_KEY, 
 sizeof(PLYMOUTH_REQUEST_KEY), true);
 +if (r  0)
 +return log_warning_errno(errno, Can't send to 
 plymouth cancel key: %m);
 +m-plymouth_cancel_sent = true;
 +plymouth_cancel_message = strappenda(fsckd-cancel-msg:, 
 Press Ctrl+C to cancel all checks in 

Re: [systemd-devel] [PATCH] shutdown: avoid calling `kexec` binary unnessecarily

2015-02-17 Thread Shawn Landden
The bootloader spec does not say which entry is to be the default. I cannot
support the spec unless I can choose a single default kernel.

http://freedesktop.org/wiki/Specifications/BootLoaderSpec/

On Tue, Feb 17, 2015 at 7:00 AM, Zbigniew Jędrzejewski-Szmek 
zbys...@in.waw.pl wrote:

 On Mon, Feb 16, 2015 at 07:53:47PM -0800, Shawn Landden wrote:
  On Mon, Feb 16, 2015 at 5:08 AM, Lennart Poettering 
 lenn...@poettering.net
  wrote:
 
   On Fri, 13.02.15 14:18, Shawn Landden (sh...@churchofgit.com) wrote:
  
Still use helper when Xen Dom0, to avoid duplicating some hairy
code.
  
   Hmm, what precisely does the helper do on xen?
  
So we don't have any logic to load kexec kernels?
  
   Currently we don't.
  
   My hope though was that we can make the whole kexec thing work without
   having kexec-tools installed. With the new kernel syscall for loading
   the kernel we should be able to implement this all without any other
   tools.
  
   Ideally we'd not use any external tools anymore, not even in the Xen
   case, hence I am curious what precisely the special hookup for Xen is
   here...?
  
   Lennart
  
  
 
 https://git.kernel.org/cgit/utils/kernel/kexec/kexec-tools.git/tree/kexec/kexec-xen.c
 
  I've attached my patch.
  I'm having a problem with kexec_file_load() returning ENOMEM that I
 havn't
  resolved.
 
   --
   Lennart Poettering, Red Hat
   ___
   systemd-devel mailing list
   systemd-devel@lists.freedesktop.org
   http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  
 
 
 
  --
  Shawn Landden

  From d5446e324143f55e67bc2defe1c78a4ea4201142 Mon Sep 17 00:00:00 2001
  From: Shawn Landden sh...@churchofgit.com
  Date: Fri, 13 Feb 2015 13:48:07 -0800
  Subject: [PATCH] shutdown: avoid calling `kexec` binary unnessecarily
 
  Still use helper when Xen Dom0, to avoid duplicating some hairy code.
  So we don't have any logic to load kexec kernels?
  ---
   TODO |   3 --
   src/core/shutdown.c  | 121
 ++-
   src/shared/missing.h |   7 +++
   3 files changed, 116 insertions(+), 15 deletions(-)
 
  diff --git a/TODO b/TODO
  index 255a4f2..d914d2c 100644
  --- a/TODO
  +++ b/TODO
  @@ -90,9 +90,6 @@ Features:
   * maybe introduce WantsMountsFor=? Usecase:
 
 http://lists.freedesktop.org/archives/systemd-devel/2015-January/027729.html
 
  -* rework kexec logic to use new kexec_file_load() syscall, so that we
  -  don't have to call kexec tool anymore.
  -
   * The udev blkid built-in should expose a property that reflects
 whether media was sensed in USB CF/SD card readers. This should then
 be used to control SYSTEMD_READY=1/0 so that USB card readers aren't
  diff --git a/src/core/shutdown.c b/src/core/shutdown.c
  index 71f001a..14febf3 100644
  --- a/src/core/shutdown.c
  +++ b/src/core/shutdown.c
  @@ -19,6 +19,7 @@
 along with systemd; If not, see http://www.gnu.org/licenses/.
   ***/
 
  +#include ctype.h
   #include sys/mman.h
   #include sys/types.h
   #include sys/reboot.h
  @@ -27,6 +28,7 @@
   #include sys/stat.h
   #include sys/mount.h
   #include sys/syscall.h
  +#include sys/utsname.h
   #include fcntl.h
   #include dirent.h
   #include errno.h
  @@ -138,6 +140,35 @@ static int parse_argv(int argc, char *argv[]) {
   return 0;
   }
 
  +/*
  + * Remove parameter from a kernel command line. Helper function for
 kexec.
  + * (copied from kexec-tools)
  + */
  +static void remove_parameter(char *line, const char *param_name) {
  +char *start, *end;
  +
  +start = strstr(line, param_name);
  +
  +/* parameter not found */
  +if (!start)
  +return;
  +
  +/*
  + * check if that's really the start of a parameter and not in
  + * the middle of the word
  + */
  +if (start != line  !isspace(*(start-1)))
  +return;
  +
  +end = strstr(start,  );
  +if (!end)
  +*start = 0;
  +else {
  +memmove(start, end+1, strlen(end));
  +*(end + strlen(end)) = 0;
  +}
  +}
  +
   static int switch_root_initramfs(void) {
   if (mount(/run/initramfs, /run/initramfs, NULL, MS_BIND,
 NULL)  0)
   return log_error_errno(errno, Failed to mount bind
 /run/initramfs on /run/initramfs: %m);
  @@ -152,6 +183,57 @@ static int switch_root_initramfs(void) {
   return switch_root(/run/initramfs, /oldroot, false,
 MS_BIND);
   }
 
  +static int kernel_load(bool overwrite) {
  +int r = -ENOTSUP;
  +
  +/* only x86_64 and x32 in 3.18 */
  +#ifdef __NR_kexec_file_load
  +/* If uses has no already loaded a kexec kernel assume
 they
  + * want the same one they are currently running. */
  +if (!overwrite  !kexec_loaded()) {
  +struct utsname u;
  +_cleanup_free_ 

Re: [systemd-devel] [PATCH] shutdown: avoid calling `kexec` binary unnessecarily

2015-02-17 Thread Shawn Landden
On Tue, Feb 17, 2015 at 7:00 AM, Zbigniew Jędrzejewski-Szmek 
zbys...@in.waw.pl wrote:

 On Mon, Feb 16, 2015 at 07:53:47PM -0800, Shawn Landden wrote:
  On Mon, Feb 16, 2015 at 5:08 AM, Lennart Poettering 
 lenn...@poettering.net
  wrote:
 
   On Fri, 13.02.15 14:18, Shawn Landden (sh...@churchofgit.com) wrote:
  
Still use helper when Xen Dom0, to avoid duplicating some hairy
code.
  
   Hmm, what precisely does the helper do on xen?
  
So we don't have any logic to load kexec kernels?
  
   Currently we don't.
  
   My hope though was that we can make the whole kexec thing work without
   having kexec-tools installed. With the new kernel syscall for loading
   the kernel we should be able to implement this all without any other
   tools.
  
   Ideally we'd not use any external tools anymore, not even in the Xen
   case, hence I am curious what precisely the special hookup for Xen is
   here...?
  
   Lennart
  
  
 
 https://git.kernel.org/cgit/utils/kernel/kexec/kexec-tools.git/tree/kexec/kexec-xen.c
 
  I've attached my patch.
  I'm having a problem with kexec_file_load() returning ENOMEM that I
 havn't
  resolved.
 
   --
   Lennart Poettering, Red Hat
   ___
   systemd-devel mailing list
   systemd-devel@lists.freedesktop.org
   http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  
 
 
 
  --
  Shawn Landden

  From d5446e324143f55e67bc2defe1c78a4ea4201142 Mon Sep 17 00:00:00 2001
  From: Shawn Landden sh...@churchofgit.com
  Date: Fri, 13 Feb 2015 13:48:07 -0800
  Subject: [PATCH] shutdown: avoid calling `kexec` binary unnessecarily
 
  Still use helper when Xen Dom0, to avoid duplicating some hairy code.
  So we don't have any logic to load kexec kernels?
  ---
   TODO |   3 --
   src/core/shutdown.c  | 121
 ++-
   src/shared/missing.h |   7 +++
   3 files changed, 116 insertions(+), 15 deletions(-)
 
  diff --git a/TODO b/TODO
  index 255a4f2..d914d2c 100644
  --- a/TODO
  +++ b/TODO
  @@ -90,9 +90,6 @@ Features:
   * maybe introduce WantsMountsFor=? Usecase:
 
 http://lists.freedesktop.org/archives/systemd-devel/2015-January/027729.html
 
  -* rework kexec logic to use new kexec_file_load() syscall, so that we
  -  don't have to call kexec tool anymore.
  -
   * The udev blkid built-in should expose a property that reflects
 whether media was sensed in USB CF/SD card readers. This should then
 be used to control SYSTEMD_READY=1/0 so that USB card readers aren't
  diff --git a/src/core/shutdown.c b/src/core/shutdown.c
  index 71f001a..14febf3 100644
  --- a/src/core/shutdown.c
  +++ b/src/core/shutdown.c
  @@ -19,6 +19,7 @@
 along with systemd; If not, see http://www.gnu.org/licenses/.
   ***/
 
  +#include ctype.h
   #include sys/mman.h
   #include sys/types.h
   #include sys/reboot.h
  @@ -27,6 +28,7 @@
   #include sys/stat.h
   #include sys/mount.h
   #include sys/syscall.h
  +#include sys/utsname.h
   #include fcntl.h
   #include dirent.h
   #include errno.h
  @@ -138,6 +140,35 @@ static int parse_argv(int argc, char *argv[]) {
   return 0;
   }
 
  +/*
  + * Remove parameter from a kernel command line. Helper function for
 kexec.
  + * (copied from kexec-tools)
  + */
  +static void remove_parameter(char *line, const char *param_name) {
  +char *start, *end;
  +
  +start = strstr(line, param_name);
  +
  +/* parameter not found */
  +if (!start)
  +return;
  +
  +/*
  + * check if that's really the start of a parameter and not in
  + * the middle of the word
  + */
  +if (start != line  !isspace(*(start-1)))
  +return;
  +
  +end = strstr(start,  );
  +if (!end)
  +*start = 0;
  +else {
  +memmove(start, end+1, strlen(end));
  +*(end + strlen(end)) = 0;
  +}
  +}
  +
   static int switch_root_initramfs(void) {
   if (mount(/run/initramfs, /run/initramfs, NULL, MS_BIND,
 NULL)  0)
   return log_error_errno(errno, Failed to mount bind
 /run/initramfs on /run/initramfs: %m);
  @@ -152,6 +183,57 @@ static int switch_root_initramfs(void) {
   return switch_root(/run/initramfs, /oldroot, false,
 MS_BIND);
   }
 
  +static int kernel_load(bool overwrite) {
  +int r = -ENOTSUP;
  +
  +/* only x86_64 and x32 in 3.18 */
  +#ifdef __NR_kexec_file_load
  +/* If uses has no already loaded a kexec kernel assume
 they
  + * want the same one they are currently running. */
  +if (!overwrite  !kexec_loaded()) {
  +struct utsname u;
  +_cleanup_free_ char *vmlinuz = NULL, *initrd =
 NULL, *cmdline = NULL;
  +_cleanup_close_ int vmlinuz_fd = -1, initrd_fd
 = -1;
  +
  +r = uname(u);
  + 

Re: [systemd-devel] [PATCH] shutdown: avoid calling `kexec` binary unnessecarily

2015-02-17 Thread Shawn Landden
On Tue, Feb 17, 2015 at 4:34 PM, Shawn Landden sh...@churchofgit.com
wrote:

 On Tue, Feb 17, 2015 at 7:00 AM, Zbigniew Jędrzejewski-Szmek 
 zbys...@in.waw.pl wrote:

 On Mon, Feb 16, 2015 at 07:53:47PM -0800, Shawn Landden wrote:
  On Mon, Feb 16, 2015 at 5:08 AM, Lennart Poettering 
 lenn...@poettering.net
  wrote:
 
   On Fri, 13.02.15 14:18, Shawn Landden (sh...@churchofgit.com) wrote:
  
Still use helper when Xen Dom0, to avoid duplicating some hairy
code.
  
   Hmm, what precisely does the helper do on xen?
  
So we don't have any logic to load kexec kernels?
  
   Currently we don't.
  
   My hope though was that we can make the whole kexec thing work without
   having kexec-tools installed. With the new kernel syscall for loading
   the kernel we should be able to implement this all without any other
   tools.
  
   Ideally we'd not use any external tools anymore, not even in the Xen
   case, hence I am curious what precisely the special hookup for Xen is
   here...?
  
   Lennart
  
  
 
 https://git.kernel.org/cgit/utils/kernel/kexec/kexec-tools.git/tree/kexec/kexec-xen.c
 
  I've attached my patch.
  I'm having a problem with kexec_file_load() returning ENOMEM that I
 havn't
  resolved.
 
   --
   Lennart Poettering, Red Hat
   ___
   systemd-devel mailing list
   systemd-devel@lists.freedesktop.org
   http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  
 
 
 
  --
  Shawn Landden

  From d5446e324143f55e67bc2defe1c78a4ea4201142 Mon Sep 17 00:00:00 2001
  From: Shawn Landden sh...@churchofgit.com
  Date: Fri, 13 Feb 2015 13:48:07 -0800
  Subject: [PATCH] shutdown: avoid calling `kexec` binary unnessecarily
 
  Still use helper when Xen Dom0, to avoid duplicating some hairy code.
  So we don't have any logic to load kexec kernels?
  ---
   TODO |   3 --
   src/core/shutdown.c  | 121
 ++-
   src/shared/missing.h |   7 +++
   3 files changed, 116 insertions(+), 15 deletions(-)
 
  diff --git a/TODO b/TODO
  index 255a4f2..d914d2c 100644
  --- a/TODO
  +++ b/TODO
  @@ -90,9 +90,6 @@ Features:
   * maybe introduce WantsMountsFor=? Usecase:
 
 http://lists.freedesktop.org/archives/systemd-devel/2015-January/027729.html
 
  -* rework kexec logic to use new kexec_file_load() syscall, so that we
  -  don't have to call kexec tool anymore.
  -
   * The udev blkid built-in should expose a property that reflects
 whether media was sensed in USB CF/SD card readers. This should then
 be used to control SYSTEMD_READY=1/0 so that USB card readers aren't
  diff --git a/src/core/shutdown.c b/src/core/shutdown.c
  index 71f001a..14febf3 100644
  --- a/src/core/shutdown.c
  +++ b/src/core/shutdown.c
  @@ -19,6 +19,7 @@
 along with systemd; If not, see http://www.gnu.org/licenses/.
   ***/
 
  +#include ctype.h
   #include sys/mman.h
   #include sys/types.h
   #include sys/reboot.h
  @@ -27,6 +28,7 @@
   #include sys/stat.h
   #include sys/mount.h
   #include sys/syscall.h
  +#include sys/utsname.h
   #include fcntl.h
   #include dirent.h
   #include errno.h
  @@ -138,6 +140,35 @@ static int parse_argv(int argc, char *argv[]) {
   return 0;
   }
 
  +/*
  + * Remove parameter from a kernel command line. Helper function for
 kexec.
  + * (copied from kexec-tools)
  + */
  +static void remove_parameter(char *line, const char *param_name) {
  +char *start, *end;
  +
  +start = strstr(line, param_name);
  +
  +/* parameter not found */
  +if (!start)
  +return;
  +
  +/*
  + * check if that's really the start of a parameter and not in
  + * the middle of the word
  + */
  +if (start != line  !isspace(*(start-1)))
  +return;
  +
  +end = strstr(start,  );
  +if (!end)
  +*start = 0;
  +else {
  +memmove(start, end+1, strlen(end));
  +*(end + strlen(end)) = 0;
  +}
  +}
  +
   static int switch_root_initramfs(void) {
   if (mount(/run/initramfs, /run/initramfs, NULL, MS_BIND,
 NULL)  0)
   return log_error_errno(errno, Failed to mount bind
 /run/initramfs on /run/initramfs: %m);
  @@ -152,6 +183,57 @@ static int switch_root_initramfs(void) {
   return switch_root(/run/initramfs, /oldroot, false,
 MS_BIND);
   }
 
  +static int kernel_load(bool overwrite) {
  +int r = -ENOTSUP;
  +
  +/* only x86_64 and x32 in 3.18 */
  +#ifdef __NR_kexec_file_load
  +/* If uses has no already loaded a kexec kernel assume
 they
  + * want the same one they are currently running. */
  +if (!overwrite  !kexec_loaded()) {
  +struct utsname u;
  +_cleanup_free_ char *vmlinuz = NULL, *initrd =
 NULL, *cmdline = NULL;
  +_cleanup_close_ int vmlinuz_fd = -1, 

Re: [systemd-devel] [PATCH] shutdown: avoid calling `kexec` binary unnessecarily

2015-02-17 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Feb 17, 2015 at 04:46:26PM -0800, Shawn Landden wrote:
 The bootloader spec does not say which entry is to be the default. I cannot
 support the spec unless I can choose a single default kernel.
 
 http://freedesktop.org/wiki/Specifications/BootLoaderSpec/
But it says where to look for kernels. Your patch only checks in
/boot directly, but the BLS specifies more directories.

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


Re: [systemd-devel] [ANNOUNCE] systemd 219

2015-02-17 Thread Colin Guthrie
Lennart Poettering wrote on 17/02/15 10:08:
  mount something-else /foo
  systemctl start foo.mount
 In this case the second line is a NOP, since the first line already
 mounted something on /foo, and thus made foo.mount active.

So, even if foo.mount (the actual unit file) specifies it's
What=something (not What=something-else) the fact that *anything* is
mounted to /foo is sufficient to make the foo.mount unit active?

This seems somewhat counter-intuitive to me. I can understand why from
an implementation perspective - the mount units are all geared around
the mountpoint not the What=, but it's certainly not what I'd expect as
a user.

Wouldn't it be better if there was some other state - e.g. conflict if
something other than the desired device was mounted to the specified
destination?

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [ANNOUNCE] systemd 219

2015-02-17 Thread Zbigniew Jędrzejewski-Szmek
On Wed, Feb 18, 2015 at 06:22:38AM +0300, Andrei Borzenkov wrote:
 В Wed, 18 Feb 2015 01:14:44 +0100
 Zbigniew Jędrzejewski-Szmek zbys...@in.waw.pl пишет:
 
  On Tue, Feb 17, 2015 at 08:05:29PM +0100, Goffredo Baroncelli wrote:
   Hi Lennart,
   
   On 2015-02-16 23:59, Lennart Poettering wrote:
* journald now sets the special FS_NOCOW file flag for its
  journal files. This should improve performance on btrfs, by
  avoiding heavy fragmentation when journald's write-pattern
  is used on COW file systems. It degrades btrfs' data
  integrity guarantees for the files to the same levels as for
  ext3/ext4 however. This should be OK though as journald does
  its own data integrity checks and all its objects are
  checksummed on disk. Also, journald should handle btrfs disk
  full events a lot more gracefully now, by processing SIGBUS
  errors, and not relying on fallocate() anymore.
   
   If I read correctly the code, the FS_NOCOW is a temporary workaround, i.e.
   when the file is closed (or rotated ?) the FS_NOCOW flags is unset again. 
   It is true ?
  Yes, but you miss the point in general. FS_NOCOW is set during the
  entire time when the file is being written to, which could be months,
  and then it is unset when the file will not be written to anymore. So
  indeed, the file is not protected by btrfs checksums for the majority
  of time, but journald does its own checksumming, so the contents are
  protected in a different way.
  
 
 btrfs checksumming theoretically allows you to transparently recover
 after media corruption if filesystem has redundancy (more than one copy
 of data). Journald checksum will probably detect corruption, but can it
 repair it?
No.

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


Re: [systemd-devel] [PATCH] units: add ConditionKernelCommandLine=resume

2015-02-17 Thread Andrei Borzenkov
В Tue, 17 Feb 2015 01:33:41 -0300
Cristian Rodríguez crrodrig...@opensuse.org пишет:

 If there is no resume= ..it is not possible to
 hubrid-sleep or hibernate

Why? (default) resume device can be specified directly in initrd.

 ---
  units/systemd-hibernate.service.in| 1 +
  units/systemd-hybrid-sleep.service.in | 1 +
  2 files changed, 2 insertions(+)
 
 diff --git a/units/systemd-hibernate.service.in 
 b/units/systemd-hibernate.service.in
 index 29d9b69..2a21cfc 100644
 --- a/units/systemd-hibernate.service.in
 +++ b/units/systemd-hibernate.service.in
 @@ -11,6 +11,7 @@ Documentation=man:systemd-suspend.service(8)
  DefaultDependencies=no
  Requires=sleep.target
  After=sleep.target
 +ConditionKernelCommandLine=resume
  
  [Service]
  Type=oneshot
 diff --git a/units/systemd-hybrid-sleep.service.in 
 b/units/systemd-hybrid-sleep.service.in
 index 914b686..b3039a0 100644
 --- a/units/systemd-hybrid-sleep.service.in
 +++ b/units/systemd-hybrid-sleep.service.in
 @@ -11,6 +11,7 @@ Documentation=man:systemd-suspend.service(8)
  DefaultDependencies=no
  Requires=sleep.target
  After=sleep.target
 +ConditionKernelCommandLine=resume
  
  [Service]
  Type=oneshot

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


[systemd-devel] Fw: Errors using machinectl pull-tar and machinectl pull-dkr

2015-02-17 Thread Peter Paule


I tried systemd 219 on another system as well using some more debug  
options. Here's the outcome of this.


1) Checking signature of tar.gz failed there as well

There's an error complaining about missing permissions to access
/root/.gnupg/trustdb.gpg. It doesn't matter if the file exist. The  
error is always the same.


Why does machinectl need access to that keyring? There's a keyring  
available at

/usr/lib/systemd/import-pubring.gpg, shouldn't systemd-importd also have
its own trustdb? Or is that import-pubring.gpg the trustdb of   
systemd-importd


[root@host machinectl]# SYSTEMD_LOG_LEVEL=debug strace -o  
/tmp/machinectl.log -f -e file machinectl pull-tar  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz
Sent message type=method_call sender=n/a  
destination=org.freedesktop.DBus object=/org/freedesktop/DBus  
interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0  
error=n/a
Got message type=method_return sender=org.freedesktop.DBus  
destination=:1.20 object=n/a interface=n/a member=n/a cookie=1  
reply_cookie=1 error=n/a
Sent message type=method_call sender=n/a  
destination=org.freedesktop.DBus object=/org/freedesktop/DBus  
interface=org.freedesktop.DBus member=AddMatch cookie=2 reply_cookie=0  
error=n/a
Sent message type=method_call sender=n/a  
destination=org.freedesktop.DBus object=/org/freedesktop/DBus  
interface=org.freedesktop.DBus member=AddMatch cookie=3 reply_cookie=0  
error=n/a
Sent message type=method_call sender=n/a  
destination=org.freedesktop.import1 object=/org/freedesktop/import1  
interface=org.freedesktop.import1.Manager member=PullTar cookie=4  
reply_cookie=0 error=n/a

Enqueued transfer job 1. Press C-c to continue download in background.
Got message type=signal sender=org.freedesktop.DBus destination=:1.20  
object=/org/freedesktop/DBus interface=org.freedesktop.DBus  
member=NameAcquired cookie=2 reply_cookie=0 error=n/a
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=6  
reply_cookie=0 error=n/a
Pulling  
'https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz', saving as  
'trusty-server-cloudimg-amd64-root'.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=7  
reply_cookie=0 error=n/a
Downloading 1.7K for  
https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=8  
reply_cookie=0 error=n/a
Download of https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS  
complete.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=9  
reply_cookie=0 error=n/a
Downloading 177.6M for  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=10  
reply_cookie=0 error=n/a
Downloading 836B for  
https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.gpg.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=11  
reply_cookie=0 error=n/a
Download of  
https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.gpg complete.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=12  
reply_cookie=0 error=n/a
Got 1% of  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=13  
reply_cookie=0 error=n/a
Got 12% of  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz. 11s left at  
13.1M/s.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=14  
reply_cookie=0 error=n/a
Got 18% of  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz. 12s left at  
11.7M/s.
Got message type=signal sender=:1.21 destination=n/a  
object=/org/freedesktop/import1/transfer/_1  
interface=org.freedesktop.import1.Transfer member=LogMessage cookie=15  
reply_cookie=0 error=n/a
Got 25% of  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz. 11s left 

Re: [systemd-devel] Mount options of /var/run/users/pid

2015-02-17 Thread Павел Самсонов
Thanks for all.

I solve my problem with pam_exec for /etc/pam.d/login,
/etc/pam.d/gdm-password by adding:
session require pam_exec.so /sbin/resources

/sbin/resources:
#!/bin/bash
mount $XDG_RUNTIME_DIR -o remount,noexec

I mean this tread closed.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH] shared: fix utf16_to_utf8() on big endian machines

2015-02-17 Thread Martin Pitt
Hello all,

219 shows a test failure in test-utf8 on big-endian machines (on
Debian: powerpc, s390, mips):

Assertion 'streq(a, utf8)' failed at src/test/test-utf8.c:103, function 
test_utf16_to_utf8(). Aborting.

gdb shows that indeed the converted string is utter bogus. a is the
converted string, utf8 the expected outcome:

| Program received signal SIGABRT, Aborted.
| 0x20319c48 in raise () from /lib/powerpc-linux-gnu/libc.so.6
| (gdb) f 3
| #3  0x204befbc in test_utf16_to_utf8 () at src/test/test-utf8.c:103
| 103 assert_se(streq(a, utf8));
| (gdb) p a
| $1 = 0x204eb068 
\346\204\200\303\230\346\210\200\303\234\346\214\200\307\230\343\237\234
| (gdb) p utf8
| $2 = abc\360\220\220\267

Patch against master attached, tested on both little-endian (unchanged
behaviour/code) and big-endian machine.

CC'ing Tom for reviewing, as that was introduced in
http://cgit.freedesktop.org/systemd/systemd/commit/?id=04166cb7d and
he might still have the UTF-16 stuff in his head :-)

Thanks,

Martin

-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
From 6768ad9a451c012615091ac2427ef5103cb1d178 Mon Sep 17 00:00:00 2001
From: Martin Pitt martin.p...@ubuntu.com
Date: Wed, 18 Feb 2015 06:45:34 +0100
Subject: [PATCH] shared: fix utf16_to_utf8() on big endian machines

We get the utf16 data passed as void* thus we need to correctly read the 16 bit
words in big endian order on big endian machines.

Spotted by failure of test_utf16_to_utf8() on PowerPC.

https://bugs.debian.org/778654
---
 src/shared/utf8.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/src/shared/utf8.c b/src/shared/utf8.c
index 013c110..751ee3f 100644
--- a/src/shared/utf8.c
+++ b/src/shared/utf8.c
@@ -322,7 +322,11 @@ char *utf16_to_utf8(const void *s, size_t length) {
 
 /* see RFC 2781 section 2.2 */
 
+#if __BYTE_ORDER == __LITTLE_ENDIAN
 w1 = f[1]  8 | f[0];
+#else
+w1 = f[0]  8 | f[1];
+#endif
 f += 2;
 
 if (!utf16_is_surrogate(w1)) {
@@ -336,7 +340,11 @@ char *utf16_to_utf8(const void *s, size_t length) {
 else if (f = (const uint8_t*) s + length)
 break;
 
+#if __BYTE_ORDER == __LITTLE_ENDIAN
 w2 = f[1]  8 | f[0];
+#else
+w2 = f[0]  8 | f[1];
+#endif
 f += 2;
 
 if (!utf16_is_trailing_surrogate(w2)) {
-- 
2.1.4



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


Re: [systemd-devel] [ANNOUNCE] systemd 219

2015-02-17 Thread Lennart Poettering
On Tue, 17.02.15 17:13, Maciej Wereski (m.were...@partner.samsung.com) wrote:

 Hello,
 
 Dnia poniedziałek, 16 lutego 2015 23:59:56 Lennart Poettering pisze:
 
  
  Note that this version is not available in Fedora F22/F23 yet. The
  linker on ARM segfaults. Since the i386 and x86_64 versions built
  fine, I decided to release 219 anyway.
  
 
 I was able to build systemd v219 both on armv7l and aarch64. As a workaround 
 I 
 had to disable Link Time Optimizations.

Well, did it segfault for you if you had lto on?

This toolchain bug is tracked here btw:

https://bugzilla.redhat.com/show_bug.cgi?id=1193212

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 5/9] Translate fsckd messages for plymouth

2015-02-17 Thread Didier Roche

Updated to latest (impacted by a change in 3/9)

Didier
From b0209d20c648f6d275ed72bd78e74e3d48fc4068 Mon Sep 17 00:00:00 2001
From: Didier Roche didro...@ubuntu.com
Date: Mon, 26 Jan 2015 17:12:54 +0100
Subject: [PATCH 5/9] Translate fsckd messages for plymouth

For plymouth themes not supporting i18n (like .script), send translated
messages to display to user, which is equivalent to the sent machine
readable data.
---
 po/POTFILES.in|  1 +
 src/fsckd/fsckd.c | 10 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/po/POTFILES.in b/po/POTFILES.in
index b4c1121..70e7594 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -5,3 +5,4 @@ src/locale/org.freedesktop.locale1.policy.in
 src/login/org.freedesktop.login1.policy.in
 src/machine/org.freedesktop.machine1.policy.in
 src/timedate/org.freedesktop.timedate1.policy.in
+src/fsckd/fsckd.c
diff --git a/src/fsckd/fsckd.c b/src/fsckd/fsckd.c
index 30c4f28..2143e1c 100644
--- a/src/fsckd/fsckd.c
+++ b/src/fsckd/fsckd.c
@@ -24,6 +24,7 @@
 
 #include getopt.h
 #include errno.h
+#include libintl.h
 #include math.h
 #include stdbool.h
 #include stdlib.h
@@ -182,7 +183,7 @@ static int send_message_plymouth(Manager *m, const char *message) {
 if (r  0)
 return log_warning_errno(errno, Can't send to plymouth cancel key: %m);
 m-plymouth_cancel_sent = true;
-plymouth_cancel_message = strappenda(fsckd-cancel-msg:, Press Ctrl+C to cancel all filesystem checks in progress);
+plymouth_cancel_message = strappenda(fsckd-cancel-msg:, _(Press Ctrl+C to cancel all filesystem checks in progress));
 r = send_message_plymouth_socket(m-plymouth_fd, plymouth_cancel_message, false);
 if (r  0)
 log_warning_errno(r, Can't send filesystem cancel message to plymouth: %m);
@@ -222,8 +223,10 @@ static int update_global_progress(Manager *m) {
 m-numdevices = current_numdevices;
 m-percent = current_percent;
 
-if (asprintf(console_message, Checking in progress on %d disks (%3.1f%% complete),
-m-numdevices, m-percent)  0)
+if (asprintf(console_message,
+ ngettext(Checking in progress on %d disk (%3.1f%% complete),
+  Checking in progress on %d disks (%3.1f%% complete), m-numdevices),
+  m-numdevices, m-percent)  0)
 return -ENOMEM;
 if (asprintf(fsck_message, fsckd:%d:%3.1f:%s, m-numdevices, m-percent, console_message)  0)
 return -ENOMEM;
@@ -507,6 +510,7 @@ int main(int argc, char *argv[]) {
 log_set_target(LOG_TARGET_AUTO);
 log_parse_environment();
 log_open();
+init_gettext();
 
 r = parse_argv(argc, argv);
 if (r = 0)
-- 
2.1.4

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


[systemd-devel] Errors using machinectl pull-tar and machinectl pull-dkr

2015-02-17 Thread Peter Paule


Hi there,

I tried machinectl from systemd 219 on Arch Linux (testing) today: I  
got two errors. Should we discuss this here or should I open a Bug  
Report?


1) Download if tar-file  
(http://www.freedesktop.org/software/systemd/man/machinectl.html#Examples)


# machinectl pull-tar  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz


Pulling  
'https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz', saving as  
'trusty-server-cloudimg-amd64-root'.
Downloading 1.7K for  
https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.

Image already downloaded. Skipping download.
Download of  
https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-root.tar.gz  
complete.
Download of https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS  
complete.
Downloading 836B for  
https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.gpg.
Download of  
https://cloud-images.ubuntu.com/trusty/current/SHA256SUMS.gpg complete.

Failed to create local image: Is a directory
Exiting

It fails with Failed to create local image: Is a directory. I  
deleted all directories in /var/lib/machines before running this. But  
it doesn't help.


2) Download docker image

# machinectl pull-dkr maxmeyer/middleman-presentation --verify=no  
--dkr-index-url=https://index.docker.io


Enqueued transfer job 2. Press C-c to continue download in background.
Pulling 'maxmeyer/middleman-presentation' with tag 'latest', saving as  
'middleman-presentation'.
Download of  
https://index.docker.io/v1/repositories/maxmeyer/middleman-presentation/images  
complete.

Index lookup succeeded, directed to registry registry-1.docker.io.
Downloading 66B for  
https://registry-1.docker.io/v1/repositories/maxmeyer/middleman-presentation/tags/latest.
Download of  
https://registry-1.docker.io/v1/repositories/maxmeyer/middleman-presentation/tags/latest  
complete.
Tag lookup succeeded, resolved to layer  
9c7a28e8ae71392749006238db6f14c7877eefb22d61fe1d80dd3628ce46e89c.
Downloading 1.9K for  
https://registry-1.docker.io/v1/images/9c7a28e8ae71392749006238db6f14c7877eefb22d61fe1d80dd3628ce46e89c/json.
Download of  
https://registry-1.docker.io/v1/images/9c7a28e8ae71392749006238db6f14c7877eefb22d61fe1d80dd3628ce46e89c/json  
complete.
Downloading 1.7K for  
https://registry-1.docker.io/v1/images/9c7a28e8ae71392749006238db6f14c7877eefb22d61fe1d80dd3628ce46e89c/ancestry.
Download of  
https://registry-1.docker.io/v1/images/9c7a28e8ae71392749006238db6f14c7877eefb22d61fe1d80dd3628ce46e89c/ancestry  
complete.

Ancestor lookup succeeded, requires layers:
 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
 8771fbfe935cde12b40418e029cdb68adff76d740eddb72fc6c811b1b4c16a3e
 0e30e84e9513cb3d9d991389adfb77ac6afc9d75a5234e3d61af2f080c75d0ce
 c90a56bfe7ddec9f0c050f2ffcaa22e85d5e5996a00d9d163f819a57dc311851
 6b030fdd4748e2dd0512b630f53d35d1034a2e293142288aa1ac740c50c0c1fc
 787349ce806c46e8573f0c4973090474c62daf9e391aee0b17a01da129376651
 9a1b111b9a31c2db50a3ddece4ff90a9a568f583ebaef0d0f8b23a86709e
 c4324c76a65d6eee9b0fbcd4fad4095510363d5b9412fb7e64e52e9c0cd724f8
 0159db5a516e0292271ecb93664c35b8d8d129176b2b3995c0671b340408e5d7
 ee340c5ac539f39ef06be2e3e6d12ebde2d7d624d6fd9b9c4176862272906f9a
 b33716f9c0ee2a2752f59e05b39b315cb6989803eb3232a396a454176da2e492
 6af4b8ec77c0503d796caa1c9ab8649fc245534dc0f3b3b77bf0fa38222f8e3b
 c5d66d7f0f7eac219505d095055d0c1a597d2c03538bec7f1690360793202753
 73b8b09f0244237c2cda8424253164328e6b8fd48869278c52ccf08dda71dbe8
 51473a2975deaa7db36de496ded61e35c00040ea5f6bed1589c4370244d04b1b
 1f74eced4c19ce234b731d5212ca36d5cf6f13db37ca003ca5c8cb5693920803
 b6ab81dd3cee7dd4b8aaef1702904e56ed8653d4bc8c9d207e15c886fa29e785
 95c4ff5d9bde3020eb6044662ce4af55449569935ee3e003b8c02609ac38aa59
 9072524810f8feee04ce0c5a8127c78b6629a32485c2897dc1e5e854c80d7609
 d7d9062aeb6dcf550991f0144df50183d9b773bcead883658297338983a3df5b
 d96ef2140cfc07e194cfb895be43cd9c78e37e0f8528ba742f2dbfc4e7657cfc
 08c69fc1e0f0de7c750ff73940f8745a8b85fd438e181a981f54ff0ef4ef8397
 0e8470f28955f606932c10539230e228f6680b6ff6ff7d58e906b19b4e971b03
 8015de42529a447a0af23514324ebb31efc52be23446709d3a1ea2195e20c02a
 07af4cff607d908c7d0ea1b7591a05902792c168d9d231a55c6487e9e37dd418
 2409dfdde91c149f10a3b1cf6ffdb0d9a4588fa2fb6086410fe0049c117ca543
 9c7a28e8ae71392749006238db6f14c7877eefb22d61fe1d80dd3628ce46e89c
Pulling layer  
511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158...
Downloading 921B for  
https://registry-1.docker.io/v1/images/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/layer.
Downloading 10.0K for  
https://registry-1.docker.io/v1/images/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/layer.
Failed 

Re: [systemd-devel] [PATCH 8/9] Add man page and references to it.

2015-02-17 Thread Didier Roche

Le 14/02/2015 17:58, Zbigniew Jędrzejewski-Szmek a écrit :

On Thu, Feb 05, 2015 at 06:11:24PM +0100, Didier Roche wrote:

Thanks for the suggestions, all applied!



+
+paraThe first time it connects to plymouth, a request
+to grab Control+C keypresses is sent, as well as a text message.
+When the cancel key is pressed, all running fscks are terminated.
+It will also cancel any new connected fsck for the lifetime of
+filenamesystemd-fsckd/filename./para

paracommandsystemd-fsckd/ will instruct plymouth to grab
Control+C keypresses. When the key is pressed, running checks will be
terminated. It will also cancel any newly connected fsck instances for
the lifetime of filenamesystemd-fsckd/filename./para

This raises an intereseting question. IIUC, fsckd will exit on idle
after 30s, losing the information that ^C was pressed. Shouldn't
the exit-on-idle be raised to something bigger like 5 minutes, to
make this less likely to happen?


Good point, 30s of idleness (and so keeping ^C status) sounded enough to 
me at boot time (the more likely this will occur), most of fsck will 
chain anyway (first, the root one, and then, the other disks). Do you 
think about some cases with some .mount unit that are activated 
afterwards but still while plymouth is shown, like some encrypted /home 
partitions before the display manager shows up (didn't include the 
change, happy to do it though)?




+
+parafilenamesystemd-fsckd/filename passes the
+following messages to the theme via libplymouth:/para

Does it actually use libplymouth?


argh, sorry, didn't change it. Now done.


+
+  refsect1
+titleSee Also/title
+para
+  
citerefentryrefentrytitlesystemd/refentrytitlemanvolnum1/manvolnum/citerefentry,
+  
citerefentryrefentrytitlesystemd-fsck/refentrytitlemanvolnum8/manvolnum/citerefentry,
+  
citerefentryrefentrytitlefsck/refentrytitlemanvolnum8/manvolnum/citerefentry,
+  
citerefentryrefentrytitlesystemd-quotacheck.service/refentrytitlemanvolnum8/manvolnum/citerefentry,
Please add something like project='man-pages' (needs to be checked) to 
citerefentry,
so the links are correct in html version.
Seems to be project='man-pages' indeed. Done when referring to non 
systemd manpages (for the fsck* references) and same on 
man/systemd-f...@.service.xml


Cheers,
Didier

From 3f888284bb59ecaa8b8fba614161dfabb6a3463e Mon Sep 17 00:00:00 2001
From: Didier Roche didro...@ubuntu.com
Date: Mon, 26 Jan 2015 17:34:59 +0100
Subject: [PATCH 8/9] Add man page and references to it.

Add man page explaining the plymouth theme protocol, usage of the daemon
as well as the socket activation part.
Adapt existing fsck man page.
---
 Makefile-man.am|  12 +++
 man/systemd-f...@.service.xml  |  24 +++---
 man/systemd-fsckd.service.xml  | 162 +
 units/systemd-fsckd.service.in |   1 +
 units/systemd-fsckd.socket |   2 +-
 5 files changed, 189 insertions(+), 12 deletions(-)
 create mode 100644 man/systemd-fsckd.service.xml

diff --git a/Makefile-man.am b/Makefile-man.am
index 105853e..f2e13e8 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -67,6 +67,7 @@ MANPAGES += \
 	man/systemd-escape.1 \
 	man/systemd-firstboot.1 \
 	man/systemd-fsck@.service.8 \
+	man/systemd-fsckd.service.8 \
 	man/systemd-fstab-generator.8 \
 	man/systemd-getty-generator.8 \
 	man/systemd-gpt-auto-generator.8 \
@@ -210,6 +211,8 @@ MANPAGES_ALIAS += \
 	man/systemd-firstboot.service.1 \
 	man/systemd-fsck-root.service.8 \
 	man/systemd-fsck.8 \
+	man/systemd-fsckd.8 \
+	man/systemd-fsckd.socket.8 \
 	man/systemd-hibernate-resume.8 \
 	man/systemd-hibernate.service.8 \
 	man/systemd-hybrid-sleep.service.8 \
@@ -323,6 +326,8 @@ man/systemd-ask-password-wall.service.8: man/systemd-ask-password-console.servic
 man/systemd-firstboot.service.1: man/systemd-firstboot.1
 man/systemd-fsck-root.service.8: man/systemd-fsck@.service.8
 man/systemd-fsck.8: man/systemd-fsck@.service.8
+man/systemd-fsckd.8: man/systemd-fsckd.service.8
+man/systemd-fsckd.socket.8: man/systemd-fsckd.service.8
 man/systemd-hibernate-resume.8: man/systemd-hibernate-resume@.service.8
 man/systemd-hibernate.service.8: man/systemd-suspend.service.8
 man/systemd-hybrid-sleep.service.8: man/systemd-suspend.service.8
@@ -606,6 +611,12 @@ man/systemd-fsck-root.service.html: man/systemd-f...@.service.html
 man/systemd-fsck.html: man/systemd-f...@.service.html
 	$(html-alias)
 
+man/systemd-fsckd.html: man/systemd-fsckd.service.html
+	$(html-alias)
+
+man/systemd-fsckd.socket.html: man/systemd-fsckd.service.html
+	$(html-alias)
+
 man/systemd-hibernate-resume.html: man/systemd-hibernate-res...@.service.html
 	$(html-alias)
 
@@ -1732,6 +1743,7 @@ EXTRA_DIST += \
 	man/systemd-escape.xml \
 	man/systemd-firstboot.xml \
 	man/systemd-f...@.service.xml \
+	man/systemd-fsckd.service.xml \
 	man/systemd-fstab-generator.xml \
 	man/systemd-getty-generator.xml \
 	man/systemd-gpt-auto-generator.xml \
diff 

Re: [systemd-devel] [PATCH 3/9] Connect to plymouth and support cancellation of in, progress fsck

2015-02-17 Thread Didier Roche

Le 14/02/2015 17:38, Zbigniew Jędrzejewski-Szmek a écrit :

On Thu, Feb 05, 2015 at 06:09:24PM +0100, Didier Roche wrote:

 From ec3b3d2cd4b0097f9fafa6c3f0f400e06292e21c Mon Sep 17 00:00:00 2001
From: Didier Roche didro...@ubuntu.com
Date: Thu, 5 Feb 2015 17:08:18 +0100
Subject: [PATCH 3/9] Connect to plymouth and support cancellation of in
  progress fsck

Try to connect and send to plymouth (if running) some checked report progress,
using direct plymouth protocole.

Update message is the following:
fsckd:num_devices:progress:string
* num_devices corresponds to the current number of devices being checked (int)
* progress corresponds to the current minimum percentage of all devices being
   checked (float, from 0 to 100)
* string is a translated message ready to be displayed by the plymouth theme
   displaying the information above. It can be overriden by plymouth themes
   supporting i18n.

Grab in fsckd plymouth watch key Control+C, and propagate this cancel request
to systemd-fsck which will terminate fsck.

Send a message to signal to user what key we are grabbing for fsck cancel.

Message is: fsckd-cancel-msg:string
Where string is a translated string ready to be displayed by the plymouth theme
indicating that Control+C can be used to cancel current checks. It can be
overriden (matching only fsckd-cancel-msg prefix) for themes supporting i18n.
---
  src/fsck/fsck.c   |  33 +
  src/fsckd/fsckd.c | 145 +-
  src/fsckd/fsckd.h |   5 ++
  3 files changed, 173 insertions(+), 10 deletions(-)

diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
index d5aaf9e..1f5a3de 100644
--- a/src/fsck/fsck.c
+++ b/src/fsck/fsck.c
@@ -132,7 +132,7 @@ static void test_files(void) {
  
  }
  
-static int process_progress(int fd, dev_t device_num) {

+static int process_progress(int fd, pid_t fsck_pid, dev_t device_num) {
  _cleanup_fclose_ FILE *f = NULL;
  usec_t last = 0;
  _cleanup_close_ int fsckd_fd = -1;
@@ -159,11 +159,13 @@ static int process_progress(int fd, dev_t device_num) {
  
  while (!feof(f)) {

  int pass;
+size_t buflen;
  size_t cur, max;
-ssize_t n;
+ssize_t r;
  usec_t t;
  _cleanup_free_ char *device = NULL;
  FsckProgress progress;
+FsckdMessage fsckd_message;
  
  if (fscanf(f, %i %lu %lu %ms, pass, cur, max, device) != 4)

  break;
@@ -181,9 +183,19 @@ static int process_progress(int fd, dev_t device_num) {
  progress.max = max;
  progress.pass = pass;
  
-n = send(fsckd_fd, progress, sizeof(FsckProgress), 0);

-if (n  0 || (size_t) n  sizeof(FsckProgress))
+r = send(fsckd_fd, progress, sizeof(FsckProgress), 0);
+if (r  0 || (size_t) r  sizeof(FsckProgress))
  log_warning_errno(errno, Cannot communicate fsck progress 
to fsckd: %m);
+
+/* get fsckd requests, only read when we have coherent size 
data */
+r = ioctl(fsckd_fd, FIONREAD, buflen);
+if (r == 0  (size_t) buflen == sizeof(FsckdMessage)) {

Shoudlnt' this be = ? If two messages are queued, buflen will be
bigger then one message, and we'll never read it.


Indeed, changed it.



+r = recv(fsckd_fd, fsckd_message, 
sizeof(FsckdMessage), 0);
+if (r  0  fsckd_message.cancel) {
+log_warning(Request to cancel fsck from 
fsckd);

log_notice or log_info. Actually log_info I think, since this is a
legitimate user request.

Done.



+
+n = send(current-fd, cancel_msg, sizeof(FsckdMessage), 0);
+if (n  0 || (size_t) n  sizeof(FsckdMessage))
+return log_warning_errno(n, Cannot send cancel to fsck on (%u, %u): 
%m, major(current-devnum), minor(current-devnum));

line wrap please.


Done. Btw, I was wondering if there was any kind of contributor rule 
like a style guideline in systemd? I probably just missed it.



+
+if (!m-plymouth_cancel_sent) {
+/* indicate to plymouth that we listen to Ctrl+C */
+r = loop_write(m-plymouth_fd, PLYMOUTH_REQUEST_KEY, 
sizeof(PLYMOUTH_REQUEST_KEY), true);
+if (r  0)
+return log_warning_errno(errno, Can't send to plymouth 
cancel key: %m);
+m-plymouth_cancel_sent = true;
+plymouth_cancel_message = strappenda(fsckd-cancel-msg:, Press 
Ctrl+C to cancel all checks in progress);

...all filesystem checks...


done (will repost the i18n patch + po ones as they are impacted by that 
change)



+r = send_message_plymouth_socket(m-plymouth_fd, 
plymouth_cancel_message, false);
+if (r  0)
+log_warning_errno(r, Can't send 

Re: [systemd-devel] /run conf_file_dirs are never created

2015-02-17 Thread Lennart Poettering
On Tue, 17.02.15 12:36, Cristian Rodríguez (crrodrig...@opensuse.org) wrote:

 Hi:
 
 It appears that with the exception of /run/tmpfiles.d , the rest of the
 volatile conf_file_dirs are never created at boot. Is this intentional ?

Yes. We only create those dirs if we actually want to place something
in them.

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] [ANNOUNCE] systemd 219

2015-02-17 Thread Maciej Wereski
Hello,

Dnia poniedziałek, 16 lutego 2015 23:59:56 Lennart Poettering pisze:

 
 Note that this version is not available in Fedora F22/F23 yet. The
 linker on ARM segfaults. Since the i386 and x86_64 versions built
 fine, I decided to release 219 anyway.
 

I was able to build systemd v219 both on armv7l and aarch64. As a workaround I 
had to disable Link Time Optimizations.

Tizen 3.0:
gcc 4.9.2
binutils 2.24.90

cheers,
-- 
Maciej Wereski
Samsung RD Institute Poland
Samsung Electronics
m.were...@partner.samsung.com
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 1/9] fsckd daemon for inter-fsckd communication

2015-02-17 Thread Didier Roche

Le 14/02/2015 17:21, Zbigniew Jędrzejewski-Szmek a écrit :

Thanks for the review, reattached the patch with those fixes.


On Thu, Feb 05, 2015 at 06:06:50PM +0100, Didier Roche wrote:
+if (fsckd_fd  0) {
+log_warning_errno(errno, Cannot open fsckd socket, we won't report 
fsck progress: %m);
+return -errno;
+}
+if (connect(fsckd_fd, sa.sa, offsetof(struct sockaddr_un, sun_path) + 
strlen(sa.un.sun_path))  0) {
+log_warning_errno(errno, Cannot connect to fsckd socket, we won't 
report fsck progress: %m);
+return -errno;
Use 'return log_warning_errno(...)'.


+}
  
  f = fdopen(fd, r);

  if (!f) {
-safe_close(fd);
+log_warning_errno(errno, Cannot connect to fsck, we won't report 
fsck progress: %m);
  return -errno;
  }

Also changed it on this last one below, thanks!


  


+
+/* ensure we have enough data to read */
+r = ioctl(fd, FIONREAD, buflen);
+if (r == 0  buflen != 0  (size_t) buflen  sizeof(FsckProgress)) {
+if (client-buflen != buflen)
+client-buflen = buflen;
+/* we got twice the same size from a bad behaving client, kick 
it off the list */
+else {

Shouldn't this be logged? Seems like this should be detected and fixed
if it happens.


Good suggestion. We don't have that much information on the client than 
the fd at this stage (if we never got progress, we don't know device 
major and minor numbers), but at least, we'll know that there are bad 
behaving client. Added.



Didier
From fb6d1cc4df6a27684720ccfacdeca3cddadc44ca Mon Sep 17 00:00:00 2001
From: Didier Roche didro...@ubuntu.com
Date: Wed, 4 Feb 2015 16:42:47 +0100
Subject: [PATCH 1/9] fsckd daemon for inter-fsckd communication

Add systemd-fsckd multiplexer which accepts multiple systemd-fsck
instances to connect to it and sends progress report. systemd-fsckd then
computes and writes to /dev/console the number of devices currently being
checked and the minimum fsck progress. This will be used for interactive
progress report and cancelling in plymouth.

systemd-fsckd stops on idle when no systemd-fsck is connected.

Make the necessary changes to systemd-fsck to connect to the systemd-fsckd
socket.
---
 .gitignore |   1 +
 Makefile.am|  13 ++
 src/fsck/fsck.c|  88 
 src/fsckd/Makefile |   1 +
 src/fsckd/fsckd.c  | 404 +
 src/fsckd/fsckd.h  |  34 +
 6 files changed, 484 insertions(+), 57 deletions(-)
 create mode 12 src/fsckd/Makefile
 create mode 100644 src/fsckd/fsckd.c
 create mode 100644 src/fsckd/fsckd.h

diff --git a/.gitignore b/.gitignore
index ab6d9d1..9400e75 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,6 +74,7 @@
 /systemd-evcat
 /systemd-firstboot
 /systemd-fsck
+/systemd-fsckd
 /systemd-fstab-generator
 /systemd-getty-generator
 /systemd-gnome-ask-password-agent
diff --git a/Makefile.am b/Makefile.am
index c463f23..e0e8bc6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -389,6 +389,7 @@ rootlibexec_PROGRAMS = \
 	systemd-remount-fs \
 	systemd-reply-password \
 	systemd-fsck \
+	systemd-fsckd \
 	systemd-machine-id-commit \
 	systemd-ac-power \
 	systemd-sysctl \
@@ -2355,6 +2356,18 @@ systemd_fsck_LDADD = \
 	libsystemd-shared.la
 
 # --
+systemd_fsckd_SOURCES = \
+	src/fsckd/fsckd.c \
+	$(NULL)
+
+systemd_fsckd_LDADD = \
+	libsystemd-internal.la \
+	libsystemd-label.la \
+	libsystemd-shared.la \
+	libudev-internal.la \
+	$(NULL)
+
+# --
 systemd_machine_id_commit_SOURCES = \
 	src/machine-id-commit/machine-id-commit.c \
 	src/core/machine-id-setup.c \
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
index 20b7940..f6ed1d1 100644
--- a/src/fsck/fsck.c
+++ b/src/fsck/fsck.c
@@ -27,6 +27,7 @@
 #include unistd.h
 #include fcntl.h
 #include sys/file.h
+#include sys/stat.h
 
 #include sd-bus.h
 #include libudev.h
@@ -39,6 +40,8 @@
 #include fileio.h
 #include udev-util.h
 #include path-util.h
+#include socket-util.h
+#include fsckd/fsckd.h
 
 static bool arg_skip = false;
 static bool arg_force = false;
@@ -132,58 +135,36 @@ static void test_files(void) {
 arg_show_progress = true;
 }
 
-static double percent(int pass, unsigned long cur, unsigned long max) {
-/* Values stolen from e2fsck */
-
-static const int pass_table[] = {
-0, 70, 90, 92, 95, 100
+static int process_progress(int fd, dev_t device_num) {
+_cleanup_fclose_ FILE *f = NULL;
+usec_t last = 0;
+_cleanup_close_ int fsckd_fd = -1;
+static const union sockaddr_union sa = {
+.un.sun_family = AF_UNIX,
+.un.sun_path = FSCKD_SOCKET_PATH,
 };
 
-

Re: [systemd-devel] Scroll journalctl

2015-02-17 Thread Floris
Op Tue, 17 Feb 2015 15:25:42 +0100 schreef Reindl Harald  
h.rei...@thelounge.net:





Am 17.02.2015 um 15:14 schrieb Floris:

Dear maintainers,

in the past I was able to scroll the journalctl output with the arrow  
keys.
Unfortunately since 215 I have to use the s, d, f, and z keys.  
Even

after the 218 update there is no difference.

I hope someone can point me into the right direction to solve this  
problem


in doubt journalctl | less to skip the hardwired pager



Thanks,
'less' was missing on my system, after installing the journal
works as expected.

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


[systemd-devel] /run conf_file_dirs are never created

2015-02-17 Thread Cristian Rodríguez

Hi:

It appears that with the exception of /run/tmpfiles.d , the rest of the 
volatile conf_file_dirs are never created at boot. Is this intentional ?

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


Re: [systemd-devel] Scroll journalctl

2015-02-17 Thread Reindl Harald



Am 17.02.2015 um 15:14 schrieb Floris:

Dear maintainers,

in the past I was able to scroll the journalctl output with the arrow keys.
Unfortunately since 215 I have to use the s, d, f, and z keys. Even
after the 218 update there is no difference.

I hope someone can point me into the right direction to solve this problem


in doubt journalctl | less to skip the hardwired pager



signature.asc
Description: OpenPGP digital signature
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] Scroll journalctl

2015-02-17 Thread Floris

Dear maintainers,

in the past I was able to scroll the journalctl output with the arrow keys.
Unfortunately since 215 I have to use the s, d, f, and z keys. Even
after the 218 update there is no difference.

I hope someone can point me into the right direction to solve this problem,

thanks

floris


uname -a
Linux Jessica 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03)  
x86_64 GNU/Linux

systemd --version
systemd 218
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP  
+GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN

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


Re: [systemd-devel] /run conf_file_dirs are never created

2015-02-17 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Feb 17, 2015 at 12:36:39PM -0300, Cristian Rodríguez wrote:
 Hi:
 
 It appears that with the exception of /run/tmpfiles.d , the rest of
 the volatile conf_file_dirs are never created at boot. Is this
 intentional ?
/run/tmpfiles.d is created as a side effect of kmod running. I don't
think empty directories are configured to be created anywhere.

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


Re: [systemd-devel] [PATCH] shutdown: avoid calling `kexec` binary unnessecarily

2015-02-17 Thread Zbigniew Jędrzejewski-Szmek
On Mon, Feb 16, 2015 at 07:53:47PM -0800, Shawn Landden wrote:
 On Mon, Feb 16, 2015 at 5:08 AM, Lennart Poettering lenn...@poettering.net
 wrote:
 
  On Fri, 13.02.15 14:18, Shawn Landden (sh...@churchofgit.com) wrote:
 
   Still use helper when Xen Dom0, to avoid duplicating some hairy
   code.
 
  Hmm, what precisely does the helper do on xen?
 
   So we don't have any logic to load kexec kernels?
 
  Currently we don't.
 
  My hope though was that we can make the whole kexec thing work without
  having kexec-tools installed. With the new kernel syscall for loading
  the kernel we should be able to implement this all without any other
  tools.
 
  Ideally we'd not use any external tools anymore, not even in the Xen
  case, hence I am curious what precisely the special hookup for Xen is
  here...?
 
  Lennart
 
 
 https://git.kernel.org/cgit/utils/kernel/kexec/kexec-tools.git/tree/kexec/kexec-xen.c
 
 I've attached my patch.
 I'm having a problem with kexec_file_load() returning ENOMEM that I havn't
 resolved.
 
  --
  Lennart Poettering, Red Hat
  ___
  systemd-devel mailing list
  systemd-devel@lists.freedesktop.org
  http://lists.freedesktop.org/mailman/listinfo/systemd-devel
 
 
 
 
 -- 
 Shawn Landden

 From d5446e324143f55e67bc2defe1c78a4ea4201142 Mon Sep 17 00:00:00 2001
 From: Shawn Landden sh...@churchofgit.com
 Date: Fri, 13 Feb 2015 13:48:07 -0800
 Subject: [PATCH] shutdown: avoid calling `kexec` binary unnessecarily
 
 Still use helper when Xen Dom0, to avoid duplicating some hairy code.
 So we don't have any logic to load kexec kernels?
 ---
  TODO |   3 --
  src/core/shutdown.c  | 121 
 ++-
  src/shared/missing.h |   7 +++
  3 files changed, 116 insertions(+), 15 deletions(-)
 
 diff --git a/TODO b/TODO
 index 255a4f2..d914d2c 100644
 --- a/TODO
 +++ b/TODO
 @@ -90,9 +90,6 @@ Features:
  * maybe introduce WantsMountsFor=? Usecase:

 http://lists.freedesktop.org/archives/systemd-devel/2015-January/027729.html
  
 -* rework kexec logic to use new kexec_file_load() syscall, so that we
 -  don't have to call kexec tool anymore.
 -
  * The udev blkid built-in should expose a property that reflects
whether media was sensed in USB CF/SD card readers. This should then
be used to control SYSTEMD_READY=1/0 so that USB card readers aren't
 diff --git a/src/core/shutdown.c b/src/core/shutdown.c
 index 71f001a..14febf3 100644
 --- a/src/core/shutdown.c
 +++ b/src/core/shutdown.c
 @@ -19,6 +19,7 @@
along with systemd; If not, see http://www.gnu.org/licenses/.
  ***/
  
 +#include ctype.h
  #include sys/mman.h
  #include sys/types.h
  #include sys/reboot.h
 @@ -27,6 +28,7 @@
  #include sys/stat.h
  #include sys/mount.h
  #include sys/syscall.h
 +#include sys/utsname.h
  #include fcntl.h
  #include dirent.h
  #include errno.h
 @@ -138,6 +140,35 @@ static int parse_argv(int argc, char *argv[]) {
  return 0;
  }
  
 +/*
 + * Remove parameter from a kernel command line. Helper function for kexec.
 + * (copied from kexec-tools)
 + */
 +static void remove_parameter(char *line, const char *param_name) {
 +char *start, *end;
 +
 +start = strstr(line, param_name);
 +
 +/* parameter not found */
 +if (!start)
 +return;
 +
 +/*
 + * check if that's really the start of a parameter and not in
 + * the middle of the word
 + */
 +if (start != line  !isspace(*(start-1)))
 +return;
 +
 +end = strstr(start,  );
 +if (!end)
 +*start = 0;
 +else {
 +memmove(start, end+1, strlen(end));
 +*(end + strlen(end)) = 0;
 +}
 +}
 +
  static int switch_root_initramfs(void) {
  if (mount(/run/initramfs, /run/initramfs, NULL, MS_BIND, NULL)  
 0)
  return log_error_errno(errno, Failed to mount bind 
 /run/initramfs on /run/initramfs: %m);
 @@ -152,6 +183,57 @@ static int switch_root_initramfs(void) {
  return switch_root(/run/initramfs, /oldroot, false, MS_BIND);
  }
  
 +static int kernel_load(bool overwrite) {
 +int r = -ENOTSUP;
 +
 +/* only x86_64 and x32 in 3.18 */
 +#ifdef __NR_kexec_file_load
 +/* If uses has no already loaded a kexec kernel assume they
 + * want the same one they are currently running. */
 +if (!overwrite  !kexec_loaded()) {
 +struct utsname u;
 +_cleanup_free_ char *vmlinuz = NULL, *initrd = NULL, 
 *cmdline = NULL;
 +_cleanup_close_ int vmlinuz_fd = -1, initrd_fd = -1;
 +
 +r = uname(u);
 +if (r  0)
 +return -errno;
 +
 +vmlinuz = malloc(strlen(/boot/vmlinuz-) + 
 strlen(u.release) + 1);
 +initrd  = 

Re: [systemd-devel] tmpfiles.d specifier support on argument when operating on files

2015-02-17 Thread Cristian Rodríguez

El 17/02/15 a las 15:38, Cristian Rodríguez escribió:

HI:

In openSUSE, we have per *running kernel* sysctl snippets, currently
implemented as patch on systemd-sysctl.. I 'm currently attempting to
replace it for something sane..like

d /run/sysctl.d
L/run/sysctl.d/00-sysctl.conf-%v ----
/boot/sysctl.conf-%v

BUt argument does not support specifier expasion when dealing with
path names.. would you take patches for this ?

Thanks.




Ok, this patch works for my usecase..



From 10f9c96bb40834191765bd19f313ab17d18e3b31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= crrodrig...@opensuse.org
Date: Tue, 17 Feb 2015 17:34:17 -0300
Subject: [PATCH] tmpfiles: add specifier support for the create symlink
 argument

---
 src/tmpfiles/tmpfiles.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index c948d4d..1b35b8e 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -1590,6 +1590,12 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
 i.argument = strappend(/usr/share/factory/, i.path);
 if (!i.argument)
 return log_oom();
+} else {
+r = specifier_printf(i.argument, specifier_table, NULL, i.argument);
+if (r  0) {
+log_error([%s:%u] Failed to replace specifiers: %s, fname, line, path);
+return r;
+}
 }
 break;
 
-- 
2.2.2

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


Re: [systemd-devel] [PATCH] unit: When stopping due to BindsTo=, log which unit caused it

2015-02-17 Thread Colin Walters
On Tue, Feb 17, 2015, at 01:47 PM, Colin Walters wrote:
 I'm trying to track down a relatively recent change in systemd
 which broke OSTree; see https://bugzilla.gnome.org/show_bug.cgi?id=743891
 
 Systemd started to stop sysroot.mount, and this patch should help
 me debug why at least.

Running with this patch, I see:

systemd[1]: Unit sysroot.mount is bound to inactive unit dev-vda3.device. 
Stopping, too.

But, dev-vda3.device is active:

* dev-vda3.device - /dev/vda3
   Follow: unit currently follows state of 
sys-devices-pci:00-:00:07.0-virtio2-block-vda-vda3.device
   Loaded: loaded
   Active: active (plugged) since Tue 2015-02-17 19:15:29 GMT; 6min ago
   Device: /sys/devices/pci:00/:00:07.0/virtio2/block/vda/vda3

I'll see if I can get more information out of debug logging.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [ANNOUNCE] systemd 219

2015-02-17 Thread Goffredo Baroncelli
Hi Lennart,

On 2015-02-16 23:59, Lennart Poettering wrote:
 * journald now sets the special FS_NOCOW file flag for its
   journal files. This should improve performance on btrfs, by
   avoiding heavy fragmentation when journald's write-pattern
   is used on COW file systems. It degrades btrfs' data
   integrity guarantees for the files to the same levels as for
   ext3/ext4 however. This should be OK though as journald does
   its own data integrity checks and all its objects are
   checksummed on disk. Also, journald should handle btrfs disk
   full events a lot more gracefully now, by processing SIGBUS
   errors, and not relying on fallocate() anymore.

If I read correctly the code, the FS_NOCOW is a temporary workaround, i.e.
when the file is closed (or rotated ?) the FS_NOCOW flags is unset again. 
It is true ?

If so, the time window where a file is un-protect by the checksum is
quite small. I was worried not about the corruption detection but about loosing 
the ability to recover the file from a good copy (if available) in case of 
corruption. 
But this seems limited only when the file is in use (before the next rotation).

BR
G.Baroncelli
-- 
gpg @keyserver.linux.it: Goffredo Baroncelli kreijackATinwind.it
Key fingerprint BBF5 1610 0B64 DAC6 5F7D  17B2 0EDA 9B37 8B82 E0B5

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


Re: [systemd-devel] systemd-networkd mysteriously shutting down after launch

2015-02-17 Thread Keller, Jacob E
On Sat, 2015-02-14 at 18:03 +0100, Zbigniew Jędrzejewski-Szmek wrote:
 On Fri, Feb 13, 2015 at 10:49:12AM +0100, Lennart Poettering wrote:
  On Thu, 12.02.15 22:30, Keller, Jacob E (jacob.e.kel...@intel.com) wrote:
  
   On Thu, 2015-02-12 at 20:15 +0100, Tom Gundersen wrote:
On Thu, Feb 12, 2015 at 7:28 PM, Keller, Jacob E
   
   Now I'm having an interesting issue with the current git of
   systemd-networkd... It works just fine on load, and I get an ip address
   and everything is happy. After some amount of time, systemd-networkd
   goes into shutting down.. and I lose my ip address.. There is nothing
   obvious in the log to indicate that it was turned off.
   
   Any suggestions? I'm capturing a clean boot with the issue with
   SYSTEMD_LOG_LEVEL=debug enabled for more information now.
  
  This might be caused by the new exit-on-idle logic Tom added. But that
  should leave the IP address untouched when exiting.
  
  Tom, can you look at this?
 
 This should be fixed by
 
 commit a8ba6cd15d3a5edf1f9fbb4fd08dc428c3939072
 Author: Tom Gundersen t...@jklm.no
 Date:   Fri Feb 13 16:20:45 2015 +0100
 
 exit-on-idle: only exit if actually idle
 
 sd_event_wait() returning 0 usually means that it timed out, which means 
 it must
 have been idle. However, sd_event_wait() may return 0 in case an event 
 was triggered
 but it turned out there was nothing to do. Make the check for idle 
 explicit to avoid
 this edge-case.
 
 Zbyszek
 

Yep this was fixed. Thanks so much for the help!

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


[systemd-devel] [PATCH] unit: When stopping due to BindsTo=, log which unit caused it

2015-02-17 Thread Colin Walters
I'm trying to track down a relatively recent change in systemd
which broke OSTree; see https://bugzilla.gnome.org/show_bug.cgi?id=743891

Systemd started to stop sysroot.mount, and this patch should help
me debug why at least.

While we're here, break on the first unit we find that will
deactivate, as there's no point in further iteration.
---
 src/core/unit.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/core/unit.c b/src/core/unit.c
index ee8e607..c88eca3 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -1629,7 +1629,7 @@ static void unit_check_unneeded(Unit *u) {
 
 static void unit_check_binds_to(Unit *u) {
 bool stop = false;
-Unit *other;
+Unit *other = NULL;
 Iterator i;
 
 assert(u);
@@ -1648,12 +1648,14 @@ static void unit_check_binds_to(Unit *u) {
 continue;
 
 stop = true;
+break;
 }
 
 if (!stop)
 return;
 
-log_unit_info(u-id, Unit %s is bound to inactive unit. Stopping, 
too., u-id);
+assert(other);
+log_unit_info(u-id, Unit %s is bound to inactive unit %s. Stopping, 
too., u-id, other-id);
 
 /* A unit we need to run is gone. Sniff. Let's stop this. */
 manager_add_job(u-manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL);
-- 
1.8.3.1

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


[systemd-devel] tmpfiles.d specifier support on argument when operating on files

2015-02-17 Thread Cristian Rodríguez

HI:

In openSUSE, we have per *running kernel* sysctl snippets, currently 
implemented as patch on systemd-sysctl.. I 'm currently attempting to 
replace it for something sane..like


d /run/sysctl.d
L/run/sysctl.d/00-sysctl.conf-%v ----   /boot/sysctl.conf-%v

BUt argument does not support specifier expasion when dealing with 
path names.. would you take patches for this ?


Thanks.


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


[systemd-devel] [PATCH v4] Added support for Uplink Failure Detection using BindCarrier

2015-02-17 Thread Alin Rauta
---
 man/systemd.network.xml  |  11 +
 src/libsystemd/sd-network/sd-network.c   |   8 +
 src/network/networkctl.c |  43 ++--
 src/network/networkd-link.c  | 394 +--
 src/network/networkd-link.h  |   3 +
 src/network/networkd-network-gperf.gperf |   1 +
 src/network/networkd-network.c   |   1 +
 src/network/networkd.h   |   2 +-
 src/systemd/sd-network.h |   6 +
 9 files changed, 438 insertions(+), 31 deletions(-)

diff --git a/man/systemd.network.xml b/man/systemd.network.xml
index 485876b..60252e5 100644
--- a/man/systemd.network.xml
+++ b/man/systemd.network.xml
@@ -280,6 +280,17 @@
   /listitem
 /varlistentry
 varlistentry
+  termvarnameBindCarrier=/varname/term
+  listitem
+paraA port or a list of ports. When set, controls the
+behaviour of the current interface. When all ports in the list
+are in an operational down state, the current interface is brought
+down. When at least one port has carrier, the current interface
+is brought up.
+/para
+  /listitem
+/varlistentry
+varlistentry
   termvarnameAddress=/varname/term
   listitem
 paraA static IPv4 or IPv6 address and its prefix length,
diff --git a/src/libsystemd/sd-network/sd-network.c 
b/src/libsystemd/sd-network/sd-network.c
index c4713fe..fb5152c 100644
--- a/src/libsystemd/sd-network/sd-network.c
+++ b/src/libsystemd/sd-network/sd-network.c
@@ -264,6 +264,14 @@ _public_ int sd_network_link_get_domains(int ifindex, char 
***ret) {
 return network_get_link_strv(DOMAINS, ifindex, ret);
 }
 
+_public_ int sd_network_link_get_carrier_bound_to(int ifindex, char ***ret) {
+return network_get_link_strv(CARRIER_BOUND_TO, ifindex, ret);
+}
+
+_public_ int sd_network_link_get_carrier_bound_by(int ifindex, char ***ret) {
+return network_get_link_strv(CARRIER_BOUND_BY, ifindex, ret);
+}
+
 _public_ int sd_network_link_get_wildcard_domain(int ifindex) {
 int r;
 _cleanup_free_ char *p = NULL, *s = NULL;
diff --git a/src/network/networkctl.c b/src/network/networkctl.c
index aa83f32..0637513 100644
--- a/src/network/networkctl.c
+++ b/src/network/networkctl.c
@@ -508,6 +508,8 @@ static int link_status_one(
 const char *driver = NULL, *path = NULL, *vendor = NULL, *model = 
NULL, *link = NULL;
 const char *on_color_operational, *off_color_operational,
*on_color_setup, *off_color_setup;
+_cleanup_strv_free_ char **carrier_bound_to = NULL;
+_cleanup_strv_free_ char **carrier_bound_by = NULL;
 struct ether_addr e;
 unsigned iftype;
 int r, ifindex;
@@ -606,12 +608,15 @@ static int link_status_one(
 
 sd_network_link_get_network_file(ifindex, network);
 
+sd_network_link_get_carrier_bound_to(ifindex, carrier_bound_to);
+sd_network_link_get_carrier_bound_by(ifindex, carrier_bound_by);
+
 printf(%s%s%s %i: %s\n, on_color_operational, 
draw_special_char(DRAW_BLACK_CIRCLE), off_color_operational, ifindex, name);
 
-printf(   Link File: %s\n
-   Network File: %s\n
-   Type: %s\n
-  State: %s%s%s (%s%s%s)\n,
+printf(   Link File: %s\n
+   Network File: %s\n
+   Type: %s\n
+  State: %s%s%s (%s%s%s)\n,
strna(link),
strna(network),
strna(t),
@@ -619,13 +624,13 @@ static int link_status_one(
on_color_setup, strna(setup_state), off_color_setup);
 
 if (path)
-printf(Path: %s\n, path);
+printf(Path: %s\n, path);
 if (driver)
-printf(  Driver: %s\n, driver);
+printf(  Driver: %s\n, driver);
 if (vendor)
-printf(  Vendor: %s\n, vendor);
+printf(  Vendor: %s\n, vendor);
 if (model)
-printf(   Model: %s\n, model);
+printf(   Model: %s\n, model);
 
 if (have_mac) {
 _cleanup_free_ char *description = NULL;
@@ -634,23 +639,29 @@ static int link_status_one(
 ieee_oui(hwdb, e, description);
 
 if (description)
-printf(  HW Address: %s (%s)\n, 
ether_addr_to_string(e, ea), description);
+printf(  HW Address: %s (%s)\n, 
ether_addr_to_string(e, ea), description);
 else
-printf(  HW Address: %s\n, ether_addr_to_string(e, 
ea));
+printf(  HW Address: %s\n, 
ether_addr_to_string(e, ea));
 }
 
 if (mtu  0)
-printf( MTU: %u\n, mtu);
+   

[systemd-devel] [PATCH v4] Added support for Uplink Failure Detection using BindCarrier

2015-02-17 Thread Alin Rauta
Hi,

I've creating patch v4 after addressing your comments.

I provided two APIs for networkctl command:
1. int sd_network_link_get_carrier_bound_to(int ifindex, char ***carriers);
2. int sd_network_link_get_carrier_bound_by(int ifindex, char ***carriers);

This way, only few changes were needed in networkctl.

Only the bound_by links (uplinks) are monitored.
The bound_by map is evaluated only when the carrier is lost or gained.

When a link is added, its bound_by  bound_to maps are created.

When a link is dropped, both maps are removed.
When a link is readded, the maps are created again.

When a link is renamed, the old bound_by  bound_to maps are removed
and new ones are created taking into account the new name.

Let me know what you think,
Alin

Alin Rauta (1):
  Added support for Uplink Failure Detection using BindCarrier

 man/systemd.network.xml  |  11 +
 src/libsystemd/sd-network/sd-network.c   |   8 +
 src/network/networkctl.c |  43 ++--
 src/network/networkd-link.c  | 394 +--
 src/network/networkd-link.h  |   3 +
 src/network/networkd-network-gperf.gperf |   1 +
 src/network/networkd-network.c   |   1 +
 src/network/networkd.h   |   2 +-
 src/systemd/sd-network.h |   6 +
 9 files changed, 438 insertions(+), 31 deletions(-)

-- 
1.9.3

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


Re: [systemd-devel] [PATCH] test: bump KDBUS_CONN_MAX_MSGS_PER_USER value

2015-02-17 Thread David Herrmann
Hi

On Tue, Feb 17, 2015 at 12:35 PM, Lukasz Skalski l.skal...@samsung.com wrote:
 On 02/17/2015 12:20 PM, Djalal Harouni wrote:
 Hi Lukasz,


 Hi Djalal,

 On Tue, Feb 17, 2015 at 11:37:53AM +0100, Lukasz Skalski wrote:
 diff --git a/test/test-message.c b/test/test-message.c
 index 03ac71e..0cae942 100644
 --- a/test/test-message.c
 +++ b/test/test-message.c
 @@ -28,7 +28,7 @@
   * maximum number of queued messages from the same indvidual user after the
   * the un-accounted value has been hit
   */
 -#define KDBUS_CONN_MAX_MSGS_PER_USER16
 +#define KDBUS_CONN_MAX_MSGS_PER_USER128
 Actually, the limit bump is just a temporary solution, to inspect or fix
 other bugs related to Gnome. David is working on this, I will let him
 decide if he wants to apply this patch or let it as it...


 Yes, I know that it is temporary solution, but at this moment, after
 bumping KDBUS_CONN_MAX_MSGS_PER_USER value we have some new errors in
 tests - for example in test-message.c:736 we get EXFULL errno
 (queue.c:287 says that we can't take more than half of the remaining
 space) instead of ENOBUFS. IMO we should align tests with latest changes.

For the archives (as said on IRC): The old quota checks were easily
exploitable, but on the other hand way too restrictive. On some fast
machines, 32 queued messages exceeds the polkit queues on normal
boots. That's why I bumped the limit for now.

The patch you posted is technically correct (and I have the same
queued locally since yesterday). However, the limit is so high, that
you basically exceed the 10M pool size and thus cannot really test for
the quota limits.

I'm reworking the whole quota logic. I hope I can push it later today.

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


[systemd-devel] feature request: dlopen

2015-02-17 Thread Luke Kenneth Casson Leighton
i don't know if you've seen this yet:
http://news.slashdot.org/story/15/02/15/1959209/removing-libsystemd0-from-a-live-running-debian-system

my name's luke leighton, i'm a software libre advocate, and the first
major contribution that i made to software libre was to help bridge
the impossible chasm between the microsoft world and the unix world,
back in 1996 to 1999, by implementing and documenting NT Domains as
well as a proper Network Neighbourhood (features of which,
interestingly, have since been completely reimplemented in the form of
avahi and zeroconf).

i now tend to keep to myself except in circumstances where i perceive
something similar occurring in the software libre community: a
polarisation or an opportunity to extend (or reduce) the reach of
software libre.  a decision that has been made which makes the lives
of huge numbers of ordinary users and systems administrators
incredibly difficult, forcing them to make impossible decisions - that
sort of thing.

 i note that there was announcement recently that the systemd team
'listens to users', so i am taking you at your word on that.

now, i'm keenly aware of the views (technical and more) of systemd:
i'm aware that there have been polls.  most of them remind me of
mother theresa's refusal to go to a war protest rally - she pointed
out that next time they had a *peace* rally, to give her a call.

so i'm not going to protest - i'm going to try a different approach.
i'd like you to look at this list of debian packages that are
dependent on libsystemd0:
http://lkcl.net/reports/removing_systemd_from_debian/list_of_libsystemd0_dependent_packages.txt

it's an enormous list, comprising some 15% of the packages present in
debian today.  it includes apache2-dev, bluetooth / bluez, the gimp,
php, *all* of the video players (xine, mplayer, vlc), *all* of the
games and 3D packages that use SDL or pulseaudio (which is most of
them), *all* of the major desktop environments including xfce4, lxde,
Gnome and KDE/Plasma, cups-daemon, one of the anti-virus daemons, most
of the music software packages and services, most of the VoIP clients,
the android SDK, the eclipse IDE, OpenJDK 7, erlang, Apache
Tomcat. i'm just absolutely blown away by the extent of the
dependencies.

oh - and php as well.  what the heck php5 is doing with a hard
dependency on libsystemd0 i cannot imagine.

now, because those are hard compile-time dependencies, the only
possibility for the average debian user who chooses *not* to have
libsystemd0 present on their system is for them to simply... not use
*anything* on that list of over four and a half THOUSAND packages.

i think the most important question to ask you at this point is: as a
team, were you aware of the extent to which libsystemd0 has become a
hard compile-time dependency on so many critical software packages in
use today?

and the second question, which is just as important, is: does this
shock or alarm you enough to appreciate why people find the rapid
introduction of libsystemd0 to be so objectionable?  before answering,
please bear in mind that i have done an analysis of a similar library
and runtime (which i worked with a decade ago and am a minor
contributor on): libselinux1 and SE/LInux.

i can tell you right now that the way in which SE/Linux was introduced
is *genuinely* completely different from the one that has brought us
libsystemd0 (and has nothing to do with the technical debate, merits
or otherwise of the software *or* its alternatives).

 in fact, the way in which libselinux1 was introduced - the careful
research, the definition of its scope, how its instigators stuck to a
clear roadmap, and its gradual introduction as an *optional* component
that could be tested, deployed and rolled back *without* inconvenience
or attempting to reverse impossiblly challenging or irreversible
decisions if found to be troublesome, could be said (with
understatement) to be a humbling model that libsystemd0 should learn
from, retrospectively, very very fast.

now, since beginning to write this a couple of days ago, i have
encountered this:
* https://lists.debian.org/debian-devel/2015/02/msg00189.html
* http://forums.debian.net/viewtopic.php?f=20t=119836

there, we see that a debian developer has created unofficial packages
that, if installed, provide replacements for key strategic packages
entirely recompiled *without* systemd and without libsystemd0 being
present.

the key here is that they *are* entirely unofficial, making the
decision to install them a difficult one, and flat-out impossible for
many deployments where there are rules and contracts in place that
prevent and prohibit the use even of debian-backports, let alone
unofficial repositories.

also, adam's work is only going to get harder and harder as time goes
by, as the depth and extent of systemd's reach increases.  so, whilst
it's a good thing that adam has achieved what he has, it can
definitely be said to be a stop-gap measure - allowing a *small
subset* of users 

Re: [systemd-devel] feature request: dlopen

2015-02-17 Thread Greg KH
On Tue, Feb 17, 2015 at 08:24:37PM +, Luke Kenneth Casson Leighton wrote:
 so i'm not going to protest - i'm going to try a different approach.
 i'd like you to look at this list of debian packages that are
 dependent on libsystemd0:
 http://lkcl.net/reports/removing_systemd_from_debian/list_of_libsystemd0_dependent_packages.txt
 
 it's an enormous list, comprising some 15% of the packages present in
 debian today.  it includes apache2-dev, bluetooth / bluez, the gimp,
 php, *all* of the video players (xine, mplayer, vlc), *all* of the
 games and 3D packages that use SDL or pulseaudio (which is most of
 them), *all* of the major desktop environments including xfce4, lxde,
 Gnome and KDE/Plasma, cups-daemon, one of the anti-virus daemons, most
 of the music software packages and services, most of the VoIP clients,
 the android SDK, the eclipse IDE, OpenJDK 7, erlang, Apache
 Tomcat. i'm just absolutely blown away by the extent of the
 dependencies.

How exactly did you create such a dependancy list?  On my system
(non-debian but fully systemd-only), I picked two random packages from
your list, gimp and cheese:
$ ldd /usr/bin/cheese | grep system
$ ldd /usr/bin/gimp | grep system

Hm, no dependencies there.

Perhaps you might wish to just file a Debian bug so that they fix their
build systems?  Arch Linux doesn't have this kind of requirement, so
something must be odd here...

Also, this is a distro choice to make, the Debian developers seem pretty
happy with systemd and how it is being loaded in their systems, so
perhaps you might wish to ask them about this hard-requirement.  Other
distros do not have such a hard-requirement at this time, perhaps you
might wish to try one of them if you do not want to use systemd?

thanks,

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


Re: [systemd-devel] feature request: dlopen

2015-02-17 Thread Michael Biebl
2015-02-17 22:25 GMT+01:00 Greg KH gre...@linuxfoundation.org:
 On Tue, Feb 17, 2015 at 08:24:37PM +, Luke Kenneth Casson Leighton wrote:
 so i'm not going to protest - i'm going to try a different approach.
 i'd like you to look at this list of debian packages that are
 dependent on libsystemd0:
 http://lkcl.net/reports/removing_systemd_from_debian/list_of_libsystemd0_dependent_packages.txt

 it's an enormous list, comprising some 15% of the packages present in
 debian today.  it includes apache2-dev, bluetooth / bluez, the gimp,
 php, *all* of the video players (xine, mplayer, vlc), *all* of the
 games and 3D packages that use SDL or pulseaudio (which is most of
 them), *all* of the major desktop environments including xfce4, lxde,
 Gnome and KDE/Plasma, cups-daemon, one of the anti-virus daemons, most
 of the music software packages and services, most of the VoIP clients,
 the android SDK, the eclipse IDE, OpenJDK 7, erlang, Apache
 Tomcat. i'm just absolutely blown away by the extent of the
 dependencies.

 How exactly did you create such a dependancy list?  On my system
 (non-debian but fully systemd-only), I picked two random packages from
 your list, gimp and cheese:
 $ ldd /usr/bin/cheese | grep system
 $ ldd /usr/bin/gimp | grep system

 Hm, no dependencies there.

 Perhaps you might wish to just file a Debian bug so that they fix their
 build systems?  Arch Linux doesn't have this kind of requirement, so
 something must be odd here...


There is no such dependency in Debian either [1].
Luke simply has no idea what he is talking about.
It would be great if Luke did some basic research and educate himself
and not spread such misinformation.




[1] https://packages.debian.org/sid/gimp
-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] feature request: dlopen

2015-02-17 Thread Tom Gundersen
Hi Luke,

On Tue, Feb 17, 2015 at 9:24 PM, Luke Kenneth Casson Leighton
l...@lkcl.net wrote:
  i note that there was announcement recently that the systemd team
 'listens to users', so i am taking you at your word on that.

I believe we are listening a lot. That does not necessarily mean that
everyone will get all that they ask for though...

 i'd like you to look at this list of debian packages that are
 dependent on libsystemd0:
 http://lkcl.net/reports/removing_systemd_from_debian/list_of_libsystemd0_dependent_packages.txt

 it's an enormous list, comprising some 15% of the packages present in
 debian today.  it includes apache2-dev, bluetooth / bluez, the gimp,
 php, *all* of the video players (xine, mplayer, vlc), *all* of the
 games and 3D packages that use SDL or pulseaudio (which is most of
 them), *all* of the major desktop environments including xfce4, lxde,
 Gnome and KDE/Plasma, cups-daemon, one of the anti-virus daemons, most
 of the music software packages and services, most of the VoIP clients,
 the android SDK, the eclipse IDE, OpenJDK 7, erlang, Apache
 Tomcat. i'm just absolutely blown away by the extent of the
 dependencies.

 oh - and php as well.  what the heck php5 is doing with a hard
 dependency on libsystemd0 i cannot imagine.

 now, because those are hard compile-time dependencies, the only
 possibility for the average debian user who chooses *not* to have
 libsystemd0 present on their system is for them to simply... not use
 *anything* on that list of over four and a half THOUSAND packages.

 i think the most important question to ask you at this point is: as a
 team, were you aware of the extent to which libsystemd0 has become a
 hard compile-time dependency on so many critical software packages in
 use today?

Speaking only for myself: no I was not aware of that. Moreover, I find
it completely unbelievable. Admittedly I do not use Debian, and did
not check how they do their packaging, but there is just no reason at
all for most of those packages to link against libsystemd.

 and the second question, which is just as important, is: does this
 shock or alarm you enough to appreciate why people find the rapid
 introduction of libsystemd0 to be so objectionable?

Again, speaking only for myself: no. (Again with the caveat that I
don't actually believe in your statements, but for the sake of
argument...) we are providing software that we hope people find
useful. That includes a C library that people may link against if they
so wish. If a lot of third-party developers chose to do that, that is
firstly a sign that we are successful in creating useful software and
secondly completely out of our control. If you don't want people to
use our APIs, you should address the third-party developers who do. I
really don't see what there is for us to do here.

If you find the existence of libsystemd on your machine objectionable
(note that it does not necessarily entail actually using systemd as
PID1), then a more useful way to spend your time would be to post
patches to make sure the existence of libsystemd does not adversely
affect the software you are running (these patches probably need to go
to the projects linking against systemd). In most cases that I'm aware
of (e.g. the code I have contributed to third-party packages), the
usage of libsystemd is a noop on systems where systemd is not running,
so I really don't see the problem here.

 to the trouble of digging into why libsystemd0 is found to be so
 objectionable.  my take on the matter is that the technical arguments
 - benefits or otherwise - of systemd and its alternatives - is
 completely irrelevant.  over time people *will* develop alternatives
 (and are already doing so: mdev, eudev, uselessd, openrc and many
 more).

Side note: these things are not alternatives to libsystemd (they are
alternatives to udev and/or systemd as PID1).

 no, i feel that it really does have nothing to do with the technical
 benefits of the available options: what people are finding completely
 objectionable is that they have *no good choices*.  it's use systemd
 or go away - and unfortunately almost without exception (slackware
 and FreeBSD being two notable ones) that piss off attitude is being
 replicated across *the entire GNU/Linux Distro world*.  the situation
 is completely unprecedented and without parallel in the short history
 of software libre (and that's something that, honestly, i find to be
 really shocking, hence why i am contacting you).

I disagree with most of that, but importantly you are missing a point:
many (most?) packages linking against libsystemd can already at
runtime fall back to alternatives. There is really no need for dlopen
for this. The only cost you have is to have the (possibly unused)
libsystemd library around on your system. It will be far from the only
unused library you have, so this really seems like a tempest in a
teapot.

 overall, they feel that they're being forced into the use of something
 that they feel 

Re: [systemd-devel] udev: 60-persistent-storage.rules attempts blkid on removable devices with no medium present

2015-02-17 Thread Oliver Neukum
On Mon, 2015-02-16 at 14:52 -0800, Hans Scholze wrote:
 Hi,
 
 
 I'm not sure if this is considered a problem but I noticed some
 spurious error messages during boot.  The source appears to be:
 
 
 1. a USB media card reader is plugged in at boot
 2. the device node exists regardless of whether a card is present
 (expected)
 3. line 70 of 60-persistent-storage.rules (KERNEL!=sr*,
 IMPORT{builtin}=blkid) attempts blkid on the device with no card
 present
 4. the open() call in builtin_blkid() in udev-builtin-blkid.c fails
 resulting in an error: /dev/sdd: No medium found message printed to
 stderr
 
That seems to be the error. You cannot guarantee that blkid will never
see this error if the drive has removable media. It should have an
option for silently failing in these cases.

Regards
Oliver



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


Re: [systemd-devel] feature request: dlopen

2015-02-17 Thread Michael Biebl
2015-02-17 22:35 GMT+01:00 Michael Biebl mbi...@gmail.com:
 2015-02-17 22:25 GMT+01:00 Greg KH gre...@linuxfoundation.org:
 On Tue, Feb 17, 2015 at 08:24:37PM +, Luke Kenneth Casson Leighton wrote:
 so i'm not going to protest - i'm going to try a different approach.
 i'd like you to look at this list of debian packages that are
 dependent on libsystemd0:
 http://lkcl.net/reports/removing_systemd_from_debian/list_of_libsystemd0_dependent_packages.txt

 it's an enormous list, comprising some 15% of the packages present in
 debian today.  it includes apache2-dev, bluetooth / bluez, the gimp,
 php, *all* of the video players (xine, mplayer, vlc), *all* of the
 games and 3D packages that use SDL or pulseaudio (which is most of
 them), *all* of the major desktop environments including xfce4, lxde,
 Gnome and KDE/Plasma, cups-daemon, one of the anti-virus daemons, most
 of the music software packages and services, most of the VoIP clients,
 the android SDK, the eclipse IDE, OpenJDK 7, erlang, Apache
 Tomcat. i'm just absolutely blown away by the extent of the
 dependencies.

 How exactly did you create such a dependancy list?  On my system
 (non-debian but fully systemd-only), I picked two random packages from
 your list, gimp and cheese:
 $ ldd /usr/bin/cheese | grep system
 $ ldd /usr/bin/gimp | grep system

 Hm, no dependencies there.

 Perhaps you might wish to just file a Debian bug so that they fix their
 build systems?  Arch Linux doesn't have this kind of requirement, so
 something must be odd here...


 There is no such dependency in Debian either [1].
 Luke simply has no idea what he is talking about.
 It would be great if Luke did some basic research and educate himself
 and not spread such misinformation.


Let me clarify this this misinformation and make it absolutely clear:
There are less then 100 packages in the Debian archive which depend on
libsystemd0


-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH] test: bump KDBUS_CONN_MAX_MSGS_PER_USER value

2015-02-17 Thread Lukasz Skalski
diff --git a/test/test-message.c b/test/test-message.c
index 03ac71e..0cae942 100644
--- a/test/test-message.c
+++ b/test/test-message.c
@@ -28,7 +28,7 @@
  * maximum number of queued messages from the same indvidual user after the
  * the un-accounted value has been hit
  */
-#define KDBUS_CONN_MAX_MSGS_PER_USER   16
+#define KDBUS_CONN_MAX_MSGS_PER_USER   128
 
 #define MAX_USER_TOTAL_MSGS  (KDBUS_CONN_MAX_MSGS_UNACCOUNTED + \
KDBUS_CONN_MAX_MSGS_PER_USER)
diff --git a/test/test-policy-ns.c b/test/test-policy-ns.c
index 3437012..3c8b78e 100644
--- a/test/test-policy-ns.c
+++ b/test/test-policy-ns.c
@@ -38,7 +38,7 @@
 #define MAX_CONN   64
 #define POLICY_NAMEfoo.test.policy-test
 
-#define KDBUS_CONN_MAX_MSGS_PER_USER16
+#define KDBUS_CONN_MAX_MSGS_PER_USER128
 
 /**
  * Note: this test can be used to inspect policy_db-talk_access_hash
-- 
1.9.3

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


Re: [systemd-devel] [PATCH] test: bump KDBUS_CONN_MAX_MSGS_PER_USER value

2015-02-17 Thread Djalal Harouni
Hi Lukasz,

On Tue, Feb 17, 2015 at 11:37:53AM +0100, Lukasz Skalski wrote:
 diff --git a/test/test-message.c b/test/test-message.c
 index 03ac71e..0cae942 100644
 --- a/test/test-message.c
 +++ b/test/test-message.c
 @@ -28,7 +28,7 @@
   * maximum number of queued messages from the same indvidual user after the
   * the un-accounted value has been hit
   */
 -#define KDBUS_CONN_MAX_MSGS_PER_USER 16
 +#define KDBUS_CONN_MAX_MSGS_PER_USER 128
Actually, the limit bump is just a temporary solution, to inspect or fix
other bugs related to Gnome. David is working on this, I will let him
decide if he wants to apply this patch or let it as it...

Thank you Lukasz!


  #define MAX_USER_TOTAL_MSGS  (KDBUS_CONN_MAX_MSGS_UNACCOUNTED + \
   KDBUS_CONN_MAX_MSGS_PER_USER)
 diff --git a/test/test-policy-ns.c b/test/test-policy-ns.c
 index 3437012..3c8b78e 100644
 --- a/test/test-policy-ns.c
 +++ b/test/test-policy-ns.c
 @@ -38,7 +38,7 @@
  #define MAX_CONN 64
  #define POLICY_NAME  foo.test.policy-test
  
 -#define KDBUS_CONN_MAX_MSGS_PER_USER16
 +#define KDBUS_CONN_MAX_MSGS_PER_USER128
  
  /**
   * Note: this test can be used to inspect policy_db-talk_access_hash
 -- 
 1.9.3
 
 ___
 systemd-devel mailing list
 systemd-devel@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/systemd-devel

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


Re: [systemd-devel] Mount options of /var/run/users/pid

2015-02-17 Thread Lennart Poettering
On Mon, 16.02.15 22:14, Павел Самсонов (pvsamsono...@gmail.com) wrote:

 If I have multiuser Linux installation with shell and DE access, my users
 have not places in system, where they able download something from internet
 and execute:
 / ro,exec
 /home rw,noexec
 /var rw,noexec
 All tmpfs noexec
 In Debian wheezy this done and work.
 In Debian jessie I have places (/run/users/*), where users may execute
 dowloaded executables. What I must do with this?

As mentioned already. We do not support mounting /run/user/* with
other mount options, and this is unlikely to hange. WHat you are
trying to do does not provide any security (as discussed in this
thread otherwise), and thus this is something we are unlikely to
consider to support.

Sorry,

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] user units and system units behavior

2015-02-17 Thread Ivan Shapovalov
On 2015-02-16 at 11:14 +, Simon McVittie wrote:
 On 14/02/15 18:26, Ivan Shapovalov wrote:
  Yes, the per-session bus is there, but it is not used at all for
  communication with per-user systemd instance.
 
 I do want this to work, and I'm working on making it happen. It works on 
 my Debian system, with the patched dbus that I recently uploaded to 
 experimental.
 
 When my patches on https://bugs.freedesktop.org/show_bug.cgi?id=61301 
 have been merged, if dbus is compiled with --enable-user-session and you 
 are running systemd, the per-login-session dbus-daemon --session will 
 be replaced by a per-user-session dbus-daemon --session (see earlier 
 thread for explanation of login session vs. user session). At that 
 point, the dbus-daemon --session can be suitable for communicating 
 with `systemd --user`.
 
 (I believe the plan is (still) that kdbus systems will always have an 
 equivalent of this new per-user-session bus, and never a 
 per-login-session bus.)
 
  No, mine /etc/X11/xinitrc.d is Simon's /etc/X11/Xsession.d and similar
  setups. It's apparently a distro-specific path.
 
 Yes. I think /etc/X11/xinitrc.d is what Red Hat and its derivatives use. 
 Xsession.d is used instead in Debian and its derivatives, including 
 Ubuntu. The differences are because, historically, this sort of plumbing 
 was something that every distribution had to invent for itself.
 
  S
 

Thanks for the heads-up and your work, Simon. I'm also looking forward
for the time when all the bits are there. It means that `systemd --user`
will be finally able to launch various pieces of DE, right?

(Maybe with policykit patches to grant needed permissions to processes
under `systemd --user`...)

-- 
Ivan Shapovalov / intelfx /


signature.asc
Description: This is a digitally signed message part
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel