irda-utils: new package for IrDA devices

[Peter: Small tweaks, add patch descriptions]
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Mike Frysinger 2010-12-08 00:07:16 -05:00 committed by Peter Korsgaard
parent 921f75e260
commit 86f2543c8c
6 changed files with 147 additions and 0 deletions

View File

@ -178,6 +178,7 @@ source "package/hwdata/Config.in"
source "package/i2c-tools/Config.in"
source "package/input-tools/Config.in"
source "package/iostat/Config.in"
source "package/irda-utils/Config.in"
source "package/kbd/Config.in"
source "package/lm-sensors/Config.in"
source "package/lsuio/Config.in"

View File

@ -0,0 +1,19 @@
config BR2_PACKAGE_IRDA_UTILS
bool "irda-utils"
help
user space utilities which control the IrDA stack
http://irda.sourceforge.net/
if BR2_PACKAGE_IRDA_UTILS
config BR2_PACKAGE_IRDA_UTILS_IRATTACH
bool "irattach"
config BR2_PACKAGE_IRDA_UTILS_IRDAPING
bool "irdaping"
config BR2_PACKAGE_IRDA_UTILS_IRNETD
bool "irnetd"
endif

View File

@ -0,0 +1,34 @@
written by Mike Frysinger
https://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616
Rather than using the fork function (which doesnt work on nommu
systems), simply use the daemon() function instead (which does
work). this should work the same before and after for all systems.
--- a/irattach/util.c
+++ b/irattach/util.c
@@ -156,21 +156,10 @@
void fork_now(int ttyfd)
{
- int ret;
int i;
- if ((ret = fork()) > 0)
- exit(0);
-
- if (ret == -1)
- syslog(LOG_INFO, "forking: %m");
- if (setsid() < 0)
- syslog(LOG_INFO, "detaching from tty: %m");
-
- if ((ret = fork()) > 0) {
- /* cleanup_files = 0; */
- exit(0);
- }
+ if (daemon(1, 1))
+ syslog(LOG_INFO, "daemon: %m");
/* Close all open inherited files! Except for ttyfd! */
for (i = 0; i < 64; i++)

View File

@ -0,0 +1,24 @@
written by Mike Frysinger
https://sourceforge.net/tracker/?func=detail&aid=3132056&group_id=5616&atid=305616
nommu systems cannot fork() as the hardware cannot support
it. irattach uses it as a minor optimization, but it isnt
necessary for correct functioning of the utility. so add a
NO_FORK define so we nommu peeps can do CFLAGS="... -DNO_FORK=1
..." and use it in our embedded systems.
--- a/irattach/irattach.c
+++ b/irattach/irattach.c
@@ -397,7 +397,11 @@
after_names[i]);
/* Create a new instance for this other
* interface */
+#ifdef NO_FORK
+ pid = -1;
+#else
pid = fork();
+#endif
/* If in the child */
if(!pid) {
/* Get the interface name */

View File

@ -0,0 +1,23 @@
written by Mike Frysinger
https://sourceforge.net/tracker/?func=detail&aid=3132051&group_id=5616&atid=305616
The top level makefile ignores build/install errors in subdirs which makes
packaging a pain to verify.
--- a/Makefile
+++ b/Makefile
@@ -31,11 +31,11 @@
CFLAGS= -O2 -W -Wall
all:
- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
install:
- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
clean:

View File

@ -0,0 +1,46 @@
#############################################################
#
# irda-utils
#
#############################################################
IRDA_UTILS_VERSION = 0.9.18
IRDA_UTILS_SOURCE = irda-utils-$(IRDA_UTILS_VERSION).tar.gz
IRDA_UTILS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/irda
IRDA_UTILS_CFLAGS = $(TARGET_CFLAGS) -I.
ifeq ($(BR2_USE_MMU),)
IRDA_UTILS_CFLAGS += -DNO_FORK=1
endif
define IRDA_UTILS_BUILD_CMDS
$(MAKE) \
CC="$(TARGET_CC)" \
CFLAGS="$(IRDA_UTILS_CFLAGS)" \
SYS_INCLUDES= \
DIRS="irattach irdaping irnetd" \
V=1 -C $(@D)
endef
define IRDA_UTILS_CLEAN_CMDS
$(MAKE) -C $(@D) clean
endef
IRDA_UTILS_SBINS- =
IRDA_UTILS_SBINS-y =
IRDA_UTILS_SBINS-$(BR2_PACKAGE_IRDA_UTILS_IRATTACH) += irattach
IRDA_UTILS_SBINS-$(BR2_PACKAGE_IRDA_UTILS_IRDAPING) += irdaping
IRDA_UTILS_SBINS-$(BR2_PACKAGE_IRDA_UTILS_IRNETD) += irnetd
IRDA_UTILS_SBINS- += $(IRDA_UTILS_SBINS-y)
define IRDA_UTILS_INSTALL_TARGET_CMDS
for i in $(IRDA_UTILS_SBINS-y); do \
$(INSTALL) -m 0755 -D $(@D)/$$i/$$i $(TARGET_DIR)/usr/sbin/$$i; \
done
endef
define IRDA_UTILS_UNINSTALL_TARGET_CMDS
rm -f $(addprefix $(TARGET_DIR)/usr/sbin/,$(IRDA_UTILS_SBINS-))
endef
$(eval $(call GENTARGETS,package,irda-utils))