Bug#679330: ioquake3: Add support for GNU/Hurd

Simon McVittie smcv at debian.org
Thu Jun 28 08:03:13 UTC 2012


On 27/06/12 23:10, Svante Signell wrote:
> The attached patch adds support for the GNU/Hurd architecture

Thank you for porting it. Do the resulting binaries work correctly? In
particular, can Linux clients join a Hurd dedicated server and
interoperate correctly?

To test it, you'll need a very similar patch for openarena (the build
system is almost identical). You could also use Quake III Arena if you
own a copy, but openarena is a better test anyway, because our patched
version exercises the native-plugin-loading code path.

My main concerns about things that might not work or interoperate are:

* networking (BSD sockets implementation)
* graphics/sound, for the client (does Hurd have any accelerated 3D?
  If not, it's likely to be unplayable - seconds per frame rather than
  frames per second)
* native-code game logic loading (debian/q3arch, Makefile and
  q_platform.h all need to end up with the same name for the OS and
  architecture)

If Hurd lacks accelerated 3D, it might make sense to only ship
ioquake3-server, and leave out ioquake3.

> +ifeq ($(COMPILE_PLATFORM),gnu)
> +  COMPILE_ARCH=x86
> +endif

This part is (or should be) unnecessary, and could break on hurd-* other
than hurd-i386. For some reason the ioquake3 build system refers to
"i386" and "x86_64" on Linux and kFreeBSD (and I think you should follow
this naming convention for Hurd too), but "x86" and "x64" on Windows.

Because you patched the "Linux" case to pick up Hurd as well as Linux
and kFreeBSD, if you take this part out, the "Linux" logic should still
apply. (When upstream say Linux they really mean GNU/anything.)

What does this:

    uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]'|sed -e 's/\//_/g'

(used upstream to set COMPILE_PLATFORM) return on Hurd? Hopefully it's
"gnu". We don't use this in Debian because we override it with
"debian/q3arch platform BUILD", but for the patch to be usable upstream,
they should return the same thing. (For instance, on Linux, q3arch has
to replace the linux-gnu from the GNU tuple with the linux that the
Makefile expects).

    S





More information about the Pkg-games-devel mailing list