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
							
								
									f32536b13b
								
							
						
					
					
						commit
						c14b4ddbf2
					
				
					 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/mozjs38-version-detection.patch		\
 | ||||||
|   %D%/packages/patches/mrrescue-support-love-11.patch		\
 |   %D%/packages/patches/mrrescue-support-love-11.patch		\
 | ||||||
|   %D%/packages/patches/mtools-mformat-uninitialized.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-build-parallelism.patch		\
 | ||||||
|   %D%/packages/patches/mumps-shared-libseq.patch		\
 |   %D%/packages/patches/mumps-shared-libseq.patch		\
 | ||||||
|   %D%/packages/patches/mumps-shared-mumps.patch			\
 |   %D%/packages/patches/mumps-shared-mumps.patch			\
 | ||||||
|  |  | ||||||
|  | @ -4182,7 +4182,7 @@ arrays when needed.") | ||||||
| (define-public multipath-tools | (define-public multipath-tools | ||||||
|   (package |   (package | ||||||
|     (name "multipath-tools") |     (name "multipath-tools") | ||||||
|     (version "0.8.3") |     (version "0.8.4") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method git-fetch) |               (method git-fetch) | ||||||
|               (uri (git-reference |               (uri (git-reference | ||||||
|  | @ -4191,7 +4191,8 @@ arrays when needed.") | ||||||
|               (file-name (git-file-name name version)) |               (file-name (git-file-name name version)) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "02kdbk3gv3fx5dg445scz3l4lg0sznlv037qkjgpw9xkw4l50cfd")) |                 "14n8pcgnliicqxzc40xvjxk4cafm4qx7a3rsx5qva74r3ydzx8rn")) | ||||||
|  |               (patches (search-patches "multipath-tools-sans-systemd.patch")) | ||||||
|               (modules '((guix build utils))) |               (modules '((guix build utils))) | ||||||
|               (snippet |               (snippet | ||||||
|                '(begin |                '(begin | ||||||
|  | @ -4205,9 +4206,12 @@ arrays when needed.") | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      '(#:tests? #f                      ; no tests |      '(#:tests? #f                      ; no tests | ||||||
|  |        #:parallel-build? #f             ;XXX: broken in 0.8.4 | ||||||
|        #:make-flags (list "CC=gcc" |        #:make-flags (list "CC=gcc" | ||||||
|                           (string-append "DESTDIR=" |                           (string-append "DESTDIR=" | ||||||
|                                          (assoc-ref %outputs "out")) |                                          (assoc-ref %outputs "out")) | ||||||
|  |                           ;; Install Udev rules below this directory, relative | ||||||
|  |                           ;; to the prefix. | ||||||
|                           "SYSTEMDPATH=lib" |                           "SYSTEMDPATH=lib" | ||||||
|                           (string-append "LDFLAGS=-Wl,-rpath=" |                           (string-append "LDFLAGS=-Wl,-rpath=" | ||||||
|                                          (assoc-ref %outputs "out") |                                          (assoc-ref %outputs "out") | ||||||
|  | @ -4229,6 +4233,15 @@ arrays when needed.") | ||||||
|                  (("/usr/include/libudev.h") |                  (("/usr/include/libudev.h") | ||||||
|                   (string-append udev "/include/libudev.h"))) |                   (string-append udev "/include/libudev.h"))) | ||||||
|                #t))) |                #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 |          (delete 'configure))))         ; no configure script | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("perl" ,perl) |      `(("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; | ||||||
		Reference in a new issue