rpms/tremulous/devel tremulous-1.1.0-syslibs.patch, NONE, 1.1 tremulous.desktop, NONE, 1.1 tremulous.png, NONE, 1.1 tremulous.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Tue Sep 5 11:34:56 UTC 2006


Author: jwrdegoede

Update of /cvs/extras/rpms/tremulous/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13335/devel

Modified Files:
	.cvsignore sources 
Added Files:
	tremulous-1.1.0-syslibs.patch tremulous.desktop tremulous.png 
	tremulous.spec 
Log Message:
auto-import tremulous-1.1.0-2 on branch devel from tremulous-1.1.0-2.src.rpm

tremulous-1.1.0-syslibs.patch:

--- NEW FILE tremulous-1.1.0-syslibs.patch ---
--- tremulous/tremulous-1.1.0-src/Makefile.syslibs	2006-03-21 23:28:25.000000000 +0100
+++ tremulous/tremulous-1.1.0-src/Makefile	2006-08-25 11:51:03.000000000 +0200
@@ -97,6 +97,10 @@
 USE_OPENAL=1
 endif
 
+ifndef USE_SYSTEM_JPEG
+USE_SYSTEM_JPEG=1
+endif
+
 ifndef USE_OPENAL_DLOPEN
 USE_OPENAL_DLOPEN=0
 endif
@@ -178,7 +182,7 @@
   endif
   endif
 
-  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes -pipe
+  BASE_CFLAGS = 
 
   ifeq ($(USE_OPENAL),1)
     BASE_CFLAGS += -DUSE_OPENAL=1
@@ -191,6 +195,10 @@
     BASE_CFLAGS += -DUSE_CODEC_VORBIS=1
   endif
 
+  ifeq ($(USE_SYSTEM_JPEG),1)
+    BASE_CFLAGS += -DUSE_SYSTEM_JPEG=1
+  endif
+
   ifeq ($(USE_SDL),1)
     BASE_CFLAGS += -DUSE_SDL_VIDEO=1 -DUSE_SDL_SOUND=1 $(shell sdl-config --cflags)
     GL_CFLAGS =
@@ -253,6 +261,10 @@
     CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
   endif
 
+  ifeq ($(USE_SYSTEM_JPEG),1)
+    CLIENT_LDFLAGS += -ljpeg
+  endif
+
   ifeq ($(ARCH),x86)
     # linux32 make ...
     BASE_CFLAGS += -m32
@@ -842,41 +854,6 @@
   $(B)/client/l_script.o \
   $(B)/client/l_struct.o \
   \
-  $(B)/client/jcapimin.o \
-  $(B)/client/jchuff.o   \
-  $(B)/client/jcinit.o \
-  $(B)/client/jccoefct.o  \
-  $(B)/client/jccolor.o \
-  $(B)/client/jfdctflt.o \
-  $(B)/client/jcdctmgr.o \
-  $(B)/client/jcphuff.o \
-  $(B)/client/jcmainct.o \
-  $(B)/client/jcmarker.o \
-  $(B)/client/jcmaster.o \
-  $(B)/client/jcomapi.o \
-  $(B)/client/jcparam.o \
-  $(B)/client/jcprepct.o \
-  $(B)/client/jcsample.o \
-  $(B)/client/jdapimin.o \
-  $(B)/client/jdapistd.o \
-  $(B)/client/jdatasrc.o \
-  $(B)/client/jdcoefct.o \
-  $(B)/client/jdcolor.o \
-  $(B)/client/jddctmgr.o \
-  $(B)/client/jdhuff.o \
-  $(B)/client/jdinput.o \
-  $(B)/client/jdmainct.o \
-  $(B)/client/jdmarker.o \
-  $(B)/client/jdmaster.o \
-  $(B)/client/jdpostct.o \
-  $(B)/client/jdsample.o \
-  $(B)/client/jdtrans.o \
-  $(B)/client/jerror.o \
-  $(B)/client/jidctflt.o \
-  $(B)/client/jmemmgr.o \
-  $(B)/client/jmemnobs.o \
-  $(B)/client/jutils.o \
-  \
   $(B)/client/tr_animation.o \
   $(B)/client/tr_backend.o \
   $(B)/client/tr_bsp.o \
@@ -899,7 +876,47 @@
   $(B)/client/tr_shadows.o \
   $(B)/client/tr_sky.o \
   $(B)/client/tr_surface.o \
