diff options
Diffstat (limited to 'redhat/genrpm.sh')
-rwxr-xr-x | redhat/genrpm.sh | 136 |
1 files changed, 91 insertions, 45 deletions
diff --git a/redhat/genrpm.sh b/redhat/genrpm.sh index df6362bc3..6dfe7d68c 100755 --- a/redhat/genrpm.sh +++ b/redhat/genrpm.sh @@ -3,10 +3,11 @@ cd "$( dirname "$0" )" ARGS="" -eval TARBALLS_DIR=~/tde/3.5.13.1 +eval TARBALLS_DIR=~/tde/tde-tarballs/3.5.13.2 +DIST="$(rpmdist.sh --dist)" +# CCACHE related stuff if [ ! -d /var/cache/ccache ]; then - DIST="$(rpmdist.sh --dist)" [ -z "${DIST}" ] && DIST="$(rpm -E "%{dist}")" if [ -n "${DIST}" ]; then export CCACHE_DIR=~/.ccache${DIST}.$(uname -m) @@ -14,20 +15,19 @@ if [ ! -d /var/cache/ccache ]; then fi while [ $# -gt 0 ]; do - case "$1" in - "--auto"|"-a") AUTO=1;; - "--version"|"-v") REQVERSION="$2"; shift;; - "--"*) ARGS="${ARGS} $1";; - *) COMP="${1%%/}";; - esac - shift + case "$1" in + "--auto"|"-a") AUTO=1;; + "--version"|"-v") REQVERSION="$2"; shift;; + "--"*) ARGS="${ARGS} $1";; + *) COMP="${1%%/}";; + esac + shift done clear cat <<EOF $(< /etc/redhat-release) [$(uname -m)] This script generates RPM of TDE from source tarball. -Please choose a TDE component to build. EOF @@ -38,14 +38,14 @@ SUSE="$( rpm -E "%{suse_version}" )" PCLINUXOS="$( rpm -E "%{pclinuxos}" )" MGAVERSION="$( rpm -E "%{mgaversion}" )" if [ "${RHEL}" = "%{rhel}" ] && [ "${FEDORA}" = "%{fedora}" ] && [ "${SUSE}" = "%{suse_version}" ] && [ "${PCLINUXOS}" = "%{pclinuxos}" ] && [ "${MGAVERSION}" = "%{mgaversion}" ] ; then - cat <<EOF + 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 + exit 1 fi # Checks TDE version to use @@ -54,39 +54,46 @@ fi #fi if [ -z "${COMP}" ]; then - select COMP in $( cut -f1 "components.txt" | grep -v "^#" ) ; do break; done + 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 +COMPNAME="${COMP##*/}" if [ -z "${VERSION}" ]; then - if [ -n "${REQVERSION}" ]; then - set $( cd "${TARBALLS_DIR}"; echo ${COMP##*/}*-${REQVERSION%-sru}*.tar.gz) - else - set $( cd "${TARBALLS_DIR}"; echo ${COMP##*/}*.tar.* ) - fi - if [ $# -gt 1 ]; then - select VERSION in $*; do break; done - elif [ -r "${TARBALLS_DIR}/$1" ]; then - VERSION="$1" - elif [ "${COMP}" = "trinity-live" ]; then - VERSION="3.5.13" - else - echo "No source tarball found for '${COMP}' !" - exit 0 - fi - VERSION="${VERSION##${COMP##*/}-}" - VERSION="${VERSION%%.tar.gz}" - VERSION="${VERSION%%.tar.bz2}" -# If version is defined in spec file: appends the date -else - VERSION="${VERSION}.$(date +%Y%m%d)" + for d in "${TARBALLS_DIR}/main/${COMP%/*}" "${TARBALLS_DIR}/main/" "${PWD}/main/${COMP}/"; do + for n in "trinity-${COMPNAME}-${REQVERSION:-*}.tar.gz" "trinity-${COMPNAME}?-${REQVERSION:-*}.tar.gz" "trinity-${COMPNAME/kde/tde}-${REQVERSION:-*}.tar.gz" "trinity-${COMPNAME/kde/tde}-${REQVERSION:-*}*.tar.gz"; do +# echo $d/$n + set $d/$n + if [ $# -eq 0 ]; then + echo "No tarball found !" + exit 1 + elif [ $# -eq 1 ] && [ -r "$1" ]; then + TARBALL=$1 + elif [ $# -gt 1 ]; then + select TARBALL in $*; do break; done + fi + done + done + + echo "TARBALL is ${TARBALL##*/}" +fi + +# Checks for version +if [ -z "${VERSION}" ] && [ -n "${REQVERSION}" ]; then + VERSION="${REQVERSION}" +fi + +# Checks for preversion (non-final) +if [ "${TARBALL}" != "${TARBALL%%~pre*}" ]; then + PREVERSION="${TARBALL##*~}" + PREVERSION="${PREVERSION%.tar*}" fi # Chooses a spec file (if many) -set $( cd "${COMP}"; echo *.spec ) +set $( cd "${COMP}"; echo *${COMP##*/}*.spec ) if [ $# -gt 1 ]; then if [ -n "${REQVERSION}" ]; then set $( cd "${COMP}"; echo *-${REQVERSION}.spec ) @@ -98,6 +105,7 @@ elif [ -r "${COMP}/$1" ]; then SPEC="$1" else echo "Fatal: no spec file found !" + echo $1 exit 2 fi @@ -105,7 +113,9 @@ cat <<EOF About to build '${COMP}': Version: '${VERSION}' + Preversion: '${PREVERSION}' Spec file: '${SPEC}' + Tarball: '${TARBALL}' CCACHE_DIR='${CCACHE_DIR}' @@ -127,28 +137,62 @@ LOGFILE=/tmp/log.${COMP##*/} SOURCEDIR="$(mktemp -d)" # Puts the GIT files in SOURCEDIR -cp -rf "${PWD}/${COMP}/"* "${SOURCEDIR}" +#rsync -rLv "${PWD}/${COMP}/" "${SOURCEDIR}/" +while read a b; do + case "${a}" in + "Source"*|"Patch"*) + b=$(rpm -E "${b##*/}") + [ -r "${COMP}/${b}" ] && cp -fv "${COMP}/${b}" "${SOURCEDIR}" + ;; + esac +done < "${COMP}/${SPEC}" + +# Copies the SPEC file +cp -f "${COMP}/${SPEC}" "${SOURCEDIR}" + # Puts the TARBALL in SOURCEDIR -cp -f "${TARBALLS_DIR}/${COMP}-"*.tar* "${SOURCEDIR}" +#cp -f "${TARBALLS_DIR}/${COMP}-"*.tar* "${SOURCEDIR}" +echo "Copying TARBALL ..." +cp -fv "${TARBALL}" "${SOURCEDIR}" + +if [ $(hostname) = "aria.vtf" ]; then + BUILDDIR="$HOME/rpmbuild/BUILD/BUILD${DIST}.$(uname -i)" + BUILDROOTDIR="$HOME/rpmbuild/BUILDROOT/BUILDROOT${DIST}.$(uname -i)" +else + BUILDDIR="/dev/shm/BUILD${DIST}.$(uname -i)" + BUILDROOTDIR="/dev/shm/BUILDROOT${DIST}.$(uname -i)" +fi + +TOPSRCRPMDIR="$(rpm -E %_srcrpmdir)" +TOPRPMDIR="$(rpm -E %_rpmdir)" +SUBDIR="${COMP%/*}" +if [ "${SUBDIR}" = "${COMP}" ]; then + SUBDIR="main" +fi +RPMDIR="${TOPRPMDIR}/${SUBDIR}" +SRCRPMDIR="${TOPSRCRPMDIR}/${SUBDIR}" -BUILDDIR="/dev/shm/BUILD${DIST}.$(uname -i)" -BUILDROOTDIR="/dev/shm/BUILDROOT${DIST}.$(uname -i)" +[ -d "${BUILDDIR}" ] || mkdir "${BUILDDIR}" +[ -d "${BUILDROOTDIR}" ] || mkdir "${BUILDROOTDIR}" set -x ( rpmbuild -ba \ ${ARGS} \ + --define "_specdir ${SOURCEDIR}" \ --define "_sourcedir ${SOURCEDIR}" \ - --define "_builddir ${BUILDDIR}" \ - --define "_buildrootdir ${BUILDROOTDIR}" \ + --define "_builddir ${BUILDDIR}" \ + --define "_buildrootdir ${BUILDROOTDIR}" \ --define "tde_prefix ${PREFIX:-/opt/trinity}" \ - --define "version ${VERSION:-3.5.13}" \ - ${COMP}/${SPEC} || exit 1 + --define "version ${VERSION:-3.5.13.2}" \ + --define "preversion ${PREVERSION}" \ + ${SOURCEDIR}/${SPEC} + echo "RET=$?" ) 2>&1 | tee ${LOGFILE} -RET=$? +eval "$(grep ^RET= ${LOGFILE})" set +x -if [ ${RET} -gt 0 ]; then +if [ "${RET}" -gt 0 ]; then exit ${RET} fi @@ -158,4 +202,6 @@ if grep -q "error: Failed build dependencies:" ${LOGFILE}; then exit 2 fi +set -x rm -rf "${SOURCEDIR}" +#rm -rf "${BUILDDIR}/"*${COMP}-${VERSION}* |