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