-  $(B)/client/tr_world.o \
+  $(B)/client/tr_world.o
+
+ifneq ($(USE_SYSTEM_JPEG),1)
+  Q3OBJ += \
+    $(B)/client/jcapimin.o \
+    $(B)/client/jchuff.o   \
+    $(B)/client/jcinit.o \
+    $(B)/client/jccoefct.o  \
+    $(B)/client/jccolor.o \
+    $(B)/client/jfdctflt.o \
+    $(B)/client/jcdctmgr.o \
+    $(B)/client/jcphuff.o \
+    $(B)/client/jcmainct.o \
+    $(B)/client/jcmarker.o \
+    $(B)/client/jcmaster.o \
+    $(B)/client/jcomapi.o \
+    $(B)/client/jcparam.o \
+    $(B)/client/jcprepct.o \
+    $(B)/client/jcsample.o \
+    $(B)/client/jdapimin.o \
+    $(B)/client/jdapistd.o \
+    $(B)/client/jdatasrc.o \
+    $(B)/client/jdcoefct.o \
+    $(B)/client/jdcolor.o \
+    $(B)/client/jddctmgr.o \
+    $(B)/client/jdhuff.o \
+    $(B)/client/jdinput.o \
+    $(B)/client/jdmainct.o \
+    $(B)/client/jdmarker.o \
+    $(B)/client/jdmaster.o \
+    $(B)/client/jdpostct.o \
+    $(B)/client/jdsample.o \
+    $(B)/client/jdtrans.o \
+    $(B)/client/jerror.o \
+    $(B)/client/jidctflt.o \
+    $(B)/client/jmemmgr.o \
+    $(B)/client/jmemnobs.o \
+    $(B)/client/jutils.o
+else
+Q3OBJ += $(B)/client/jpeg_memsrc.o
+endif
 
 ifeq ($(ARCH),x86)
   Q3OBJ += $(B)/client/vm_x86.o
@@ -1056,6 +1073,7 @@
 $(B)/client/l_script.o : $(BLIBDIR)/l_script.c; $(DO_BOT_CC)
 $(B)/client/l_struct.o : $(BLIBDIR)/l_struct.c; $(DO_BOT_CC)
 
+ifneq ($(USE_SYSTEM_JPEG),1)
 $(B)/client/jcapimin.o : $(JPDIR)/jcapimin.c; $(DO_CC)
 $(B)/client/jchuff.o : $(JPDIR)/jchuff.c; $(DO_CC)
 $(B)/client/jcinit.o : $(JPDIR)/jcinit.c; $(DO_CC)
@@ -1091,6 +1109,7 @@
 $(B)/client/jmemmgr.o : $(JPDIR)/jmemmgr.c; $(DO_CC)
 $(B)/client/jmemnobs.o : $(JPDIR)/jmemnobs.c; $(DO_CC)  $(GL_CFLAGS) $(MINGW_CFLAGS)
 $(B)/client/jutils.o : $(JPDIR)/jutils.c; $(DO_CC)
+endif
 
 $(B)/client/tr_bsp.o : $(RDIR)/tr_bsp.c; $(DO_CC)  $(GL_CFLAGS)
 $(B)/client/tr_animation.o : $(RDIR)/tr_animation.c; $(DO_CC)  $(GL_CFLAGS)
@@ -1100,6 +1119,7 @@
 $(B)/client/tr_flares.o : $(RDIR)/tr_flares.c; $(DO_CC)  $(GL_CFLAGS)
 $(B)/client/tr_font.o : $(RDIR)/tr_font.c; $(DO_CC)   $(GL_CFLAGS)
 $(B)/client/tr_image.o : $(RDIR)/tr_image.c; $(DO_CC)   $(GL_CFLAGS) $(MINGW_CFLAGS)
+$(B)/client/jpeg_memsrc.o : $(RDIR)/jpeg_memsrc.c; $(DO_CC)   $(GL_CFLAGS)
 $(B)/client/tr_init.o : $(RDIR)/tr_init.c; $(DO_CC)    $(GL_CFLAGS)
 $(B)/client/tr_light.o : $(RDIR)/tr_light.c; $(DO_CC)  $(GL_CFLAGS)
 $(B)/client/tr_main.o : $(RDIR)/tr_main.c; $(DO_CC)   $(GL_CFLAGS)
