#!/bin/bash # # Creates RPMs packages from SVN repository for local tests # # $Id: mkrpm 318 2006-01-14 09:45:10Z bcornec $ # umask 022 dname=`dirname $0` prem=`echo $dname |cut -c1` if [ ${prem} == "/" ]; then export TOOLHOME=$dname else export TOOLHOME=${PWD}/$dname fi . $TOOLHOME/rpm-env # To be safe for SVN commands cd $TOOLHOME/.. rev=`$TOOLHOME/mksvnversion` echo "Generating SVN log file ..." svn log -v > /tmp/mondorescue-svn.log if [ "$1" = "" ]; then c="mindi mondo" else c=$1 fi if [ "`echo $c | grep mindi-kernel`" != "" ]; then cd ${BASE}/svn echo "Management of mindi-kernel ${MINDI_VER}-$rev" rm -fr mindi-kernel-${MINDI_VER} cp -a ${VER}/mindi-kernel mindi-kernel-${MINDI_VER} find mindi-kernel-${MINDI_VER} -type d -name .svn | xargs rm -rf find mindi-kernel-${MINDI_VER} -type f -name '.*.swp' | xargs rm -rf find mindi-kernel-${MINDI_VER} -type f -name '*~' | xargs rm -rf mkdir -p ${TOPDIR}/SOURCES echo "Creating mindi-kernel tar files" tar cvfhz ${TOPDIR}/SOURCES/mindi-kernel-${MINDI_VER}.tgz mindi-kernel-${MINDI_VER} tar cvfhj ${TOPDIR}/SOURCES/mindi-kernel-${MINDI_VER}.tar.bz2 mindi-kernel-${MINDI_VER} sed "s/^%define mrel..*RRR/%define mrel ${rev}${suf}/" mindi-kernel-${MINDI_VER}/mindi-kernel.spec > ${TOPDIR}/SPECS/mindi-kernel.spec rm -f ${TMP}/mindi-kernel*-root pkg="$pkg ${TOPDIR}/RPMS/${ARCH}/mindi-kernel-${MINDI_VER}-${rev}${suf}.${ARCH}.rpm" fi if [ "`echo $c | grep -v kernel | grep mindi`" != "" ]; then cd ${BASE}/svn echo "Management of mindi ${MINDI_VER}-$rev" rm -fr mindi-${MINDI_VER} cp -a ${VER}/mindi mindi-${MINDI_VER} cp -a /tmp/mondorescue-svn.log mindi-${MINDI_VER}/svn.log find mindi-${MINDI_VER} -type d -name .svn | xargs rm -rf find mindi-${MINDI_VER} -type f -name '.*.swp' | xargs rm -rf find mindi-${MINDI_VER} -type f -name '*~' | xargs rm -rf if [ -f mindi-${MINDI_VER}/distributions/${ddir}/mindi.spec ]; then specfile=mindi-${MINDI_VER}/distributions/${ddir}/mindi.spec else specfile=mindi-${MINDI_VER}/distributions/common/mindi.spec fi sed -e "s/^%define mrel..*RRR/%define mrel ${rev}${suf}/" -e "s/VVV/${MINDI_VER}/" $specfile > ${TOPDIR}/SPECS/mindi.spec rm -rf mindi-${MINDI_VER}/distributions rm -f mindi-${MINDI_VER}/parted2fdisk mindi-${MINDI_VER}/parted2fdisk.c mindi-${MINDI_VER}/rootfs/sbin/parted2fdisk-ia64 mkdir -p ${TOPDIR}/SOURCES echo "Creating mindi tar files" tar cfhz ${TOPDIR}/SOURCES/mindi-${MINDI_VER}.tgz mindi-${MINDI_VER} tar cfhj ${TOPDIR}/SOURCES/mindi-${MINDI_VER}.tar.bz2 mindi-${MINDI_VER} rm -f ${TMP}/mindi-*-root pkg="$pkg ${TOPDIR}/RPMS/${ARCH}/mindi-${MINDI_VER}-${rev}${suf}.${ARCH}.rpm" # ATTENTION: This could be dangerous for your setup opt="rm -rf /usr/lib/mindi ;" fi if [ "`echo $c | grep mondo`" != "" ]; then cd ${BASE}/svn echo "Management of mondo ${MONDO_VER}-$rev" rm -rf mondo-${MONDO_VER} cp -a ${VER}/mondo mondo-${MONDO_VER} cp -a /tmp/mondorescue-svn.log mondo-${MONDO_VER}/svn.log cd mondo-${MONDO_VER} echo "Bootstraping mondo ... " ./bootstrap find . -type d -name .svn | xargs rm -rf find . -type f -name '.*.swp' | xargs rm -rf find . -type f -name '*~' | xargs rm -rf cd .. if [ -f mondo-${MONDO_VER}/distributions/${ddir}/mondo.spec ]; then specfile=mondo-${MONDO_VER}/distributions/${ddir}/mondo.spec else specfile=mondo-${MONDO_VER}/distributions/common/mondo.spec fi sed -e "s/^%define mrel..*RRR/%define mrel ${rev}${suf}/" -e "s/VVV/${MONDO_VER}/" $specfile > ${TOPDIR}/SPECS/mondo.spec rm -rf mondo-${MONDO_VER}/distributions echo "Creating mondo tar files" tar cfhz ${TOPDIR}/SOURCES/mondo-${MONDO_VER}.tgz mondo-${MONDO_VER} tar cfhj ${TOPDIR}/SOURCES/mondo-${MONDO_VER}.tar.bz2 mondo-${MONDO_VER} rm -f ${TMP}/mondo-*-root pkg="$pkg ${TOPDIR}/RPMS/${ARCH}/mondo-${MONDO_VER}-${rev}${suf}.${ARCH}.rpm" fi cd ${TOPDIR}/SPECS status=0 if [ "`echo $c | grep kernel`" != "" ]; then echo "Generating mindi-kernel RPMS" log=/tmp/mindi-kernel-rpm.log rpmbuild -ba mindi-kernel.spec 2> $log 1> $log if [ $? != 0 ]; then cat $log status=-1 fi fi if [ "`echo $c | grep -v kernel | grep mindi`" != "" ]; then echo "Generating mindi RPMS" log=/tmp/mindi-rpm.log rpmbuild -ba mindi.spec 2> $log 1> $log if [ $? != 0 ]; then cat $log status=-1 fi fi if [ "`echo $c | grep mondo`" != "" ]; then echo "Generating mondo RPMS" log=/tmp/mondo-rpm.log rpmbuild -ba mondo.spec 2> $log 1> $log if [ $? != 0 ]; then cat $log status=-1 fi fi if [ $status = 0 ]; then echo "Installing RPMS as root ($pkg)" su - -c "$opt rpm -Uvh --force $pkg" fi