#!/bin/bash

# Autobuild doesn't support package names with macros. This script will update versions in package names.

ORIG_SPEC=${2%-mono}
ORIG_SPEC=${ORIG_SPEC%-qt4}
# Never update -mono file when it is already opened. It will break advanced build scripts:
if test "$2" != "$ORIG_SPEC" ; then
    exit
fi

if ! test -f $1/$ORIG_SPEC.spec ; then
    exit
fi

for PKGNAME in avahi-client avahi-common avahi-core avahi-ui avahi-glib avahi-gobject avahi-qt4 ; do
    # Packages with name ending by number needs separator
    if test x`echo $PKGNAME | sed "s/.*[0-9]$//"` = x ; then
	SEPARATOR=-
    else
	SEPARATOR=
    fi
    sed -i "
	1,/%changelog/ {
	    # Copy ${PKGNAME//-/_}_soname to hold space
	    /^%define ${PKGNAME//-/_}_soname / {
		h;
		s/^%define ${PKGNAME//-/_}_soname //;
		x;
	    };

	    # Update ${PKGNAME}_soname everywhere
	    /$PKGNAME$SEPARATOR[0-9][0-9]*\([[:space:]].*\|\)\$/ {
		G;
		s/$PKGNAME$SEPARATOR[0-9][0-9]*\([[:space:]].*\|\)\n\(.*\)/$PKGNAME$SEPARATOR\2\1/;
	    };
	};" $1/$ORIG_SPEC.spec
done

# Edit file to fit -mono build needs:
sed '
    s/spec file for package avahi/spec file for package avahi-mono/;
    s/build_core\ 1/build_core 0/;
    s/build_mono\ 0/build_mono 1/;
    s/^.ame:.*/&-mono/;
    # No more needed.
    #s/^..hangelog.*/& mono/;
    /^# WARNING: After editing/,/^# to update spec files/d
    /^%define[[:space:]]*_name/i \
# Do not edit this auto generated file! Edit avahi.spec.
' <$1/$ORIG_SPEC.spec >$1/$ORIG_SPEC-mono.spec

# Edit file to fit -glib2 build needs:
sed '
    s/spec file for package avahi/spec file for package avahi-glib2/;
    s/build_core\ 1/build_core 0/;
    s/build_glib2\ 0/build_glib2 1/;
    s/^.ame:.*/&-glib2/;
    # No more needed.
    #s/^..hangelog.*/& qt/;
    /^# WARNING: After editing/,/^# to update spec files/d
    /^%define[[:space:]]*_name/i \
# Do not edit this auto generated file! Edit avahi.spec.
' <$1/$ORIG_SPEC.spec >$1/$ORIG_SPEC-glib2.spec

# Edit file to fit -qt4 build needs:
sed '
    s/spec file for package avahi/spec file for package avahi-qt4/;
    s/build_core\ 1/build_core 0/;
    s/build_qt4\ 0/build_qt4 1/;
    s/^.ame:.*/&-qt4/;
    # No more needed.
    #s/^..hangelog.*/& qt/;
    /^# WARNING: After editing/,/^# to update spec files/d
    /^%define[[:space:]]*_name/i \
# Do not edit this auto generated file! Edit avahi.spec.
' <$1/$ORIG_SPEC.spec >$1/$ORIG_SPEC-qt4.spec

# Not wanted for avahi:
#cp -a $1/$ORIG_SPEC.changes $1/$ORIG_SPEC-glib2.changes
#cp -a $1/$ORIG_SPEC.changes $1/$ORIG_SPEC-mono.changes
#cp -a $1/$ORIG_SPEC.changes $1/$ORIG_SPEC-qt.changes