--- /dev/null	2006-08-25 12:00:12.687785000 +0200
+++ tremulous/tremulous-1.1.0-src/src/renderer/jpeg_memsrc.c	2006-08-25 11:51:03.000000000 +0200
@@ -0,0 +1,163 @@
+/*
+* memsrc.c
+*
+* Copyright (C) 1994-1996, Thomas G. Lane.
+* This file is part of the Independent JPEG Group's software.
+* For conditions of distribution and use, see the accompanying README file.
+*
+* This file contains decompression data source routines for the case of
+* reading JPEG data from a memory buffer that is preloaded with the entire
+* JPEG file. This would not seem especially useful at first sight, but
+* a number of people have asked for it.
+* This is really just a stripped-down version of jdatasrc.c. Comparison
+* of this code with jdatasrc.c may be helpful in seeing how to make
+* custom source managers for other purposes.
+*/
+
+/* this is not a core library module, so it doesn't define JPEG_INTERNALS */
+#include <stdio.h>
+#include <jpeglib.h>
+#include <jerror.h>
+
+
+/* Expanded data source object for memory input */
+
+typedef struct {
+struct jpeg_source_mgr pub; /* public fields */
+
+JOCTET eoi_buffer[2]; /* a place to put a dummy EOI */
+} my_source_mgr;
+
+typedef my_source_mgr * my_src_ptr;
+
+
+/*
+* Initialize source --- called by jpeg_read_header
+* before any data is actually read.
+*/
+
+METHODDEF(void)
+init_source (j_decompress_ptr cinfo)
+{
+/* No work, since jpeg_memory_src set up the buffer pointer and count.
+* Indeed, if we want to read multiple JPEG images from one buffer,
+* this *must* not do anything to the pointer.
+*/
+}
+
+
+/*
+* Fill the input buffer --- called whenever buffer is emptied.
+*
+* In this application, this routine should never be called; if it is called,
+* the decompressor has overrun the end of the input buffer, implying we
+* supplied an incomplete or corrupt JPEG datastream. A simple error exit
+* might be the most appropriate response.
+*
+* But what we choose to do in this code is to supply dummy EOI markers
+* in order to force the decompressor to finish processing and supply
+* some sort of output image, no matter how corrupted.
+*/
+
+METHODDEF(boolean)
+fill_input_buffer (j_decompress_ptr cinfo)
+{
+my_src_ptr src = (my_src_ptr) cinfo->src;
+
+WARNMS(cinfo, JWRN_JPEG_EOF);
+
+/* Create a fake EOI marker */
+src->eoi_buffer[0] = (JOCTET) 0xFF;
+src->eoi_buffer[1] = (JOCTET) JPEG_EOI;
+src->pub.next_input_byte = src->eoi_buffer;
+src->pub.bytes_in_buffer = 2;
+
+return TRUE;
+}
+
+
+/*
+* Skip data --- used to skip over a potentially large amount of
+* uninteresting data (such as an APPn marker).
+*
+* If we overrun the end of the buffer, we let fill_input_buffer deal with
+* it. An extremely large skip could cause some time-wasting here, but
+* it really isn't supposed to happen ... and the decompressor will never
+* skip more than 64K anyway.
+*/
+
+METHODDEF(void)
+skip_input_data (j_decompress_ptr cinfo, long num_bytes)
+{
+my_src_ptr src = (my_src_ptr) cinfo->src;
+
+if (num_bytes > 0) {
+while (num_bytes > (long) src->pub.bytes_in_buffer) {
+num_bytes -= (long) src->pub.bytes_in_buffer;
+(void) fill_input_buffer(cinfo);
+/* note we assume that fill_input_buffer will never return FALSE,
+* so suspension need not be handled.
+*/
+}
+src->pub.next_input_byte += (size_t) num_bytes;
+src->pub.bytes_in_buffer -= (size_t) num_bytes;
+}
+}
+
+
+/*
+* An additional method that can be provided by data source modules is the
+* resync_to_restart method for error recovery in the presence of RST markers.
+* For the moment, this source module just uses the default resync method
+* provided by the JPEG library. That method assumes that no backtracking
+* is possible.
+*/
+
+
+/*
+* Terminate source --- called by jpeg_finish_decompress
+* after all data has been read. Often a no-op.
+*
+* NB: *not* called by jpeg_abort or jpeg_destroy; surrounding
+* application must deal with any cleanup that should happen even
+* for error exit.
+*/
+
+METHODDEF(void)
+term_source (j_decompress_ptr cinfo)
+{
+/* no work necessary here */
+}
+
+
+/*
+* Prepare for input from a memory buffer.
+*/
+
+GLOBAL(void)
+jpeg_memory_src (j_decompress_ptr cinfo, const JOCTET * buffer, size_t bufsize)
+{
+my_src_ptr src;
+
+/* The source object is made permanent so that a series of JPEG images
+* can be read from a single buffer by calling jpeg_memory_src
+* only before the first one.
+* This makes it unsafe to use this manager and a different source
+* manager serially with the same JPEG object. Caveat programmer.
+*/
+if (cinfo->src == NULL) { /* first time for this JPEG object? */
+cinfo->src = (struct jpeg_source_mgr *)
+(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
+sizeof(my_source_mgr));
+}
+
+src = (my_src_ptr) cinfo->src;
+src->pub.init_source = init_source;
+src->pub.fill_input_buffer = fill_input_buffer;
+src->pub.skip_input_data = skip_input_data;
+src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */
+src->pub.term_source = term_source;
+
+src->pub.next_input_byte = buffer;
+src->pub.bytes_in_buffer = bufsize;
+}
--- /dev/null	2006-08-25 12:00:12.687785000 +0200
+++ tremulous/tremulous-1.1.0-src/src/renderer/jpeg_memsrc.h	2006-08-25 11:51:03.000000000 +0200
@@ -0,0 +1,5 @@
+#include <stdio.h>
+#include <jpeglib.h>
+
+void jpeg_memory_src (j_decompress_ptr cinfo, const JOCTET * buffer,
+  size_t bufsize);
--- tremulous/tremulous-1.1.0-src/src/renderer/tr_image.c.syslibs	2006-01-05 05:00:54.000000000 +0100
+++ tremulous/tremulous-1.1.0-src/src/renderer/tr_image.c	2006-08-25 14:31:12.000000000 +0200
@@ -31,9 +31,13 @@
  * You may also wish to include "jerror.h".
  */
 
