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 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org