#
# 6) If any interfaces have been removed since the last public release, then
# set COMPATMINOR to MINOR. (binary incompatible change)
-#
+# ==================================================
+#=======
+# - Update version according to your changes,
+# but based on 'LAST RELEASED:' below. I.e
+# there's no need to increase LIBZYPP_MINOR
+# if it already differs from 'LAST RELEASED:'.
+#
+# - MOST IMPORTANT:
+# Before you submitt to autobuild, rmember the
+# new version in 'LAST RELEASED:', and add a
+# note in the changes file.
+#
+# - Consider calling ./mkChangelog to edit the
+# changes file. See './mkChangelog -h' for help.
+#
SET(LIBZYPP_MAJOR "5")
-SET(LIBZYPP_MINOR "4")
SET(LIBZYPP_COMPATMINOR "4")
+SET(LIBZYPP_MINOR "4")
SET(LIBZYPP_PATCH "0")
+#
+# LAST RELEASED: 5.3.0 (2)
+# (The number in parenthesis is LIBZYPP_COMPATMINOR)
+#=======
--- /dev/null
+#! /bin/bash
+#
+
+function errexit() {
+ exec >&2
+ echo "Error: $@"
+ exit 1
+}
+
+export LC_ALL=""
+EDITOR=${EDITOR:-vi}
+
+TDIR=$(dirname $0)
+test -n "$TDIR" && cd $TDIR
+
+CHANGESFILE="package/libzypp.changes"
+test -f "$CHANGESFILE" || errexit "No changes file '$CHANGESFILE'"
+
+VERSIONFILE="VERSION.cmake"
+test -f "$VERSIONFILE" || errexit "No version file '$VERSIONFILE'"
+
+
+function usage() {
+ exec >&2
+cat <<EOF
+
+Usage: $(basename $0) [OPTIONS]
+Options: -h,-?,--help This page.
+
+$(basename $0) will load the changes file '$CHANGESFILE'
+into your editor (\$EDITOR=$EDITOR), providing a new changes
+entry template:
+
+ -------------------------------------------------------------------
+ Wed Jul 30 18:20:06 CEST 2008 ma@suse.de
+
+ -
+ - revision 10702
+ #---delete-or-release---# LAST RELEASED: 5.3.2 (2) NEW RELEASE: 5.4.0 (4)
+
+The revision number is a guess and assumes you will check in to
+SVN shortly after editing (current server revision + 1).
+
+The line '#---delete-or-release---#...' shows the last version submitted
+to autobuild ('# LAST RELEASED:; tag in $VERSIONFILE). And also the current
+version, asuming you already updated the $VERSIONFILE according to your changes.
+(The number in parenthesis is LIBZYPP_COMPATMINOR)
+
+
+- Delete the line if you don't want to submit the package to autobuild.
+
+- Leave the line in place if you want to submit the package.
+
+
+Closing the editor you are prompted:
+
+ #---delete-or-release---# LAST RELEASED: 5.3.2 (2) NEW RELEASE: 5.4.0 (4)
+ (a)bort, (c)ontinue, (e)dit :
+
+Choosing (c)ontinue will write the new changes file. The '#---delete-or-release---#'
+line is missing in case you deleted it. It's presence will remind you
+that it is going to be converted into:
+
+ - version 5.4.0
+
+and the '# LAST RELEASED:; tag in $VERSIONFILE will be updated accordingly.
+Now check the result, check in your changes, build the package and submit
+to autobuild.
+
+Released by accident? Don't mind. Nothing bad will happen. If you want to
+undo the change, restore the 'LAST RELEASED: ' entry in $VERSIONFILE and
+delete the '- version' line in $CHANGESFILE'.
+
+EOF
+ exit 1
+}
+
+case "$1" in
+ -[hH?]*)
+ usage
+ ;;
+ --help)
+ usage
+ ;;
+esac
+
+function getversion() {
+ cat "$VERSIONFILE" \
+ | awk '
+ function getnum() {
+ gsub("^[^\"]*\"","")
+ gsub("\".*$","")
+ }
+ /^ *SET *\( *LIBZYPP_MAJOR *"[0-9]+" *\)/ {getnum();major=$0}
+ /^ *SET *\( *LIBZYPP_MINOR *"[0-9]+" *\)/ {getnum();minor=$0}
+ /^ *SET *\( *LIBZYPP_PATCH *"[0-9]+" *\)/ {getnum();patch=$0}
+ /^ *SET *\( *LIBZYPP_COMPATMINOR *"[0-9]+" *\)/ {getnum();compatminor=$0}
+ /^# LAST RELEASED:/ {gsub("^.*RELEASED: *","");gsub(" +$","");gsub(" +\\("," (");lastrelease=$0}
+ END {
+ thisrelease = major"."minor"."patch" ("compatminor")"
+ if ( thisrelease == lastrelease )
+ print "#---delete-or-release---# LAST RELEASED: "lastrelease" UNCHANGED RELEASE: "thisrelease
+ else
+ print "#---delete-or-release---# LAST RELEASED: "lastrelease" NEW RELEASE: "thisrelease
+ }
+ '
+}
+
+function nextrevision() {
+ svn status -u CMakeLists.txt \
+ | awk '/^Status against revision:/{print $4+1}'
+}
+
+VERSIONNUMBER="$(getversion)"
+
+test -r /etc/sysconfig/mail && source /etc/sysconfig/mail
+EMAIL="${USER}@${FROM_HEADER:-$(hostname -f)}"
+
+
+TMPFILE=$(mktemp)
+exec 3>&1-
+exec >$TMPFILE
+echo "-------------------------------------------------------------------"
+echo "$(date) $EMAIL"
+echo ""
+echo "- "
+echo "- revision $(nextrevision)"
+echo "$(getversion)"
+echo ""
+cat $CHANGESFILE
+exec >&3
+
+RES=e
+while [ "$RES" == "e" ]; do
+ $EDITOR $TMPFILE
+ echo
+ NEWREL=$(grep '#---delete-or-release---#' $TMPFILE)
+ test -n "$NEWREL" && echo "$NEWREL"
+ read -n 1 -p "(a)bort, (c)ontinue, (e)dit : " RES
+ echo
+ case "$RES" in
+ [eE]*)
+ RES=e
+ ;;
+ [cC])
+ test -n "$NEWREL" && {
+ echo "Remember new release in $VERSIONFILE"
+ sed -i 's/^.*#---delete-or-release---#.*RELEASE:/- version/' $TMPFILE
+ NEWREL=$(sed 's/^.*#---delete-or-release---#.*RELEASE:/# LAST RELEASED:/' <<<"$NEWREL")
+ sed -i "s/^# LAST RELEASED:.*$/$NEWREL/" $VERSIONFILE
+ }
+
+ echo "Store new $CHANGESFILE"
+ cp $TMPFILE $CHANGESFILE
+
+ cat $CHANGESFILE \
+ | awk '{print}/----------/{n=n+1; if ( n == 2 ) exit 0; }'
+ ;;
+ *)
+ echo "Leave $CHANGESFILE untouched"
+ ;;
+ esac
+done
+
+rm -f $TMPFILE