~ubuntu-server-dev/ubuntu/vivid/pacemaker/1.1.12

1.3.3 by Martin Loschwitz
Import upstream version 1.1.9+git20130321
1
#!/bin/bash
2
3
declare -A headers
4
headers[crmcommon]="include/crm/common include/crm/crm.h"
5
headers[crmcluster]="include/crm/cluster.h"
6
headers[transitioner]="include/crm/transition.h"
7
headers[cib]="include/crm/cib.h include/crm/cib/util.h"
8
headers[pe_rules]="include/crm/pengine/rules.h"
9
headers[pe_status]="include/crm/pengine/common.h  include/crm/pengine/complex.h  include/crm/pengine/rules.h  include/crm/pengine/status.h"
10
headers[pengine]="include/crm/pengine/common.h  include/crm/pengine/complex.h  include/crm/pengine/rules.h  include/crm/pengine/status.h"
11
headers[stonithd]="include/crm/stonith-ng.h"
12
headers[lrmd]="include/crm/lrmd.h"
13
1.2.10 by Martin Loschwitz
Import upstream version 1.1.10+git20130802
14
LAST_RELEASE=`test -e /Volumes || git tag -l | grep Pacemaker | grep -v rc | sort -Vr | head -n 1`
1.3.3 by Martin Loschwitz
Import upstream version 1.1.9+git20130321
15
for lib in crmcommon crmcluster transitioner cib pe_rules pe_status stonithd pengine lrmd; do
16
    git diff -w $LAST_RELEASE..HEAD ${headers[$lib]}
17
    echo ""
18
19
    am=`find . -name Makefile.am -exec grep -lr "lib${lib}_la.*version-info" \{\} \;`
20
    am_dir=`dirname $am`
21
22
    if
23
	grep "lib${lib}_la_SOURCES.*\\\\" $am
24
    then
25
	echo -e "\033[1;35m -- Sources list for lib$lib is probably truncated! --\033[0m"
26
	echo ""
27
    fi
28
29
    sources=`grep "lib${lib}_la_SOURCES" $am | sed s/.*=// | sed 's:$(top_builddir)/::' | sed 's:$(top_srcdir)/::' | sed 's:\\\::' | sed 's:$(libpe_rules_la_SOURCES):rules.c\ common.c:'`
30
    full_sources=""
31
    for f in $sources; do
32
	if
33
	    echo $f | grep -q "/"
34
	then
35
	    full_sources="$full_sources $f"
36
	else
37
	    full_sources="$full_sources $am_dir/$f"
38
	fi
39
    done
40
41
    lines=`git diff -w $LAST_RELEASE..HEAD ${headers[$lib]} $full_sources | wc -l`
42
43
    if [ $lines -gt 0 ]; then
44
	echo "- Headers: ${headers[$lib]}"
45
	echo "- Sources: $full_sources"
46
	echo "- Changed Sources since $LAST_RELEASE:"
47
	git diff -w $LAST_RELEASE..HEAD --stat $full_sources
48
	echo ""
49
	read -p "Are the changes to lib$lib: [a]dditions, [r]emovals or [f]ixes? [None]: " CHANGE
50
51
	git show $LAST_RELEASE:$am | grep version-info
52
	VER=`git show $LAST_RELEASE:$am | grep "lib.*${lib}_la.*version-info" | sed s/.*version-info// | awk '{print $1}'`
53
	VER_NOW=`grep "lib.*${lib}_la.*version-info" $am | sed s/.*version-info// | awk '{print $1}'`
54
	VER_1=`echo $VER | awk -F: '{print $1}'`
55
	VER_2=`echo $VER | awk -F: '{print $2}'`
56
	VER_3=`echo $VER | awk -F: '{print $3}'`
57
	VER_1_NOW=`echo $VER_NOW | awk -F: '{print $1}'`
58
59
	case $CHANGE in
60
	    A|a)
61
		echo "New version with backwards compatible extensions: x+1:0:z+1"
62
		VER_1=`expr $VER_1 + 1`
63
		VER_2=0
64
		VER_3=`expr $VER_3 + 1`
65
		;;
66
	    R|r)
67
		echo "New backwards incompatible version: x+1:0:0"
68
		VER_1=`expr $VER_1 + 1`
69
		VER_2=0
70
		VER_3=0
71
		for h in ${headers[$lib]}; do
72
		    sed -i.sed  "s/lib${lib}.so.${VER_1_NOW}/lib${lib}.so.${VER_1}/" $h
73
		done
74
		;;
75
	    F|f)
76
		echo "Bugfix: x:y+1:z"
77
		VER_2=`expr $VER_2 + 1`
78
		;;
79
	esac
80
	VER_NEW=$VER_1:$VER_2:$VER_3
81
82
	if [ ! -z $CHANGE ]; then
83
	    if [ $VER_NEW != $VER_NOW ]; then
84
		echo "Updating $lib library version: $VER -> $VER_NEW"
85
		sed -i.sed  "s/version-info\ $VER_NOW/version-info\ $VER_NEW/" $am
86
	    else
87
		echo "No further version changes needed"
88
	    fi
89
	else
90
	    echo "Skipping $lib version"
91
	fi
92
    else
93
	echo "No changes to $lib interface"
94
    fi
95
96
    read -p "Continue?"
97
    echo ""
98
done
99
100
git diff -w