Aislinn Report post Posted July 7 After rebooting computer after some updates, I can't log in to EL. I correctly exited the game, typed #exit as I always do, rebooted as I always do, and when I tried to start EL the same way I always do, I get a pop-up window that says: Quote [init.c:1089] The rules.xml file was not found. You will have to redownload your game. There is a rules.xml file, located in ~/el_linux/languages/en/rules.xml (and one in all of the different language directories) and it looks perfectly normal. However, my error log shows a lot of additional problems. Here is my error log ~/.elc/log/main_b4d81d80.log [2023-07-07 11:47:13, engine/logging.cpp:311] Log started at: Fri Jul 7 11:47:13 2023 EDT [2023-07-07 11:47:13, engine/logging.cpp:314] version: 1.9.6 [2023-07-07 11:47:13, elconfig.c:2485] Warning: Can't find var 'autoset_def_server_index= 8 ', type 2 [2023-07-07 11:47:13, io/elpathwrapper.c:714] Warning: Didn't find your data_dir, using the current directory instead. Please correct this in your el.ini. Given data_dir was: "c:\Program Files\Eternal Lands\/". Using "/home/sb/el_linux". [2023-07-07 11:47:13, named_colours.cpp:105] Error: void ELGL_Colour::Colour_Container::load_xml() : Can't open file [named_colours.xml] [2023-07-07 11:47:13, font.cpp:187] Error: Unable to render text with TTF font file '/conkywx/STYLBCC_.ttf' [2023-07-07 11:47:13, font.cpp:187] Error: Unable to render text with TTF font file '/conkywx/cutouts.ttf' [2023-07-07 11:47:13, font.cpp:187] Error: Unable to render text with TTF font file '/conkywx/MoonPhases.ttf' [2023-07-07 11:47:13, font.cpp:187] Error: Unable to render text with TTF font file '/conkywx/Arrows.otf' [2023-07-07 11:47:13, font.cpp:187] Error: Unable to render text with TTF font file '/conkywx/ConkyWeather.otf' [2023-07-07 11:47:13, translate.c:2154] Error: Could not read console.xml [2023-07-07 11:47:13, translate.c:2154] Error: Could not read errors.xml [2023-07-07 11:47:13, translate.c:2154] Error: Could not read help.xml [2023-07-07 11:47:13, translate.c:2154] Error: Could not read options.xml [2023-07-07 11:47:13, translate.c:2154] Error: Could not read spells.xml [2023-07-07 11:47:13, translate.c:2154] Error: Could not read stats.xml [2023-07-07 11:47:13, translate.c:2154] Error: Could not read titles.xml [2023-07-07 11:47:13, interface.c:492] Info: Using hardwired continent overview maps: 2 [2023-07-07 11:47:13, io/elfilewrapper.c:992] Error: Can't open file './shaders/new_water.vert'. [2023-07-07 11:47:14] Last message repeated 15 times [2023-07-07 11:47:14, mines.c:207] Error: Error opening mines configuration file: mines.xml: No such file or directory [2023-07-07 11:47:14, sound.c:5851] Error: Error opening sound configuration file [2023-07-07 11:47:14, actor_scripts.c:4891] Error: Unable to read actor definition file actor_defs/actor_defs.xml [2023-07-07 11:47:14, actor_scripts.c:2927] Error: Unable to read emotes definition file emotes.xml [2023-07-07 11:47:14, missiles.c:942] Error: Unable to read missiles definition file actor_defs/missile_defs.xml [2023-07-07 11:47:14, json_io.cpp:35] Info: int JSON_IO_Client_State::Client_State::load(const char*):798 [/home/sb/.elc/pet_fox/client_state.json] [2023-07-07 11:47:14, weather.c:972] Error: Unable to read weather definition file ./weather.xml [2023-07-07 11:47:14, spells.c:382] Error: Unable to read spells definition file ./spells.xml: No such file or directory [2023-07-07 11:47:14, spells.c:389] Error: Unable to parse spells definition file ./spells.xml [2023-07-07 11:47:14, chat.c:1442] Error: Could not load a channel list from file. Using a limited built-in set instead. [2023-07-07 11:47:14, rules.c:186] Error: An error occured while reading the rules [2023-07-07 11:47:14, init.c:1086] Error: The rules.xml file was not found. You will have to redownload your game. Any ideas? I have no idea why it's trying to read my conky files, those are for another program completely separate from EL... (I also tried recompiling the client, but I got the same thing) Quote Share this post Link to post Share on other sites
revi Report post Posted July 7 1 hour ago, Aislinn said: [2023-07-07 11:47:13, io/elpathwrapper.c:714] Warning: Didn't find your data_dir, using the current directory instead. Please correct this in your el.ini. Given data_dir was: "c:\Program Files\Eternal Lands\/". Using "/home/sb/el_linux". This line worries me. It looks as if EL wants to use a Windows path, but iirc you use Linux... Perhaps do what it says and correct el.ini? Quote Share this post Link to post Share on other sites
Aislinn Report post Posted July 7 Well here's the thing. I don't have an el.ini in ~/el_linux. I have separate ones for each character in ~/.elc/main or ~/.elc/aisy, etc. What's odd is I changed nothing... Quote This option allows you to specify a directory other than the current directory to load data from. This needs to be set to where you installed EL. For Windows users, the default is "c:\Program Files\Eternal Lands\". For Gentoo users, the ebuild installs in /usr/share/games/eternal-lands. #data_dir = "/home/sb/el_linux" Also odd in my el.ini is this: Quote #server_address = game.eternal-lands.com #server_port = 2001 Quote Share this post Link to post Share on other sites
bluap Report post Posted July 7 If you assume the client is looking for the files in /home/sb/el_linux can you check one of the errored files exists and is readable by the user you run as? The client looks at various system folders for fonts, I assume that's why the conkeyxy files show in the low. Quote Share this post Link to post Share on other sites
Aislinn Report post Posted July 7 2 hours ago, bluap said: If you assume the client is looking for the files in /home/sb/el_linux can you check one of the errored files exists and is readable by the user you run as? The client looks at various system folders for fonts, I assume that's why the conkeyxy files show in the low. rules.xml is in /home/sb/el_linux/languages/en/rules.xml and yes I can access and read it. spells.xml is in /home/sb/el_linux/spells.xml and yes I can access and read it but it also is in home/sb/el_linux/languages/en/strings where the rest of them are located (I can read these too) channels.xml console.xml errors.xml help.xml options.xml spells.xml stats.xml titles.xml are all in /home/sb/el_linux/languages/en/strings and I can access and read them all. Quote Share this post Link to post Share on other sites
bluap Report post Posted July 7 Perhaps you could try using strace to see what's happening: strace ./el.x86_64.linux.bin.static 2>&1 | grep console.xml You may need to install strace. Quote Share this post Link to post Share on other sites
Aislinn Report post Posted July 7 Okay, I rename my clients so I can keep track of them, this is what I get with strace: (also get the same popup window about rules.xml) [sb@arch el_linux]$ strace ./el.linux-7-7-23.bin 2>&1 | grep console.xml newfstatat(AT_FDCWD, "languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 newfstatat(AT_FDCWD, "languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.xz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.gz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.xz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.gz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.xz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.gz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.xz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.gz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.xz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.gz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.xz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.gz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 openat(AT_FDCWD, "./languages/en/strings/console.xml", O_RDONLY) = 6 openat(AT_FDCWD, "./languages/en/strings/console.xml", O_RDONLY) = 6 write(2, "languages/en/strings/console.xml"..., 37languages/en/strings/console.xml:83: ) = 37 newfstatat(AT_FDCWD, "languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 newfstatat(AT_FDCWD, "languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.xz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.gz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.xz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.gz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.xz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.gz", 0x7ffe4f2dc770, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.xz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml.gz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/pet_fox/languages/en/strings/console.xml", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.xz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml.gz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "/home/sb/.elc/updates/1_9_6/languages/en/strings/console.xml", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.xz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml.gz", 0x7ffe4f2dc6e0, 0) = -1 ENOENT (No such file or directory) newfstatat(AT_FDCWD, "./languages/en/strings/console.xml", {st_mode=S_IFREG|0744, st_size=4180, ...}, 0) = 0 openat(AT_FDCWD, "./languages/en/strings/console.xml", O_RDONLY) = 6 openat(AT_FDCWD, "./languages/en/strings/console.xml", O_RDONLY) = 6 write(2, "languages/en/strings/console.xml"..., 37languages/en/strings/console.xml:83: ) = 37 Quote Share this post Link to post Share on other sites
bluap Report post Posted July 7 (edited) Looks like its opening. Perhaps the xml parse fails. Do the contents look OK? This is my checksum; md5sum languages/en/strings/console.xml b635aa251c0d017e095fba0cc3118bca languages/en/strings/console.xml Edited July 7 by bluap Quote Share this post Link to post Share on other sites
Aislinn Report post Posted July 7 [sb@arch strings]$ md5sum console.xml b635aa251c0d017e095fba0cc3118bca console.xml The contents look okay to me. Quote Share this post Link to post Share on other sites
Aislinn Report post Posted July 7 Looks like you were right about the xml parsing. My update today included "upgrading" libxml2 (libxml2-2.11.4-1-x86_64.pkg.tar.zst) and downgrading it to the last version (libxml2-2.10.4-6-x86_64.pkg.tar.zst) lets me log in. Son of a gun, I'm so sorry for wasting your time and thank you for trying to help me. Quote Share this post Link to post Share on other sites
bluap Report post Posted July 8 16 hours ago, Aislinn said: Looks like you were right about the xml parsing. My update today included "upgrading" libxml2 (libxml2-2.11.4-1-x86_64.pkg.tar.zst) and downgrading it to the last version (libxml2-2.10.4-6-x86_64.pkg.tar.zst) lets me log in. Son of a gun, I'm so sorry for wasting your time and thank you for trying to help me. Definitely not wasting time. I was testing using one of the package builds which works. But if I compile my own. I have the same problem with the new version of libxml. I'll look into why that is in case its something we're going in the client that is no longer supported. Quote Share this post Link to post Share on other sites
Erdie Report post Posted July 12 (edited) Just to confirm, Nimbus has the same problem after updating something not related to el and she uses Manjaro linux, which more or less a based on arch. It looks like arch has some incompatibilites right now. BTW: I am trying to build a static binary on my own machine in order to copy this on the Manjaro based system. I am not familiar with that. Could you roughly explain how to get this done? I tried to include "-static" in the c-flags but this leads to errors when linking the binary. What I am doing wrong? EDIT: Now I understand, there is a target called "static" but if I use it, it fails in the linking state because it requires all dependencies as *.a fils which means static libraries. Does it mean I have to rebuild all libs as static before compiling el finally? It seems to be the case. Things are becoming complicated .. Edited July 14 by Erdie Quote Share this post Link to post Share on other sites
bluap Report post Posted July 14 (edited) On 12/07/2023 at 1:12 PM, Erdie said: Just to confirm, Nimbus has the same problem after updating something not related to el and she uses Manjaro linux, which more or less a based on arch. It looks like arch has some incompatibilites right now. The 2.11.x series of libxml2 has new protections for "entity expansion attacks" which we appear to be triggering with the el xml files. I'm looking into this but cannot find fix a solution so far, it will hit us eventually on other platforms, not just arch based. There is also a change to the way custom loaders work with libxml2 that triggers another issue that I have fixed (I think). On 12/07/2023 at 1:12 PM, Erdie said: BTW: I am trying to build a static binary on my own machine in order to copy this on the Manjaro based system. I am not familiar with that. Could you roughly explain how to get this done? I tried to include "-static" in the c-flags but this leads to errors when linking the binary. What I am doing wrong? Building a static binary unfortunately requires a lot of work as you need to build all the libraries yourself making static versions. I have scripts to do this and still intended to publish them to my EL build methods repo once they are cleaned up a bit. There is a flatpak package that works on Arch and Manjaro, and other distros, available in the flatpak store. I publish a development version too (needs updated to the latest git) that you can install by enabling the flatpak beta channel. Edited July 14 by bluap Quote Share this post Link to post Share on other sites
Erdie Report post Posted July 15 I just figured out that even my Gentoo System has this issue, too. That shows you are right, all distros will have been involved in this. The advantage on my Gentoo is, that I can just downgrade libxml2 and rebuild everything which depends on it more or less automatically. Binary based distros have no chance to fix it. Quote Share this post Link to post Share on other sites
revi Report post Posted July 15 I wonder if the missing xml declaration (below) could cause some of the problems? <?xml version="1.0" encoding="UTF-8"?> In my understanding, a valid XML file has to start with such a line. And rules.xml doesn't have it. Quote Share this post Link to post Share on other sites
Erdie Report post Posted July 17 @bluap Is there a simple way to build a binary where is only one particular library staticially linked? Quote Share this post Link to post Share on other sites
AnnaH Report post Posted August 19 named_colours.xml:24: parser error : Growing input buffer <colour name="popup.optiontextmouseover" r="1.0" g="1.0" b="1.0" a="1.0"/> ^ languages/en/strings/console.xml:83: parser error : Growing input buffer <markpos>markpos</markpos> ^ languages/en/strings/console.xml:83: parser error : Growing input buffer <markpos>markpos</markpos> ^ languages/en/strings/errors.xml:168: parser error : Growing input buffer <accept>I Accept</accept> ^ languages/en/strings/errors.xml:168: parser error : Growing input buffer <accept>I Accept</accept> ^ languages/en/strings/help.xml:139: parser error : Growing input buffer <logon>%.*s has logged on.</logon> ^ languages/en/strings/help.xml:139: parser error : Growing input buffer <logon>%.*s has logged on.</logon> ^ languages/en/strings/options.xml:302: parser error : Growing input buffer Manufacture, Storage and Inventory windows to appear above the map and console. ^ languages/en/strings/options.xml:302: parser error : Growing input buffer Manufacture, Storage and Inventory windows to appear above the map and console. ^ languages/en/strings/spells.xml:95: parser error : Growing input buffer </remove> ^ languages/en/strings/spells.xml:95: parser error : Growing input buffer </remove> ^ languages/en/strings/stats.xml:157: parser error : Growing input buffer <shortname>eng</shortname> ^ languages/en/strings/stats.xml:157: parser error : Growing input buffer <shortname>eng</shortname> ^ languages/en/strings/titles.xml:44: parser error : Growing input buffer <tab_adv_video>Adv Video</tab_adv_video> ^ languages/en/strings/titles.xml:44: parser error : Growing input buffer <tab_adv_video>Adv Video</tab_adv_video> ^ mines.xml:18: parser error : Growing input buffer <mine id="7" type="Mana drainer">./3dobjects/ward1.e3d</mine> ^ sound/snds_enviro.xml:498: parser error : Growing input buffer <stereo>1</stereo> ^ sound/sound_config.xml:30: parser error : Entity 'snds_enviro' failed to parse &snds_enviro; ^ sound/sound_config.xml:321: parser error : Growing input buffer <sound name = "Poison"> ^ actor_defs/player_standard.xml:1: parser error : Growing input buffer <ghost>no</ghost> ^ actor_defs/playerav_human_female.xml:84: parser error : Entity 'standard_players' failed to parse &standard_players; ^ actor_defs/playerav_human_female.xml:135: parser error : Growing input buffer <torso>./meshes/torso_skinhf_tan.dds</torso> ^ actor_defs/actor_defs.xml:141: parser error : Entity 'human_female' failed to parse &human_female; ^ actor_defs/actor_defs.xml:233: parser error : Growing input buffer &dragon2_gray; ^ emotes.xml:460: parser error : Growing input buffer <CAL_emote_sit index="1000">./animations/player_idle1.caf 0</CAL_emote_sit> ^ actor_defs/missile_defs.xml:78: parser error : Growing input buffer </missile> ^ ./weather.xml:19: parser error : Growing input buffer <density>1.0</density> ^ ./spells.xml:361: parser error : Growing input buffer <sigil id="21" name="Protection">protection</sigil> ^ languages/en/Encyclopedia/index.xml:21: parser error : Growing input buffer <Category>Miscellanea</Category> ^ languages/en/strings/channels.xml:50: parser error : Growing input buffer <channel number="4900" name="Russian">Chat in Russian</channel> ^ languages/en/strings/channels.xml:50: parser error : Growing input buffer <channel number="4900" name="Russian">Chat in Russian</channel> ^ languages/en/rules.xml:206: parser error : Growing input buffer eas detailed above, can result in permanent banishment from the forums and game. ^ languages/en/rules.xml:206: parser error : Growing input buffer eas detailed above, can result in permanent banishment from the forums and game. ^ The rules.xml file was not found. You will have to redownload your game. also hit this error with >=dev-libs/libxml2-2.11.4::gentoo (v2.10.4 worked fine) nothing else on system that depends on libxml2 had any problems since update on Jul 10 :< Quote Share this post Link to post Share on other sites
bluap Report post Posted August 20 I've been trying to fix this for a while now but so far unable. As I said above, I think there may be more than one issue. I've committed the possible fix for reading files but actor defs still fail to load. I added proper detection of this and a pointer to this thread in the error logging. I'll keep trying but help from someone more familiar with libxml2 would be great. I may create an issue on their bug tracker but suspect its and EL problem. Quote Share this post Link to post Share on other sites
bluap Report post Posted August 20 (edited) 12 minutes ago, revi said: Are you sure all those files are actually valid XML? A valid xml file should start with <?xml version="1.0"?> and several of the EL xml files do not sta It could be. I've tried looking at this but I have no idea when its needed. Adding it to the top of the actor_defs.xml does parse, but we still get the error. I've created an issue on the libxml2 repo. We may get some pointers there: https://gitlab.gnome.org/GNOME/libxml2/-/issues/581 Edited August 20 by bluap Quote Share this post Link to post Share on other sites
bluap Report post Posted August 20 The issue I logged has been looked at and the libxml2 devs have already made a change that should allow us to fix our issue. The actor defs are tripping the new "Protection against entity expansion attacks" and the change is to allow setting a higher threshold. I'll test it tomorrow and report here. https://gitlab.gnome.org/GNOME/libxml2/-/issues/581 Quote Share this post Link to post Share on other sites
bluap Report post Posted August 22 (edited) I've tested the new version of the library (2.12 not yet released) and using the new ability to set a higher threshold does fix the problem. I've committed the change but stick with version 2.10 of libxml2 until 2.12 is released. Version 2.11 will never work and I've made compiling against that version fail. Edited August 22 by bluap Quote Share this post Link to post Share on other sites
AnnaH Report post Posted August 23 (edited) That's some good news, thanks bluap for all the work! Just for testing tried it out with =dev-libs/libxml2-9999 which pulls from git "at the commit: 778cca386dd29893958310576792e08e018f8e23" of libxml2 repo. It compiles fine, but when trying to run el.bin i get error popup with msg from line 4943 in actor_scripts.c, but without any other errors in console or in ~/.elc/log 4943 FATAL_ERROR_WINDOW("Failed to read actor defs. See logs, going to exit."); Call to read_actor_defs() returns 0. The "ok" is still == "1" before this code (just at the entrance of else), but is changed to 0 in line 4924 by the parse_actor_defs func. And the "if" at line 4941 triggers: 4922 } else { 4923 #ifndef EXT_ACTOR_DICT 4924 ok = parse_actor_defs (root); 4925 #else // EXT_ACTOR_DICT 4926 ok = parse_actor_data (root); 4927 #endif // EXT_ACTOR_DICT 4928 } Edited August 23 by AnnaH Quote Share this post Link to post Share on other sites
bluap Report post Posted August 24 That's the commit version I tested with of libxml. Can you confirm you are using the correct library at runtime? On Linux that would be ldd on the binary. Quote Share this post Link to post Share on other sites
AnnaH Report post Posted August 24 ➜ Eternal-Lands git:(master) ldd el.linux.bin | grep xml libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fab32224000) ➜ Eternal-Lands git:(master) ll /usr/lib64/libxml2* lrwxrwxrwx 1 root root 17 Aug 23 17:03 /usr/lib64/libxml2.so -> libxml2.so.2.12.0* lrwxrwxrwx 1 root root 17 Aug 23 17:03 /usr/lib64/libxml2.so.2 -> libxml2.so.2.12.0* -rwxr-xr-x 1 root root 1.4M Aug 23 17:03 /usr/lib64/libxml2.so.2.12.0* Quote Share this post Link to post Share on other sites
bluap Report post Posted August 24 I just tested again and it works fine for me. Sorry to ask but, are you sure you were pointing at the new libxml2 headers when you compiled? If the conditional compiles is not included the higher threshold will not be set in actor_defs.c. Everything will compile but the defs will not load. #if LIBXML_VERSION >= 21200 xmlCtxtSetMaxAmplification (ctxt, 100); #endif You can also test the library is working using xmlint: $ which xmllint /usr/local/bin/xmllint $ cd ~/eternallands/actor_defs xmllint --noent actor_defs.xml actor_defs.xml:143: parser error : Maximum entity amplification factor exceeded, see xmlCtxtSetMaxAmplification. &elf_female; $ xmllint --noent --max-ampl 100 actor_defs.xml ... outputs the expanded xml Quote Share this post Link to post Share on other sites