avahi/avahi_spec-prepare.sh

90 lines
2.9 KiB
Bash
Raw Normal View History

#!/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.new
perl $1/update_spec.pl $1/$ORIG_SPEC-mono.spec.new attributes > $1/$ORIG_SPEC-mono.spec
rm $1/$ORIG_SPEC-mono.spec.new
# 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.new
perl $1/update_spec.pl $1/$ORIG_SPEC-glib2.spec.new attributes > $1/$ORIG_SPEC-glib2.spec
rm $1/$ORIG_SPEC-glib2.spec.new
# 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.new
perl $1/update_spec.pl $1/$ORIG_SPEC-qt4.spec.new attributes > $1/$ORIG_SPEC-qt4.spec
rm $1/$ORIG_SPEC-qt4.spec.new
# 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