[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:
ut2003_2225beta3-multilanguage.update.run
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,
Lars
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