diff options
Diffstat (limited to 'redhat/genrpm.sh')
-rwxr-xr-x | redhat/genrpm.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/redhat/genrpm.sh b/redhat/genrpm.sh new file mode 100755 index 000000000..96d6ce7de --- /dev/null +++ b/redhat/genrpm.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +cd "$( dirname "$0" )" + +clear +cat <<EOF +This script generates RPM of TDE from source tarball. +Please choose a TDE component to build. + +EOF + +# Checks RPMBUILD environment +if [ $( rpm -E "%{rhel}" ) = "%{rhel}" ] && [ $( rpm -E "%{fedora}" ) = "%{fedora}" ]; then + cat <<EOF +Error: RPM macro %rhel or %fedora must be set to the distribution version to build ! +E.g: +%rhel 6 +or +%fedora 15 +EOF + exit 1 +fi + +select COMP in $( cut -f1 "components.txt" ) ; do + # Gets package version from 'components.txt' file + VERSION=$( awk '{ if ($1 == "'${COMP}'") { print $2; } }' components.txt ) + + # If no version is set in text file, get version number from source tarball name + if [ -z "${VERSION}" ]; then + set $( cd "${COMP}"; echo ${COMP##*/}*.tar.gz) + if [ $# -gt 1 ]; then + select VERSION in $*; do break; done + elif [ -r "${COMP}/$1" ]; then + VERSION="$1" + else + echo "No source tarball found for '${COMP}' !" + continue + fi + VERSION="${VERSION##${COMP##*/}-}" + VERSION="${VERSION%%.tar.gz}" + # If version is defined in spec file: appends the date + else + VERSION="${VERSION}.$(date +%Y%m%d)" + fi + + # Chooses a spec file (if many) + set $( cd "${COMP}"; echo *.spec ) + if [ $# -gt 1 ]; then + select SPEC in $*; do break; done + elif [ -r "${COMP}/$1" ]; then + SPEC="$1" + else + echo "Fatal: no spec file found !" + exit 2 + fi + + cat <<EOF + +About to build '${COMP}': + Version: '${VERSION}' + Spec file: '${SPEC}' + +Press ENTER to build, or CTRL+C to abort. +EOF + read rep + + # Specific prefix for installation of some components + case "${COMP##*/}" in + "qt3") PREFIX="/usr";; + esac + + set -x + rpmbuild -ba \ + --define "_sourcedir ${PWD}/${COMP}" \ + --define "_prefix ${PREFIX:-/opt/trinity}" \ + --define "version ${VERSION:-3.5.13}" \ + ${COMP}/${SPEC} || exit 1 + set +x +done + |