aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/BuildReleases.sh
blob: 230a90b7f2e8892df618f22fbc3d68279fd5c514 (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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/bash

PWD=$(pwd)

unique_port()
{
  # Try to find an unused port number for each running instance of the program.

  START=8192
  RANGE=$[$(awk '{print $1}' /proc/sys/net/ipv4/ip_local_port_range)-$START]
  if [ $RANGE -lt 8 ]
  then
    START=$[$(awk '{print $2}' /proc/sys/net/ipv4/ip_local_port_range)]
    RANGE=$[65535-$START]
    if [ $RANGE -lt 8 ]
    then
      START=16384
      RANGE=32768
    fi
  fi
  echo $[($$%$RANGE)+$START]
}


rm -rf TARBALLS
mkdir TARBALLS
date=$(date '+%H_%d-%m-%Y')


if [ -d SOURCE ]; then
    echo "Updating source."
    cd SOURCE &&
    git pull &&
    cd .. || exit 0
else
    echo "Downloading source."
    mkdir SOURCE &&
    git clone git://github.com/imprudence/imprudence.git SOURCE || exit 0
fi

echo "Creating source tarball."
tar czf TARBALLS/impy-release-source_${date}.tar.gz --exclude-vcs SOURCE &&


echo "Building locally, assuming 64 bit, linux." &&
rm -fr BUILD &&
mkdir BUILD &&
tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD &&
cd BUILD/SOURCE &&
cd linden/scripts/linux &&
./0-patch-SL-source &&
./1-get-libraries-from-SL &&
./2-trim-libraries-from-SL &&
./3-compile-SL-source &&
./4-package-viewer &&
cd ../../indra/viewer-linux-* &&
cp Imprudence-* ../../../../../TARBALLS
cd ../../../../..


FTP_PORT=$(unique_port)
echo "=== launching FTP daemon on port $FTP_PORT"
# Fire off an ftp daemon, making sure it's killed when this script exits.
# (We use the busybox version because no two ftp daemons have quite the same
# command line arguments, and this one's a known quantity.)

# Busybox needs -s 127.0.0.1 support here
./busybox nc -p $FTP_PORT -lle ./busybox ftpd -w TARBALLS &
trap "kill $(jobs -p)" EXIT
disown $(jobs -p)
# QEMU's alias for host loopback
FTP_SERVER=10.0.2.2


echo "Building in qemu, assuming 32 bit, linux." &&
# Relies on the guest having this in /etc/init/ttyS0.conf -
#start on stopped rc RUNLEVEL=[2345]
#stop on runlevel [!2345]
#respawn
#exec /sbin/getty -iLn -l /bin/bash 115200 ttyS0 vt102

qemu -M pc -cpu athlon -hda ~/bin/ubuntu32_diff.qcow2 -m 1G -serial stdio << zzzzEOFzzzz
          #
cd /home/builder &&
rm -fr BUILD &&
mkdir BUILD &&
mkdir -p TARBALLS &&
sleep 2 &&
busybox ftpget ${FTP_SERVER} -vP ${FTP_PORT} TARBALLS/impy-release-source_${date}.tar.gz impy-release-source_${date}.tar.gz &&
tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD &&
cd BUILD/SOURCE &&
cd linden/scripts/linux &&
./0-patch-SL-source &&
./1-get-libraries-from-SL &&
./2-trim-libraries-from-SL &&
./3-compile-SL-source &&
./4-package-viewer &&
cd ../../indra/viewer-linux-* &&
cp Imprudence-* ../../../../../TARBALLS &&
cd /home/builder/TARBALLS &&
find . -name Imprudence-* -type f -exec busybox ftpput ${FTP_SERVER} -vP ${FTP_PORT} '{}' '{}' \;

shutdown -h now
zzzzEOFzzzz

sleep 10

echo "Building in qemu, Windows XP."
expect -c "set date ${date}" -c "set FTP_SERVER ${FTP_SERVER}" -c "set FTP_PORT ${FTP_PORT}"  - << "zzzzEOFzzzz"
set timeout -1
set send_slow {1 .1}
spawn qemu -M pc -cpu athlon -m 2G -hda /media/sdb2/IMAGES/xp_diff.qcow2 -cdrom /home/dvs1/Downloads/lose/winxphomex86.iso -serial stdio
match_max 100000
expect -exact "\$ "; sleep .1; send -s -- "cd /home/me\r"
expect -exact "\$ "; sleep .1; send -s -- "rm -fr BUILD\r"
expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'mkdir BUILD'\r"
expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'mkdir -p TARBALLS'\r"
expect -exact "\$ "; sleep 2;  send -s -- "lftp -c 'open -p $FTP_PORT $FTP_SERVER && lcd TARBALLS && get1 impy-release-source_$date.tar.gz'\r"
expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'tar xzf TARBALLS/impy-release-source_$date.tar.gz -C BUILD'\r"
expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'ls -la BUILD'\r"
expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'ls -la TARBALLS'\r"

expect -exact "\$ "; sleep .1; send -s -- "shutdown -s now\r"
expect eof
zzzzEOFzzzz