On Fri, 2012-06-29 at 10:03 +0100, Simon McVittie wrote: > On 28/06/12 22:25, Svante Signell wrote: > > On Thu, 2012-06-28 at 09:03 +0100, Simon McVittie wrote: > >> On 27/06/12 23:10, Svante Signell wrote: > >>> The attached patch adds support for the GNU/Hurd architecture > > > I have now patched and built openarena. Care for a new bug report? > > If you want another bug number, but sending the openarena patch to this > one is probably easier.
Attaching the openarena patch. > >> You could also use Quake III Arena Thanks, will try that later. > As I said, OpenArena is a better test, though (it exercises bits of the > code that aren't normally used in Quake III Arena, and that I suspect > could be a problem on new ports). Will try that first, but maybe not until after the week-end. > >> If Hurd lacks accelerated 3D, it might make sense to only ship > >> ioquake3-server, and leave out ioquake3. > > > > Does it make any harm if the client is built? I don't think people will > > try the client until 3D video is supported. > > I'd prefer to avoid shipping a package that's effectively useless on its > target OS, particularly if that means nobody has ever tested it. I will test it, see above and below. As you might know a lot of packages build for GNU/Hurd without kernel support yet, like audio packages. > libgl1-mesa-swx11 might be less horribly slow than an unaccelerated > libgl1-mesa-glx, perhaps? The state-of-the-art in software rendering is > llvmpipe, but Debian doesn't seem to have that yet. Looks like llvmpipe is supported in mesa for Linux/kFreeBSD i386/amd64. Not yet for Hurd, I will try it to enable it, llvm is available for Hurd! And also try with libgl1-mesa-swx11. > > Yes, it is not needed, I have built ioquake3 without that part. Should I > > a provide an updated patch? > > Just to be sure, please send the actual patches you tested. Updated patch applied! > > Yes, the answer is gnu because uname results in GNU. > > Good, the patch should be able to go upstream then. Nice!
--- openarena-0.8.8/code/qcommon/q_platform.h 2012-06-29 16:56:11.000000000 +0200 +++ openarena-0.8.8.new/code/qcommon/q_platform.h 2012-06-28 19:21:44.000000000 +0200 @@ -147,7 +147,7 @@ //================================================================= LINUX === -#if defined(__linux__) || defined(__FreeBSD_kernel__) +#if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__GNU__) #include <endian.h> @@ -210,6 +210,8 @@ #define OS_STRING "freebsd" #elif defined(__OpenBSD__) #define OS_STRING "openbsd" +#elif defined(__GNU__) +#define OS_STRING "GNU" #elif defined(__NetBSD__) #define OS_STRING "netbsd" #endif
--- a/debian_control 2012-06-23 01:06:28.000000000 +0200 +++ b/debian/control 2012-06-26 20:44:59.000000000 +0200 @@ -19,7 +19,7 @@ Homepage: http://www.ioquake3.org/ Package: ioquake3 -Architecture: linux-any kfreebsd-any +Architecture: linux-any kfreebsd-any hurd-any Depends: ${misc:Depends}, ${shlibs:Depends} Recommends: x11-utils | zenity | kdebase-bin Breaks: openarena (<< 0.8.5-10~) @@ -32,7 +32,7 @@ openarena or another suitable set of game data. Package: ioquake3-server -Architecture: linux-any kfreebsd-any +Architecture: linux-any kfreebsd-any hurd-any Depends: ${misc:Depends}, ${shlibs:Depends} Description: Standalone server for ioQuake3 based games This package installs a modified version of the ioQuake3 dedicated server, @@ -43,7 +43,7 @@ openarena-server or another suitable set of server data. Package: ioquake3-dbg -Architecture: linux-any kfreebsd-any +Architecture: linux-any kfreebsd-any hurd-any Section: debug Priority: extra Depends: ioquake3 (= ${binary:Version}) | ioquake3-server (= ${binary:Version}), --- a/Makefile 2012-06-26 13:33:50.000000000 +0200 +++ b/Makefile 2012-06-29 16:59:19.000000000 +0200 @@ -291,7 +291,7 @@ INSTALL=install MKDIR=mkdir -ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu")) +ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu")) ifeq ($(ARCH),axp) ARCH=alpha --- a/code/qcommon/q_platform.h 2011-10-22 00:48:53.000000000 +0200 +++ b/code/qcommon/q_platform.h 2012-06-26 20:44:59.000000000 +0200 @@ -169,14 +169,16 @@ //================================================================= LINUX === -#if defined(__linux__) || defined(__FreeBSD_kernel__) +#if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__GNU__) #include <endian.h> #if defined(__linux__) #define OS_STRING "linux" -#else +#elif defined(__FreeBSD_kernel__) #define OS_STRING "kFreeBSD" +#else +#define OS_STRING "GNU" #endif #ifdef __clang__