blob: 4b838d6b5c4751094eb931c2361f89b2b51c3fd1 (
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
128
129
130
131
132
133
134
135
136
137
138
|
# Maintainer: dreieck (https://aur.archlinux.org/account/dreieck)
# Contributor: Kartoffel
_pkgname=pineflash
pkgname="${_pkgname}-git"
pkgver=0.5.5+4.r311.20250206.897bad8
pkgrel=5
arch=(
'i686'
'x86_64'
'armv7h'
'aarch64'
)
pkgdesc='A GUI tool to flash IronOS to the Pinecil V1, V2 and future other pine64 products.'
url='https://github.com/Spagett1/PineFlash'
license=('GPL-2.0-or-later')
depends=(
'bzip2'
'curl'
'dfu-util'
'fontconfig'
'gcc-libs'
'glibc'
'gtk3'
'libudev.so'
'libusb'
'polkit'
)
makedepends=(
'base-devel'
# 'cargo-ndk' # To verify some integrity checksums of rust modules
'git'
'zopfli'
'pkgconf'
'rust'
)
optdepends=(
'blisp: For pinecil V2 support.'
)
provides=(
"${_pkgname}=${pkgver}"
)
conflicts=(
"${_pkgname}"
)
options+=('!lto')
source=(
"${_pkgname}::git+${url}.git"
)
sha256sums=(
'SKIP' # Main upstream source
)
prepare() {
cd "${srcdir}/${_pkgname}"
#for _patch in "${srcdir}"/pineflash_-_fix_missing_argument_in_panic_message.patch; do
# printf '%s\n' " > Applying patch '$(basename "${_patch}")' ..."
# patch -Np1 --follow-symlinks -i "${_patch}"
#done
CARGO_HOME="${srcdir}/cargo"
export CARGO_HOME
cargo fetch || cargo fetch # Twice in order to work around the error "failed to verify the checksum of `ndk-sys v0.4.0`". See also https://github.com/rust-lang/cargo/issues/7180#issuecomment-1325636251.
git log > "${srcdir}/git.log"
}
pkgver() {
cd "${srcdir}/${_pkgname}"
_ver="$(git describe --tags | sed -E -e 's|^[vV]||' -e 's|-g[0-9a-f]*$||' -e 's|-|+|g')"
_rev="$(git rev-list --count HEAD)"
_date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")"
_hash="$(git rev-parse --short HEAD)"
if [ -z "${_ver}" ]; then
error "Version could not be determined."
return 1
else
printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}"
fi
}
build() {
cd "${srcdir}/${_pkgname}"
## shrinking PNG files losslessy:
local _png
for _png in assets/*.png; do
zopflipng -y -m "${_png}" "${_png}"
done
CARGO_HOME="${srcdir}/cargo"
export CARGO_HOME
cargo build --offline --release
}
# check() {
### Currently (as of 2022-12-15), no tests are defined in the source.
# cd "${srcdir}/${_pkgname}"
#
# CARGO_HOME="${srcdir}/cargo"
# export CARGO_HOME
#
# cargo build --offline --release --tests
# cargo test --offline
# }
package() {
cd "${srcdir}/${_pkgname}"
CARGO_HOME="${srcdir}/cargo"
export CARGO_HOME
### Install via install routine (and fix up things afterwards):
# cargo install --root "${pkgdir}" --offline --path .
# install -d -v -m755 "${pkgdir}/usr"
# mv -v "${pkgdir}/bin" "${pkgdir}/usr/bin"
# rm -f "${pkgdir}"/{.crates2.json,.crates.toml}
### Install manually:
install -D -v -m755 "target/release/pineflash" "${pkgdir}/usr/bin/pineflash"
install -D -v -m644 "assets/Pineflash.desktop" "${pkgdir}/usr/share/applications/Pineflash.desktop"
install -D -v -m644 "assets/pine64logo.png" "${pkgdir}/usr/share/pixmaps/pine64logo.png"
install -D -v -m644 "assets/pine64logo.ico" "${pkgdir}/usr/share/pixmaps/pine64logo.ico"
for _docfile in README.md; do
install -D -v -m644 "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/${_docfile}"
done
for _connectioninstructions in assets/Step*.svg; do
install -D -v -m644 "${_connectioninstructions}" "${pkgdir}/usr/share/doc/${_pkgname}/pinecil-connection-instruction/${_connectioninstructions}"
done
install -D -v -m644 "${srcdir}/git.log" "${pkgdir}/usr/share/doc/${_pkgname}/git.log"
install -D -v -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
cd "${pkgdir}/usr/share/doc/${_pkgname}"
ln -sv "/usr/share/licenses/${pkgname}/LICENSE" "LICENSE"
}
|