Whamcloud - gitweb
49c0a13cfca10d5ea9505ca3e0ef68397334033b
[tools/e2fsprogs.git] / contrib / build-rpm
1 #!/bin/sh
2
3 # enable xtrace output if requested
4 if [ -n ${ENABLE_XTRACE:-''} ]; then
5     set -x
6 fi
7
8 # Build an e2fsprogs RPM from cvs
9
10 pwd=`pwd`
11 currdir=`basename $pwd`
12 pkgname=`grep Name: e2fsprogs.spec | awk '{print $2;}'`
13 pkgvers=`grep Version: e2fsprogs.spec | awk '{print $2;}'`
14 builddir=${pkgname}-${pkgvers}
15
16 # ensure that $TMP is set to something
17 TMP=${TMP:-'/tmp'}
18
19 cd ..
20 tmpdir=`mktemp -d ${RPM_TMPDIR:-$TMP}/rpmtmp.XXXXXX`
21
22 # We need to build a tarball for the SRPM using $builddir as the 
23 # directory name (since that's what RPM will expect it to unpack
24 # into).  That may require a symlink.
25
26 # Make a recursive-symlink copy of the source dir
27 cp -sR `pwd`/$currdir $tmpdir/$builddir || exit 1
28
29 # Remove any build files from the temporary tarball directory
30 [ -f $tmpdir/$builddir/Makefile ] && make -C $tmpdir/$builddir distclean
31
32 EXCLUDE="--exclude .hg* --exclude .pc* --exclude .git*"
33 (cd $tmpdir && tar czfh ${builddir}.tar.gz $EXCLUDE $builddir)
34
35 [ "`rpmbuild --version 2> /dev/null`" ] && RPM=rpmbuild || RPM=rpm
36
37 # which distro and release
38 DISTRO=$(lsb_release -is)
39 RELEASE=$(lsb_release -rs)
40 # now the hacks in case either is empty
41 if [ -z "$DISTRO" ]; then
42     echo "You really ought to install the lsb_release binary for this distro"
43     if grep "Fedora " /etc/issue; then
44         DISTRO="Fedora"
45     fi
46 fi
47 if [ -z "$DISTRO" ]; then
48     echo "Could not determine the distribution.  Please install the lsb_release binary"
49     exit 1
50 fi
51 if [ -z "$RELEASE" ]; then
52     echo "You really ought to install the lsb_release binary for this distro"
53     case "$DISTRO" in
54         Fedora)
55             RELEASE=$(grep Fedora /etc/issue | sed -e 's/Fedora release //' -e 's/ .*//')
56         ;;
57     esac
58 fi
59 if [ -z "$RELEASE" ]; then
60     echo "Could not determine the release.  Please install the lsb_release binary"
61     exit 1
62 fi
63 case "$DISTRO-$RELEASE" in
64     RedHatEnterpriseServer-6*) DISTRO=RHEL; RELEASE=6;;
65     CentOS-6*) DISTRO=RHEL; RELEASE=6;;
66     Fedora-1[234]) DISTRO=RHEL; RELEASE=6;;     # use the same .spec for now
67 esac
68
69 SPECFILE="$currdir/e2fsprogs-${DISTRO// /_}-$RELEASE.spec"
70 if [ ! -f "$SPECFILE" ]; then
71     SPECFILE="$currdir/e2fsprogs.spec"
72 fi
73 echo "using SPECFILE=$SPECFILE"
74 $RPM --define "_sourcedir $tmpdir" \
75      --define "_topdir ${RPM_TOPDIR:-$(rpm -E %_topdir)}" \
76      --define "_tmpdir ${RPM_TMPDIR:-$TMP}" \
77      --define "extra_config_flags ${EXTRA_CONFIG_FLAGS:-''}" \
78      -ba $SPECFILE
79
80 rpm_exit=$?
81 rm -rf $tmpdir
82 exit $rpm_exit