1*10465441SEvalZero#!/bin/sh 2*10465441SEvalZeroset -e 3*10465441SEvalZero 4*10465441SEvalZeromy_name="${0##*/}" 5*10465441SEvalZero 6*10465441SEvalZero# If an argument is given, it's the location 7*10465441SEvalZero# of the Linux kernel source tree 8*10465441SEvalZerok_dir="${1}" 9*10465441SEvalZeroif [ ! \( -n "${k_dir}" -a -d "${k_dir}/kernel" \) ]; then 10*10465441SEvalZero if [ -n "${k_dir}" ]; then 11*10465441SEvalZero printf "%s: \`%s': not a Linux kernel source tree\n" \ 12*10465441SEvalZero "${my_name}" "${k_dir}" 13*10465441SEvalZero else 14*10465441SEvalZero printf "Usage: %s /path/to/kernel/dir\n" "${my_name}" 15*10465441SEvalZero fi 16*10465441SEvalZero exit 1 17*10465441SEvalZerofi 18*10465441SEvalZero 19*10465441SEvalZero# Save current version 20*10465441SEvalZerok_cset_old=$( head -n 1 .version |awk '{ print $(2); }' ) 21*10465441SEvalZero 22*10465441SEvalZero# Get the kernel version 23*10465441SEvalZeroeval $( head -n 5 "${k_dir}/Makefile" \ 24*10465441SEvalZero |sed -e 's/^/K_/; s/"//g; s/ = \{0,1\}/="/; s/$/"/;' \ 25*10465441SEvalZero ) 26*10465441SEvalZerok_cset="$( cd "${k_dir}"; \ 27*10465441SEvalZero git log -n 1 --pretty='format:%H' \ 28*10465441SEvalZero )" 29*10465441SEvalZeroprintf "Found Linux kernel %d.%d.%d%s '%s' (%7.7s)\n" \ 30*10465441SEvalZero "${K_VERSION}" "${K_PATCHLEVEL}" "${K_SUBLEVEL}" \ 31*10465441SEvalZero "${K_EXTRAVERSION}" "${K_NAME}" "${k_cset}" 32*10465441SEvalZero 33*10465441SEvalZero# Get the kconfig-frontends version 34*10465441SEvalZerokf_version="$( tail -n 1 .version )" 35*10465441SEvalZero 36*10465441SEvalZero# Store the new version 37*10465441SEvalZeroprintf "%d.%d.%d%s %s %s\n%s\n" \ 38*10465441SEvalZero "${K_VERSION}" "${K_PATCHLEVEL}" \ 39*10465441SEvalZero "${K_SUBLEVEL}" "${K_EXTRAVERSION}" \ 40*10465441SEvalZero "${k_cset}" "${K_NAME}" \ 41*10465441SEvalZero "${kf_version}" \ 42*10465441SEvalZero >.version 43*10465441SEvalZero 44*10465441SEvalZero# Sync-up the files 45*10465441SEvalZerok_files="" 46*10465441SEvalZerowhile read k_file trash kf_file; do 47*10465441SEvalZero k_files="${k_files} ${k_file}" 48*10465441SEvalZero mkdir -p "${kf_file%/*}" 49*10465441SEvalZero cp -v "${k_dir}/${k_file}" "${kf_file}" 50*10465441SEvalZero if [ -f "${kf_file}.patch" ]; then 51*10465441SEvalZero patch --no-backup-if-mismatch -g0 -F1 -p1 -f <"${kf_file}.patch" 52*10465441SEvalZero fi 53*10465441SEvalZerodone <scripts/ksync.list 54*10465441SEvalZero 55*10465441SEvalZero# Save the changelog between the old cset and now 56*10465441SEvalZeroprintf "Synced-up these changes:\n" 57*10465441SEvalZero( cd "${k_dir}" 58*10465441SEvalZero git log --no-merges --pretty='tformat:%h %s' \ 59*10465441SEvalZero "${k_cset_old}..${k_cset}" \ 60*10465441SEvalZero ${k_files} \ 61*10465441SEvalZero)|tac \ 62*10465441SEvalZero |tee -a "scripts/ksync.log" \ 63*10465441SEvalZero |sed -e 's/^/ /;' 64