mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-10-27 17:46:24 +00:00 
			
		
		
		
	 a5087965fe
			
		
	
	
		a5087965fe
		
	
	
	
	
		
			
			- Add new SC2312 global exclude. ``` Consider invoking this command separately to avoid masking its return value (or use '|| true' to ignore). [SC2312] ``` - Correct errors detected by new ShellCheck version. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: szubersk <szuberskidamian@gmail.com> Closes #14148
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| [ "${0%/*}" = "$0" ] || cd "${0%/*}" || exit
 | |
| 
 | |
| # %reldir%/%canon_reldir% (%D%/%C%) only appeared in automake 1.14, but RHEL/CentOS 7 has 1.13.4
 | |
| # This is an (overly) simplistic preprocessor that papers around this for the duration of the generation step,
 | |
| # and can be removed once support for CentOS 7 is dropped
 | |
| automake --version | awk '{print $NF; exit}' | (
 | |
| 	IFS=. read -r AM_MAJ AM_MIN _
 | |
| 	[ "$AM_MAJ" -gt 1 ] || [ "$AM_MIN" -ge 14 ]
 | |
| ) || {
 | |
| 	process_root() {
 | |
| 		root="$1"; shift
 | |
| 
 | |
| 		grep -q '%[CD]%' "$root/Makefile.am" || return
 | |
| 		find "$root" -name Makefile.am "$@" | while read -r dir; do
 | |
| 			dir="${dir%/Makefile.am}"
 | |
| 			grep -q '%[CD]%' "$dir/Makefile.am" || continue
 | |
| 
 | |
| 			reldir="${dir#"$root"}"
 | |
| 			reldir="${reldir#/}"
 | |
| 
 | |
| 			canon_reldir="$(printf '%s' "$reldir" | tr -C 'a-zA-Z0-9@_' '_')"
 | |
| 
 | |
| 			reldir_slash="$reldir/"
 | |
| 			canon_reldir_slash="${canon_reldir}_"
 | |
| 			[ -z "$reldir" ] && reldir_slash=
 | |
| 			[ -z "$reldir" ] && canon_reldir_slash=
 | |
| 
 | |
| 			echo "$dir/Makefile.am" >&3
 | |
| 			sed -i~ -e "s:%D%/:$reldir_slash:g"       -e "s:%D%:$reldir:g" \
 | |
| 			        -e "s:%C%_:$canon_reldir_slash:g" -e "s:%C%:$canon_reldir:g" "$dir/Makefile.am"
 | |
| 		done 3>>"$substituted_files"
 | |
| 	}
 | |
| 
 | |
| 	rollback() {
 | |
| 		while read -r f; do
 | |
| 			mv "$f~" "$f"
 | |
| 		done < "$substituted_files"
 | |
| 		rm -f "$substituted_files"
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	echo "Automake <1.14; papering over missing %reldir%/%canon_reldir% support" >&2
 | |
| 
 | |
| 	substituted_files="$(mktemp)"
 | |
| 	trap rollback EXIT
 | |
| 
 | |
| 	roots="$(sed '/Makefile$/!d;/module/d;s:^\s*:./:;s:/Makefile::;/^\.$/d' configure.ac)"
 | |
| 
 | |
| 	IFS="
 | |
| "
 | |
| 	for root in $roots; do
 | |
| 		root="${root#./}"
 | |
| 		process_root "$root"
 | |
| 	done
 | |
| 
 | |
| 	set -f
 | |
| 	# shellcheck disable=SC2086,SC2046
 | |
| 	process_root . $(printf '!\n-path\n%s/*\n' $roots)
 | |
| }
 | |
| 
 | |
| autoreconf -fiv && rm -rf autom4te.cache
 |