Compilation step error stops build #990

Closed
opened 2026-11-09 05:28:03 +00:00 by Desmondchaser27 · 8 comments
Desmondchaser27 commented 2026-11-09 05:28:03 +00:00 (Migrated from github.com)

Builder version

v2.0.6

How you built

Linux AppImage

Game files given to it

A .nup

The error

<excluded successful steps above this>
@@progress 0.999
  opus_multistream_decoder.c    0 MB       0s  (0s)
@@progress 0.999
  opus_encoder.c      0 MB       0s  (0s)
@@progress 0.999
  opus_projection_encoder.c    0 MB       0s  (0s)
@@progress 0.999
  repacketizer.c      0 MB       0s  (0s)
@@progress 0.999
  scale_vector_FLP.c    0 MB       0s  (0s)
@@progress 1.000
  mlp_data.c          0 MB       0s  (0s)
@@progress 1.000
not compiled yet: hos_main.c (0 MB, 0s), tried again alone at the end:
/tmp/.mount_HookshlcgKEj/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found
   14 | #include "../gpu/vk/oot_cheat_items.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

FAILED hos_main.c (0 MB, 0s, alone too):
/tmp/.mount_HookshlcgKEj/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found
   14 | #include "../gpu/vk/oot_cheat_items.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

compiled in 0s, 1 failed
@@error build.py stopped (exit status 1): /tmp/.mount_HookshlcgKEj/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found

Visual Studio or Build Tools version, and Windows SDK version

No response

Operating system and free space on the output drive

CachyOS Linux 2TB Free Space

Before you send it

  • I'm on the newest release, or it still fails on it.
  • I searched the open issues for this error.
  • I'm not attaching game files or anything built from them.
### Builder version v2.0.6 ### How you built Linux AppImage ### Game files given to it A .nup ### The error ```text <excluded successful steps above this> @@progress 0.999 opus_multistream_decoder.c 0 MB 0s (0s) @@progress 0.999 opus_encoder.c 0 MB 0s (0s) @@progress 0.999 opus_projection_encoder.c 0 MB 0s (0s) @@progress 0.999 repacketizer.c 0 MB 0s (0s) @@progress 0.999 scale_vector_FLP.c 0 MB 0s (0s) @@progress 1.000 mlp_data.c 0 MB 0s (0s) @@progress 1.000 not compiled yet: hos_main.c (0 MB, 0s), tried again alone at the end: /tmp/.mount_HookshlcgKEj/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found 14 | #include "../gpu/vk/oot_cheat_items.h" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. FAILED hos_main.c (0 MB, 0s, alone too): /tmp/.mount_HookshlcgKEj/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found 14 | #include "../gpu/vk/oot_cheat_items.h" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. compiled in 0s, 1 failed @@error build.py stopped (exit status 1): /tmp/.mount_HookshlcgKEj/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found ``` ### Visual Studio or Build Tools version, and Windows SDK version _No response_ ### Operating system and free space on the output drive CachyOS Linux 2TB Free Space ### Before you send it - [x] I'm on the newest release, or it still fails on it. - [x] I searched the open issues for this error. - [x] I'm not attaching game files or anything built from them.
marclemieux64 commented 2026-11-09 05:38:27 +00:00 (Migrated from github.com)

I added the file at local/share/hookshot/builder/versions/v2.0.6/usr/share/hookshot/gpu/vk/ by downloading it from the repo at https://git.magicbean.dev/MagicBeanDev/Hookshot/src/branch/main/gpu/vk/oot_cheat_items.h and the compilation finished. if it can help in the mean time

I added the file at local/share/hookshot/builder/versions/v2.0.6/usr/share/hookshot/gpu/vk/ by downloading it from the repo at https://git.magicbean.dev/MagicBeanDev/Hookshot/src/branch/main/gpu/vk/oot_cheat_items.h and the compilation finished. if it can help in the mean time
Solar-Ibex commented 2026-11-09 05:41:28 +00:00 (Migrated from github.com)

