1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#!/bin/bash
[ $# -lt 2 ] && {
echo "Usage: rpmdist [all|mol|mol-kmods] VERSION [RELEASE]"
}
VERSION=$2
RELEASE=1
ARCHIVE=mol-$VERSION.tar.gz
[ -f mol-$VERSION.tgz ] && ARCHIVE=mol-$VERSION.tgz
[ $# == 3 ] && RELEASE=$3
RPM=rpm
[ -x /usr/bin/rpmbuild ] && RPM=/usr/bin/rpmbuild
###############################################
# Generate mol rpm
###############################################
function mol_rpm()
{
SPECFILE=/tmp/mol.spec
rm -f $SPECFILE
{
echo "%define version $VERSION"
echo "%define release $RELEASE"
cat scripts/mol.spec.stub
} > $SPECFILE
cp -f $ARCHIVE `echo $REDHAT/SOURCES/$ARCHIVE | sed -e s/tar.gz/tgz/`
$RPM -ba $SPECFILE || exit $?
}
###############################################
# Generate mol-kmods rpm
###############################################
function mol_kmods_rpm()
{
SPECFILE=/tmp/mol-kmods.spec
rm -f $SPECFILE
{
echo "%define version $VERSION"
echo "%define release $RELEASE"
cat scripts/mol-kmods.spec.stub
} > $SPECFILE
# Rename directory in tar archive and delete
# certain unnecessary files to reduce the size of the source RPM
A=`pwd`/$ARCHIVE
pushd /tmp
rm -rf mol.rpmbuild
mkdir mol.rpmbuild
cd mol.rpmbuild || exit 1
tar -xzf $A
cd mol-$VERSION || exit 1
rm -rf mollib
cd ../
mv mol-$VERSION mol-kmods-$VERSION
KARCHIVE=mol-kmods-$VERSION.tgz
tar -czf $KARCHIVE mol-kmods-$VERSION
cp -f $KARCHIVE $REDHAT/SOURCES/$KARCHIVE
popd
[ "$KERNEL_TREES" ] && {
$RPM -ba $SPECFILE --define "kernel_trees $KERNEL_TREES" || exit $?
} || {
$RPM -ba $SPECFILE || exit $?
}
rm -rf /tmp/mol.rpmbuild
}
###############################################
# Is there a better way?
###############################################
REDHAT=/usr/src/redhat
[ -d /usr/src/rpm ] && REDHAT=/usr/src/rpm
[ -d /usr/src/RPM ] && REDHAT=/usr/src/RPM
[ -d /usr/src/packages ] && REDHAT=/usr/src/packages
[ -d /usr/src/redhat ] && REDHAT=/usr/src/redhat
###############################################
# Prepare specfile and build package
###############################################
case $1 in
mol) mol_rpm ;;
*kmods) mol_kmods_rpm ;;
*) mol_rpm ; mol_kmods_rpm ;;
esac
|