| #!/bin/bash | |
| ############################################################################ | |
| # | |
| # Script for generating a kernel source tree with the SCST patches applied. | |
| # | |
| # Copyright (C) 2010 Bart Van Assche <bvanassche@acm.org> | |
| # | |
| # This program is free software; you can redistribute it and/or | |
| # modify it under the terms of the GNU General Public License | |
| # as published by the Free Software Foundation, version 2 | |
| # of the License. | |
| # | |
| # This program is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| # GNU General Public License for more details. | |
| # | |
| ############################################################################ | |
| function usage { | |
| echo "Usage: $0 <kernel version>" | |
| } | |
| script_dir="$(dirname "$0")" | |
| if [ "${script_dir#/}" = "${script_dir}" ]; then | |
| script_dir="$PWD/$script_dir" | |
| fi | |
| scriptdir="${scriptdir%/.}" | |
| scst_dir="$(dirname "${script_dir}")" | |
| # shellcheck source=./kernel-functions | |
| source "${script_dir}/kernel-functions" | |
| if [ "$1" = "" ]; then | |
| echo "Error: missing kernel version argument." | |
| exit 1 | |
| fi | |
| target="linux-$1" | |
| kernel_version="$(kernel_version "$1")" | |
| patchlevel="$(patchlevel "$1")" | |
| download_and_extract_kernel_tree "$1" || exit $? | |
| cd "${target}" || exit $? | |
| "${script_dir}/list-source-files" "${scst_dir}" | | |
| grep -- "-${kernel_version}.*.patch$" | | |
| grep -v /in-tree/ | | |
| while read -r p; do | |
| if [ "${p/readahead-2.6.32.below11.patch//}" = "$p" ] || | |
| [ "${patchlevel:-0}" -lt 11 ]; then | |
| echo "==== $p" | |
| patch -p1 <"${scst_dir}/$p" | |
| fi | |
| done |