forked from qelectrotech/qelectrotech-source-mirror
-
Notifications
You must be signed in to change notification settings - Fork 0
/
packaging_script_Debian_Ubuntu_Windows.sh
executable file
·374 lines (301 loc) · 13.4 KB
/
packaging_script_Debian_Ubuntu_Windows.sh
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
#!/bin/bash
#nettoyage des chroots
#set -x
eval $(gpg-agent --daemon)
#variables repertoires de travail
DEFAULT_DIR="$HOME/paquet_qet"
TEMP_DIR="$HOME"
SSH_TARGET='[email protected]:/home/qet/qelectrotech.org-web/htdocs/dl_link.inc.php'
SSH_OPTIONS=-B
cd $DEFAULT_DIR
cd qet_git
# get updates
git pull --recurse-submodules
GITCOMMIT=$(git rev-parse --short HEAD)
#Find Subversion revision number in trunk branch
if [ -z "$HEAD" ] ; then
A=$(git rev-list HEAD --count)
HEAD=$(($A+473))
# force displayed number
fi
VERSION=$(cat sources/qet.h | grep "const QString version" | cut -d\" -f2 | cut -d\" -f1) #Find version tag in Subversion sources/qet.h
tagName=$(cat sources/qet.h | grep displayedVersion | cut -d\" -f2 | cut -d\" -f1) #Find displayedVersion tag in Subversion sources/qet.h
#clean /var/cache/pbuilder/ .. / result/debs
echo -e "\033[1;31mWould you like to clean all debs n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
echo -e "\033[1;31mClean_all_base_environment.\033[m"
cd /var/cache/pbuilder/stable-amd64/result/ && sudo rm qe*
cd /var/cache/pbuilder/unstable-amd64/result/ && sudo rm qe*
cd /var/cache/pbuilder/stable-i386/result/ && sudo rm qe*
cd /var/cache/pbuilder/unstable-i386/result/ && sudo rm qe*
else
echo -e "\033[1;33mNo Clean_all_base_environment.\033[m"
fi
#clean all apt cache
echo -e "\033[1;31mWould you like to clean all pbuilder n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
echo -e "\033[1;31mClean_all_pbuilder_environment.\033[m"
DIST=stable ARCH=i386 sudo pbuilder --clean
DIST=stable ARCH=amd64 sudo pbuilder --clean
DIST=unstable ARCH=i386 sudo pbuilder --clean
DIST=unstable ARCH=amd64 sudo pbuilder --clean
else
echo -e "\033[1;33mNo Clean_all_pbuilder_environment.\033[m"
fi
#Update des chroots
echo -e "\033[1;31mWould you like to update all chroots n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
echo -e "\033[1;33mUpdate_all_base_environment..\033[m"
sudo DIST=stable ARCH=i386 pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
sudo DIST=sid ARCH=i386 pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
sudo DIST=stable pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
sudo DIST=sid pbuilder update --override-config --configfile /home/laurent/.pbuilderrc
else
echo -e "\033[1;33mNo Update_all_base_environment.\033[m"
fi
echo -e "\033[1;34mdownload source qelectrotech-$VERSION.r$HEAD.\033[m"
cd $TEMP_DIR
cp -r $DEFAULT_DIR/qet_git/ $TEMP_DIR/qelectrotech-$VERSION.r$HEAD/
rm -rf qelectrotech-$VERSION.r$HEAD/.git
#create svn tarball
tar cfvz qelectrotech-$VERSION.r$HEAD.tar.gz qelectrotech-$VERSION.r$HEAD/
#copy tarball in $DEFAULT_DIR
cp qelectrotech-$VERSION.r$HEAD.tar.gz $DEFAULT_DIR
clean $TEMP_DIR
rm -Rf qelectrotech-$VERSION.r$HEAD/ && rm qelectrotech-$VERSION.r$HEAD.tar.gz
#return to working directory
cd $DEFAULT_DIR
#extract tarball and go to archive
tar zxvf qelectrotech-$VERSION.r$HEAD.tar.gz && cd qelectrotech-$VERSION.r$HEAD/
#create origin.tar.gz
dh_make -e [email protected] -c gpl2 -f ../qelectrotech-$VERSION.r$HEAD.tar.gz
#clean debian folder
cd /
rm -Rf debian/
#return to working directory
cd $DEFAULT_DIR
#copy debian folder
cp -r debian/ qelectrotech-$VERSION.r$HEAD/
#update changelog to new release
cd qelectrotech-$VERSION.r$HEAD/
dch -d -D unstable "New upstream subversion version "
#edit changelog
echo -e "\033[1;31mWould you like to edit changelog n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
echo -e "\033[1;31mEdit debian changelog..\033[m"
dch --edit
else
echo -e "\033[1;33mNo edit changelog.\033[m"
fi
cd debian/ && rm -rf *ex *EX README*
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/debian/patches/
sed -i 's/'"$tagName+[0-9]*"'/'"$tagName+$GITCOMMIT"'/' 03_qet.diff
#deplacement dans le paquet_qet
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/
quilt push
quilt push
quilt refresh
echo -e "\033[1;31mWould you like to build Debian packages n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
#build
echo -e "\033[1;34mBuild_all_environements.\033[m"
sudo DIST=sid ARCH=amd64 pdebuild --configfile /home/laurent/.pbuilderrc
sudo DIST=sid ARCH=i386 pdebuild --configfile /home/laurent/.pbuilderrc
dch -i -D stable "Backport stable " &&
sudo DIST=stable ARCH=amd64 pdebuild --configfile /home/laurent/.pbuilderrc
sudo DIST=stable ARCH=i386 pdebuild --configfile /home/laurent/.pbuilderrc
STRING="Build_all_environements is ready!!!"
echo $STRING
#prepare download copys
cd $DEFAULT_DIR
mkdir -p $HEAD/stable/amd64
mkdir -p $HEAD/stable/i386
mkdir -p $HEAD/sid/amd64
mkdir -p $HEAD/sid/i386
#copie des debs des results vers $HEAD
find /var/cache/pbuilder/stable-amd64/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/stable/amd64 \;
find /var/cache/pbuilder/stable-i386/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/stable/i386 \;
find /var/cache/pbuilder/unstable-amd64/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/sid/amd64 \;
find /var/cache/pbuilder/unstable-i386/result -name "qe*" -exec cp {} $DEFAULT_DIR/$HEAD/sid/i386 \;
#debsign
echo -e "\033[1;31mWould you like to sign all packages n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
#debsign stable amd64
cd $DEFAULT_DIR/$HEAD/stable/amd64
debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
echo -e "\033[1;33mAll stable amd64 are sign.\033[m"
#debsign sid amd64
cd $DEFAULT_DIR/$HEAD/sid/amd64
debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
echo -e "\033[1;33mAll sid amd64 are sign.\033[m"
#debsign stable i386
cd $DEFAULT_DIR/$HEAD/stable/i386
debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
echo -e "\033[1;33mAll stable i386 are sign.\033[m"
#debsign sid i386
cd $DEFAULT_DIR/$HEAD/sid/i386
debsign -k D3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1 *.changes
echo -e "\033[1;33mAll sid i386 are sign.\033[m"
else
echo -e "\033[1;33mExit.\033[m"
fi
#upload vers incoming
echo -e "\033[1;31mWould you like to upload to incoming n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
echo -e "\033[1;33mUpload qelectrotech-$VERSION.r$HEAD.\033[m"
cd ~/apt
reprepro -vb . include unstable $DEFAULT_DIR/$HEAD/sid/amd64/*.changes
reprepro -vb . includedeb unstable $DEFAULT_DIR/$HEAD/sid/i386/*i386.deb
reprepro -vb . include stable $DEFAULT_DIR/$HEAD/stable/amd64/*.changes
reprepro -vb . includedeb stable $DEFAULT_DIR/$HEAD/stable/i386/*i386.deb
reprepro -b . export
else
echo -e "\033[1;33mExit.\033[m"
fi
#rsync to TF
echo -e "\033[1;31mWould you like to RSYNC Debian packages to TF n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
echo -e "\033[1;33mRsync to TF qelectrotech-$VERSION.r$HEAD .\033[m"
echo -e "\033[1;31mrsync to TF password ssh and TF\033[m"
cd $DEFAULT_DIR/script
rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress --exclude-from=ExclusionRSync ~/apt/ [email protected]:/home/qet/qet-repository/debian/
if [ $? != 0 ]; then
{
echo "RSYNC ERROR: problem syncing qelectrotech-$VERSION.r$HEAD "
rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress --exclude-from=ExclusionRSync ~/apt/ [email protected]:/home/qet/qet-repository/debian/
} fi
else
echo -e "\033[1;33mExit.\033[m"
fi
else
echo -e "\033[1;33mExit.\033[m"
fi
############# Ubuntu packages ################################################################################################
echo -e "\033[1;31mWould you like to build Ubuntu PPA packages n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
#deplacement dans le paquet_qet
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/
dch -i -D bionic "Bionic Upload to ppa"
debuild -S -sa -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
dch -i -D eoan "Eoan Upload to ppa"
debuild -S -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
dch -i -D disco "Disco Upload to ppa"
debuild -S -kD3439F4E2273F7DCD3228C9EBC9F825E1D4FB6C1
cd $DEFAULT_DIR/
dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu1_source.changes
dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu2_source.changes
dput my-ppa-dev qelectrotech_$VERSION.r$HEAD-*ubuntu3_source.changes
else
echo -e "\033[1;33mExit.\033[m"
fi
############# Windows packages ################################################################################################
#copy and update folders of nsis_base skeleton
echo -e "\033[1;31mWould you like to build Window packages n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
# 32 bits
cd $DEFAULT_DIR
cp -r qelectrotech-$VERSION.r$HEAD/ qelectrotech-$VERSION.r$HEAD-XP/
cp -r nsis_base nsis_base$HEAD
cd qelectrotech-$VERSION.r$HEAD/
cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/nsis_base$HEAD/files
cp -r lang/*.qm /$DEFAULT_DIR/nsis_base$HEAD/files/lang
cd $DEFAULT_DIR
cd qelectrotech-$VERSION.r$HEAD/build-aux/windows/
cp {lang_extra.nsh,QET.nsi,lang_extra_fr.nsh} /$DEFAULT_DIR/nsis_base$HEAD/
# 64 bits
cd $DEFAULT_DIR
cp -r nsis_base nsis_base64$HEAD
cd qelectrotech-$VERSION.r$HEAD/
cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/nsis_base64$HEAD/files
cp -r lang/*.qm /$DEFAULT_DIR/nsis_base64$HEAD/files/lang
cd $DEFAULT_DIR
cd qelectrotech-$VERSION.r$HEAD/build-aux/windows/
cp {lang_extra.nsh,QET64.nsi,lang_extra_fr.nsh} /$DEFAULT_DIR/nsis_base64$HEAD/
#copy and update folders of readytouse_base skeleton
cd $DEFAULT_DIR
cp -r readytouse_base qelectrotech-$tagName+git$HEAD-x86-win32-readytouse
cd qelectrotech-$VERSION.r$HEAD/
cp -r {elements,examples,titleblocks} /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse
cp -r lang/*.qm /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/lang
#################################################################################################################
export PATH=/media/backup6/digikam_new2/project/bundles/mxe/build.win32/usr/bin:$PATH
#cross-compil 32 bits
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD
mkdir build/ && cd build
/media/backup6/digikam_new2/project/bundles/mxe/build.win32/usr/bin/i686-w64-mingw32.static-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
make -j$(nproc)
#copy 32 bits binarie to /bin Windows packages
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/build/release/
cp qelectrotech.exe /$DEFAULT_DIR/nsis_base$HEAD/files/bin
cp qelectrotech.exe /$DEFAULT_DIR/qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/bin
#tag $HEAD by sed for nsis script
cd $DEFAULT_DIR/nsis_base$HEAD
sed -i 's/'"0.5-dev+[0-9]*"'/'"$tagName"+git"$HEAD"'/' QET.nsi
#build Windows installer
makensis QET.nsi
#################################################################################################################
export PATH=/media/backup6/digikam_new2/project/bundles/mxe/build.win64/usr/bin:$PATH
#cross-compil 64 bits
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD
rm -r build/
mkdir build/ && cd build
#mxe: qmake-qt5 x86_64-w64
/media/backup6/digikam_new2/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.static-qmake-qt5 $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/qelectrotech.pro
make -j$(nproc)
cd $DEFAULT_DIR/qelectrotech-$VERSION.r$HEAD/build/release/
mv qelectrotech.exe /$DEFAULT_DIR/nsis_base64$HEAD/files/bin
cd $DEFAULT_DIR/nsis_base64$HEAD
sed -i 's/'"0.5-dev_x86_64-win64+[0-9]*"'/'"$tagName"_x86_64-win64+git"$HEAD"'/' QET64.nsi
makensis QET64.nsi
#crompress readytouse
cd $DEFAULT_DIR
7za a -m0=lzma qelectrotech-$tagName+git$HEAD-x86-win32-readytouse.7z qelectrotech-$tagName+git$HEAD-x86-win32-readytouse/
echo -e "\033[1;31mWould you like to prepare to RSYNC Windows packages /Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
cd /home/laurent/builds/nightly/
name=$(date +%Y-%m-%d-) #defined a name based on the date
#start increment to 1
i=1
#increment by i if the builds have already been created
while [ "$(ls /home/$USER/builds/nightly/ | grep $name$i)" != "" ]; do
((i++))
done
#create a new folder incremented by 1
mkdir /home/$USER/builds/nightly/$name$i
cd $DEFAULT_DIR/
cp qelectrotech-$tagName+git$HEAD-x86-win32-readytouse.7z /home/laurent/builds/nightly/$name$i
cd /$DEFAULT_DIR/nsis_base$HEAD
cp Installer_QElectroTech-$tagName+git$HEAD-1.exe /home/laurent/builds/nightly/$name$i
cd $DEFAULT_DIR/nsis_base64$HEAD
cp Installer_QElectroTech-$tagName"_x86_64-win64+git"$HEAD-1.exe /home/laurent/builds/nightly/$name$i
else
echo -e "\033[1;33mExit.\033[m"
fi
#rsync to TF Windows builds
echo -e "\033[1;31mWould you like to upload Windows packages n/Y?.\033[m"
read a
if [[ $a == "Y" || $a == "y" ]]; then
rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress /home/laurent/builds/nightly/ [email protected]:/home/qet/qet-repository/builds/nightly/
if [ $? != 0 ]; then
{
echo "RSYNC ERROR: problem syncing qelectrotech-$VERSION.r$HEAD "
rsync -e ssh -av --delete-after --no-owner --no-g --chmod=g+w --progress /home/laurent/builds/nightly/ [email protected]:/home/qet/qet-repository/builds/nightly/
} fi
else
echo -e "\033[1;33mExit.\033[m"
fi
else
echo -e "\033[1;33mExit.\033[m"
fi
exit