+#ifdef USE_SYSTEM_JPEG
+#include <jpeglib.h>
+#include "jpeg_memsrc.h"
+#else
 #define JPEG_INTERNALS
 #include "../jpeg-6/jpeglib.h"
-
+#endif
 
 static void LoadBMP( const char *name, byte **pic, int *width, int *height );
 static void LoadTGA( const char *name, byte **pic, int *width, int *height );
@@ -1399,6 +1403,11 @@
   unsigned char *out;
   byte	*fbuffer;
   byte  *buf;
+  size_t bufsize;
+#ifdef USE_SYSTEM_JPEG
+  int i,j;
+  byte *inptr, *outptr;
+#endif
 
   /* In this example we want to open the input file before doing anything else,
    * so that the setjmp() error recovery below can assume the file is open.
@@ -1406,7 +1415,7 @@
    * requires it in order to read binary files.
    */
 
-  ri.FS_ReadFile ( ( char * ) filename, (void **)&fbuffer);
+  bufsize = ri.FS_ReadFile ( ( char * ) filename, (void **)&fbuffer);
   if (!fbuffer) {
 	return;
   }
@@ -1424,8 +1433,11 @@
   jpeg_create_decompress(&cinfo);
 
   /* Step 2: specify data source (eg, a file) */
-
+#ifdef USE_SYSTEM_JPEG
+  jpeg_memory_src(&cinfo, fbuffer, bufsize);
+#else /* ???????? */
   jpeg_stdio_src(&cinfo, fbuffer);
+#endif
 
   /* Step 3: read file parameters with jpeg_read_header() */
 
@@ -1468,7 +1480,7 @@
   }
 
   memcount = pixelcount * 4;
-  row_stride = cinfo.output_width * cinfo.output_components;
+  row_stride = cinfo.output_width * 4;
 
   out = ri.Malloc(memcount);
 
@@ -1489,6 +1501,21 @@
 	buf = ((out+(row_stride*cinfo.output_scanline)));
 	buffer = &buf;
     (void) jpeg_read_scanlines(&cinfo, buffer, 1);
+#ifdef USE_SYSTEM_JPEG
+    /* we have RGB data, we need to expand this out to ARGB */
+    inptr = buf + cinfo.output_width * 3 - 1;
+    outptr = buf + row_stride - 1;
+
+    for (i = 0; i < cinfo.output_width; i++) {
+      /* endian dependent? maybe for big endian this must be done after the
+         color/pixel copy? */
+      *outptr-- = 255;
+      for (j = 0; j < 3; j++) {
+        JOCTET color = *inptr--;
+        *outptr-- = color;
+      }
+    }
+#endif
   }
   
   buf = out;
@@ -1608,6 +1635,8 @@
 }
 
 
