Line 1... |
Line 1... |
1 |
#!/bin/bash
|
1 |
#!/bin/bash
|
2 |
# errors are propagated when using the pipe to concatenate commands
|
2 |
# errors are propagated when using the pipe to concatenate commands
|
3 |
set -o pipefail
|
3 |
set -o pipefail
|
4 |
# determine script directory
|
4 |
# determine script directory
|
5 |
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
5 |
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
6 |
ROOT_DIR="${SCRIPT_DIR}/.."
|
6 |
ROOT_DIR="${SCRIPT_DIR}/.."
|
7 |
LOG_FILE="${ROOT_DIR}/workflow.log"
|
7 |
LOG_FILE="${ROOT_DIR}/workflow.log"
|
- |
|
8 |
VERSION="1.4.2"
|
- |
|
9 |
RELEASE="1"
|
8 |
export QT_DIR="/opt/Qt/6.6.2/gcc_64"
|
10 |
export QT_DIR="/opt/Qt/6.6.2/gcc_64"
|
9 |
export CMAKE_PREFIX_PATH="${QT_DIR}/lib/cmake"
|
11 |
export CMAKE_PREFIX_PATH="${QT_DIR}/lib/cmake"
|
10 |
|
12 |
|
11 |
# the first parameter is the branch, that is currently being built
|
13 |
# the first parameter is the branch, that is currently being built
|
12 |
BRANCH="$1"
|
14 |
BRANCH="$1"
|
13 |
|
15 |
|
14 |
# Log the message.
|
16 |
# Log the message.
|
15 |
# parameters:
|
17 |
# parameters:
|
16 |
# message ... the message to log
|
18 |
# message ... the message to log
|
17 |
log() {
|
19 |
log() {
|
18 |
local message="$1"
|
20 |
local message="$1"
|
19 |
local currentTime=$(date +"%y-%m-%d %H:%M:%S")
|
21 |
local currentTime=$(date +"%y-%m-%d %H:%M:%S")
|
20 |
echo "${currentTime}: ${message}" | tee -a ${LOG_FILE}
|
22 |
echo "${currentTime}: ${message}" | tee -a ${LOG_FILE}
|
21 |
}
|
23 |
}
|
22 |
|
24 |
|
- |
|
25 |
if [ -f "${ROOT_DIR}/.version" ]
|
- |
|
26 |
then
|
- |
|
27 |
. ${ROOT_DIR}/.version
|
- |
|
28 |
fi
|
- |
|
29 |
|
23 |
CPUS=2
|
30 |
CPUS=2
|
24 |
type nproc > /dev/null 2>&1
|
31 |
type nproc > /dev/null 2>&1
|
25 |
|
32 |
|
26 |
if [ $? -eq 0 ]
|
33 |
if [ $? -eq 0 ]
|
27 |
then
|
34 |
then
|
Line 43... |
Line 50... |
43 |
fi
|
50 |
fi
|
44 |
|
51 |
|
45 |
log "Changing to build directory"
|
52 |
log "Changing to build directory"
|
46 |
cd build
|
53 |
cd build
|
47 |
log "Building the application ..."
|
54 |
log "Building the application ..."
|
48 |
exec make -j${CPUS} >> ${LOG_FILE} 2>&1
|
55 |
make -j${CPUS} >> ${LOG_FILE} 2>&1
|
- |
|
56 |
|
- |
|
57 |
if [ $? -ne 0 ]
|
- |
|
58 |
then
|
- |
|
59 |
echo "Error compiling the code!"
|
- |
|
60 |
exit 1
|
- |
|
61 |
fi
|
- |
|
62 |
|
- |
|
63 |
# Build a debian package
|
- |
|
64 |
log "Building a debian package"
|
- |
|
65 |
BASE_PATH="${ROOT_DIR}/tpanel_${VERSION}-${RELEASE}_amd64"
|
- |
|
66 |
rm -rf "${BASE_PATH}"
|
- |
|
67 |
mkdir -p "${BASE_PATH}/DEBIAN" >> ${LOG_FILE} 2>&1
|
- |
|
68 |
mkdir -p "${BASE_PATH}/usr/bin" >> ${LOG_FILE} 2>&1
|
- |
|
69 |
mkdir -p "${BASE_PATH}/usr/lib" >> ${LOG_FILE} 2>&1
|
- |
|
70 |
(cd "${ROOT_DIR}/build/ftplib";tar -cf - libftp*) | (cd "${BASE_PATH}/usr/lib";tar -xf -)
|
- |
|
71 |
cp "${ROOT_DIR}/build/src/tpanel" "${BASE_PATH}/usr/bin"
|
- |
|
72 |
cp "/usr/local/lib/skia/libskia.so" "${BASE_PATH}/usr/lib"
|
- |
|
73 |
cp "/usr/local/lib/libpjsua.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
74 |
cp "/usr/local/lib/libpjsip-simple.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
75 |
cp "/usr/local/lib/libpjsip.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
76 |
cp "/usr/local/lib/libpjmedia.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
77 |
cp "/usr/local/lib/libpj.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
78 |
cp "/usr/local/lib/libpjsip-ua.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
79 |
cp "/usr/local/lib/libpjmedia-audiodev.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
80 |
cp "/usr/local/lib/libpjmedia-codec.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
81 |
cp "/usr/local/lib/libpjnath.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
82 |
cp "/usr/local/lib/libpjlib-util.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
83 |
cp "/usr/local/lib/libsrtp.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
84 |
cp "/usr/local/lib/libresample.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
85 |
cp "/usr/local/lib/libspeex.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
86 |
cp "/usr/local/lib/libwebrtc.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
87 |
cp "/usr/local/lib/libgsmcodec.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
88 |
cp "/usr/local/lib/libilbccodec.so.2" "${BASE_PATH}/usr/lib"
|
- |
|
89 |
cp "/usr/local/lib/libsndfile.so.1" "${BASE_PATH}/usr/lib"
|
- |
|
90 |
|
- |
|
91 |
echo "Package: tpanel" > "${BASE_PATH}/DEBIAN/control"
|
- |
|
92 |
echo "Version: $VERSION" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
93 |
echo "Section: misc" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
94 |
echo "Priority: optional" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
95 |
echo "Architecture: amd64" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
96 |
echo "Depends: Qt6MultimediaWidgets,ssl,expat,uuid,Qt6Multimedia,Qt6Network,Qt6Widgets,Qt6Gui,Qt6Core,crypto,freetype,jpeg,png16,Qt6DBus,asound,FLAC,vorbis,ogg,mpg123" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
97 |
echo "Summary: Emulation of AMX touch panels" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
98 |
echo "License: GPLv3" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
99 |
echo "Homepage: https://https://github.com/TheLord45/tpanel" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
100 |
echo "Maintainer: Andreas Theofilu <andreas@theosys.at>" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
101 |
echo "Description: TPanel is an emulation of some AMX G4/G5 touch panels." >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
102 |
echo " The software uses internally the Skia library for drawing all objects" >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
103 |
echo " and the Qt 6.x library to display the objects. TPanel is written in C++." >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
104 |
echo " This makes it even on mobile platforms fast and reliable." >> "${BASE_PATH}/DEBIAN/control"
|
- |
|
105 |
|
- |
|
106 |
dpkg --build "${BASE_PATH}" >> ${LOG_FILE} 2>&1
|
- |
|
107 |
|
- |
|
108 |
if [ $? -ne 0 ]
|
- |
|
109 |
then
|
- |
|
110 |
log "Error building a debian package!"
|
- |
|
111 |
exit 1
|
- |
|
112 |
fi
|
- |
|
113 |
|
- |
|
114 |
log "Package tpanel_${VERSION}-${RELEASE}_amd64.deb was build successfuly"
|
- |
|
115 |
exit 0
|