rpms/allegro/devel allegro-4.2.2-gcc43.patch, NONE, 1.1 allegro-4.2.2-pulseaudio.patch, NONE, 1.1 allegro.spec, 1.47, 1.48

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Tue Jan 22 09:46:21 UTC 2008


Author: jwrdegoede

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

Modified Files:
	allegro.spec 
Added Files:
	allegro-4.2.2-gcc43.patch allegro-4.2.2-pulseaudio.patch 
Log Message:
* Mon Jan 21 2008 Hans de Goede <j.w.r.degoede at hhs.nl> 4.2.2-7
- Add makedoc utility to allegro-devel as allegro-makedoc (bz 429450)
- Fix sound when using pulseaudio
- Fix compilation of inline asm with gcc 4.3


allegro-4.2.2-gcc43.patch:

--- NEW FILE allegro-4.2.2-gcc43.patch ---
diff -up allegro-4.2.2/include/allegro/platform/al386gcc.h~ allegro-4.2.2/include/allegro/platform/al386gcc.h
--- allegro-4.2.2/include/allegro/platform/al386gcc.h~	2008-01-21 19:18:34.000000000 +0100
+++ allegro-4.2.2/include/allegro/platform/al386gcc.h	2008-01-21 19:18:34.000000000 +0100
@@ -208,14 +208,13 @@ AL_INLINE(fixed, fixsub, (fixed x, fixed
  */
 AL_INLINE(fixed, fixmul, (fixed x, fixed y),
 {
-   fixed edx __attribute__ ((__unused__));
    fixed result;
 
    __PRECALCULATE_CONSTANTS(x / 65536.0 * y)
    {
       __asm__ (
-	 "  movl %2, %%eax ; "
-	 "  imull %3 ; "                  /* do the multiply */
+	 "  movl %1, %%eax ; "
+	 "  imull %2 ; "                  /* do the multiply */
 	 "  shrdl $16, %%edx, %%eax ; "
 
 	 "  sarl $15, %%edx ; "           /* check for overflow */
@@ -223,14 +222,14 @@ AL_INLINE(fixed, fixmul, (fixed x, fixed
 	 "  cmpl $-1, %%edx ; "
 	 "  je 0f ; "
 
-	 "  movl %5, %%eax ; "            /* on overflow, set errno */
-	 "  movl %4, (%%eax) ; "
+	 "  movl %4, %%eax ; "            /* on overflow, set errno */
+	 "  movl %3, (%%eax) ; "
 	 "  movl $0x7FFFFFFF, %%eax ; "   /* and return MAXINT */
-	 "  cmpl $0, %2 ; "
+	 "  cmpl $0, %1 ; "
 	 "  jge 1f ; "
 	 "  negl %%eax ; "
 	 " 1: "
-	 "  cmpl $0, %3 ; "
+	 "  cmpl $0, %2 ; "
 	 "  jge 0f ; "
 	 "  negl %%eax ; "
 
@@ -238,15 +237,14 @@ AL_INLINE(fixed, fixmul, (fixed x, fixed
 
 	 " 0: "                           /* finished */
 
-      : "=&a" (result),                   /* the result has to go in eax */
-	"=&d" (edx)                       /* reliably reserve edx */
+      : "=&a" (result)                    /* the result has to go in eax */
 
       : "mr" (x),                         /* x and y can be regs or mem */
 	"mr" (y),
 	"i" (ERANGE),
 	"m" (allegro_errno)
 
-      : "%cc", "memory"                   /* clobbers flags and errno */
+      : "%cc", "memory", "edx"            /* clobbers flags, errno and edx */
       );
 
       return result;

allegro-4.2.2-pulseaudio.patch:

--- NEW FILE allegro-4.2.2-pulseaudio.patch ---
diff -up allegro-4.2.2/src/unix/alsa9.c.pulse allegro-4.2.2/src/unix/alsa9.c
--- allegro-4.2.2/src/unix/alsa9.c.pulse	2006-03-18 16:05:34.000000000 +0100
+++ allegro-4.2.2/src/unix/alsa9.c	2008-01-21 20:01:18.000000000 +0100
@@ -81,7 +81,7 @@ static double alsa_mixer_allegro_ratio =
 
 static snd_pcm_t *pcm_handle;
 static unsigned char *alsa_bufdata;
-static int alsa_bits, alsa_signed, alsa_stereo;
+static int alsa_bits, alsa_signed, alsa_stereo, alsa_format;
 static unsigned int alsa_rate;
 static unsigned int alsa_fragments;
 static int alsa_sample_size;
@@ -292,7 +292,6 @@ static int alsa_init(int input, int voic
 {
    int ret = 0;
    char tmp1[128], tmp2[128];
-   int format = 0;
    unsigned int numfrags = 0;
    snd_pcm_uframes_t fragsize;
 
@@ -354,29 +353,14 @@ static int alsa_init(int input, int voic
    alsa_stereo = (_sound_stereo) ? 1 : 0;
    alsa_rate = (_sound_freq > 0) ? _sound_freq : 44100;
    alsa_signed = 0;
+   alsa_format = (alsa_bits == 16) ? SND_PCM_FORMAT_U16_NE : SND_PCM_FORMAT_U8;
+   alsa_sample_size = (alsa_bits / 8) * (alsa_stereo ? 2 : 1);
 
-   format = ((alsa_bits == 16) ? SND_PCM_FORMAT_U16_NE : SND_PCM_FORMAT_U8);
-
-   switch (format) {
-
-      case SND_PCM_FORMAT_U8:
-	 alsa_bits = 8;
-	 break;
-
-      case SND_PCM_FORMAT_U16_NE:
-	 if (sizeof(short) != 2) {
-	    ustrzcpy(allegro_error, ALLEGRO_ERROR_SIZE, get_config_text("Unsupported sample format"));
-	    goto Error;
-	 }
-	 break;
-
-      default:
-	 ustrzcpy(allegro_error, ALLEGRO_ERROR_SIZE, get_config_text("Unsupported sample format"));
-	 goto Error;
+   if (alsa_format == SND_PCM_FORMAT_U16_NE && sizeof(short) != 2) {
+      ustrzcpy(allegro_error, ALLEGRO_ERROR_SIZE, get_config_text("Unsupported sample format"));
+      goto Error;
    }
 
-   alsa_sample_size = (alsa_bits / 8) * (alsa_stereo ? 2 : 1);
-
    if (fragsize == 0) {
       unsigned int size = alsa_rate * ALSA_DEFAULT_BUFFER_MS / 1000 / numfrags;
       fragsize = 1;
@@ -389,7 +373,12 @@ static int alsa_init(int input, int voic
 
    ALSA9_CHECK(snd_pcm_hw_params_any(pcm_handle, hwparams));
    ALSA9_CHECK(snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED));
-   ALSA9_CHECK(snd_pcm_hw_params_set_format(pcm_handle, hwparams, format));
+   if (snd_pcm_hw_params_set_format(pcm_handle, hwparams, alsa_format) < 0) {
+      /* Try again with signed samples (needed atleast for pulseaudio) */
+      alsa_format = (alsa_bits == 16) ? SND_PCM_FORMAT_S16_NE : SND_PCM_FORMAT_S8;
+      alsa_signed = 1;
+      ALSA9_CHECK(snd_pcm_hw_params_set_format(pcm_handle, hwparams, alsa_format));
+   }
    ALSA9_CHECK(snd_pcm_hw_params_set_channels(pcm_handle, hwparams, alsa_stereo + 1));
 
    ALSA9_CHECK(snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &alsa_rate, NULL));


Index: allegro.spec
===================================================================
RCS file: /cvs/extras/rpms/allegro/devel/allegro.spec,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- allegro.spec	15 Oct 2007 07:36:30 -0000	1.47
+++ allegro.spec	22 Jan 2008 09:45:36 -0000	1.48
@@ -1,6 +1,6 @@
 Name:           allegro
 Version:        4.2.2
-Release:        6%{?dist}
+Release:        7%{?dist}
 
 Summary:        A game programming library
 Summary(es):    Una libreria de programacion de juegos
@@ -18,6 +18,8 @@
 Patch4:         allegro-4.2.0-multilib.patch
 Patch5:         allegro-4.2.1-noexecmod.patch
 Patch6:         allegro-4.0.3-libdir.patch
+Patch7:         allegro-4.2.2-pulseaudio.patch
+Patch8:         allegro-4.2.2-gcc43.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  esound-devel, texinfo, perl, arts-devel, glib2-devel
 BuildRequires:  xorg-x11-proto-devel, libX11-devel, libXext-devel, libXt-devel
@@ -159,6 +161,8 @@
 %patch4 -p1 -z .multilib
 %patch5 -p1 -z .noexecmod
 %patch6 -p1 -z .multilib2
+%patch7 -p1 -z .pulse
+%patch8 -p1 -z .gcc43
 iconv -f iso-8859-1 -t utf-8 docs/src/allegro._tx > docs/src/allegro._tx.tmp
 mv docs/src/allegro._tx.tmp docs/src/allegro._tx
 
@@ -182,6 +186,7 @@
 rm -rf $RPM_BUILD_ROOT
 make install install-man install-info \
   DESTDIR=$RPM_BUILD_ROOT LDCONFIG=/bin/true
+install -m 755 docs/makedoc $RPM_BUILD_ROOT%{_bindir}/allegro-makedoc
 install -Dpm 644 allegro.cfg $RPM_BUILD_ROOT%{_sysconfdir}/allegrorc
 install -dm 755 $RPM_BUILD_ROOT%{_datadir}/allegro
 install -pm 644 keyboard.dat language.dat $RPM_BUILD_ROOT%{_datadir}/allegro
@@ -249,6 +254,7 @@
 %doc todo.txt docs/html
 %doc demo examples setup
 %{_bindir}/allegro-config
+%{_bindir}/allegro-makedoc
 %{_libdir}/liballeg_unsharable.a
 %{_libdir}/liball?.so.*
 %{_libdir}/liball?-%{version}.so
@@ -285,6 +291,11 @@
 
 
 %changelog
+* Mon Jan 21 2008 Hans de Goede <j.w.r.degoede at hhs.nl> 4.2.2-7
+- Add makedoc utility to allegro-devel as allegro-makedoc (bz 429450)
+- Fix sound when using pulseaudio
+- Fix compilation of inline asm with gcc 4.3
+
 * Sun Oct 14 2007 Hans de Goede <j.w.r.degoede at hhs.nl> 4.2.2-6
 - Require timidity++-patches instead of timidity++ itself so that we don't
   drag in arts and through arts, qt and boost




More information about the fedora-extras-commits mailing list