[Pkg-e-devel] Bug#535773: ecore: FTBFS on hurd-i386
Manuel Menal
mmenal at hurdfr.org
Sat Jul 4 21:25:02 UTC 2009
Package: ecore
Severity: important
Tags: patch
Justification: fails to build from source
Hi,
ecore uses the SA_SIGINFO flag for sigaction(), which is not implemented on GNU/Hurd.
It does not use the feature itself though. I have attached a patch that makes the use
of SA_SIGINFO conditional.
This patch also disable building libecore-fb-svn-01 on GNU/Hurd, as it's not supported.
Unfortunately, Architecture: !hurd-i386 (or Architecture: linux-any...) is not supported
yet, so I have included the output of type-handling -n hurd. You might want to do
otherwise.
Manuel Menal
diff -urp ecore-0.9.9.060/debian/control ../ecore-0.9.9.060/debian/control
--- ecore-0.9.9.060/debian/control 2009-07-04 22:23:53.000000000 +0200
+++ ../ecore-0.9.9.060/debian/control 2009-07-04 22:47:18.000000000 +0200
@@ -61,7 +61,7 @@ Description: Ecore Evas Wrapper Library
This package contains the Ecore Evas wrapper functions.
Package: libecore-fb-svn-01
-Architecture: any
+Architecture: darwin-alpha freebsd-alpha kfreebsd-alpha knetbsd-alpha kopensolaris-alpha alpha netbsd-alpha openbsd-alpha solaris-alpha darwin-amd64 freebsd-amd64 kfreebsd-amd64 knetbsd-amd64 kopensolaris-amd64 amd64 netbsd-amd64 openbsd-amd64 solaris-amd64 darwin-arm freebsd-arm kfreebsd-arm knetbsd-arm kopensolaris-arm arm netbsd-arm openbsd-arm solaris-arm darwin-armeb freebsd-armeb kfreebsd-armeb knetbsd-armeb kopensolaris-armeb armeb netbsd-armeb openbsd-armeb solaris-armeb armel darwin-avr32 freebsd-avr32 kfreebsd-avr32 knetbsd-avr32 kopensolaris-avr32 avr32 netbsd-avr32 openbsd-avr32 solaris-avr32 darwin-hppa freebsd-hppa kfreebsd-hppa knetbsd-hppa kopensolaris-hppa hppa netbsd-hppa openbsd-hppa solaris-hppa darwin-i386 freebsd-i386 kfreebsd-i386 knetbsd-i386 kopensolaris-i386 i386 netbsd-i386 openbsd-i386 solaris-i386 darwin-ia64 freebsd-ia64 kfreebsd-ia64 knetbsd-ia64 kopensolaris-ia64 ia64 netbsd-ia64 openbsd-ia64 solaris-ia64 lpia darwin-m32r freebsd-m32r kfreebsd
-m32r knetbsd-m32r kopensolaris-m32r m32r netbsd-m32r openbsd-m32r solaris-m32r darwin-m68k freebsd-m68k kfreebsd-m68k knetbsd-m68k kopensolaris-m68k m68k netbsd-m68k openbsd-m68k solaris-m68k darwin-mips freebsd-mips kfreebsd-mips knetbsd-mips kopensolaris-mips mips netbsd-mips openbsd-mips solaris-mips darwin-mipsel freebsd-mipsel kfreebsd-mipsel knetbsd-mipsel kopensolaris-mipsel mipsel netbsd-mipsel openbsd-mipsel solaris-mipsel darwin-powerpc freebsd-powerpc kfreebsd-powerpc knetbsd-powerpc kopensolaris-powerpc powerpc netbsd-powerpc openbsd-powerpc solaris-powerpc darwin-ppc64 freebsd-ppc64 kfreebsd-ppc64 knetbsd-ppc64 kopensolaris-ppc64 ppc64 netbsd-ppc64 openbsd-ppc64 solaris-ppc64 darwin-s390 freebsd-s390 kfreebsd-s390 knetbsd-s390 kopensolaris-s390 s390 netbsd-s390 openbsd-s390 solaris-s390 darwin-s390x freebsd-s390x kfreebsd-s390x knetbsd-s390x kopensolaris-s390x s390x netbsd-s390x openbsd-s390x solaris-s390x darwin-sh3 freebsd-sh3 kfreebsd-sh3 knetbsd-sh3 kopenso
laris-sh3 sh3 netbsd-sh3 openbsd-sh3 solaris-sh3 darwin-sh3eb freebsd-sh3eb kfreebsd-sh3eb knetbsd-sh3eb kopensolaris-sh3eb sh3eb netbsd-sh3eb openbsd-sh3eb solaris-sh3eb darwin-sh4 freebsd-sh4 kfreebsd-sh4 knetbsd-sh4 kopensolaris-sh4 sh4 netbsd-sh4 openbsd-sh4 solaris-sh4 darwin-sh4eb freebsd-sh4eb kfreebsd-sh4eb knetbsd-sh4eb kopensolaris-sh4eb sh4eb netbsd-sh4eb openbsd-sh4eb solaris-sh4eb darwin-sparc freebsd-sparc kfreebsd-sparc knetbsd-sparc kopensolaris-sparc sparc netbsd-sparc openbsd-sparc solaris-sparc
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Ecore frame buffer system functions
This is the core event abstraction layer and X abstraction layer that makes
@@ -166,7 +166,7 @@ Depends: ${misc:Depends}, libecore-svn-0
libecore-con-svn-01 (= ${binary:Version}),
libecore-config-svn-01 (= ${binary:Version}),
libecore-evas-svn-01 (= ${binary:Version}),
- libecore-fb-svn-01 (= ${binary:Version}),
+ libecore-fb-svn-01 (= ${binary:Version}) [!hurd-i386],
libecore-file-svn-01 (= ${binary:Version}),
libecore-imf-svn-01 (= ${binary:Version}),
libecore-ipc-svn-01 (= ${binary:Version}),
diff -urp ecore-0.9.9.060/debian/libecore-dev.install ../ecore-0.9.9.060/debian/libecore-dev.install
--- ecore-0.9.9.060/debian/libecore-dev.install 2009-07-04 22:23:53.000000000 +0200
+++ ../ecore-0.9.9.060/debian/libecore-dev.install 2009-07-04 22:46:46.000000000 +0200
@@ -4,7 +4,6 @@ debian/tmp/usr/lib/libecore.so
debian/tmp/usr/lib/libecore_config.so
debian/tmp/usr/lib/libecore_con.so
debian/tmp/usr/lib/libecore_evas.so
-debian/tmp/usr/lib/libecore_fb.so
debian/tmp/usr/lib/libecore_file.so
debian/tmp/usr/lib/libecore_imf_evas.so
debian/tmp/usr/lib/libecore_imf.so
diff -urp ecore-0.9.9.060/debian/libecore-dev.install.linux ../ecore-0.9.9.060/debian/libecore-dev.install.linux
--- ecore-0.9.9.060/debian/libecore-dev.install.linux 1970-01-01 01:00:00.000000000 +0100
+++ ../ecore-0.9.9.060/debian/libecore-dev.install.linux 2009-07-04 22:46:50.000000000 +0200
@@ -0,0 +1,1 @@
+debian/tmp/usr/lib/libecore_fb.so
diff -urp ecore-0.9.9.060/src/lib/ecore/ecore_signal.c ../ecore-0.9.9.060/src/lib/ecore/ecore_signal.c
--- ecore-0.9.9.060/src/lib/ecore/ecore_signal.c 2009-02-01 00:08:15.000000000 +0100
+++ ../ecore-0.9.9.060/src/lib/ecore/ecore_signal.c 2009-06-22 19:17:27.000000000 +0200
@@ -23,23 +23,29 @@
/* valgrind in some versions/setups uses SIGRT's... hmmm */
#undef SIGRTMIN
+#ifdef SA_SIGACTION
typedef void (*Signal_Handler)(int sig, siginfo_t *si, void *foo);
+ #define _ecore_signal_callback(signame) _ecore_signal_callback_##signame(int sig __UNUSED__, siginfo_ *si, void *foo __UNUSED__)
+#else
+typedef void (*Signal_Handler)(int sig);
+ #define _ecore_signal_callback(signame) _ecore_signal_callback_##signame(int sig)
+#endif
static void _ecore_signal_callback_set(int sig, Signal_Handler func);
-static void _ecore_signal_callback_ignore(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sigchld(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sigusr1(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sigusr2(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sighup(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sigquit(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sigint(int sig, siginfo_t *si, void *foo);
-static void _ecore_signal_callback_sigterm(int sig, siginfo_t *si, void *foo);
+static void _ecore_signal_callback(ignore);
+static void _ecore_signal_callback(sigchld);
+static void _ecore_signal_callback(sigusr1);
+static void _ecore_signal_callback(sigusr2);
+static void _ecore_signal_callback(sighup);
+static void _ecore_signal_callback(sigquit);
+static void _ecore_signal_callback(sigint);
+static void _ecore_signal_callback(sigterm);
#ifdef SIGPWR
-static void _ecore_signal_callback_sigpwr(int sig, siginfo_t *si, void *foo);
+static void _ecore_signal_callback(sigpwr);
#endif
#ifdef SIGRTMIN
-static void _ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo);
+static void _ecore_signal_callback(sigrt);
#endif
static int _ecore_signal_exe_exit_delay(void *data);
@@ -447,28 +453,38 @@ _ecore_signal_callback_set(int sig, Sign
{
struct sigaction sa;
+#ifdef SA_SIGINFO
sa.sa_sigaction = func;
sa.sa_flags = SA_RESTART | SA_SIGINFO;
+#else
+ sa.sa_handler = func;
+ sa.sa_flags = SA_RESTART;
+#endif
sigemptyset(&sa.sa_mask);
sigaction(sig, &sa, NULL);
}
+
static void
-_ecore_signal_callback_ignore(int sig __UNUSED__, siginfo_t *si __UNUSED__, void *foo __UNUSED__)
+_ecore_signal_callback(ignore)
{
}
static void
-_ecore_signal_callback_sigchld(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigchld)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigchld_info[n] = *si;
else
sigchld_info[n].si_signo = 0;
+#else
+ sigchld_info[n].si_signo = sig;
+#endif
}
sigchld_count++;
@@ -476,96 +492,120 @@ _ecore_signal_callback_sigchld(int sig _
}
static void
-_ecore_signal_callback_sigusr1(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigusr1)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigusr1_info[n] = *si;
else
sigusr1_info[n].si_signo = 0;
+#else
+ sigusr1_info[n].si_signo = sig;
+#endif
}
sigusr1_count++;
sig_count++;
}
static void
-_ecore_signal_callback_sigusr2(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigusr2)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigusr2_info[n] = *si;
else
sigusr2_info[n].si_signo = 0;
+#else
+ sigusr2_info[n].si_signo = sig;
+#endif
}
sigusr2_count++;
sig_count++;
}
static void
-_ecore_signal_callback_sighup(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sighup)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sighup_info[n] = *si;
else
sighup_info[n].si_signo = 0;
+#else
+ sighup_info[n].si_signo = sig;
+#endif
}
sighup_count++;
sig_count++;
}
static void
-_ecore_signal_callback_sigquit(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigquit)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigquit_info[n] = *si;
else
sigquit_info[n].si_signo = 0;
+#else
+ sigquit_info[n].si_signo = sig;
+#endif
}
sigquit_count++;
sig_count++;
}
static void
-_ecore_signal_callback_sigint(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigint)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTIOn
if (si)
sigint_info[n] = *si;
else
sigint_info[n].si_signo = 0;
+#else
+ sigint_info[n].si_signo = sig;
+#endif
}
sigint_count++;
sig_count++;
}
static void
-_ecore_signal_callback_sigterm(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigterm)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigterm_info[n] = *si;
else
sigterm_info[n].si_signo = 0;
+#else
+ sigterm_info[n].si_signo = sig;
+#endif
}
sigterm_count++;
sig_count++;
@@ -573,16 +613,20 @@ _ecore_signal_callback_sigterm(int sig _
#ifdef SIGPWR
static void
-_ecore_signal_callback_sigpwr(int sig __UNUSED__, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigpwr)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigpwr_info[n] = *si;
else
sigpwr_info[n].si_signo = 0;
+#else
+ sigpwr_info[n].si_signo = sig;
+#endif
}
sigpwr_count++;
sig_count++;
@@ -591,16 +635,20 @@ _ecore_signal_callback_sigpwr(int sig __
#ifdef SIGRTMIN
static void
-_ecore_signal_callback_sigrt(int sig, siginfo_t *si, void *foo __UNUSED__)
+_ecore_signal_callback(sigrt)
{
volatile sig_atomic_t n;
n = sigchld_count;
if (n < MAXSIGQ)
{
+#ifdef SA_SIGACTION
if (si)
sigrt_info[n][sig - SIGRTMIN] = *si;
else
sigrt_info[n][sig - SIGRTMIN].si_signo = 0;
+#else
+ sigrt_info[n][sig - SIGRTMIN].si_signo = sig;
+#endif
}
sigrt_count[sig - SIGRTMIN]++;
sig_count++;
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: hurd-i386 (i686-AT386)
Kernel: GNU-Mach 1.3.99/Hurd-0.3
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
More information about the Pkg-e-devel
mailing list