Same here on CachyOS (RTX 4070 Ti).

Cause: v2.0.6 added #include "../gpu/vk/oot_cheat_items.h" to host/hos_main.c, but scripts/linux/appimage.sh only copies gpu/vk/vk_api.h into the AppImage (line 50), so the new header isn’t packaged.

Fix: add this line after line 50 of scripts/linux/appimage.sh:

cp -a gpu/vk/oot_cheat_items.h "$T/gpu/vk/"

Workaround until a new AppImage is out (tested, the build finishes):

curl -fLo ~/.local/share/hookshot/builder/versions/v2.0.6/usr/share/hookshot/gpu/vk/oot_cheat_items.h https://raw.githubusercontent.com/NotRexed/Hookshot/v2.0.6/gpu/vk/oot_cheat_items.h

then run the build again.

Same here on CachyOS (RTX 4070 Ti). **Cause:** v2.0.6 added `#include "../gpu/vk/oot_cheat_items.h"` to `host/hos_main.c`, but `scripts/linux/appimage.sh` only copies `gpu/vk/vk_api.h` into the AppImage (line 50), so the new header isn’t packaged. **Fix:** add this line after line 50 of `scripts/linux/appimage.sh`: ``` cp -a gpu/vk/oot_cheat_items.h "$T/gpu/vk/" ``` **Workaround until a new AppImage is out** (tested, the build finishes): ``` curl -fLo ~/.local/share/hookshot/builder/versions/v2.0.6/usr/share/hookshot/gpu/vk/oot_cheat_items.h https://raw.githubusercontent.com/NotRexed/Hookshot/v2.0.6/gpu/vk/oot_cheat_items.h ``` then run the build again.
Desmondchaser27 commented 2026-11-09 06:22:29 +00:00 (Migrated from github.com)

I tried the workaround and it's not working for me. Guess I'll wait.

I tried the workaround and it's not working for me. Guess I'll wait.
Combomamba commented 2026-11-09 06:44:34 +00:00 (Migrated from github.com)

Workaround isn't working for me either. Tried updating from 2.0.5 appimage, downloading 2.0.6 appimage from latest and updating my build from that, and rebuilding the game entirely using 2.0.6, all give me the same 'oot_cheat_items.h' file not found error, even after using @Solar-Ibex's workaround, and even after transplanting the file into /gpu/vk myself using the file explorer

Workaround isn't working for me either. Tried updating from 2.0.5 appimage, downloading 2.0.6 appimage from latest and updating my build from that, and rebuilding the game entirely using 2.0.6, all give me the same 'oot_cheat_items.h' file not found error, even after using @Solar-Ibex's workaround, and even after transplanting the file into /gpu/vk myself using the file explorer
JulesThePooh commented 2026-11-09 06:52:00 +00:00 (Migrated from github.com)

Same here on CachyOS : (14700k/4080)
NUP file

@@progress 0.974
  code_hot_5.c        7 MB     327s  (327s)
@@progress 1.000
FAILED hos_main.c (0 MB, 0s, alone too):
/tmp/.mount_HookshPAmalK/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found
   14 | #include "../gpu/vk/oot_cheat_items.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

compiled in 327s, 1 failed
@@error build.py stopped (exit status 1): /tmp/.mount_HookshPAmalK/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found
Same here on CachyOS : (14700k/4080) NUP file ``` @@progress 0.974 code_hot_5.c 7 MB 327s (327s) @@progress 1.000 FAILED hos_main.c (0 MB, 0s, alone too): /tmp/.mount_HookshPAmalK/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found 14 | #include "../gpu/vk/oot_cheat_items.h" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. compiled in 327s, 1 failed @@error build.py stopped (exit status 1): /tmp/.mount_HookshPAmalK/usr/share/hookshot/nx2/../host/hos_main.c:14:10: fatal error: '../gpu/vk/oot_cheat_items.h' file not found ```
Desmondchaser27 commented 2026-11-09 06:54:41 +00:00 (Migrated from github.com)

