-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.sh
127 lines (99 loc) · 2.31 KB
/
common.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
# SPDX-License-Identifier: MIT
# Copyright (c) 2024 Linaro Ltd
# Author: Dmitry Baryshkov
set -e
GITHUB_REPO="https://github.com/WOA-Project/Qualcomm-Reference-Drivers"
do_prepare() {
FWTEMPDIR=$(mktemp -d firmware-woa.XXXXXX --tmpdir )
trap "rm -rf ${FWTEMPDIR}" EXIT
UNPACKDIR="${FWTEMPDIR}/unpack"
mkdir -p "${UNPACKDIR}"
if [ -z "${DLDIR}" ]
then
DLDIR="${FWTEMPDIR}/dl"
mkdir -p "${DLDIR}"
fi
WORKDIR="${FWTEMPDIR}/package"
rm -rf "${WORKDIR}"
mkdir -p "${WORKDIR}"
FW_OUT="${WORKDIR}/qcom/${LIB_FW_DIR}"
mkdir -p "${FW_OUT}"
DEBDIR="${WORKDIR}/debian"
mkdir -p "${DEBDIR}"
cat > "${DEBDIR}/rules" << EOF
#!/usr/bin/make -f
%:
dh \$@
# comaptibility with old and new Debian repos.
override_dh_installdeb:
dh_installdeb
if command -v dh_movetousr >/dev/null; then dh_movetousr; fi
EOF
cat > "${DEBDIR}/control" << EOF
Source: ${FW_PKG_NAME}
Section: non-free-firmware/kernel
Priority: optional
Maintainer: Dmitry Baryshkov <[email protected]>
Standards-Version: 4.6.2
Build-Depends: debhelper-compat (= 12)
Package: ${FW_PKG_NAME}
Architecture: all
Depends: firmware-qcom-soc, firmware-atheros, \${misc:Depends}
Description: Binary firmware for the ${FW_DEVNAME}
This package contains the binary firmware for
the ${FW_DEVNAME}.
.
The firmware has been repackaged from WoA cab archives.
EOF
cat > "${DEBDIR}/changelog" << EOF
${FW_PKG_NAME} (${FW_VER}-1) unstable; urgency=medium
* Initial upload.
-- Dmitry Baryshkov <[email protected]> Mon, 1 Jan 2024 00:00:00 +0000
EOF
cat > "${DEBDIR}/install" << EOF
qcom /lib/firmware/
EOF
}
do_shacheck() {
[ ! -r $2 ] && return 1
[ `sha256sum $2 | cut -d' ' -f 1` = "$1" ]
}
do_dl() {
while [ -n "$1" ]
do
sha="$1"
cab="$2"
dlcab="${DLDIR}/${cab}"
if ! do_shacheck $sha "${dlcab}"
then
rm -f "${dlcab}"
wget "${GITHUB_REPO}/raw/master/${FW_SUBDIR}/${FW_VER}/${cab}" -O "${dlcab}"
fi
if ! do_shacheck $sha "${dlcab}"
then
echo "Checksum failure for ${cab}"
exit 1
fi
cabextract -q -d "${UNPACKDIR}" -L "${dlcab}"
shift
shift
done
}
do_install() {
for file in $@
do
cp "${UNPACKDIR}/${file}" "${FW_OUT}"
done
}
do_install_jsn() {
for file in $@
do
cp "${SHAREDIR}/jsn/${file}" "${FW_OUT}"
done
}
do_build() {
cd ${WORKDIR}
dpkg-buildpackage -b --no-sign
cd -
mv ${FWTEMPDIR}/*.* .
}