qemu-apple-t8030-git
LOW
maintainer Grakul
0 votes
scanned 2026-10-25 21:43:05.033624
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Eugene Flanagin <eflanagin@pm.me>
2
#
3
# Credits:
4
# Inferno (QEMU fork with Apple t8030 / iPhone 11 support): ChefKiss and
5
# contributors, https://github.com/ChefKissInc/Inferno (GPL-3.0 / AGPL-3.0)
6
# Unofficial build: the ChefKiss artwork and name are removed as their
7
# branding notice (ui/icons/CKBrandingNotice.md) requires.
8
# QEMU: the QEMU project, https://www.qemu.org
9
# mlib: Patrick Pelissier, https://github.com/P-p-H-d/mlib (BSD-2-Clause)
10
# Patches, launcher and packaging:
11
# https://github.com/eugenesflanagin-spec/ios-emu-linux (MIT)
12
# No Apple firmware, keys or images are included or downloaded by this package.
13
14
pkgname=qemu-apple-t8030-git
15
_pkg=qemu-apple-t8030
16
_src=t8030-src
17
pkgver=1.0.0rc1.r125695.gcc4302a991
18
pkgrel=1
19
pkgdesc="QEMU fork with Apple t8030 (iPhone 11 / A13) guest support, based on ChefKissInc/Inferno (unofficial build, no firmware included)"
20
arch=('x86_64')
21
url="https://github.com/ChefKissInc/Inferno"
22
# Upstream: GPL-3.0 for the QEMU-derived code, AGPL-3.0 for the fork's own code
23
# (see LICENSE); launcher scripts in this package: MIT.
24
license=('GPL-3.0-only' 'AGPL-3.0-only' 'MIT')
25
depends=('alsa-lib' 'bzip2' 'cairo' 'dtc' 'gdk-pixbuf2' 'glib2' 'glibc' 'gnutls'
26
'gtk3' 'keyutils' 'libaio' 'libcap-ng' 'libepoxy' 'libgcc' 'libjpeg-turbo'
27
'libpipewire' 'libpng' 'libpulse' 'libsasl' 'libseccomp' 'libslirp'
28
'liburing' 'libusb' 'libx11' 'libxkbcommon' 'mesa' 'ncurses' 'nettle'
29
'pixman' 'sdl2' 'sdl2_image' 'systemd-libs' 'vte3' 'zlib' 'zstd'
30
'libtasn1' 'libatomic' 'gmp' 'hicolor-icon-theme' 'bash' 'python')
31
makedepends=('git' 'meson' 'ninja' 'lzfse')
32
optdepends=('kdotool: centre the window on the primary monitor (KDE Plasma)'
33
'plasma-workspace: kscreen-doctor, for finding the primary monitor'
34
'imagemagick: qemu-apple-t8030-set-boot-splash'
35
'kdialog: show setup errors when started from the menu')
36
provides=("$_pkg")
37
conflicts=("$_pkg")
38
options=('!lto' '!debug')
39
source=("$_src::git+https://github.com/ChefKissInc/Inferno.git#branch=master"
40
'mlib::git+https://github.com/P-p-H-d/mlib.git'
41
'keycodemapdb::git+https://gitlab.com/qemu-project/keycodemapdb.git'
42
'0001-mt-spi-middle-click-home.patch'
43
'0002-boot-splash-env-override.patch'
44
'boot-splash.png'
45
'qemu-apple-t8030'
46
'qemu-apple-t8030-set-boot-splash'
47
'qemu-apple-t8030.desktop'
48
'qemu-apple-t8030.svg'
49
'vm-args.example.sh'
50
'README.md'
51
'LICENSE.MIT')
52
sha256sums=('SKIP'
53
'SKIP'
54
'SKIP'
55
'8a469e2889789e401ea13656f95323e089069dfc073bc26ce0f8f57f0eab623a'
56
'9625d6d2a696a87aa08c9342f624291d29b437e30b8c466819744d985ada1832'
57
'df876dcce5a82082063d42c4da59b47f3645f2db87e675c8dac506f935b579fc'
58
'd3baaedf3f7be7e9bef5bf5f4f1e8b2f49ed7fe0b39a0bd84e591c983b82e6b8'
59
'ece23571c47042fe41266f7a8daebd340e6e5b404b903d4a143324e361822847'
60
'77fe357013895fab4c593c220cbcddc19c53fc8cff6ec49f4e1f5fea553589ec'
61
'a3aa500e5f9f7a0b46651fc23ac3f0b2567ce1c35865302e5ec67540913e6130'
62
'f7f548e0d5f6077c616ba95a9339526473825f118e15e560786c4d761f73b142'
63
'723965a296689872cc9bb308d6334312af1bcfac07ce7414aafc38bad1442a75'
64
'3c44a18225aa372bf686cdce8bf44615916a8450af76a409485726cf81037211')
65
66
pkgver() {
67
cd "$_src"
68
local _v
69
_v=$(sed -E 's/^[^-]*-([^_]*)_.*/\1/' VERSION)
70
printf "%s.r%s.g%s" "$_v" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
71
}
72
73
prepare() {
74
cd "$_src"
75
76
# Submodule util/mlib is required; the ROM submodules are not.
77
git submodule init util/mlib
78
git config submodule.util/mlib.url "$srcdir/mlib"
79
git -c protocol.file.allow=always submodule update util/mlib
80
81
# Meson subproject keycodemapdb, at the revision the wrap file pins
82
# (configure runs with --disable-download, so nothing is fetched at build time).
83
local _rev
84
_rev=$(sed -n 's/^revision *= *//p' subprojects/keycodemapdb.wrap)
85
git -C "$srcdir/keycodemapdb" checkout -q "$_rev"
86
rm -rf subprojects/keycodemapdb
87
cp -a "$srcdir/keycodemapdb" subprojects/keycodemapdb
88
89
patch -Np1 -i "$srcdir/0001-mt-spi-middle-click-home.patch"
90
patch -Np1 -i "$srcdir/0002-boot-splash-env-override.patch"
91
92
# Branding (ui/icons/CKBrandingNotice.md): unofficial builds must not ship the
93
# upstream splash artwork or use the upstream project name.
94
install -m644 "$srcdir/boot-splash.png" 'ui/icons/CKQEMUBootSplash_512x512@2x.png'
95
sed -i 's/ChefKiss Inferno/QEMU t8030/g' \
96
ui/gtk.c ui/sdl2.c ui/vnc.c ui/dbus.c ui/spice-core.c ui/cocoa.m version.rc
97
sed -i 's|"ChefKiss Inferno\\n"|"QEMU t8030, unofficial build based on Inferno (github.com/ChefKissInc/Inferno)\\n"|' \
98
system/vl.c
99
sed -i 's/^ChefKissInferno-/t8030-/' VERSION
100
if grep -n 'ChefKiss Inferno\|ChefKissInferno' VERSION system/vl.c ui/*.c ui/*.m version.rc; then
101
echo "upstream branding still present in user-visible strings" >&2
102
return 1
103
fi
104
}
105
106
build() {
107
cd "$_src"
108
export CC=gcc CXX=g++
109
# Keep -Ddebug=true (--enable-debug-info): debug=false adds -DNDEBUG, which
110
# compiles out code inside upstream's assert_cmp* macros and breaks restores.
111
./configure \
112
--prefix=/opt/$_pkg \
113
--target-list=aarch64-softmmu \
114
--cc=gcc --cxx=g++ \
115
--disable-download \
116
--enable-debug-info \
117
--with-pkgversion="$pkgname $pkgver" \
118
--enable-lzfse --enable-png --enable-zstd --enable-slirp \
119
--enable-gtk --enable-sdl --enable-opengl --enable-curses \
120
--enable-gnutls --enable-nettle \
121
--enable-pa --enable-pipewire --enable-alsa \
122
--disable-guest-agent --disable-install-blobs \
123
--disable-glusterfs --disable-libiscsi --disable-libnfs --disable-rbd \
124
--disable-curl --disable-libssh --disable-blkio --disable-fuse --disable-fuse-lseek \
125
--disable-spice --disable-virglrenderer --disable-rutabaga-gfx \
126
--disable-vde --disable-rdma --disable-numa --disable-mpath --disable-libpmem \
127
--disable-libdaxctl --disable-usb-redir --disable-smartcard --disable-u2f \
128
--disable-brlapi --disable-jack --disable-sndio --disable-oss --disable-xen \
129
--disable-lzo --disable-snappy --disable-af-xdp --disable-bpf \
130
--disable-auth-pam --disable-libdw --disable-valgrind --disable-selinux \
131
--disable-werror --disable-qom-cast-debug
132
if grep -q -- '-DNDEBUG' build/compile_commands.json; then
133
echo "NDEBUG is set; this build would be broken (see comment above)" >&2
134
return 1
135
fi
136
# ninja ignores MAKEFLAGS; pass its -j on
137
ninja -C build $(grep -oE -- '-j *[0-9]+' <<<"${MAKEFLAGS:-}" | tr -d ' ')
138
}
139
140
package() {
141
cd "$_src"
142
DESTDIR="$pkgdir" ninja -C build install
143
# upstream's generic QEMU menu entry; this package installs its own
144
rm -rf "$pkgdir/opt/$_pkg/share/applications"
145
146
install -Dm755 "$srcdir/qemu-apple-t8030" "$pkgdir/usr/bin/qemu-apple-t8030"
147
install -Dm755 "$srcdir/qemu-apple-t8030-set-boot-splash" \
148
"$pkgdir/usr/bin/qemu-apple-t8030-set-boot-splash"
149
install -Dm644 "$srcdir/qemu-apple-t8030.desktop" \
150
"$pkgdir/usr/share/applications/qemu-apple-t8030.desktop"
151
install -Dm644 "$srcdir/qemu-apple-t8030.svg" \
152
"$pkgdir/usr/share/icons/hicolor/scalable/apps/qemu-apple-t8030.svg"
153
154
install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" \
155
"$srcdir/README.md" "$srcdir/vm-args.example.sh"
156
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" \
157
LICENSE COPYING COPYING_GPL-3.0 COPYING_AGPL-3.0 ui/icons/CKBrandingNotice.md \
158
"$srcdir/LICENSE.MIT"
159
}
160
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-25 21:43:05 | Low | 1 |