The release candidate doesn't allow the build to work because it wants to download 2.0.6 apparently before it will run. And so it just generates the same error after you click "update builder".

Image
The release candidate doesn't allow the build to work because it wants to download 2.0.6 apparently before it will run. And so it just generates the same error after you click "update builder". <img width="681" height="484" alt="Image" src="https://github.com/user-attachments/assets/c6df0a28-295e-436e-b778-f03f80f7219e" />
Desmondchaser27 commented 2026-11-09 06:59:50 +00:00 (Migrated from github.com)

Might be worth offering the option to build without updating in future.

Might be worth offering the option to build without updating in future.
bibigurl-yum commented 2026-11-09 07:08:12 +00:00 (Migrated from github.com)

Update: why the workaround above fails, and what actually fixes it

The packaging bug is only half the story. The builder assembles ~/.local/share/hookshot/builder/versions/<tag> from the hookshot-linux.txt manifest of the latest release, and releases/latest still points to v2.0.6 — its usr/share/hookshot part is HookshotLinux-usr-share-hookshot-eecf57f64738.zip, which contains gpu/vk/vk_api.h but lacks gpu/vk/oot_cheat_items.h. So v2.0.7-rc.1 ships the same broken zip and fixes nothing.

Worse: when running an rc build, hookshot_builder.py (begin_update()) compares the running AppImage's VERSION (v2.0.7-rc.1) against the manifest tag (v2.0.6), and on mismatch it reinstalls versions/v2.0.6 from the zip every time the AppImage starts — which wipes any manually added header before the build runs. That is why the curl workaround above appears "not working": the next launch deletes it again.

Workaround A (only requires re-running the build in the already-open builder window — no relaunch, so no wipe):

V=$(cat ~/.local/share/hookshot/builder/current)
D=~/.local/share/hookshot/builder/versions/$V/usr/share/hookshot
mkdir -p "$D/gpu/vk"
curl -fL https://raw.githubusercontent.com/NotRexed/Hookshot/$V/gpu/vk/oot_cheat_items.h -o "$D/gpu/vk/oot_cheat_items.h"

Workaround B (survives AppImage relaunches): use the builder's own HOOKSHOT_LINUX_LIST override with a locally patched zip:

F=~/.local/share/hookshot/fix; mkdir -p $F
curl -fL -o $F/parts.zip https://github.com/NotRexed/Hookshot/releases/download/linux-parts/HookshotLinux-usr-share-hookshot-eecf57f64738.zip
curl -fL -o /tmp/oot_cheat_items.h https://raw.githubusercontent.com/NotRexed/Hookshot/v2.0.6/gpu/vk/oot_cheat_items.h
python3 -c 'import hashlib,os,zipfile,sys
f,z=sys.argv[1],sys.argv[2]+"/parts.zip"
with zipfile.ZipFile(z) as i, zipfile.ZipFile(z.replace(".zip","-fixed.zip"),"w",zipfile.ZIP_DEFLATED) as o:
 [o.writestr(x,i.read(x)) for x in i.infolist()]
 zi=zipfile.ZipInfo("gpu/vk/oot_cheat_items.h",(2026,1,1,0,0,0)); zi.external_attr=0o644<<16; o.writestr(zi,open(f,"rb").read())
p=z.replace(".zip","-fixed.zip"); print("part %s %d usr/share/hookshot file://%s"%(hashlib.sha256(open(p,"rb").read()).hexdigest(),os.path.getsize(p),p))' \
  /tmp/oot_cheat_items.h $F | { echo "tag v2.0.6"; cat; echo tree; } > $F/hookshot-linux.txt
HOOKSHOT_LINUX_LIST=$F/hookshot-linux.txt ./Hookshot.AppImage

