You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/redhat/genrpm.sh

99 lines
2.1 KiB

#!/bin/bash
cd "$( dirname "$0" )"
while [ $# -gt 0 ]; do
case "$1" in
"--auto") AUTO=1;;
*) COMP="$1";;
esac
shift
done
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
if [ -z "${COMP}" ]; then
select COMP in $( cut -f1 "components.txt" | grep -v "^#" ) ; do break; done
fi
# 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
[ -z "${AUTO}" ] && read rep
# Specific prefix for installation of some components
case "${COMP##*/}" in
"qt3") PREFIX="/usr";;
esac
# Determines if we are running an i386 or x86_64 distro
if [ "$(rpm -q --qf '%{arch}' kernel)" = "i686" ]; then
ARGS="${ARGS} --target=i686"
fi
set -x
(
rpmbuild -ba \
--define "_sourcedir ${PWD}/${COMP}" \
--define "_prefix ${PREFIX:-/opt/trinity}" \
--define "version ${VERSION:-3.5.13}" \
$ARGS \
${COMP}/${SPEC} || exit 1
) 2>&1 | tee /tmp/log
set +x