guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/04: gnu: multipath-tools: Update to 0.8.4.


From: guix-commits
Subject: 03/04: gnu: multipath-tools: Update to 0.8.4.
Date: Sat, 16 May 2020 14:14:01 -0400 (EDT)

mbakke pushed a commit to branch master
in repository guix.

commit cfdd023bed634040ab3256680aebc8e06c134bd1
Author: Marius Bakke <address@hidden>
AuthorDate: Sat May 16 18:13:35 2020 +0200

    gnu: multipath-tools: Update to 0.8.4.
    
    * gnu/packages/patches/multipath-tools-sans-systemd.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
    * gnu/packages/linux.scm (multipath-tools): Update to 0.8.4.
    [source](patches): New field.
    [arguments]: Add #:parallel-build?.  Add phase to fix erroneous compiler 
warning.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/linux.scm                             | 17 ++++-
 .../patches/multipath-tools-sans-systemd.patch     | 83 ++++++++++++++++++++++
 3 files changed, 99 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index ab2bac9..025dfe1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1275,6 +1275,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/mozjs38-version-detection.patch         \
   %D%/packages/patches/mrrescue-support-love-11.patch          \
   %D%/packages/patches/mtools-mformat-uninitialized.patch      \
+  %D%/packages/patches/multipath-tools-sans-systemd.patch      \
   %D%/packages/patches/mumps-build-parallelism.patch           \
   %D%/packages/patches/mumps-shared-libseq.patch               \
   %D%/packages/patches/mumps-shared-mumps.patch                        \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 793036a..2d8acea 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -4182,7 +4182,7 @@ arrays when needed.")
 (define-public multipath-tools
   (package
     (name "multipath-tools")
-    (version "0.8.3")
+    (version "0.8.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4191,7 +4191,8 @@ arrays when needed.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "02kdbk3gv3fx5dg445scz3l4lg0sznlv037qkjgpw9xkw4l50cfd"))
+                "14n8pcgnliicqxzc40xvjxk4cafm4qx7a3rsx5qva74r3ydzx8rn"))
+              (patches (search-patches "multipath-tools-sans-systemd.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -4205,9 +4206,12 @@ arrays when needed.")
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
+       #:parallel-build? #f             ;XXX: broken in 0.8.4
        #:make-flags (list "CC=gcc"
                           (string-append "DESTDIR="
                                          (assoc-ref %outputs "out"))
+                          ;; Install Udev rules below this directory, relative
+                          ;; to the prefix.
                           "SYSTEMDPATH=lib"
                           (string-append "LDFLAGS=-Wl,-rpath="
                                          (assoc-ref %outputs "out")
@@ -4229,6 +4233,15 @@ arrays when needed.")
                  (("/usr/include/libudev.h")
                   (string-append udev "/include/libudev.h")))
                #t)))
+         (add-after 'unpack 'fix-maybe-uninitialized-variable
+           (lambda _
+             ;; This variable gets initialized later if needed, but GCC 7
+             ;; fails to notice.  Should be fixed for > 0.8.4.
+             ;; 
https://www.redhat.com/archives/dm-devel/2020-March/msg00137.html
+             (substitute* "libmultipath/structs_vec.c"
+               (("bool is_queueing;")
+                "bool is_queueing = false;"))
+             #t))
          (delete 'configure))))         ; no configure script
     (native-inputs
      `(("perl" ,perl)
diff --git a/gnu/packages/patches/multipath-tools-sans-systemd.patch 
b/gnu/packages/patches/multipath-tools-sans-systemd.patch
new file mode 100644
index 0000000..8f31447
--- /dev/null
+++ b/gnu/packages/patches/multipath-tools-sans-systemd.patch
@@ -0,0 +1,83 @@
+Fix various compiler warnings when built without systemd.
+
+Submitted upstream at 
<https://www.redhat.com/archives/dm-devel/2020-May/thread.html>.
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -696,7 +696,7 @@ process_config_dir(struct config *conf, char *dir)
+       pthread_cleanup_pop(1);
+ }
+ 
+-static void set_max_checkint_from_watchdog(struct config *conf)
++static void set_max_checkint_from_watchdog(__attribute__((unused)) struct 
config *conf)
+ {
+ #ifdef USE_SYSTEMD
+       char *envp = getenv("WATCHDOG_USEC");
+diff --git a/multipathd/main.c b/multipathd/main.c
+--- a/multipathd/main.c
++++ b/multipathd/main.c
+@@ -176,6 +176,7 @@ daemon_status(void)
+ /*
+  * I love you too, systemd ...
+  */
++#ifdef USE_SYSTEMD
+ static const char *
+ sd_notify_status(enum daemon_status state)
+ {
+@@ -195,7 +196,6 @@ sd_notify_status(enum daemon_status state)
+       return NULL;
+ }
+ 
+-#ifdef USE_SYSTEMD
+ static void do_sd_notify(enum daemon_status old_state,
+                        enum daemon_status new_state)
+ {
+@@ -247,7 +247,9 @@ enum daemon_status wait_for_state_change_if(enum 
daemon_status oldstate,
+ static void __post_config_state(enum daemon_status state)
+ {
+       if (state != running_state && running_state != DAEMON_SHUTDOWN) {
+-              enum daemon_status old_state = running_state;
++              /* save state for sd_notify */
++              enum daemon_status
++                      __attribute__((unused)) old_state = running_state;
+ 
+               running_state = state;
+               pthread_cond_broadcast(&config_cond);
+@@ -272,7 +274,9 @@ int set_config_state(enum daemon_status state)
+       pthread_cleanup_push(config_cleanup, NULL);
+       pthread_mutex_lock(&config_lock);
+       if (running_state != state) {
+-              enum daemon_status old_state = running_state;
++              /* save state for sd_notify */
++              enum daemon_status
++                      __attribute__((unused)) old_state = running_state;
+ 
+               if (running_state == DAEMON_SHUTDOWN)
+                       rc = EINVAL;
+@@ -2280,7 +2284,6 @@ checkerloop (void *ap)
+       struct timespec last_time;
+       struct config *conf;
+       int foreign_tick = 0;
+-      bool use_watchdog;
+ 
+       pthread_cleanup_push(rcu_unregister, NULL);
+       rcu_register_thread();
+@@ -2292,11 +2295,15 @@ checkerloop (void *ap)
+       get_monotonic_time(&last_time);
+       last_time.tv_sec -= 1;
+ 
+-      /* use_watchdog is set from process environment and never changes */
+       conf = get_multipath_config();
+-      use_watchdog = conf->use_watchdog;
+       put_multipath_config(conf);
+ 
++#ifdef USE_SYSTEMD
++      /* use_watchdog is set from process environment and never changes */
++      bool use_watchdog;
++      use_watchdog = conf->use_watchdog;
++#endif
++
+       while (1) {
+               struct timespec diff_time, start_time, end_time;
+               int num_paths = 0, strict_timing, rc = 0;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]