Package: player
Version: 3.0.1+dfsg-1
Tags: patch

Player 3.0 fails to build on alpha, armel, ia64, mips and mipsel because
of two problems.

The first problem is, that on alpha, arm(el) and ia64 the "_p" variants
of outb/inb do not exists. After some research on the internet it looks
like on this archs no pause is needed for outb/inb and therefore only
the normal version exists.

The second problem is, that on mips and mipsel the "struct sigaction" is
defined different (the members are ordered differently). This way the
zero initializer does not work on this arch(s). As the zero initializer
does not do much anyway (as the variables are initialized immediately
afterwards) I think we can skip that.

Please find attached a patch for this two problems. As I do not have
access to the above archs I only checked if player still builds on i386
(which it does).

It would be nice to see if this patch works and gets the missing archs
back so that player can be part of Squeeze.

TIA

Daniel
diff -Nru player-3.0.1+dfsg/debian/changelog player-3.0.1+dfsg/debian/changelog
--- player-3.0.1+dfsg/debian/changelog	2010-05-22 12:11:07.000000000 +0200
+++ player-3.0.1+dfsg/debian/changelog	2010-06-02 11:52:09.000000000 +0200
@@ -1,3 +1,15 @@
+player (3.0.1+dfsg-1.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Fix FTBS on armel, alpha and ia64 by using non-paused port io operations
+    instead of the ā€œ_pā€ onces not defined on this architectures
+    (fix-portio.patch).
+  * Fix FTBS on mips and mipsel by removing zero initializer from 'struct
+    sigaction' variables. 'struct sigaction' is defined different on mips and
+    mipsel and the variables are set directly after declaration anyway.
+
+ -- Daniel Hess <dan...@rio-grande.ping.de>  Wed, 02 Jun 2010 11:45:35 +0200
+
 player (3.0.1+dfsg-1.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff -Nru player-3.0.1+dfsg/debian/patches/fix-portio.patch player-3.0.1+dfsg/debian/patches/fix-portio.patch
--- player-3.0.1+dfsg/debian/patches/fix-portio.patch	1970-01-01 01:00:00.000000000 +0100
+++ player-3.0.1+dfsg/debian/patches/fix-portio.patch	2010-06-02 11:44:11.000000000 +0200
@@ -0,0 +1,67 @@
+diff -Nur player-3.0.1+dfsg.orig/server/drivers/dio/portio/portio.cc player-3.0.1+dfsg/server/drivers/dio/portio/portio.cc
+--- player-3.0.1+dfsg.orig/server/drivers/dio/portio/portio.cc	2010-04-09 23:24:54.000000000 +0200
++++ player-3.0.1+dfsg/server/drivers/dio/portio/portio.cc	2010-06-02 11:35:37.000000000 +0200
+@@ -179,8 +179,12 @@
+ #ifdef __QNXNTO__
+   out8(this->portptr, this->init_val);
+ #else
++#if defined(__alpha__) || defined(__arm__) || defined(__ia64__)
++  outb(this->init_val, this->port);
++#else
+   outb_p(this->init_val, this->port);
+ #endif
++#endif
+ }
+ 
+ void PortIO::Main()
+@@ -191,8 +195,12 @@
+ #ifdef __QNXNTO__
+   this->init_val = in8(this->portptr);
+ #else
++#if defined(__alpha__) || defined(__arm__) || defined(__ia64__)
++  this->init_val = inb(this->port);
++#else
+   this->init_val = inb_p(this->port);
+ #endif
++#endif
+   for (;;)
+   {
+     pthread_testcancel();
+@@ -208,8 +216,12 @@
+ #ifdef __QNXNTO__
+     data.bits = in8(this->portptr);
+ #else
++#if defined(__alpha__) || defined(__arm__) || defined(__ia64__)
++    data.bits = inb(this->port);
++#else
+     data.bits = inb_p(this->port);
+ #endif
++#endif
+     this->Publish(this->dio_provided_addr, PLAYER_MSGTYPE_DATA, PLAYER_DIO_DATA_VALUES, reinterpret_cast<void *>(&data), 0, NULL);
+   }
+ }
+@@ -236,16 +248,24 @@
+ #ifdef __QNXNTO__
+     u = in8(this->portptr);
+ #else
++#if defined(__alpha__) || defined(__arm__) || defined(__ia64__)
++    u = inb(this->port);
++#else
+     u = inb_p(this->port);
+ #endif
++#endif
+     v = (u & (~(masks[digits - 1]))) | (cmd.digout & (masks[digits - 1]));
+     if (u != v)
+     {
+ #ifdef __QNXNTO__
+       out8(this->portptr, v);
+ #else
++#if defined(__alpha__) || defined(__arm__) || defined(__ia64__)
++      outb(v, this->port);
++#else
+       outb_p(v, this->port);
+ #endif
++#endif
+     }
+     return 0;
+   }
diff -Nru player-3.0.1+dfsg/debian/patches/fix-sigaction.patch player-3.0.1+dfsg/debian/patches/fix-sigaction.patch
--- player-3.0.1+dfsg/debian/patches/fix-sigaction.patch	1970-01-01 01:00:00.000000000 +0100
+++ player-3.0.1+dfsg/debian/patches/fix-sigaction.patch	2010-06-02 11:54:48.000000000 +0200
@@ -0,0 +1,17 @@
+diff -Nur player-3.0.1+dfsg.orig/server/server.cc player-3.0.1+dfsg/server/server.cc
+--- player-3.0.1+dfsg.orig/server/server.cc	2010-04-09 23:24:54.000000000 +0200
++++ player-3.0.1+dfsg/server/server.cc	2010-06-02 11:54:11.000000000 +0200
+@@ -148,11 +148,11 @@
+     exit(-1);
+   }
+ #else
+-  struct sigaction quit_action = {{0}};
++  struct sigaction quit_action;
+   quit_action.sa_handler = Quit;
+   sigemptyset (&quit_action.sa_mask);
+   quit_action.sa_flags = SA_RESETHAND;
+-  struct sigaction ignore_action = {{0}};
++  struct sigaction ignore_action;
+   ignore_action.sa_handler = SIG_IGN;
+   sigemptyset (&ignore_action.sa_mask);
+   if(sigaction(SIGINT, &quit_action, NULL) != 0)
diff -Nru player-3.0.1+dfsg/debian/patches/series player-3.0.1+dfsg/debian/patches/series
--- player-3.0.1+dfsg/debian/patches/series	2010-04-10 20:27:12.000000000 +0200
+++ player-3.0.1+dfsg/debian/patches/series	2010-06-02 11:45:30.000000000 +0200
@@ -1 +1,3 @@
 debian-changes-3.0.1+dfsg-1
+fix-portio.patch
+fix-sigaction.patch

Reply via email to