From d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 1 Sep 2010 19:09:11 +0100 Subject: packages: Separate out most of the remaining packages into recipes Signed-off-by: Richard Purdie --- meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy | 91 ++++++++++++++++++++++ .../recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf | 16 ++++ meta/recipes-bsp/apmd/apmd-3.2.2-14/default | 8 ++ meta/recipes-bsp/apmd/apmd-3.2.2-14/init | 44 +++++++++++ meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch | 29 +++++++ meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch | 21 +++++ .../apmd/apmd-3.2.2-14/workaround.patch | 59 ++++++++++++++ meta/recipes-bsp/apmd/apmd_3.2.2-14.bb | 63 +++++++++++++++ 8 files changed, 331 insertions(+) create mode 100644 meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy create mode 100644 meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf create mode 100644 meta/recipes-bsp/apmd/apmd-3.2.2-14/default create mode 100755 meta/recipes-bsp/apmd/apmd-3.2.2-14/init create mode 100644 meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch create mode 100644 meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch create mode 100644 meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch create mode 100644 meta/recipes-bsp/apmd/apmd_3.2.2-14.bb (limited to 'meta/recipes-bsp/apmd') diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy new file mode 100644 index 0000000000..c48ee4e5d5 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy @@ -0,0 +1,91 @@ +#!/bin/sh +# +# apmd_proxy - program dispatcher for APM daemon +# +# Written by Craig Markwardt (craigm@lheamail.gsfc.nasa.gov) 21 May 1999 +# Modified for Debian by Avery Pennarun +# +# This shell script is called by the APM daemon (apmd) when a power +# management event occurs. Its first and second arguments describe the +# event. For example, apmd will call "apmd_proxy suspend system" just +# before the system is suspended. +# +# Here are the possible arguments: +# +# start - APM daemon has started +# stop - APM daemon is shutting down +# suspend critical - APM system indicates critical suspend (++) +# suspend system - APM system has requested suspend mode +# suspend user - User has requested suspend mode +# standby system - APM system has requested standby mode +# standby user - User has requested standby mode +# resume suspend - System has resumed from suspend mode +# resume standby - System has resumed from standby mode +# resume critical - System has resumed from critical suspend +# change battery - APM system reported low battery +# change power - APM system reported AC/battery change +# change time - APM system reported time change (*) +# change capability - APM system reported config. change (+) +# +# (*) - APM daemon may be configured to not call these sequences +# (+) - Available if APM kernel supports it. +# (++) - "suspend critical" is never passed to apmd from the kernel, +# so we will never see it here. Scripts that process "resume +# critical" events need to take this into account. +# +# It is the proxy script's responsibility to examine the APM status +# (via /proc/apm) or other status and to take appropriate actions. +# For example, the script might unmount network drives before the +# machine is suspended. +# +# In Debian, the usual way of adding functionality to the proxy is to +# add a script to /etc/apm/event.d. This script will be called by +# apmd_proxy (via run-parts) with the same arguments. +# +# If it is important that a certain set of script be run in a certain +# order on suspend and in a different order on resume, then put all +# the scripts in /etc/apm/scripts.d instead of /etc/apm/event.d and +# symlink to these from /etc/apm/suspend.d, /etc/apm/resume.d and +# /etc/apm/other.d using names whose lexicographical order is the same +# as the desired order of execution. +# +# If the kernel's APM driver supports it, apmd_proxy can return a non-zero +# exit status on suspend and standby events, indicating that the suspend +# or standby event should be rejected. +# +# ******************************************************************* + +set -e + +# The following doesn't yet work, because current kernels (up to at least +# 2.4.20) do not support rejection of APM events. Supporting this would +# require substantial modifications to the APM driver. We will re-enable +# this feature if the driver is ever modified. -- cph@debian.org +# +#SUSPEND_ON_AC=false +#[ -r /etc/apm/apmd_proxy.conf ] && . /etc/apm/apmd_proxy.conf +# +#if [ "${SUSPEND_ON_AC}" = "false" -a "${2}" = "system" ] \ +# && on_ac_power >/dev/null; then +# # Reject system suspends and standbys if we are on AC power +# exit 1 # Reject (NOTE kernel support must be enabled) +#fi + +if [ "${1}" = "suspend" -o "${1}" = "standby" ]; then + run-parts -a "${1}" -a "${2}" /etc/apm/event.d + if [ -d /etc/apm/suspend.d ]; then + run-parts -a "${1}" -a "${2}" /etc/apm/suspend.d + fi +elif [ "${1}" = "resume" ]; then + if [ -d /etc/apm/resume.d ]; then + run-parts -a "${1}" -a "${2}" /etc/apm/resume.d + fi + run-parts -a "${1}" -a "${2}" /etc/apm/event.d +else + run-parts -a "${1}" -a "${2}" /etc/apm/event.d + if [ -d /etc/apm/other.d ]; then + run-parts -a "${1}" -a "${2}" /etc/apm/other.d + fi +fi + +exit 0 diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf new file mode 100644 index 0000000000..751145c522 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf @@ -0,0 +1,16 @@ +# /etc/apm/apmd_proxy.conf: configuration file for apmd. +# +# This file is managed by debconf when installing or reconfiguring the +# package. It is generated by merging the answers gathered by debconf +# into the template file "/usr/share/apmd/apmd_proxy.conf". + +# The following doesn't yet work, because current kernels (up to at least +# 2.4.20) do not support rejection of APM events. Supporting this would +# require substantial modifications to the APM driver. We will re-enable +# this feature if the driver is ever modified. -- cph@debian.org +# +# Set the following to "false" if you want to reject system suspend or +# system standby requests when the computer is running on AC power. +# Otherwise set this to "true". Such requests are never rejected when +# the computer is running on battery power. +#SUSPEND_ON_AC=true diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/default b/meta/recipes-bsp/apmd/apmd-3.2.2-14/default new file mode 100644 index 0000000000..4b7965abf8 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/default @@ -0,0 +1,8 @@ +# +# Default for /etc/init.d/apmd +# + +# As apmd can be called with arguments, we use the following variable +# to store them, e.g., APMD="-w 5 -p 2". +# See the manual page apmd(8) for details. +APMD="--proxy-timeout 30" diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/init b/meta/recipes-bsp/apmd/apmd-3.2.2-14/init new file mode 100755 index 0000000000..268d4b26b7 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/init @@ -0,0 +1,44 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: apmd +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Advanced Power Management daemon +### END INIT INFO + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +[ -f /etc/default/rcS ] && . /etc/default/rcS +[ -f /etc/default/apmd ] && . /etc/default/apmd + +case "$1" in + start) + echo -n "Starting advanced power management daemon: " + start-stop-daemon -S -x /usr/sbin/apmd -- \ + -P /etc/apm/apmd_proxy $APMD + if [ $? = 0 ]; then + echo "apmd." + else + echo "(failed.)" + fi + ;; + stop) + echo -n "Stopping advanced power management daemon: " + start-stop-daemon -K \ + -x /usr/sbin/apmd + echo "apmd." + ;; + restart|force-reload) + $0 stop + $0 start + exit + ;; + *) + echo "Usage: /etc/init.d/apmd {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch b/meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch new file mode 100644 index 0000000000..711e777084 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch @@ -0,0 +1,29 @@ +# Add by RP to address "unable to infer tagged configuration" error: +# commit 35de05e61b88c0808a5e885bb0efdf420555d5ad +# Author: Richard Purdie +# Date: Sun Jun 1 16:13:38 2008 +0000 +# +# apmd: Use libtool --tag options to avoid problems with libtool 2.2.4 (from poky) +# +# However I didn't see same issue with current libtool-2.2.10. Also per my understanding, +# the default tag, if not specified, falls back to CC. So disable it from patching, but +# keep it here. If we encounter similar issue in the future, we could then push upstream +# +# Comment added by Kevin Tian , 2010-07-16 + +Index: apmd-3.2.2.orig/Makefile +=================================================================== +--- apmd-3.2.2.orig.orig/Makefile 2004-01-04 08:13:18.000000000 +0000 ++++ apmd-3.2.2.orig/Makefile 2008-04-21 17:10:03.000000000 +0100 +@@ -58,9 +57,8 @@ + #CFLAGS=-O3 -m486 -fomit-frame-pointer + #LDFLAGS=-s + +-LIBTOOL=libtool --quiet +-LT_COMPILE = $(LIBTOOL) --mode=compile $(CC) +-LT_LINK = $(LIBTOOL) --mode=link $(CC) ++LT_COMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) ++LT_LINK = $(LIBTOOL) --tag=CC --mode=link $(CC) + LT_INSTALL = $(LIBTOOL) --mode=install install + LT_CLEAN = $(LIBTOOL) --mode=clean rm + diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch b/meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch new file mode 100644 index 0000000000..c64e7df524 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch @@ -0,0 +1,21 @@ +# copy OE commit message here: +# commit 9456cdc1cf43e3ba9e6d88c63560c1b6fdee4359 +# Author: Michael Krelin +# Date: Tue May 29 12:27:45 2007 +0000 +# +# apmd: prevent build from interferring with host kernel headers. Closes #1257 +# +# comment added by Kevin Tian , 2010-07-13 + +--- apmd-3.2.2.orig/Makefile ++++ apmd-3.2.2/Makefile +@@ -43,8 +43,7 @@ + + CC=gcc + CFLAGS=-O -g +-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 \ ++XTRACFLAGS=-Wall -pipe -I. \ + -DVERSION=\"$(VERSION)\" \ + -DDEFAULT_PROXY_NAME=\"$(PROXY_DIR)/apmd_proxy\" + LDFLAGS= diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch b/meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch new file mode 100644 index 0000000000..d37380397c --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch @@ -0,0 +1,59 @@ +# this workaround is there in OE since 2003. It looks to provide a workaround +# allowing others sending SIGUSR1 to cause an apm suspend event. Disable it for +# now. +# +# comment added by Kevin Tian , 2010-07-13 +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- apmd-3.2.2.orig/apmd.c~workaround.patch ++++ apmd-3.2.2.orig/apmd.c +@@ -158,6 +158,7 @@ + static int quiet_bios_batlow; /* = 0 */ + static int verbosity = DEFAULT_VERBOSITY; + static int warn_level = 10; ++static int sleep_now = 0; /* ntp */ + + static uid_t apmd_uid = 0; + static int apmd_fd = -1; +@@ -942,6 +943,12 @@ + exit(0); + } + ++/* ntp */ ++static void sig_usr1(int sig) ++{ ++ sleep_now = 1; ++} ++ + int main(int argc, char **argv) + { + int c; +@@ -1151,6 +1158,8 @@ + openlog("apmd", (verbosity>=LOG_DEBUG)?LOG_PERROR:0 | LOG_PID | LOG_CONS, LOG_DAEMON); + + /* Set up signal handler */ ++ if (signal(SIGUSR1, SIG_IGN) != SIG_IGN) ++ signal(SIGUSR1, sig_usr1); /* ntp */ + if (signal(SIGINT, SIG_IGN) != SIG_IGN) + signal(SIGINT, sig_handler); + if (signal(SIGQUIT, SIG_IGN) != SIG_IGN) +@@ -1230,9 +1239,16 @@ + + for (;;) + { +- int num_events = apm_get_events(apmd_fd, check_interval, events, MAX_EVENTS); ++ int num_events; + int e, a; + ++ /* ntp */ ++ if (sleep_now) { ++ sleep_now = 0; ++ handle_event(APM_USER_SUSPEND, &apminfo); ++ } ++ ++ num_events = apm_get_events(apmd_fd, check_interval, events, MAX_EVENTS); + apm_read(&apminfo); + + if (num_events == 0) { diff --git a/meta/recipes-bsp/apmd/apmd_3.2.2-14.bb b/meta/recipes-bsp/apmd/apmd_3.2.2-14.bb new file mode 100644 index 0000000000..2778cc69e8 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd_3.2.2-14.bb @@ -0,0 +1,63 @@ +DESCRIPTION = "Set of tools for managing notebook power consumption." +SECTION = "base" +PRIORITY = "required" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://apm.h;firstline=6;endline=18;md5=c9a1f79036ab14aa157e15ed75ffd769" +DEPENDS = "libtool-cross" +PR = "r1" + +SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz \ + ${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.diff.gz \ + file://libtool.patch \ + file://unlinux.patch \ + file://init \ + file://default \ + file://apmd_proxy \ + file://apmd_proxy.conf" + +S = "${WORKDIR}/apmd-3.2.2.orig" + +inherit update-rc.d + +INITSCRIPT_NAME = "apmd" +INITSCRIPT_PARAMS = "defaults" + +do_compile() { + # apmd doesn't use whole autotools. Just libtool for installation + oe_runmake "LIBTOOL=${STAGING_BINDIR_CROSS}/${TARGET_PREFIX}libtool" apm apmd +} + +do_install() { + install -d ${D}${sysconfdir} + install -d ${D}${sysconfdir}/apm + install -d ${D}${sysconfdir}/apm/event.d + install -d ${D}${sysconfdir}/apm/other.d + install -d ${D}${sysconfdir}/apm/suspend.d + install -d ${D}${sysconfdir}/apm/resume.d + install -d ${D}${sysconfdir}/apm/scripts.d + install -d ${D}${sysconfdir}/default + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sbindir} + install -d ${D}${bindir} + install -d ${D}${libdir} + install -d ${D}${datadir}/apmd + install -d ${D}${includedir} + + install -m 4755 ${S}/.libs/apm ${D}${bindir}/apm + install -m 0755 ${S}/.libs/apmd ${D}${sbindir}/apmd + install -m 0755 ${WORKDIR}/apmd_proxy ${D}${sysconfdir}/apm/ + install -m 0644 ${WORKDIR}/apmd_proxy.conf ${D}${datadir}/apmd/ + install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/apmd + oe_libinstall -so libapm ${D}${libdir} + install -m 0644 apm.h ${D}${includedir} + + cat ${WORKDIR}/init | sed -e 's,/usr/sbin,${sbindir},g; s,/etc,${sysconfdir},g;' > ${D}${sysconfdir}/init.d/apmd + chmod 755 ${D}${sysconfdir}/init.d/apmd +} + +PACKAGES =+ "libapm libapm-dev apm" + +FILES_libapm = "${libdir}/libapm.so.*" +FILES_libapm-dev = "${libdir}/libapm.* ${includedir}" +FILES_apm = "${bindir}/apm*" -- cgit v1.2.3-54-g00ecf