@Toolybird, does something in Ventoy rely on binaries being signed with specifically their key or none at all? If not, how hard would it be to instead sign with a key of our own (either randomly generated during build, or provided by the user in PKGBUILD)?
Search Criteria
Package Details: ventoy 1.1.17-1
Package Actions
| Git Clone URL: | https://aur.archlinux.org/ventoy.git (read-only, click to copy) |
|---|---|
| Package Base: | ventoy |
| Description: | A new bootable USB solution |
| Upstream URL: | https://www.ventoy.net/ |
| Licenses: | GPL-3.0-or-later |
| Submitter: | Toolybird |
| Maintainer: | Toolybird |
| Last Packager: | Toolybird |
| Votes: | 56 |
| Popularity: | 0.79 |
| First Submitted: | 2023-02-17 20:09 (UTC) |
| Last Updated: | 2026-07-26 01:13 (UTC) |
Dependencies (25)
- bash (bash-gitAUR, bash-devel-gitAUR)
- dosfstools (dosfstools-gitAUR)
- acpica (make)
- cdrtools (make)
- cpio (cpio-gitAUR) (make)
- device-mapper (make)
- freetype2 (freetype2-qdoled-aw3225qfAUR, freetype2-gitAUR, freetype2-macosAUR, freetype2-qdoledAUR, freetype2-woledAUR, freetype2-qdoled-gen3AUR) (make)
- fuse2 (make)
- git (git-gitAUR, git-glAUR, git-wd40AUR) (make)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-patched-filechooser-icon-viewAUR, gtk3-classic-xfceAUR) (make)
- kernel-headers-musl (make)
- lib32-gcc-libs (lib32-gcc-libs-gitAUR, lib32-gccrs-libs-gitAUR, lib32-gcc-libs-snapshotAUR) (make)
- lib32-glibc (lib32-glibc-gitAUR, lib32-glibc-git-native-pgoAUR, lib32-glibc-eacAUR) (make)
- libguestfs (libguestfs-gitAUR) (make)
- linux (linux-galaxyaudioAUR, solara-kernelAUR, linux-mnt-reform-binAUR, linux-galaxyaudio-binAUR) (make)
- musl (musl-gitAUR) (make)
- nasm (nasm-gitAUR) (make)
- python (make)
- python-setuptools (make)
- qt5-base (qt5-base-gitAUR, qt5-base-headlessAUR) (make)
- Show 5 more dependencies...
Required by (0)
Sources (22)
- dietlibc-headers-fix.patch
- exfat-1.3.0.tar.gz
- git+https://github.com/ipxe/ipxe.git#commit=3fe683e
- http://vault.centos.org/5.3/os/SRPMS/device-mapper-1.02.28-2.el5.src.rpm
- https://busybox.net/downloads/busybox-1.32.0.tar.bz2
- https://ftp.gnu.org/gnu/grub/grub-2.04.tar.xz
- https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz
- https://github.com/madler/zlib/releases/download/v1.3.2/zlib-1.3.2.tar.xz
- https://github.com/tianocore/edk2/archive/refs/tags/edk2-stable201911.zip
- https://github.com/ventoy/vtoytoolchain/releases/download/1.0/dietlibc-0.34.tar.xz
- https://mirrors.edge.kernel.org/pub/linux/utils/cryptsetup/v1.7/cryptsetup-1.7.5.tar.xz
- https://musl.libc.org/releases/musl-1.2.6.tar.gz
- https://tukaani.org/xz/xz-embedded-20130513.tar.gz
- kernel-headers-musl-6.12.77.tar.gz
- squashfs-tools-4.4.tar.gz
- ventoy-1.1.17.tar.gz
- ventoy-fix-array.array.tostring-removal-in-python-3.9.patch
- ventoy-fix-ucs-2-lookup-on-python-3.9.patch
- ventoy-grub-fix-build-with-binutils-2.36.patch
- wimboot-2.7.3.tar.gz
- wimboot-binutils-2.42-fix.patch
- zstd-1.0.0.tar.gz
intelfx commented on 2026-07-30 16:03 (UTC)
Toolybird commented on 2026-06-30 07:35 (UTC) (edited on 2026-06-30 07:50 (UTC) by Toolybird)
NOTICE: Regarding Secure Boot.
Since 1.1.13+, upstream Ventoy has started signing EFI binaries in their releases. You can confirm this with for example sbverify --list fbx64.efi. We don't have access to their private signing key, so obviously cannot do the same. AFAICT, this puts some doubt into the Ventoy Secure Boot situation for our "build from source" scenario.
To be honest, I've never been a fan of the Ventoy Secure Boot "Bypass" thing anyway.. You can read about the new upstream Ventoy Secure Boot Policy here.
Toolybird commented on 2026-06-23 05:41 (UTC) (edited on 2026-06-23 05:41 (UTC) by Toolybird)
@TheGreatAndyChow, all working fine here in a clean chroot. You'll need to figure out what's wrong with your environment.
<deleted-account> commented on 2026-06-23 05:28 (UTC)
==> Extracting sources... -> Extracting ventoy-1.1.12.tar.gz with bsdtar -> Creating working copy of ipxe git repo... Reset branch 'makepkg' -> Extracting dietlibc-0.34.tar.xz with bsdtar -> Extracting musl-1.2.6.tar.gz with bsdtar -> Extracting kernel-headers-musl-6.12.77.tar.gz with bsdtar ==> Starting prepare()... mv: cannot overwrite 'INSTALL.upstream/INSTALL': Directory not empty ==> ERROR: A failure occurred in prepare(). Aborting... :: Unable to build ventoy - makepkg exited with code: 4 =>> Try again? [y/N]:
Toolybird commented on 2026-05-22 04:26 (UTC)
Thanks to both of you.. @rubin55 for the heads-up and @intelfx for the pointer! It was caused by Arch recent upgrade of kernel-headers-musl. Build fix incoming...
intelfx commented on 2026-05-21 17:13 (UTC) (edited on 2026-05-21 17:14 (UTC) by intelfx)
Busybox bugzilla returns a 404 when trying to access the relevant bug report, so here is one of the surviving references to it: https://lists.busybox.net/pipermail/busybox-cvs/2024-January/041751.html
Presumably, a viable fix would be to deselect the tc applet in whatever copy of busybox this package is trying to build — I'd bet ventoy does not use it.
rubin55 commented on 2026-05-21 12:32 (UTC)
During build I'm getting this (set of) error(s):
networking/tc.c: In function ‘cbq_print_opt’:
networking/tc.c:238:27: error: ‘TCA_CBQ_MAX’ undeclared (first use in this function); did you mean ‘TCA_CBS_MAX’?
238 | struct rtattr *tb[TCA_CBQ_MAX+1];
| ^~~~~~~~~~~
| TCA_CBS_MAX
networking/tc.c:238:27: note: each undeclared identifier is reported only once for each function it appears in
networking/tc.c:251:16: error: ‘TCA_CBQ_RATE’ undeclared (first use in this function); did you mean ‘TCA_TBF_RATE64’?
251 | if (tb[TCA_CBQ_RATE]) {
| ^~~~~~~~~~~~
| TCA_TBF_RATE64
networking/tc.c:257:16: error: ‘TCA_CBQ_LSSOPT’ undeclared (first use in this function)
257 | if (tb[TCA_CBQ_LSSOPT]) {
| ^~~~~~~~~~~~~~
networking/tc.c:258:61: error: invalid application of ‘sizeof’ to incomplete type ‘struct tc_cbq_lssopt’
258 | if (RTA_PAYLOAD(tb[TCA_CBQ_LSSOPT]) < sizeof(*lss))
| ^
networking/tc.c:263:16: error: ‘TCA_CBQ_WRROPT’ undeclared (first use in this function)
263 | if (tb[TCA_CBQ_WRROPT]) {
| ^~~~~~~~~~~~~~
networking/tc.c:264:61: error: invalid application of ‘sizeof’ to incomplete type ‘struct tc_cbq_wrropt’
264 | if (RTA_PAYLOAD(tb[TCA_CBQ_WRROPT]) < sizeof(*wrr))
| ^
networking/tc.c:269:16: error: ‘TCA_CBQ_FOPT’ undeclared (first use in this function)
269 | if (tb[TCA_CBQ_FOPT]) {
| ^~~~~~~~~~~~
networking/tc.c:270:59: error: invalid application of ‘sizeof’ to incomplete type ‘struct tc_cbq_fopt’
270 | if (RTA_PAYLOAD(tb[TCA_CBQ_FOPT]) < sizeof(*fopt))
| ^
networking/tc.c:275:16: error: ‘TCA_CBQ_OVL_STRATEGY’ undeclared (first use in this function)
275 | if (tb[TCA_CBQ_OVL_STRATEGY]) {
| ^~~~~~~~~~~~~~~~~~~~
networking/tc.c:276:67: error: invalid application of ‘sizeof’ to incomplete type ‘struct tc_cbq_ovl’
276 | if (RTA_PAYLOAD(tb[TCA_CBQ_OVL_STRATEGY]) < sizeof(*ovl))
| ^
networking/tc.c:279:50: error: invalid application of ‘sizeof’ to incomplete type ‘struct tc_cbq_ovl’
279 | (unsigned) sizeof(*ovl));
| ^
networking/tc.c:295:23: error: invalid use of undefined type ‘struct tc_cbq_lssopt’
295 | if (lss && lss->flags) {
| ^~
networking/tc.c:298:24: error: invalid use of undefined type ‘struct tc_cbq_lssopt’
298 | if (lss->flags&TCF_CBQ_LSS_BOUNDED) {
| ^~
networking/tc.c:298:32: error: ‘TCF_CBQ_LSS_BOUNDED’ undeclared (first use in this function)
298 | if (lss->flags&TCF_CBQ_LSS_BOUNDED) {
| ^~~~~~~~~~~~~~~~~~~
networking/tc.c:302:24: error: invalid use of undefined type ‘struct tc_cbq_lssopt’
302 | if (lss->flags&TCF_CBQ_LSS_ISOLATED) {
| ^~
networking/tc.c:302:32: error: ‘TCF_CBQ_LSS_ISOLATED’ undeclared (first use in this function)
302 | if (lss->flags&TCF_CBQ_LSS_ISOLATED) {
| ^~~~~~~~~~~~~~~~~~~~
networking/tc.c:310:24: error: invalid use of undefined type ‘struct tc_cbq_wrropt’
310 | if (wrr->priority != TC_CBQ_MAXPRIO)
| ^~
networking/tc.c:310:38: error: ‘TC_CBQ_MAXPRIO’ undeclared (first use in this function)
310 | if (wrr->priority != TC_CBQ_MAXPRIO)
| ^~~~~~~~~~~~~~
networking/tc.c:311:46: error: invalid use of undefined type ‘struct tc_cbq_wrropt’
311 | printf("prio %u", wrr->priority);
| ^~
networking/tc.c:315:43: error: invalid use of undefined type ‘struct tc_cbq_wrropt’
315 | printf("/%u ", wrr->cpriority);
| ^~
networking/tc.c:316:32: error: invalid use of undefined type ‘struct tc_cbq_wrropt’
316 | if (wrr->weight != 1) {
| ^~ ^~
<snip>
Toolybird commented on 2026-05-06 22:54 (UTC)
A workaround to fix the build failures has been applied. Turns out the root cause is slightly buggy Arch GCC packaging. More info here: https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/work_items/39
Toolybird commented on 2026-05-04 07:25 (UTC)
usr/bin/ld: cannot find -latomic_asneeded: No such file or directory
Thanks for the report. Seems to be a generic problem when static linking with musl-gcc and gcc-16. The AUR pkg dash-static-musl has the same issue.. I'll need to find a solution somehow...
Lone_Wolf commented on 2026-05-03 15:39 (UTC)
clean chroot build
usr/bin/ld: cannot find -latomic_asneeded: No such file or directory
/usr/bin/ld: have you installed the static version of the atomic_asneeded library ?
collect2: error: ld returned 1 exit status
build log at https://app.box.com/s/k3k2af36jny2rfd9v5xsiwzy6nm0qhvl prepare log at https://app.box.com/s/g4k11js8mhc0eud3oj43nq69d4lwpsfa
Pinned Comments
Toolybird commented on 2026-06-30 07:35 (UTC) (edited on 2026-06-30 07:50 (UTC) by Toolybird)
NOTICE: Regarding Secure Boot.
Since 1.1.13+, upstream Ventoy has started signing EFI binaries in their releases. You can confirm this with for example
sbverify --list fbx64.efi. We don't have access to their private signing key, so obviously cannot do the same. AFAICT, this puts some doubt into the Ventoy Secure Boot situation for our "build from source" scenario.To be honest, I've never been a fan of the Ventoy Secure Boot "Bypass" thing anyway.. You can read about the new upstream Ventoy Secure Boot Policy here.