diff options
Diffstat (limited to 'yocto-poky/meta/recipes-bsp/apmd/apmd/legacy.patch')
-rw-r--r-- | yocto-poky/meta/recipes-bsp/apmd/apmd/legacy.patch | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-bsp/apmd/apmd/legacy.patch b/yocto-poky/meta/recipes-bsp/apmd/apmd/legacy.patch new file mode 100644 index 000000000..5db895e8f --- /dev/null +++ b/yocto-poky/meta/recipes-bsp/apmd/apmd/legacy.patch @@ -0,0 +1,133 @@ +From 3595933d221f0ba836917debc0776b8723972ec9 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 11 Aug 2015 17:40:50 +0300 +Subject: [PATCH 1/3] Patch with fixes provided by Debian. + +This patch is taken from +ftp://ftp.debian.org/debian/pool/main/a/apmd/apmd_3.2.2-15.debian.tar.xz + +Upstream-Status: Inappropriate [upstream is dead] +Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> + +--- + Makefile | 2 +- + apm.c | 3 ++- + apm.h | 9 +++++++++ + apmd.c | 15 ++++++++------- + 4 files changed, 20 insertions(+), 9 deletions(-) + +diff --git a/Makefile b/Makefile +index bf346d9..92fc0fd 100644 +--- a/Makefile ++++ b/Makefile +@@ -43,7 +43,7 @@ DESTDIR= + + CC=gcc + CFLAGS=-O -g +-XTRACFLAGS=-Wall -pipe -I. -I/usr/src/linux/include \ ++XTRACFLAGS=-Wall -pipe -I. -I/usr/src/linux/include -I/usr/X11R6/include \ + -I/usr/src/linux-2.2/include -I /usr/src/linux-2.0/include \ + -DVERSION=\"$(VERSION)\" \ + -DDEFAULT_PROXY_NAME=\"$(PROXY_DIR)/apmd_proxy\" +diff --git a/apm.c b/apm.c +index b21c057..0359b1c 100644 +--- a/apm.c ++++ b/apm.c +@@ -219,12 +219,13 @@ int main(int argc, char **argv) + } + } + +- ++#if 0 + if (!(i.apm_flags & APM_32_BIT_SUPPORT)) + { + fprintf(stderr, "32-bit APM interface not supported\n"); + exit(1); + } ++#endif + + if (verbose && (i.apm_flags & 0x10)) + printf("APM BIOS Power Management is currently disabled\n"); +diff --git a/apm.h b/apm.h +index fb24dfd..824cc06 100644 +--- a/apm.h ++++ b/apm.h +@@ -20,6 +20,13 @@ + * $Id: apm.h,v 1.7 1999/07/05 22:31:11 apenwarr Exp $ + * + */ ++#ifndef _APM_H ++#define _APM_H 1 ++ ++#ifndef __KERNEL_STRICT_NAMES ++#define __KERNEL_STRICT_NAMES ++#endif ++ + #include <linux/apm_bios.h> + #include <sys/types.h> + +@@ -93,3 +100,5 @@ extern int apm_reject(int fd); + #else + #define apm_reject(fd) (-EINVAL) + #endif ++ ++#endif +diff --git a/apmd.c b/apmd.c +index 49ed3a1..560f536 100644 +--- a/apmd.c ++++ b/apmd.c +@@ -343,7 +343,7 @@ static int call_proxy(apm_event_t event) + /* parent */ + int status, retval; + ssize_t len; +- time_t time_limit; ++ time_t countdown; + + if (pid < 0) { + /* Couldn't fork */ +@@ -356,8 +356,9 @@ static int call_proxy(apm_event_t event) + /* Capture the child's output, if any, but only until it terminates */ + close(fds[1]); + fcntl(fds[0], F_SETFL, O_RDONLY|O_NONBLOCK); +- time_limit = time(0) + proxy_timeout; ++ countdown = proxy_timeout; + do { ++ countdown -= 1; + while ((len = read(fds[0], line, sizeof(line)-1)) > 0) { + line[len] = 0; + APMD_SYSLOG(LOG_INFO, "+ %s", line); +@@ -372,16 +373,16 @@ static int call_proxy(apm_event_t event) + goto proxy_done; + } + +- sleep(1); ++ while (sleep(1) > 0) ; + } while ( +- (time(0) < time_limit) ++ (countdown >= 0) + || (proxy_timeout < 0) + ); + + APMD_SYSLOG(LOG_NOTICE, "Proxy has been running more than %d seconds; killing it", proxy_timeout); + + kill(pid, SIGTERM); +- time_limit = time(0) + 5; ++ countdown = 5; + do { + retval = waitpid(pid, &status, WNOHANG); + if (retval == pid) +@@ -392,9 +393,9 @@ static int call_proxy(apm_event_t event) + goto proxy_done; + } + +- sleep(1); ++ while (sleep(1) > 0) ; + +- } while (time(0) < time_limit); ++ } while (countdown >= 0); + + kill(pid, SIGKILL); + status = __W_EXITCODE(0, SIGKILL); +-- +2.1.4 + |