Odi's astoundingly incomplete notes
New entries | CodeCreating a kernel source diff
When you roll your own kernel and frequently update it to the current stable version from
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
, then this script may be helpful. It creates the diff from the currently running kernel version to the latest stable one. You can easily apply it to your build source tree with: patch -p1 <~/patch.diff
#!/bin/bash REPO=~/code/linux-stable OUT=~/patch.diff cd "${REPO}" || exit 1 [ -d .git ] || { echo "${REPO} is not a git repo" >&2 exit 1 } CUR=$(uname -r) MAJ=$(echo "${CUR}"| sed 's/\.[^.]*$//') MIN=$(echo "${CUR}"| sed 's/[0-9]\+\.[0-9]\+\.//') if [ "${MIN}" = "0" ]; then # strip .0 CUR="${MAJ}" fi BR=$(git branch --show-current) echo "Using git repo: ${REPO}" echo "Current kernel: ${CUR}" echo "Major version: ${MAJ}" echo "git branch: ${BR}" if [ "${BR}" != "linux-${MAJ}.y" ]; then echo "linux-stable on branch ${BR} which is not compatible with kernel ${CUR}" >&2 EX=$(git branch | fgrep linux-${MAJ}.y) if [ -z "${EX}" ]; then echo "Please do: git checkout -t origin/linux-${MAJ}.y" >&2 else echo "Please do: git checkout linux-${MAJ}.y" >&2 fi exit 1 fi # starts with v NEXT=$(git tag --sort='-v:refname' | egrep "v${MAJ}" | head -1) if [ "${NEXT}" = "v${CUR}" ]; then # are we uptodate at all? echo "Pulling git" git pull -q NEXT=$(git tag --sort='-v:refname' | egrep "v${MAJ}" | head -1) fi echo "Next version: ${NEXT}" if [ "${NEXT}" = "v${CUR}" ]; then echo "Kernel is uptodate, nothing to do" >&2 exit 1 fi echo "Creating diff v${CUR}..${NEXT}" git diff "v${CUR}..${NEXT}" >"${OUT}" echo "Done: ${OUT}"
Add comment