(Verified: the builder's own linux_update.install() unpacks the patched zip into a complete tree with the header included.)

The real fix: add cp -a gpu/vk/oot_cheat_items.h "$T/gpu/vk/" to scripts/linux/appimage.sh and regenerate the linux-parts zip + hookshot-linux.txt on the latest release — every build that re-downloads the broken part keeps failing until that zip is rebuilt.

## Update: why the workaround above fails, and what actually fixes it The packaging bug is only half the story. The builder assembles `~/.local/share/hookshot/builder/versions/<tag>` from the `hookshot-linux.txt` manifest of the **latest release**, and `releases/latest` still points to v2.0.6 — its `usr/share/hookshot` part is `HookshotLinux-usr-share-hookshot-eecf57f64738.zip`, which contains `gpu/vk/vk_api.h` but **lacks `gpu/vk/oot_cheat_items.h`**. So v2.0.7-rc.1 ships the same broken zip and fixes nothing. Worse: when running an rc build, `hookshot_builder.py` (`begin_update()`) compares the running AppImage's VERSION (`v2.0.7-rc.1`) against the manifest tag (`v2.0.6`), and on mismatch it **reinstalls `versions/v2.0.6` from the zip every time the AppImage starts** — which wipes any manually added header before the build runs. That is why the curl workaround above appears "not working": the next launch deletes it again. **Workaround A** (only requires re-running the build in the already-open builder window — no relaunch, so no wipe): ```sh V=$(cat ~/.local/share/hookshot/builder/current) D=~/.local/share/hookshot/builder/versions/$V/usr/share/hookshot mkdir -p "$D/gpu/vk" curl -fL https://raw.githubusercontent.com/NotRexed/Hookshot/$V/gpu/vk/oot_cheat_items.h -o "$D/gpu/vk/oot_cheat_items.h" ``` **Workaround B** (survives AppImage relaunches): use the builder's own `HOOKSHOT_LINUX_LIST` override with a locally patched zip: ```sh F=~/.local/share/hookshot/fix; mkdir -p $F curl -fL -o $F/parts.zip https://github.com/NotRexed/Hookshot/releases/download/linux-parts/HookshotLinux-usr-share-hookshot-eecf57f64738.zip curl -fL -o /tmp/oot_cheat_items.h https://raw.githubusercontent.com/NotRexed/Hookshot/v2.0.6/gpu/vk/oot_cheat_items.h python3 -c 'import hashlib,os,zipfile,sys f,z=sys.argv[1],sys.argv[2]+"/parts.zip" with zipfile.ZipFile(z) as i, zipfile.ZipFile(z.replace(".zip","-fixed.zip"),"w",zipfile.ZIP_DEFLATED) as o: [o.writestr(x,i.read(x)) for x in i.infolist()] zi=zipfile.ZipInfo("gpu/vk/oot_cheat_items.h",(2026,1,1,0,0,0)); zi.external_attr=0o644<<16; o.writestr(zi,open(f,"rb").read()) p=z.replace(".zip","-fixed.zip"); print("part %s %d usr/share/hookshot file://%s"%(hashlib.sha256(open(p,"rb").read()).hexdigest(),os.path.getsize(p),p))' \ /tmp/oot_cheat_items.h $F | { echo "tag v2.0.6"; cat; echo tree; } > $F/hookshot-linux.txt HOOKSHOT_LINUX_LIST=$F/hookshot-linux.txt ./Hookshot.AppImage ``` (Verified: the builder's own `linux_update.install()` unpacks the patched zip into a complete tree *with* the header included.) **The real fix**: add `cp -a gpu/vk/oot_cheat_items.h "$T/gpu/vk/"` to `scripts/linux/appimage.sh` **and regenerate the linux-parts zip + `hookshot-linux.txt` on the latest release** — every build that re-downloads the broken part keeps failing until that zip is rebuilt.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#990
No description provided.