From 8d68d4652580ba5d09902747f4a871c27a3b3ef732a9d6de8f37f97f74e1df61 Mon Sep 17 00:00:00 2001 From: Michal Marek Date: Tue, 4 Oct 2011 05:01:51 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/Kernel:HEAD/kernel-source?expand=0&rev=7105 --- log.sh | 167 --------------------------------------------------------- 1 file changed, 167 deletions(-) delete mode 100644 log.sh diff --git a/log.sh b/log.sh deleted file mode 100644 index e53163a1..00000000 --- a/log.sh +++ /dev/null @@ -1,167 +0,0 @@ -#! /bin/sh - -# log.sh - Automate insertion of patches into a kernel rpm tree managed -# with series.conf -# -# Usage example: -# -# osc branch openSUSE:11.3/kernel-source -# osc co home:philipsb:branches:openSUSE:11.3:Update:Test/kernel-source -# mv ~/linux-2.6/driver-fix-for-something.patch . -# echo -e "\tpatches.drivers/driver-fix-for-something.patch" >> series.conf -# ./log.sh -# osc commit - -############################################################################# -# Copyright (c) 2004-2006,2008-2010 Novell, Inc. -# All Rights Reserved. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of version 2 of the GNU General Public License as -# published by the Free Software Foundation. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, contact Novell, Inc. -# -# To contact Novell about this file by physical or electronic mail, -# you may find current contact information at www.novell.com -############################################################################# - -# Construct a changes entry and commit log from a patch. - -CHANGES=kernel-source.changes - -trap 'rm -rf "$tmpdir"' EXIT -tmpdir=$(mktemp -d /tmp/${0##*/}.XXXXXX) -message=$tmpdir/message - -log_entry() { - local entry=$1 - - echo "$entry" \ - | fmt --width 65 \ - | sed -e '1s/^/- /' -e '2,$s/^/ /' \ - >> $message -} - - -patch_meta() { - local patch=$1 - - subject=$(formail -c -x Subject < "$patch" \ - | sed -e 's, *\[[#/ A-Za-z0-9-]*\],,') - subject=${subject## } - subject=${subject%.} - - set -- $(formail -c -x References -x Reference < "$patch") - references="$*" -} - -patch_log_entry() { - local patch=$1 subject references old_subj old_ref old_patch="$tmpdir/old" - - git show "HEAD:$patch" >"$old_patch" 2>/dev/null - patch_meta "$old_patch" - old_subj="$subject" - old_ref="$references" - - patch_meta "$patch" - - local msg - if test -z "$subject" -o "$subject" != "$old_subj"; then - msg="$subject${references:+ ($references)}" - elif test "$references" != "$old_ref"; then - if test -n "$references"; then - msg="Update references ($references)" - fi - else - msg="Refresh" - fi - - log_entry "$patch: $msg${msg:+.}" -} - -find_patches() { - osc diff series.conf \ - | sed -n "s/^+\s*\(patches.*\)/\1/p" -} - -for file in "$@" $(find_patches); do - dirname=$(dirname $file) - basename=$(basename $file) - archive=$dirname.tar.bz2 - - if [ ! -f $basename ]; then - echo "ERROR: $basename added to series.conf but doesn't exist in $PWD" - exit 1 - fi - - if [ ! -d $dirname ]; then - tar xvf $archive - fi - - mv $basename $dirname - rm $archive - tar cfj $archive $dirname - - files[${#files[@]}]=$file -done - -if [ ${#files[@]} -eq 0 ]; then - echo "No modified files" >&2 - exit 1 -fi - -for file in "${files[@]}"; do - if [ "${file:0:1}" = - ]; then - log_entry "${file:1}: Delete." - else - case "$file" in - config/*) - if [ -z "$configs_updated" ]; then - log_entry "Update config files." - configs_updated=1 - fi - ;; - - patches.*) - patch_log_entry "$file" - ;; - - kabi/*/symvers-* | kabi/*/symtypes-* | kabi/*/symsets-* ) - if [ -z "$symvers_updated" ]; then - log_entry "Update reference module symbol versions." - symvers_updated=1 - fi - ;; - - series.conf) - # don't log changes in there - ;; - - *) - log_entry "$file: " - ;; - esac - fi -done - -if [ ! -s $message ]; then - echo "- " >> $message -fi - -if osc vc $CHANGES $message; then - entry=$(sed -ne '1,2d' -e '/^--*$/!p' -e '/^--*$/q' $CHANGES) - entry=${entry##$'\n'} - entry=${entry%%$'\n'} -fi - -for c in *.changes; do - [ $c = $CHANGES ] && continue - cp $CHANGES $c -done