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
|
#!/bin/sh
# build RPM package(s) from the files in this directory
#
# specify the name of a package to build as the first argument, or no arguments
# to build all packages
dir1=`pwd`
dir2=`dirname "$0"`
dir=`cd "$dir1/$dir2"; pwd`
id=`lsb_release -is`
release=`lsb_release -rs | cut -d . -f 1`
if [ -z "$1" ]; then
packages=""
for package in "$dir/packages/rpm/$id/$release/"*.spec; do
package=`basename "$package"`
package=`echo "$package" | sed 's/.spec$//'`
packages="$packages $package"
done
else
if [ -f "$dir/packages/rpm/$id/$release/$1.spec" ]; then
packages=$1
else
echo "rpmbuild.sh: $1: No such package in '$dir/packages/rpm/$id/$release'" >&2
exit 3
fi
fi
if [ -f "$HOME/.rpmmacros" ] && grep '^%_topdir' "$HOME/.rpmmacros" > /dev/null; then
topdir=`grep '^%_topdir' "$HOME/.rpmmacros" | awk '{ print $2 }'`
else
topdir=/usr/src/redhat
fi
for package in $packages; do
version=`grep '^Version:' "$dir/packages/rpm/$id/$release/$package.spec" | sed 's/^Version:[ \t]*\([^ \t]\)/\1/'`
# there may not be any patches, so redirect errors to /dev/null
cp -f "$dir/packages/rpm/$id/$release/${package}_"*.patch "$topdir/SOURCES/" 2> /dev/null
cp -f "$dir/packages/rpm/$id/$release/$package.spec" "$topdir/SPECS/"
case $package in
openvista-gtm-integration)
# create source tarabll
rm -rf "$topdir/SOURCES/${package}-$version"
cp -R "$dir" "$topdir/SOURCES/${package}-$version"
rm -rf "$topdir/SOURCES/${package}-$version/.bzr"
rm -f "$topdir/SOURCES/${package}-$version.tar.bz2"
tar -c --bzip2 -f "$topdir/SOURCES/${package}-$version.tar.bz2" -C "$topdir/SOURCES" "${package}-$version"
rm -rf "$topdir/SOURCES/${package}-$version"
cp -f "$dir/packages/rpm/$id/$release/webdav.conf" "$topdir/SOURCES/"
cp -f "$dir/packages/rpm/$id/$release/openvista" "$topdir/SOURCES/"
( cd "$topdir/SPECS" && rpmbuild -ba "$package.spec" )
;;
fis-gtm*)
# assume sources are already present
# this package must be built as root; assume sudo does not require a password
( cd "$topdir/SPECS" && sudo rpmbuild -ba "$package.spec" )
;;
putty-tools|lsyncd)
# assume sources are already present
( cd "$topdir/SPECS" && rpmbuild -ba "$package.spec" )
;;
esac
done
|