Frederick_1 Posted yesterday at 13:31 Report Share Posted yesterday at 13:31 I want to try a local build version of the 0ad 28 on my debian system. So I got the source code tar file from: https://play0ad.com/download/source/ (direct download tar). The I followed the built instructions on: https://gitea.wildfiregames.com/0ad/0ad/wiki/ . (Where the Linux getting the libarys section could be better separated from the rest of instructions) So far, I sucessfully built the libarys. But when I invoke the make comand it brakes not finding libary / header files, altough, they are available on my system. gamer@Nanox:~/bin/0ad-0.28.0/build/workspaces/gcc$ make -j5 [...] ==== Building simulation2 (release) ==== Globals.cpp precompiled.h In file included from ../../../source/lobby/Globals.cpp:20: ../../../source/lobby/IXmppClient.h:23:10: fatal error: js/Value.h: Datei oder Verzeichnis nicht gefunden 23 | #include <js/Value.h> | ^~~~~~~~~~~~ compilation terminated. make[1]: *** [lobby.make:162: obj/lobby_Release/Globals.o] Fehler 1 make: *** [Makefile:104: lobby] Fehler 2 make: *** Es wird auf noch nicht beendete Prozesse gewartet … In file included from ../../../source/dapinterface/DapInterface.cpp:20: ../../../source/dapinterface/DapInterface.h:24:10: fatal error: js/RootingAPI.h: Datei oder Verzeichnis nicht gefunden 24 | #include <js/RootingAPI.h> | ^~~~~~~~~~~~~~~~~ compilation terminated. ../../../source/scriptinterface/ScriptForward.h:21:10: fatal error: js/TypeDecls.h: Datei oder Verzeichnis nicht gefunden 21 | #include "js/TypeDecls.h" | ^~~~~~~~~~~~~~~~ compilation terminated. I have checktd the files are on my system, something with the path seems wrong. I also installed them via apt from debian: ~/bin/0ad-0.28.0/build/workspaces/gcc$ locate RootingAPI.h /home/gamer/bin/0ad-0.28.0/libraries/source/spidermonkey/mozjs-128.13.0/js/public/RootingAPI.h /usr/include/x86_64-linux-gnu/mozjs-128/js/RootingAPI.h ~/bin/0ad-0.28.0/build/workspaces/gcc$ locate Value.h /home/gamer/bin/0ad-0.28.0/libraries/source/spidermonkey/mozjs-128.13.0/js/public/Value.h /home/gamer/bin/0ad-0.28.0/libraries/source/spidermonkey/mozjs-128.13.0/js/src/wasm/WasmValue.h /home/gamer/bin/0ad-0.28.0/libraries/source/spidermonkey/mozjs-128.13.0/mozglue/baseprofiler/public/ProportionValue.h /home/gamer/bin/0ad-0.28.0/source/graphics/SmoothedValue.h /usr/include/llvm-19/llvm/CodeGen/PseudoSourceValue.h /usr/include/llvm-19/llvm/DebugInfo/DWARF/DWARFFormValue.h /usr/include/llvm-19/llvm/ExecutionEngine/GenericValue.h /usr/include/llvm-19/llvm/IR/GlobalValue.h /usr/include/llvm-19/llvm/IR/Value.h /usr/include/llvm-19/llvm/MC/MCValue.h /usr/include/x86_64-linux-gnu/mozjs-128/js/Value.h /usr/include/x86_64-linux-gnu/mozjs-128/mozilla/ProportionValue.h gamer@Nanox:~/bin/0ad-0.28.0/build/workspaces/gcc$ locate TypeDecls.h /home/gamer/bin/0ad-0.28.0/libraries/source/spidermonkey/mozjs-128.13.0/js/public/TypeDecls.h /home/gamer/bin/0ad-0.28.0/libraries/source/spidermonkey/mozjs-128.13.0/js/src/wasm/WasmTypeDecls.h /usr/include/x86_64-linux-gnu/mozjs-128/js/TypeDecls.h So, what to do.... Quote Link to comment Share on other sites More sharing options...
Stan` Posted 23 hours ago Report Share Posted 23 hours ago Which version of Spidermonkey does your distribution have? Quote Link to comment Share on other sites More sharing options...
Frederick_1 Posted 22 hours ago Author Report Share Posted 22 hours ago (edited) The packet installed from Debian Repository libmozjs-128-0: libmozjs: 128.14.0-1~deb13u1 libmozjs-128-dev (128.14.0-1~deb13u1) I think there is another Version, which is bundled part in the tree derived vom tar-ball. It is in the directory ..../mozjs-128.13.0 ... so I d guess this is the version number Edited 22 hours ago by Frederick_1 translated to english Quote Link to comment Share on other sites More sharing options...
Stan` Posted 21 hours ago Report Share Posted 21 hours ago Hmm then I do not know. @hyperion Quote Link to comment Share on other sites More sharing options...
hyperion Posted 20 hours ago Report Share Posted 20 hours ago 14 minutes ago, Stan` said: Hmm then I do not know. @hyperion I assume didn't build the vendored one and didn't configure the build to use the system one. Quote Link to comment Share on other sites More sharing options...
Frederick_1 Posted 16 hours ago Author Report Share Posted 16 hours ago (edited) In the Debian section I found a remark to spider monkey, so I tried: ./update-workspaces.sh -j3 --with-system-mozjs And then it compiled. Guess using spidermonkey Version 128.14 from Debian instead of 128.13 which is bundled. The test runs.... were 99% sucessfull, starting pyrogenensis finishes with a Seg-fault. Although I can not find the dump file. This is the test output: gamer@Nanox:~/bin/0ad-0.28.0$ binaries/system/test Running cxxtest tests (471 tests).................................................................................................... In TestDapInterface::test_dap_interface: /home/gamer/bin/0ad-0.28.0/source/dapinterface/tests/test_DapInterface.h:55: Error: Expected ((g_VFS->Mount(L"", DataDir() / "mods" / "mod" / "", VFS_MOUNT_MUST_EXIST)) == INFO::OK), found (-110100 != 0) /home/gamer/bin/0ad-0.28.0/source/dapinterface/tests/test_DapInterface.h:57: Error: Test failed: DAP entry script not found at tools/dap/entry.js /home/gamer/bin/0ad-0.28.0/source/dapinterface/tests/test_DapInterface.h:57: Error: Expected ((DAP::Interface{address, port, *g_ScriptContext })) not to throw, but it did ../../../source/dapinterface/tests/test_DapInterface.h:44: Error: Test failed: DAP entry script not found at tools/dap/entry.js ................................................................................Skipping map generator tests (can't find binaries/data/mods/public/maps/random/tests/) ................................................................. In TestNetComms::test_dummy: /home/gamer/bin/0ad-0.28.0/source/network/tests/test_Net.h:57: Error: Expected ((g_VFS->Mount(L"", DataDir() / "mods" / "public" / "", VFS_MOUNT_MUST_EXIST)) == INFO::OK), found (-110100 != 0) .................................................................................................................................................................................................Skipping globalscripts tests (can't find binaries/data/mods/public/globalscripts/tests/) .Skipping component scripts tests (can't find binaries/data/mods/public/simulation/components/tests/setup.js) .............................. Failed 2 and Skipped 0 of 471 tests Success rate: 99% I attached the log file from ~.local/state/log: mainlog.html Edited 16 hours ago by Frederick_1 Quote Link to comment Share on other sites More sharing options...
hyperion Posted 8 hours ago Report Share Posted 8 hours ago Maybe https://gitea.wildfiregames.com/0ad/0ad/issues/8757 Quote Link to comment Share on other sites More sharing options...
Stan` Posted 7 hours ago Report Share Posted 7 hours ago And tests failed because you're missing the 0ad-data archive. Quote Link to comment Share on other sites More sharing options...
zyli Posted 3 hours ago Report Share Posted 3 hours ago (edited) @Frederick_1 What Debian? Saying you followed the instructions is imprecise, as they are very extensive. But let's get to the point. Compiling from the 0AD sources is simple and straightforward. A preliminary note: The compilation files take up a lot of disk space – mine is about 10 GiB. If you don't have that much space, compile on an external drive. Even a USB flash drive will work, as long as it's formatted with a Linux file system, e.g., ext4. If you use Windows file systems (e.g., fat32, exfat), compilation will fail. Checking required dependencies. dpkg -l build-essential cargo cmake curl libboost-dev libboost-system-dev libboost-filesystem-dev libcurl4-gnutls-dev libenet-dev libfmt-dev libfreetype-dev m4 libgloox-dev libicu-dev libminiupnpc-dev libnvtt-dev libogg-dev libopenal-dev libpng-dev libsdl2-dev libsodium-dev libvorbis-dev libwxgtk3.2-dev libxml2-dev llvm minisign python3 rustc zlib1g-dev If something is missing, we install it. Next – with user rights: cargo install --locked cbindgen@0.29.0 echo 'export PATH="/home/user_name/.cargo/bin:$PATH"' >> ~/.bashrc source ~/.bashrc Command list without unnecessary comments. Debian 13.3 Trixie. All commands as a user. After compilation, we are only interested in the 'binaries' directory. mkdir -p 0.28.0_Final cont 0.28.0_Final wget https://releases.wildfiregames.com/0ad-0.28.0-unix-build.tar.xz wget https://releases.wildfiregames.com/0ad-0.28.0-unix-build.tar.xz.sha256sum wget https://releases.wildfiregames.com/0ad-0.28.0-unix-build.tar.xz.minisig wget https://releases.wildfiregames.com/0ad-0.28.0-unix-data.tar.xz wget https://releases.wildfiregames.com/0ad-0.28.0-unix-data.tar.xz.sha256sum wget https://releases.wildfiregames.com/0ad-0.28.0-unix-data.tar.xz.minisig ls-al minisign -Vm 0ad-0.28.0-unix-build.tar.xz -P RWTWLbO12+ig3lUExIor3xd6DdZaYFEozn8Bu8nIzY3ImuRYQszIQyyy minisign -Vm 0ad-0.28.0-unix-data.tar.xz -P RWTWLbO12+ig3lUExIor3xd6DdZaYFEozn8Bu8nIzY3ImuRYQszIQyyy sha256sum -c 0ad-0.28.0-unix-build.tar.xz.sha256sum sha256sum -c 0ad-0.28.0-unix-data.tar.xz.sha256sum tar xpf 0ad-0.28.0-unix-build.tar.xz tar xpf 0ad-0.28.0-unix-data.tar.xz cd 0ad-0.28.0 cd libraries/ nproc # We'll see the number: N, e.g.: N=8 ./build-source-libs.sh -jN # So -j8 cd ../build/workspaces/ ./update-workspaces.sh -jN cd gcc/ make -jN cd ../../../binaries/system/ ./test ./pyrogenesis cp ../../build/build_version/build_version.txt . # Don't forget the dot at the end DONE If the compilation completes without errors with the final message: "Linking test," this is good. If for some reason you need to repeat the compilation, before issuing 'make', run the command: 'make clean'. Archive the 'binaries' directory and its contents and transfer it to another PC with Debian 13.x Trixie installed. But first, delete all '*.a' files from the 'system/' subdirectory. Leave only the '*.so' files and the 'ActorEditor', 'pyrogenesis', and 'test' files. Alternatively, leave the 'readme.txt' and the previously copied 'built_version.txt'. Do not touch the 'data/' subdirectory. The 'binaries' directory and its contents take up 5.0 GB of disk space. If '0ad' has never been run on this other computer in an earlier version, first check for the following packages: dpkg -l libenet7 libfmt10 libgloox18 libminiupnpc18 END Best regards Edited 3 hours ago by zyli Quote Link to comment Share on other sites More sharing options...
Frederick_1 Posted 2 hours ago Author Report Share Posted 2 hours ago (edited) I now have added the data files, and the tests are now fine. So I have to reason which way to go with spieder monkey. @ zyli: Debian is the current stable Version (with some backports), so it is Debian 13 Trixie. The dependency check is fine. What is "cont" have not found this comand. Guess typo "cd" is meant. I have made 30 GB Space bevore I tried to compile. Edited 1 hour ago by Frederick_1 Quote Link to comment Share on other sites More sharing options...
zyli Posted 1 hour ago Report Share Posted 1 hour ago @Frederick_1 Debian Sid already has 0AD version 0.28.0, but the dependencies require Debian 14 Forky. https://tracker.debian.org/pkg/0ad Under Debian 13.x Trixie, it can be compiled using the Debian method from Debian sources. The files (‘*dsc’, ‘*debian.tar.xz’, ‘*orig.tar.xz’) are at the bottom of the page: https://packages.debian.org/source/sid/0ad https://packages.debian.org/source/sid/0ad-data An interesting fact about ‘cbindgen’ – version 0.26 is sufficient for compilation (entry in the 0ad_0.28.0-3.dsc file): Quote cbindgen (>= 0.26.0) If you are interested in this method, let me know – I will describe how to do it. Best regards Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.