HEX
Server: LiteSpeed
System: Linux atali.colombiahosting.com.co 5.14.0-570.12.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 13 06:11:55 EDT 2025 x86_64
User: coopserp (1713)
PHP: 8.2.29
Disabled: dl,exec,passthru,proc_open,proc_close,shell_exec,memory_limit,system,popen,curl_multi_exec,show_source,symlink,link,leak,listen,diskfreespace,tmpfile,ignore_user_abord,highlight_file,source,show_source,fpaththru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setid,posix_times,posix_ttyname,posix_uname,proc_get_status,proc_nice,proc_terminate
Upload Files
File: //lib/rpm/brp-boot-efi-times
#!/usr/bin/bash -eu

# If using normal root, avoid changing anything.
if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
	exit 0
fi
if [[ ! -d "$RPM_BUILD_ROOT//boot/efi" ]] ; then
	exit 0
fi

update() {
	local path="$1"
	local ctime=$(stat -c "%Z" "${path}")

	# we always want to touch it once...
	if [[ $((${ctime} % 2)) -eq 0 ]] ; then
		let ++ctime
	fi

	while [[ $((${ctime} % 2)) -eq 1 ]] ; do
		let ++ctime
		touch -h -c -d "@${ctime}" "${path}"
		ctime=$(stat -c "%Z" "${path}")
	done
}

declare -a dirs
dirs=() || :

cd "$RPM_BUILD_ROOT"

while IFS= read -r -d $'\0' f; do
	if [[ -d "${f}" ]] ; then
		dirs[${#dirs[@]}]="${f}"
	else
		update "${f}"
	fi
done < <(find ./boot/efi/ -print0)

# sort the directory list lexicographically, longest-first, so a parent dir's
# updated mtime won't be clobbered by the child dir being updated, if some day
# someone actually makes that matter.
#
# I don't think we actually have to do this on linux, but
# $RPM_BUILD_ROOT//boot/efi/ isn't going to have but so many files on
# it.
let i=0 || :
let j=1
while [[ ${i} -lt ${#dirs[@]} ]] && [[ ${j} -lt ${#dirs[@]} ]] ; do
	if [[ "${dirs[$i]}" < "${dirs[$j]}" ]] ; then
		tmp="${dirs[$i]}"
		dirs[$i]="${dirs[$j]}"
		dirs[$j]="${tmp}"
	else
		let ++j
	fi
	if [[ ${j} -ge ${#dirs[@]} ]] ; then
		let ++i
		let ++j
	fi
done

# and now just process them just like files.
if [[ ${#dirs[@]} -gt 0 ]] ; then
	for dir in "${dirs[@]}" ; do
		update "${dir}"
	done
fi