aboutsummaryrefslogtreecommitdiffstats
path: root/resources/install/rpm/SPECS/build-jitsi-rpm.sh
blob: f501d514cf9b5cbb6eb56df9224779924b68f4e1 (plain)
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
#!/bin/bash -xe

SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
cd $SCRIPT_DIR
#exec > "${0%.*}.log" 2>&1

if [[ "$1" == "--help" || "$1" == "-h" || "$1" == "-?" || $# -lt 1 ]]; then
    echo "Usage $0 BUILD_NUMBER"
    exit 1
fi

buildNumber=$1

# Deletes everything but the newest files matching the specified pattern
clean_oldies() {
    pattern="$1"
    leaveCount="$2"
    
    fileCount=$(ls -1 $pattern | wc -l)
    tailCount=$((fileCount - leaveCount))

    (( $tailCount < 0 )) && tailCount=0

    ls -t $pattern | tail -$tailCount | xargs rm -f
}

cd SOURCES

[[ ! -d jitsi ]] && git clone https://github.com/jitsi/jitsi.git

cd jitsi
git stash
git pull --rebase
git stash pop || true

VERSION_MAJOR=$(grep 'public static final int VERSION_MAJOR = ' src/net/java/sip/communicator/impl/version/VersionImpl.java | awk '{print $7}' | awk -F ';' '{print $1}')
VERSION_MINOR=$(grep 'public static final int VERSION_MINOR = ' src/net/java/sip/communicator/impl/version/VersionImpl.java | awk '{print $7}' | awk -F ';' '{print $1}')
version=$VERSION_MAJOR.$VERSION_MINOR

echo "Creating zip file"
cd $SCRIPT_DIR/SOURCES
rm -f jitsi-src*.zip
zipFileName=jitsi-src-${version}-${buildNumber/./-}.zip
zip -rq $zipFileName jitsi -x 'jitsi/.git/* jitsi/.gitignore'

sed -i \
-e "s@Version:\( *\).*@Version:\1$version@" \
-e "s@Release:\( *\).*@Release:\1$buildNumber@" \
-e "s@Source0:\( *\).*@Source0:\1http://download.jitsi.org/jitsi/nightly/src/$zipFileName@" \
-e "s@ant -Dlabel=.* rebuild@ant -Dlabel=$buildNumber rebuild@" \
$SCRIPT_DIR/SPECS/jitsi.spec

rm -f $SCRIPT_DIR/RPMS/i686/jitsi*.rpm
echo "=============[ Building i686 RPM package ]============="
# Note! rpmbuild --target is known not to work correctly, so we use setarch
setarch i686 rpmbuild -bb $SCRIPT_DIR/SPECS/jitsi.spec
packagename32=jitsi-${version}-${buildNumber}.i686.rpm

rm -f $SCRIPT_DIR/RPMS/x86_64/jitsi*.rpm
echo "=============[ Building x86_64 RPM package ]============="
# Note! rpmbuild --target is known not to work correctly, so we use setarch
setarch x86_64 rpmbuild -bb $SCRIPT_DIR/SPECS/jitsi.spec
packagename64=jitsi-${version}-${buildNumber}.x86_64.rpm

mkdir -p $SCRIPT_DIR/RPMS/common

cp $SCRIPT_DIR/RPMS/i686/$packagename32 $SCRIPT_DIR/RPMS/common/
cp $SCRIPT_DIR/RPMS/x86_64/$packagename64 $SCRIPT_DIR/RPMS/common/
clean_oldies "$SCRIPT_DIR/RPMS/common/jitsi*.rpm" 20

createrepo --database --deltas $SCRIPT_DIR/RPMS/common/