mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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.
This commit is contained in:
parent
d1ed1d7560
commit
cfdd023bed
3 changed files with 99 additions and 2 deletions
|
@ -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 \
|
||||
|
|
|
@ -4182,7 +4182,7 @@ (define-public mdadm-static
|
|||
(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 @@ (define-public multipath-tools
|
|||
(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 @@ (define-public multipath-tools
|
|||
(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 @@ (define-public multipath-tools
|
|||
(("/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)
|
||||
|
|
83
gnu/packages/patches/multipath-tools-sans-systemd.patch
Normal file
83
gnu/packages/patches/multipath-tools-sans-systemd.patch
Normal file
|
@ -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;
|
Loading…
Reference in a new issue