blob: 24adbbd69a799f236f3192430410021bce7450f0 (
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
|
#!/bin/bash
# release the firmware image, build RPMs, release the RPMs, commit and
# push your changes to olpc-firmware.
set -e
usage() {
me=$(basename $0)
echo "Usage: $me [option]"
echo " options"
echo " --dry-run do release steps without publishing files"
}
DRY_RUN=no
NO_RPM=no
while [ $# -gt 0 ]; do
case $1 in
--dry-run)
DRY_RUN=yes
;;
--no-rpm)
NO_RPM=yes
;;
--help)
usage
exit 0
;;
*)
echo $(basename $0): bad option argument $1
usage
exit 1
;;
esac
shift
done
if [ ! -d roms ]; then
echo "releaseme: bailing out, no roms directory, have you done buildme?"
exit 2
fi
if [ $DRY_RUN = no ]; then
WC=$(git diff | wc --lines)
if [ $WC -ne 0 ]; then
echo "releaseme: bailing out, uncommitted changes to builder"
exit 2
fi
fi
. ./varsme
ROM_VERSION=`cat $VER_FILE`
ROM_FILE=$ROM_VERSION.rom
(cd roms && md5sum $ROM_FILE > $ROM_FILE.md5)
(cd roms && sha1sum $ROM_FILE > $ROM_FILE.sha1)
# copy over the files to their home.
if [ $DRY_RUN = no ]; then
ssh dev.laptop.org mkdir -p /var/www/firmware/$ROM_VERSION
scp roms/${ROM_FILE} roms/${ROM_FILE}.md5 roms/${ROM_FILE}.sha1 \
dev.laptop.org:/var/www/firmware/$ROM_VERSION
ssh dev.laptop.org "cd /var/www/firmware && ln -nsf $ROM_VERSION LATEST && ln -nsf $ROM_VERSION LATEST.$BUNDLE_SUFFIX"
fi
# automatic changelog entry for rpm
ME="Somebody <$(whoami)@$(hostname)>"
if [ -f rpm/$(whoami).mail ]; then
ME=$(cat rpm/$(whoami).mail)
fi
CE=$(TZ=US/Eastern date "+%a %b %d %Y")
cp openfirmware/cpu/x86/pc/olpc/images/Edge1-8k-EQ-Comp-Amp-Short.wav \
roms/jingle.wav
cp rpm/README.openfirmware roms/README.openfirmware.${BUNDLE_SUFFIX}
mkdir -p build
rpmbuild \
--define "olpc_firmware_version_prefix ${ROM_VERSION:0:2}" \
--define "olpc_firmware_version_suffix ${ROM_VERSION:2:3}" \
--define "olpc_firmware_version ${ROM_VERSION}" \
--define "olpc_changelog_header * ${CE} ${ME}" \
--define "olpc_model ${MODEL}" \
--define "bundle_suffix ${BUNDLE_SUFFIX}" \
--define "_sourcedir `pwd`/roms" \
--define "_specdir `pwd`" \
--define "_builddir `pwd`/build" \
--define "_srcrpmdir `pwd`/roms" \
--define "_rpmdir `pwd`/roms" \
--define "dist .olpc2" \
--define "olpc 2" \
-ba ./rpm/olpc-firmware.spec
if [ $NO_RPM = no ]; then
if [ $DRY_RUN = no ]; then
for DIRECTORY in $DROPBOX; do
scp ./roms/olpc-firmware-*.unsigned.src.rpm \
./roms/noarch/olpc-firmware-*.unsigned.noarch.rpm \
dev.laptop.org:~rsmith/public_rpms/${DIRECTORY}
done
fi
else
echo "releaseme: skipped release of RPM artefacts"
fi
if [ $DRY_RUN = no ]; then
git tag ${ROM_VERSION} || git tag --force ${ROM_VERSION}.$(date +%s)
git push --tags
echo "releaseme: done, next you may announce"
else
echo "releaseme: dry run done"
fi
|