+#ifndef USE_SYSTEM_JPEG
+
 /*
  * Compression initialization.
  * Before calling this, all parameters and a data destination must be set up.
@@ -1699,6 +1728,8 @@
   return row_ctr;
 }
 
+#endif
+
 /*
  * Terminate destination --- called by jpeg_finish_compress
  * after all data has been written.  Usually needs to flush buffer.


--- NEW FILE tremulous.desktop ---
[Desktop Entry]
Encoding=UTF-8
Name=Tremulous
Comment=First person shooter
Exec=tremulous
Icon=tremulous.png
Terminal=false
StartupNotify=false
Type=Application
Categories=Application;Game;


--- NEW FILE tremulous.spec ---
Name:           tremulous
Version:        1.1.0
Release:        2%{?dist}
Summary:        First Person Shooter game based on the Quake 3 engine
Group:          Amusements/Games
License:        GPL
URL:            http://tremulous.net
# this is %{name}-%{version}-src.tar.gz as containted in:
# http://dl.sourceforge.net/%{name}/%{name}-%{version}.zip
# with the src/tools/lcc dir removed as that contains non Free software
Source0:        %{name}-%{version}-src-nolcc.tar.gz
Source1:        %{name}.desktop
Source2:        %{name}.png
Patch0:         tremulous-1.1.0-syslibs.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:  desktop-file-utils SDL-devel openal-devel libvorbis-devel
BuildRequires:  libjpeg-devel
Requires:       tremulous-data = %{version}

%description
Tremulous is a free, open source game that blends a team based FPS
with elements of an RTS.
Players can choose from 2 unique races, aliens and humans. 
Players on both teams are able to build working structures in-game like an RTS.
These structures provide many functions, the most important being spawning.
The designated builders must ensure there are spawn structures or 
other players will not be able to rejoin the game after death.
Other structures provide automated base defense (to some degree), 
healing functions and much more...

Player advancement is different depending on which team you are on.
As a human, players are rewarded with credits for each alien kill.
These credits may be used to purchase new weapons and upgrades from the Armoury
The alien team advances quite differently. Upon killing a human foe,
the alien is able to evolve into a new class.
The more kills gained the more powerful the classes available.

The overall objective behind Tremulous is to eliminate the opposing team.
This is achieved by not only killing the opposing players but also 
removing their ability to respawn by destroying their spawn structures.


%prep
%setup -q -n %{name}-%{version}-src
%patch -p2 -z .syslibs

# Rip out the jpeg sources and the SDL and freealut headers and use the
# system versions instead
rm -rf src/jpeg-6 src/SDL12 src/AL


%build
# the CROSS_COMPILING=1 is a hack to not build q3cc and qvm files
# since we've stripped out q3cc as this is not Free Software.
make %{?_smp_mflags} \
    OPTIMIZE="$RPM_OPT_FLAGS -fno-strict-aliasing -ffast-math" \
    DEFAULT_BASEDIR=%{_datadir}/%{name} USE_CODEC_VORBIS=1 \
    BUILD_GAME_SO=0 GENERATE_DEPENDENCIES=0 CROSS_COMPILING=1


%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_bindir}
install -m 0755 build/release-linux-*/tremded.* \
  $RPM_BUILD_ROOT%{_bindir}/tremded
install -m 0755 build/release-linux-*/tremulous.* \
  $RPM_BUILD_ROOT%{_bindir}/%{name}

mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
desktop-file-install --vendor fedora            \
  --dir $RPM_BUILD_ROOT%{_datadir}/applications \
  --add-category X-Fedora                       \
  %{SOURCE1}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps
install -p -m 644 %{SOURCE2} \
  $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps


%clean
rm -rf $RPM_BUILD_ROOT


%post
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi

%postun
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
   %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi


%files
%defattr(-,root,root,-)
%doc ChangeLog COPYING GPL
%{_bindir}/%{name}
%{_bindir}/tremded
%{_datadir}/applications/fedora-%{name}.desktop
%{_datadir}/icons/hicolor/48x48/apps/%{name}.png


%changelog
* Mon Sep  4 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 1.1.0-2
- Various small packaging improvements (see bug 204121)

* Fri Aug 25 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 1.1.0-1
- Initial Fedora packaging (based on work from Matthias and Wart)


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/tremulous/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	5 Sep 2006 11:32:55 -0000	1.1
+++ .cvsignore	5 Sep 2006 11:34:55 -0000	1.2
@@ -0,0 +1 @@
+tremulous-1.1.0-src-nolcc.tar.gz


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/tremulous/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	5 Sep 2006 11:32:55 -0000	1.1
+++ sources	5 Sep 2006 11:34:55 -0000	1.2
@@ -0,0 +1 @@
+8672183ea169b22a0ffbe6f54e0b7342  tremulous-1.1.0-src-nolcc.tar.gz




More information about the scm-commits mailing list