[lokisetup] SOLVED: building loki_patch - undefined references to g_assertion_message_expr, g_return_if_fail_warning, etc...

Lars Uffmann lars at uffmann.name
Thu Jul 1 17:59:43 EDT 2010

Okay, I finally worked all they way through my problems with loki_patch:
I am trying to install Unreal Tournament 2003 from CD - and the only 
Loki installer script that I found for this is the following:
found on: http://www.liflg.org/?catid=6&gameid=70

After building loki_patch in the below described way, executing the 
installer script would give me a segmentation fault at some point. I 
messed with the script a bit so it wouldn't delete it's temporary files, 
and found the instruction that caused the segfault:
 loki_patch --verify patch.dat

So I ran that through gdb and did a stackdump, seeing that the segfault 
happened in loki_patch.c, line 72:
 install = get_product_root(patch->product, path, (sizeof path));

I checked the source of this function, being registry.c, and saw that it 
only returns NULL if the product is not found. So I commented out the 
line 72 in loki_patch.c and added a line
 install = NULL; // patch by Lars to fix segfault

Built that and - voilá - I can finally run the ut2003 script, and it 
will just ask me for a product installation path later on.

However, it seems that this would only apply an update (which makes 
perfect sense with the filename) to an already installed ut2003, not 
install the game itself? Unlike the UT99 and UT2004 installers (though 
for Ut2004 I used the one shipped with the DVD)?

What a pity :( Has anyone installed UT2003 and played it? I liked it a 
little better than UT2004, although, admitted, the difference is not 
that big...

Best Regards,


PS: Fullquote appended on purpose, for solution archiving - if anyone 
else runs into this problem...

Lars Uffmann wrote:
> Update:
> I managed to build loki_patch but I have the feeling I should use an 
> older version of libglib by the type of errors I'm working around:
> After building setupdb and moving the x86_64 directory to amd64 (if 
> applicable), I do this:
> $ cd ../loki_patch
> $ ./autogen.sh
> At this point, edit the configure file and replace all occurences of 
> xml (lowercase only)
> with xml2 (xml-config -> xml2-config and libxml.a -> libxml2.a). Save 
> the file and continue...
> $ ./configure
> $ sudo aptitude install libglib2.0-dev libxdelta2 libxdelta2-dev
> At this point, edit the Makefile:
> - in the LIBS line, behind -lz, add -lm (to include the math library)
> - in the CFLAGS lines, replace glib-config with pkg-config glib-2.0
> - in the LFLAGS lines, replace glib-config with pkg-config glib-2.0
> Save the file and continue...
> edit loki_xdelta.c and replace the one occurance of g_string_sprintf 
> with g_string_printf (old name is deprecated). Save the file and 
> continue.
> edit xdelta/edsio.h and replace all occurances of GQueue with 
> customGQueue as well as all occurances of g_queue with custom_g_queue
> (this is to deal with a conflict of this having been introduced in a 
> recent glib)
> $ make loki_patch
> a couple of warnings, but finally, that is it - now I only need to 
> figure on how to "make install" - that's a topic for tomorrow :)
> Cheers,
>  Lars
> _______________________________________________
> lokisetup mailing list
> lokisetup at icculus.org
> http://icculus.org/mailman/listinfo/lokisetup

More information about the lokisetup mailing list