|
Brandon Philips |
243e88 |
#!/bin/bash
|
|
Brandon Philips |
243e88 |
# Add suse Kernel repo headers to a patch created using git-format-patch
|
|
Brandon Philips |
243e88 |
#
|
|
Brandon Philips |
243e88 |
# Brandon Philips <bphilips@suse.de>
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
PATH=$(dirname $0):$PATH
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
if [ $# -lt 1 ]; then
|
|
Michal Marek |
395ba5 |
echo "usage: $0 <filename> <kernel clone> <repo url>"
|
|
Brandon Philips |
243e88 |
echo "Add relevant headers for patches pulled from git"
|
|
Brandon Philips |
243e88 |
echo ""
|
|
Brandon Philips |
243e88 |
echo "Adds a Git-commit: tag using the From header"
|
|
Brandon Philips |
243e88 |
echo ""
|
|
Brandon Philips |
243e88 |
echo "Adds a Patch-mainline: tag if <kernel path> is given"
|
|
Brandon Philips |
243e88 |
echo " a useful tree name can be provided in <kernel name>"
|
|
Brandon Philips |
243e88 |
echo " otherwise basename <kernel path> will be used"
|
|
Brandon Philips |
243e88 |
echo ""
|
|
Brandon Philips |
243e88 |
echo "example usage"
|
|
Brandon Philips |
243e88 |
echo "-------------"
|
|
Brandon Philips |
243e88 |
echo "$0 NULL-pointer-fix.patch"
|
|
Brandon Philips |
243e88 |
echo "$0 NULL-pointer-fix.patch ~/kernel/linux-2.6"
|
|
Brandon Philips |
243e88 |
echo "$0 NULL-pointer-fix.patch ~/kernel/linux-2.6 pci 2.6"
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
exit 1
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
FILE=$1
|
|
Brandon Philips |
243e88 |
shift
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
if [ ! -f $FILE ]; then
|
|
Brandon Philips |
243e88 |
echo "No such file $1"
|
|
Brandon Philips |
243e88 |
exit 2
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Michal Marek |
a43c4e |
# try the git cherry-pick -x marker first
|
|
Michal Marek |
a43c4e |
commit=$(sed -n 's/^(cherry picked from commit \([0-9a-f]*\))/\1/p' "$FILE")
|
|
Michal Marek |
a43c4e |
if test -z "$commit"; then
|
|
Michal Marek |
a43c4e |
commit=$(head -n1 $FILE | sed -n "s%From\s\([0-9a-f]*\)\s.*%\1%p")
|
|
Michal Marek |
a43c4e |
else
|
|
Michal Marek |
a43c4e |
sed -i '/^(cherry picked from commit/d' "$FILE"
|
|
Michal Marek |
a43c4e |
fi
|
|
Brandon Philips |
243e88 |
if [ "z$commit" = "z" ]; then
|
|
Brandon Philips |
243e88 |
echo "$FILE doesn't look like a patch from git"
|
|
Brandon Philips |
243e88 |
else
|
|
Brandon Philips |
243e88 |
patch-tag -A git-commit="$commit" $FILE
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
if [ $# -eq 0 ]; then
|
|
Benjamin Poirier |
842e04 |
libdir=$(dirname "$(readlink -f "$0")")
|
|
Benjamin Poirier |
842e04 |
DIR=$("$libdir"/linux_git.sh) || exit 1
|
|
Jan Kara |
85916d |
else
|
|
Jan Kara |
85916d |
DIR=$1
|
|
Jan Kara |
85916d |
shift
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
commit=$(patch-tag -p git-commit $FILE | grep -i "git-commit:" | sed "s%.*:\s\(.*\)%\1%g")
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
if [ "z$commit" = "z" ]; then
|
|
Brandon Philips |
243e88 |
echo "No git-commit tag in $FILE"
|
|
Brandon Philips |
243e88 |
exit 3
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Benjamin Poirier |
a6d98d |
export GIT_DIR=$DIR
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
if [ ! -d $GIT_DIR ]; then
|
|
Brandon Philips |
243e88 |
echo "No such directory $GIT_DIR"
|
|
Brandon Philips |
243e88 |
echo 4
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Michal Marek |
4ed8f9 |
mainline=$(git describe --contains --match 'v*' $commit 2> /dev/null)
|
|
Michal Marek |
4ed8f9 |
if test -z "$mainline"; then
|
|
Michal Marek |
4ed8f9 |
mainline=$(git describe --contains $commit 2> /dev/null)
|
|
Michal Marek |
4ed8f9 |
fi
|
|
Michal Marek |
b087b9 |
mainline=${mainline%%[~^]*}
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
if [ "z$mainline" = "z" ]; then
|
|
Brandon Philips |
243e88 |
if git show $commit > /dev/null 2> /dev/null; then
|
|
Michal Marek |
395ba5 |
patch-tag -A Patch-mainline="Queued in subsystem maintainer repository" "$FILE"
|
|
Michal Marek |
395ba5 |
if test -n "$1"; then
|
|
Michal Marek |
395ba5 |
patch-tag -A Git-repo="$*" "$FILE"
|
|
Brandon Philips |
243e88 |
else
|
|
Michal Marek |
395ba5 |
echo "warning: Non-mainline commit in $FILE but no repo url specified"
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
exit 0
|
|
Brandon Philips |
243e88 |
else
|
|
Brandon Philips |
243e88 |
echo "$commit from $FILE does not exist in $DIR"
|
|
Brandon Philips |
243e88 |
exit 5
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
fi
|
|
Brandon Philips |
243e88 |
|
|
Brandon Philips |
243e88 |
patch-tag -A Patch-mainline="$mainline" $FILE
|