Hello community, here is the log from the commit of package lirc for openSUSE:Factory checked in at Fri Mar 12 17:36:00 CET 2010. -------- --- lirc/lirc.changes 2009-12-18 13:44:11.000000000 +0100 +++ /mounts/work_src_done/STABLE/lirc/lirc.changes 2010-03-12 16:11:35.000000000 +0100 @@ -1,0 +2,7 @@ +Fri Mar 12 14:58:11 UTC 2010 - lnussel@suse.de + +- use correct location of devinput config (bnc#570665) +- use /dev/lirc0 as fallback (bnc#552455) +- rework init script + +------------------------------------------------------------------- calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ lirc.spec: same change ++++++ rc.lirc ++++++ --- /var/tmp/diff_new_pack.7p4fXP/_old 2010-03-12 17:35:49.000000000 +0100 +++ /var/tmp/diff_new_pack.7p4fXP/_new 2010-03-12 17:35:49.000000000 +0100 @@ -31,65 +31,33 @@ test -r $lircd_CONFIG || exit 6 . $lircd_CONFIG -# Source LSB init functions -# providing start_daemon, killproc, pidofproc, -# log_success_msg, log_failure_msg and log_warning_msg. -# This is currently not used by UnitedLinux based distributions and -# not needed for init scripts for UnitedLinux only. If it is used, -# the functions from rc.status should not be sourced or used. -#. /lib/lsb/init-functions - -# Shell functions sourced from /etc/rc.status: -# rc_check check and set local and overall rc status -# rc_status check and set local and overall rc status -# rc_status -v ditto but be verbose in local rc status -# rc_status -v -r ditto and clear the local rc status -# rc_status -s display "skipped" and exit with status 3 -# rc_status -u display "unused" and exit with status 3 -# rc_failed set local and overall rc status to failed -# rc_failed <num> set local and overall rc status to <num> -# rc_reset clear local rc status (overall remains) -# rc_exit exit appropriate to overall rc status -# rc_active checks whether a service is activated by symlinks -# rc_splash arg sets the boot splash screen to arg (if active) +lircd_CONF=/etc/lirc/lircd.conf +lircd_PID=/var/run/lirc/lircd.pid + . /etc/rc.status -# Reset status of this service rc_reset -# Return values acc. to LSB for all commands but status: -# 0 - success -# 1 - generic or unspecified error -# 2 - invalid or excess argument(s) -# 3 - unimplemented feature (e.g. "reload") -# 4 - user had insufficient privileges -# 5 - program is not installed -# 6 - program is not configured -# 7 - program is not running -# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) -# -# Note that starting an already running service, stopping -# or restarting a not-running service as well as the restart -# with force-reload (in case signaling is not supported) are -# considered a success. - setdefaults() { # set LIRCD_DEVICE default if unset - for retries in 1 2 3 4 5; do + for retries in 1 2; do if test "$LIRCD_DEVICE" != ""; then break; fi if test -L "/dev/input/ir"; then # have input driver LIRCD_DEVICE="/dev/input/ir" - elif grep -q BaseRemoteCtl /proc/devices && [ -e /dev/lirc ]; then + elif grep -q BaseRemoteCtl /proc/devices && [ -e /dev/lirc0 -o -e /dev/lirc ]; then # have lirc driver - LIRCD_DEVICE="/dev/lirc" + if [ -e /dev/lirc0 ]; then + LIRCD_DEVICE="/dev/lirc0" + else + LIRCD_DEVICE="/dev/lirc" + fi else - # hotplug not finished yet? - echo -n . - sleep 1 + # wait for udev and try again + udevadm settle fi done @@ -99,15 +67,6 @@ fi } -makeargs() -{ - # print args - [ -n "$LIRCD_DRIVER" ] && echo "-H" "\"$LIRCD_DRIVER\"" - [ -n "$LIRCD_DEVICE" ] && echo "-d" "\"$LIRCD_DEVICE\"" - [ -n "$LIRCD_LISTENPORT" ] && echo "\"-l$LIRCD_LISTENPORT\"" - [ -n "$LIRCD_CONNECT" ] && echo "\"-c$LIRCD_CONNECT\"" -} - case "$1" in start) echo -n "Starting lircd " @@ -122,11 +81,12 @@ rc_status -v rc_exit fi - if [ ! -e /etc/lircd.conf ]; then - if [ "$LIRCD_DEVICE" = "/dev/input/ir" -a -e "$LIRCD_DEVICE" ]; then - install -m 644 /usr/share/lirc/remotes/linux-input-layer-lircd.conf /etc/lircd.conf + if [ ! -e "$lircd_CONF" ]; then + DEVINPUTCONF='/usr/share/lirc/remotes/devinput/lircd.conf.devinput' + if [ "$LIRCD_DEVICE" = "/dev/input/ir" -a -e "$LIRCD_DEVICE" -a -e "$DEVINPUTCONF" ]; then + install -m 644 "$DEVINPUTCONF" "$lircd_CONF" else - echo -n "Error: please create /etc/lircd.conf" + echo -n "Error: please create "$lircd_CONF"" rc_failed 6 rc_status -v rc_exit @@ -139,96 +99,45 @@ rm -f /dev/lircd ln -s /var/run/lirc/lircd /dev/lircd fi - ## Start daemon with startproc(8). If this fails - ## the return value is set appropriately by startproc. - eval startproc $lircd_BIN $(makeargs) - # Remember status and be verbose + lircd_ARGS=() + [ -n "$LIRCD_DRIVER" ] && lircd_ARGS+=(-H "$LIRCD_DRIVER") + [ -n "$LIRCD_DEVICE" ] && lircd_ARGS+=(-d "$LIRCD_DEVICE") + [ -n "$LIRCD_LISTENPORT" ] && lircd_ARGS+=(-l "$LIRCD_LISTENPORT") + [ -n "$LIRCD_CONNECT" ] && lircd_ARGS+=(-c "$LIRCD_CONNECT") + + start_daemon -p $lircd_PID $lircd_BIN "${lircd_ARGS[@]}" rc_status -v ;; stop) echo -n "Shutting down lircd " - ## Stop daemon with killproc(8) and if this fails - ## killproc sets the return value according to LSB. - - killproc -TERM $lircd_BIN - - # Remember status and be verbose + killproc -TERM -p $lircd_PID $lircd_BIN rc_status -v ;; try-restart) - ## Do a restart only if the service was active before. - ## Note: try-restart is not (yet) part of LSB (as of 1.2) $0 status >/dev/null && $0 restart - - # Remember status and be quiet rc_status ;; restart) - ## Stop the service and regardless of whether it was - ## running or not, start it again. $0 stop $0 start - - # Remember status and be quiet rc_status ;; - force-reload) - ## Signal the daemon to reload its config. Most daemons - ## do this on signal 1 (SIGHUP). - ## If it does not support it, restart. - + force-reload|reload) echo -n "Reload service lircd " - ## if it supports it: killproc -HUP $lircd_BIN - #touch /var/run/lircd.pid + touch "$lircd_PID" rc_status -v - - ## Otherwise: - #$0 stop && $0 start - #rc_status - ;; - reload) - ## Like force-reload, but if daemon does not support - ## signaling, do nothing (!) - - # If it supports signaling: - echo -n "Reload service lircd " - killproc -HUP $lircd_BIN - #touch /var/run/lircd.pid - rc_status -v - - ## Otherwise if it does not support reload: - #rc_failed 3 - #rc_status -v ;; status) echo -n "Checking for service lircd " - ## Check status with checkproc(8), if process is running - ## checkproc will return with exit status 0. - - # Return value is slightly different for the status command: - # 0 - service up and running - # 1 - service dead, but /var/run/ pid file exists - # 2 - service dead, but /var/lock/ lock file exists - # 3 - service not running (unused) - # 4 - service status unknown :-( - # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) - - # NOTE: checkproc returns LSB compliant status values. - checkproc $lircd_BIN - # NOTE: rc_status knows that we called this init script with - # "status" option and adapts its messages accordingly. + checkproc -p $lircd_PID $lircd_BIN rc_status -v ;; probe) - ## Optional: Probe for the necessity of a reload, print out the - ## argument to this init script which is required for a reload. - ## Note: probe is not (yet) part of LSB (as of 1.2) - - if test /etc/sysconfig/lirc -nt /var/run/lircd.pid; then + if test "$lircd_CONFIG" -nt "$lircd_PID"; then echo reload - elif test /etc/lircd.conf -nt /var/run/lircd.pid; then + elif test "$lircd_CONF" -nt "$lircd_PID"; then echo reload fi ;; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org