forked from Mirrors/freeswitch
174 lines
5.0 KiB
Bash
Executable File
174 lines
5.0 KiB
Bash
Executable File
#!/bin/sh
|
|
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
|
|
|
|
src_repo="$(pwd)"
|
|
tmp_dir=${TMP_DIR:=".."}
|
|
|
|
zgrep () { (echo "$2" | grep -e "$1" >/dev/null); }
|
|
|
|
parse_version () {
|
|
local ver="$1" major="" minor="" micro="" rev=""
|
|
local next=major
|
|
for x in $(echo "$1" | sed -e 's/\([._~-]\)/ \1 /g'); do
|
|
if [ $next = rev ]; then
|
|
rev="${rev}${x}"
|
|
elif [ "$x" = "." ] || [ "$x" = "_" ] || [ "$x" = "~" ] || [ "$x" = "-" ]; then
|
|
if [ "$x" = "_" ] || [ "$x" = "~" ] || [ "$x" = "-" ]; then
|
|
next=rev
|
|
eval $next='$x'
|
|
else
|
|
case $next in
|
|
major) next=minor;;
|
|
minor) next=micro;;
|
|
micro) next=rev;;
|
|
esac
|
|
fi
|
|
else
|
|
local tmp="$(eval echo \$$next)"
|
|
eval $next='${tmp}${x}'
|
|
fi
|
|
done
|
|
# The major version should never be null
|
|
if [ -z "$major" ]; then
|
|
echo "WARNING: parse_version was called with '$1' which is missing a major version number" >&2
|
|
fi
|
|
# If someone asks for the minor or micro specificially, they
|
|
# probably expect that it won't be null. Also, vX.Y should never be
|
|
# different from vX.Y.0 (that would be crazy), so we don't lose
|
|
# meaningful generality by setting minor or micro to zero on vX or
|
|
# vX.Y style versions.
|
|
minor="${minor:-0}"
|
|
micro="${micro:-0}"
|
|
# centos-style versions (don't mess with the argument given for now)
|
|
# TODO: what is the CentOS version number policy?
|
|
local cmajor cminor cmicro crev cver
|
|
cmajor="${major:-0}"
|
|
cminor="${minor:-0}"
|
|
cmicro="${micro:-0}"
|
|
crev="$(echo "$rev" | sed -e 's/[._~-]//')"
|
|
cver="${cmajor}.${cminor}.${cmicro}"
|
|
[ -n "$crev" ] && cver="${cver}.${crev}"
|
|
# fix up if the revision was passed in the minor or micro number
|
|
if zgrep '^\(alpha\|beta\|rc\)' "$minor"; then
|
|
rev="-${minor}"
|
|
minor="0"
|
|
micro="0"
|
|
ver="${major}${rev}"
|
|
fi
|
|
if zgrep '^\(alpha\|beta\|rc\)' "$micro"; then
|
|
rev="-${micro}"
|
|
micro="0"
|
|
ver="${major}.${minor}${rev}"
|
|
fi
|
|
# git-style versions
|
|
local gmajor gminor gmicro grev gver
|
|
gver="$(echo "$ver" | sed -e 's/[~_]/-/')"
|
|
grev="$(echo "$rev" | sed -e 's/[~_]/-/')"
|
|
gmajor="$major"
|
|
gminor="$minor"
|
|
gmicro="$micro"
|
|
# debian-style versions
|
|
local dmajor dminor dmicro drev dver
|
|
dver="$(echo "$ver" | sed -e 's/[-_]/~/')"
|
|
drev="$(echo "$rev" | sed -e 's/[-_]/~/')"
|
|
dmajor="$major"
|
|
dminor="$minor"
|
|
dmicro="$micro"
|
|
# return variables
|
|
echo "ver='$ver'"
|
|
echo "major='$major'"
|
|
echo "minor='$minor'"
|
|
echo "micro='$micro'"
|
|
echo "rev='$rev'"
|
|
echo "gver='$gver'"
|
|
echo "gmajor='$gmajor'"
|
|
echo "gminor='$gminor'"
|
|
echo "gmicro='$gmicro'"
|
|
echo "grev='$grev'"
|
|
echo "dver='$dver'"
|
|
echo "dmajor='$dmajor'"
|
|
echo "dminor='$dminor'"
|
|
echo "dmicro='$dmicro'"
|
|
echo "drev='$drev'"
|
|
echo "cver='$cver'"
|
|
echo "cmajor='$cmajor'"
|
|
echo "cminor='$cminor'"
|
|
echo "cmicro='$cmicro'"
|
|
echo "crev='$crev'"
|
|
}
|
|
|
|
set_fs_ver () {
|
|
local ver="$1" major="$2" minor="$3" micro="$4" rev="$5" hrev="$6"
|
|
sed \
|
|
-e "s|\(AC_SUBST(SWITCH_VERSION_MAJOR, \[\).*\(\])\)|\1$major\2|" \
|
|
-e "s|\(AC_SUBST(SWITCH_VERSION_MINOR, \[\).*\(\])\)|\1$minor\2|" \
|
|
-e "s|\(AC_SUBST(SWITCH_VERSION_MICRO, \[\).*\(\])\)|\1$micro\2|" \
|
|
-e "s|\(AC_INIT(\[freeswitch\], \[\).*\(\], bugs@freeswitch.org)\)|\1$ver\2|" \
|
|
configure.ac > configure.ac.$$
|
|
mv configure.ac.$$ configure.ac
|
|
if [ -n "$rev" ]; then
|
|
[ -n "$hrev" ] || hrev="$rev"
|
|
sed -e "s|\(AC_SUBST(SWITCH_VERSION_REVISION, \[\).*\(\])\)|\1$rev\2|" \
|
|
-e "s|\(AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, \[\).*\(\])\)|\1'$hrev'\2|" \
|
|
-e "s|#\(AC_SUBST(SWITCH_VERSION_REVISION\)|\1|" \
|
|
-e "s|#\(AC_SUBST(SWITCH_VERSION_REVISION_HUMAN\)|\1|" \
|
|
configure.ac > configure.ac.$$
|
|
mv configure.ac.$$ configure.ac
|
|
fi
|
|
|
|
local rpm_version
|
|
if [ -n "$rev" ]; then
|
|
rpm_version="$major.$minor.$micro.$rev"
|
|
else
|
|
rpm_version="$major.$minor.$micro"
|
|
fi
|
|
|
|
sed -e "s|\(%define nonparsedversion \).*|\1$rpm_version|" \
|
|
freeswitch.spec > freeswitch.spec.$$
|
|
mv freeswitch.spec.$$ freeswitch.spec
|
|
|
|
sed -e "s|\(%define nonparsedversion \).*|\1$rpm_version|" \
|
|
freeswitch-config-rayo.spec > freeswitch-config-rayo.spec.$$
|
|
mv freeswitch-config-rayo.spec.$$ freeswitch-config-rayo.spec
|
|
|
|
#%define version 1.5.16
|
|
|
|
}
|
|
|
|
set_fs_release () {
|
|
local release="$1"
|
|
if [ -n "$release" ]; then
|
|
sed -e "s|\(%define release \).*|\1$release|" \
|
|
freeswitch.spec > freeswitch.spec.$$
|
|
mv freeswitch.spec.$$ freeswitch.spec
|
|
|
|
sed -e "s|\(%define release \).*|\1$release|" \
|
|
freeswitch-config-rayo.spec > freeswitch-config-rayo.spec.$$
|
|
mv freeswitch-config-rayo.spec.$$ freeswitch-config-rayo.spec
|
|
fi
|
|
}
|
|
|
|
gnuize () {
|
|
./bootstrap.sh
|
|
mv bootstrap.sh rebootstrap.sh
|
|
rm -f docs/AUTHORS
|
|
rm -f docs/COPYING
|
|
rm -f docs/ChangeLog
|
|
rm -rf .git
|
|
}
|
|
|
|
check_pwd () {
|
|
if [ ! -d .git ]; then
|
|
echo "error: must be run from within the top level of a FreeSWITCH git tree." 1>&2
|
|
exit 1;
|
|
fi
|
|
}
|
|
|
|
check_input_ver_build () {
|
|
if [ -z "$1" ]; then
|
|
echo "usage: $0 <version> <build-number>" 1>&2
|
|
exit 1;
|
|
fi
|
|
}
|
|
|