From 9d851a2e55028d4715744e17c241b65cd351fc60837e6f30041f0c8076efe839 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Mon, 10 Jan 2011 09:43:51 +0000 Subject: [PATCH 1/4] Updating link to change in openSUSE:Factory/lirc revision 39.0 OBS-URL: https://build.opensuse.org/package/show/vdr/lirc?expand=0&rev=c0830738f78c4a669c83b1cd5215370b --- lirc-kernel.spec | 4 ++-- lirc.spec | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lirc-kernel.spec b/lirc-kernel.spec index fcfda40..909f0a9 100644 --- a/lirc-kernel.spec +++ b/lirc-kernel.spec @@ -1,7 +1,7 @@ # # spec file for package lirc-kernel (Version 0.8.7) # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,7 +25,7 @@ License: GPLv2+ Group: System/Kernel Summary: LIRC kernel modules Version: 0.8.7 -Release: 1 +Release: 2 Source0: http://downloads.sourceforge.net/project/lirc/LIRC/%version/lirc-%version%{?snapshot:-%snapshot}.tar.bz2 Source1: Makefile.module Source2: Makefile.modsub diff --git a/lirc.spec b/lirc.spec index 62d13a4..0a1cfea 100644 --- a/lirc.spec +++ b/lirc.spec @@ -1,7 +1,7 @@ # # spec file for package lirc (Version 0.8.7) # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -52,7 +52,7 @@ Obsoletes: lirc-64bit %endif # Version: 0.8.7 -Release: 1 +Release: 2 PreReq: %fillup_prereq %insserv_prereq Summary: Tools for Infrared Receivers Source0: http://downloads.sourceforge.net/project/lirc/LIRC/%version/lirc-%version%{?snapshot:-%snapshot}.tar.bz2 From 704e6687bbfe18941aef3eaecbd5a0c22a395f5ab0c99cd5e88ed98946abd06f Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Wed, 9 Feb 2011 08:26:24 +0000 Subject: [PATCH 2/4] - fix lircd not working with in-kernel drivers (bnc#668427) OBS-URL: https://build.opensuse.org/package/show/vdr/lirc?expand=0&rev=27 --- lirc-0.8.7-lirc_h.diff | 208 +++++++++++++++++++++++++++++++++++++++ lirc-0.8.7-lirc_h_2.diff | 46 +++++++++ lirc.changes | 5 + lirc.spec | 4 + 4 files changed, 263 insertions(+) create mode 100644 lirc-0.8.7-lirc_h.diff create mode 100644 lirc-0.8.7-lirc_h_2.diff diff --git a/lirc-0.8.7-lirc_h.diff b/lirc-0.8.7-lirc_h.diff new file mode 100644 index 0000000..5bdab8d --- /dev/null +++ b/lirc-0.8.7-lirc_h.diff @@ -0,0 +1,208 @@ +From d1672cf6eea5c220d6954cba0e75816e0157e22f Mon Sep 17 00:00:00 2001 +From: Jarod Wilson +Date: Tue, 13 Jul 2010 23:03:19 -0400 +Subject: [PATCH] pull in slightly updated upstreamed lirc.h + +Signed-off-by: Jarod Wilson +--- + drivers/lirc.h | 130 ++++++++++++++++++++++++++++---------------------------- + 1 files changed, 65 insertions(+), 65 deletions(-) + +Index: lirc-0.8.7/drivers/lirc.h +=================================================================== +--- lirc-0.8.7.orig/drivers/lirc.h ++++ lirc-0.8.7/drivers/lirc.h +@@ -1,21 +1,16 @@ +-/* $Id: lirc.h,v 5.27 2010/05/13 15:45:48 lirc Exp $ */ ++/* ++ * lirc.h - linux infrared remote control header file ++ * last modified 2010/06/03 by Jarod Wilson ++ */ + + #ifndef _LINUX_LIRC_H + #define _LINUX_LIRC_H + +-#if defined(__linux__) ++#include + #include +-#elif defined(_NetBSD_) +-#include +-#elif defined(_CYGWIN_) +-#define __USE_LINUX_IOCTL_DEFS +-#include +-#endif + +-/* */ + #define PULSE_BIT 0x01000000 + #define PULSE_MASK 0x00FFFFFF +-/* */ + + #define LIRC_MODE2_SPACE 0x00000000 + #define LIRC_MODE2_PULSE 0x01000000 +@@ -38,7 +33,7 @@ + #define LIRC_IS_FREQUENCY(val) (LIRC_MODE2(val) == LIRC_MODE2_FREQUENCY) + #define LIRC_IS_TIMEOUT(val) (LIRC_MODE2(val) == LIRC_MODE2_TIMEOUT) + +-typedef int lirc_t; ++#define lirc_t int + + /*** lirc compatible hardware features ***/ + +@@ -50,17 +45,13 @@ typedef int lirc_t; + #define LIRC_MODE_RAW 0x00000001 + #define LIRC_MODE_PULSE 0x00000002 + #define LIRC_MODE_MODE2 0x00000004 +-/* obsolete: #define LIRC_MODE_CODE 0x00000008 */ + #define LIRC_MODE_LIRCCODE 0x00000010 +-/* obsolete: #define LIRC_MODE_STRING 0x00000020 */ + + + #define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW) + #define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE) + #define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2) +-/* obsolete: #define LIRC_CAN_SEND_CODE LIRC_MODE2SEND(LIRC_MODE_CODE) */ + #define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE) +-/* obsolete: #define LIRC_CAN_SEND_STRING LIRC_MODE2SEND(LIRC_MODE_STRING) */ + + #define LIRC_CAN_SEND_MASK 0x0000003f + +@@ -71,9 +62,7 @@ typedef int lirc_t; + #define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW) + #define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE) + #define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2) +-/* obsolete: #define LIRC_CAN_REC_CODE LIRC_MODE2REC(LIRC_MODE_CODE) */ + #define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE) +-/* obsolete: #define LIRC_CAN_REC_STRING LIRC_MODE2REC(LIRC_MODE_STRING) */ + + #define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK) + +@@ -95,60 +84,71 @@ typedef int lirc_t; + + /*** IOCTL commands for lirc driver ***/ + +-#define LIRC_GET_FEATURES _IOR('i', 0x00000000, unsigned long) ++#define LIRC_GET_FEATURES _IOR('i', 0x00000000, __u32) + +-#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, unsigned long) +-#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, unsigned long) +-#define LIRC_GET_SEND_CARRIER _IOR('i', 0x00000003, unsigned int) +-#define LIRC_GET_REC_CARRIER _IOR('i', 0x00000004, unsigned int) +-#define LIRC_GET_SEND_DUTY_CYCLE _IOR('i', 0x00000005, unsigned int) +-#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, unsigned int) +-#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, unsigned int) +- +-#define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, lirc_t) +-#define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, lirc_t) +- +-#define LIRC_GET_MIN_FILTER_PULSE _IOR('i', 0x0000000a, lirc_t) +-#define LIRC_GET_MAX_FILTER_PULSE _IOR('i', 0x0000000b, lirc_t) +-#define LIRC_GET_MIN_FILTER_SPACE _IOR('i', 0x0000000c, lirc_t) +-#define LIRC_GET_MAX_FILTER_SPACE _IOR('i', 0x0000000d, lirc_t) ++#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, __u32) ++#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, __u32) ++#define LIRC_GET_SEND_CARRIER _IOR('i', 0x00000003, __u32) ++#define LIRC_GET_REC_CARRIER _IOR('i', 0x00000004, __u32) ++#define LIRC_GET_SEND_DUTY_CYCLE _IOR('i', 0x00000005, __u32) ++#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, __u32) ++#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, __u32) ++ ++#define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, __u32) ++#define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, __u32) ++ ++#if 0 /* these ioctls are not used at the moment */ ++#define LIRC_GET_MIN_FILTER_PULSE _IOR('i', 0x0000000a, __u32) ++#define LIRC_GET_MAX_FILTER_PULSE _IOR('i', 0x0000000b, __u32) ++#define LIRC_GET_MIN_FILTER_SPACE _IOR('i', 0x0000000c, __u32) ++#define LIRC_GET_MAX_FILTER_SPACE _IOR('i', 0x0000000d, __u32) ++#endif + + /* code length in bits, currently only for LIRC_MODE_LIRCCODE */ +-#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, unsigned long) +- +-/* all values set should be reset by the driver when the device is +- reopened */ ++#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32) + +-/* obsolete: drivers only support one mode */ +-#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, unsigned long) +-/* obsolete: drivers only support one mode */ +-#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, unsigned long) ++#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, __u32) ++#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, __u32) + /* Note: these can reset the according pulse_width */ +-#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, unsigned int) +-#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, unsigned int) +-#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, unsigned int) +-#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, unsigned int) +-#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, unsigned int) +- +-/* a value of 0 disables all hardware timeouts and data should be +- reported as soon as possible */ +-#define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, lirc_t) ++#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, __u32) ++#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, __u32) ++#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, __u32) ++#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, __u32) ++#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, __u32) ++ ++/* ++ * when a timeout != 0 is set the driver will send a ++ * LIRC_MODE2_TIMEOUT data packet, otherwise LIRC_MODE2_TIMEOUT is ++ * never sent, timeout is disabled by default ++ */ ++#define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, __u32) ++ ++#if 0 /* these ioctls are not used at the moment */ + /* 1 enables, 0 disables timeout reports in MODE2 */ +-#define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, unsigned int) ++#define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, __u32) + +-/* pulses shorter than this are filtered out by hardware (software +- emulation in lirc_dev/lircd?) */ +-#define LIRC_SET_REC_FILTER_PULSE _IOW('i', 0x0000001a, lirc_t) +-/* spaces shorter than this are filtered out by hardware (software +- emulation in lirc_dev/lircd?) */ +-#define LIRC_SET_REC_FILTER_SPACE _IOW('i', 0x0000001b, lirc_t) +-/* if filter cannot be set independently for pulse/space, this should +- be used */ +-#define LIRC_SET_REC_FILTER _IOW('i', 0x0000001c, lirc_t) +- +-/* if enabled from the next key press on the driver will send +- LIRC_MODE2_FREQUENCY packets */ +-#define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, unsigned int) ++/* ++ * pulses shorter than this are filtered out by hardware (software ++ * emulation in lirc_dev?) ++ */ ++#define LIRC_SET_REC_FILTER_PULSE _IOW('i', 0x0000001a, __u32) ++/* ++ * spaces shorter than this are filtered out by hardware (software ++ * emulation in lirc_dev?) ++ */ ++#define LIRC_SET_REC_FILTER_SPACE _IOW('i', 0x0000001b, __u32) ++/* ++ * if filter cannot be set independantly for pulse/space, this should ++ * be used ++ */ ++#define LIRC_SET_REC_FILTER _IOW('i', 0x0000001c, __u32) ++ ++/* ++ * if enabled from the next key press on the driver will send ++ * LIRC_MODE2_FREQUENCY packets ++ */ ++#define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32) ++#endif + + /* + * to set a range use +@@ -157,8 +157,8 @@ typedef int lirc_t; + * LIRC_SET_REC_DUTY_CYCLE/LIRC_SET_REC_CARRIER with the upper bound + */ + +-#define LIRC_SET_REC_DUTY_CYCLE_RANGE _IOW('i', 0x0000001e, unsigned int) +-#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, unsigned int) ++#define LIRC_SET_REC_DUTY_CYCLE_RANGE _IOW('i', 0x0000001e, __u32) ++#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32) + + #define LIRC_NOTIFY_DECODE _IO('i', 0x00000020) + diff --git a/lirc-0.8.7-lirc_h_2.diff b/lirc-0.8.7-lirc_h_2.diff new file mode 100644 index 0000000..277cc3a --- /dev/null +++ b/lirc-0.8.7-lirc_h_2.diff @@ -0,0 +1,46 @@ +From 7b8fd7003663aad26c0b5f5f8aa30d0e57b343e3 Mon Sep 17 00:00:00 2001 +From: Jarod Wilson +Date: Tue, 13 Jul 2010 23:11:42 -0400 +Subject: [PATCH 2/2] these ioctl defines are needed by lircd + +Signed-off-by: Jarod Wilson +--- + drivers/lirc.h | 4 ---- + 1 files changed, 0 insertions(+), 4 deletions(-) + +diff --git a/drivers/lirc.h b/drivers/lirc.h +index 9edd0e5..32fcbf3 100644 +--- a/drivers/lirc.h ++++ b/drivers/lirc.h +@@ -97,12 +97,10 @@ + #define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, __u32) + #define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, __u32) + +-#if 0 /* these ioctls are not used at the moment */ + #define LIRC_GET_MIN_FILTER_PULSE _IOR('i', 0x0000000a, __u32) + #define LIRC_GET_MAX_FILTER_PULSE _IOR('i', 0x0000000b, __u32) + #define LIRC_GET_MIN_FILTER_SPACE _IOR('i', 0x0000000c, __u32) + #define LIRC_GET_MAX_FILTER_SPACE _IOR('i', 0x0000000d, __u32) +-#endif + + /* code length in bits, currently only for LIRC_MODE_LIRCCODE */ + #define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32) +@@ -123,7 +121,6 @@ + */ + #define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, __u32) + +-#if 0 /* these ioctls are not used at the moment */ + /* 1 enables, 0 disables timeout reports in MODE2 */ + #define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, __u32) + +@@ -148,7 +145,6 @@ + * LIRC_MODE2_FREQUENCY packets + */ + #define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32) +-#endif + + /* + * to set a range use +-- +1.7.1 + diff --git a/lirc.changes b/lirc.changes index 3518daa..eeaa48e 100644 --- a/lirc.changes +++ b/lirc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Feb 9 08:25:53 UTC 2011 - lnussel@suse.de + +- fix lircd not working with in-kernel drivers (bnc#668427) + ------------------------------------------------------------------- Mon Jan 10 08:08:24 UTC 2011 - lnussel@suse.de diff --git a/lirc.spec b/lirc.spec index 0a1cfea..3d65e32 100644 --- a/lirc.spec +++ b/lirc.spec @@ -65,6 +65,8 @@ Source9: 51-lirc.rules #Patch0: lirc-hw.diff #Patch1: lirc-sockets-in-var.diff Patch2: imon2_conf.patch +Patch3: lirc-0.8.7-lirc_h.diff +Patch4: lirc-0.8.7-lirc_h_2.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: udev Suggests: lirc-kmp @@ -126,6 +128,8 @@ the 'lirc' package has to be configured and started. %setup -q -n %{name}-%{version}%{?snapshot:-%snapshot} #%patch0 -p1 -b .hw %patch2 -p1 +%patch3 -p1 +%patch4 -p1 cp %{SOURCE8} . #find . -type d -name CVS -print0 | xargs -0 -- rm -rf #find . -name .cvsignore -print0 | xargs -0 -- rm -rf From 235095f42a2c376e5de1ba3a17832d821a5f73cd82c73b13dacbcaad09e83aba Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Wed, 9 Feb 2011 08:27:38 +0000 Subject: [PATCH 3/4] fix OBS-URL: https://build.opensuse.org/package/show/vdr/lirc?expand=0&rev=28 --- lirc-kernel.spec | 4 ++++ lirc.spec | 11 ++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lirc-kernel.spec b/lirc-kernel.spec index 909f0a9..e85348d 100644 --- a/lirc-kernel.spec +++ b/lirc-kernel.spec @@ -29,6 +29,8 @@ Release: 2 Source0: http://downloads.sourceforge.net/project/lirc/LIRC/%version/lirc-%version%{?snapshot:-%snapshot}.tar.bz2 Source1: Makefile.module Source2: Makefile.modsub +Patch0: imon2_conf.patch +Patch1: lirc-0.8.7-lirc_h.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build ExcludeArch: s390 s390x %suse_kernel_module_package -n lirc kdump um debug @@ -52,6 +54,8 @@ receivers for the serial port. %prep %setup -q -n lirc-%{version}%{?snapshot:-%snapshot} +%patch0 -p1 +%patch1 -p1 autoreconf -f -i PYTHON=/usr/bin/python \ ./configure --with-driver=all diff --git a/lirc.spec b/lirc.spec index 3d65e32..2ffdb26 100644 --- a/lirc.spec +++ b/lirc.spec @@ -62,10 +62,8 @@ Source5: sysconfig.lirc Source6: fix-remote-keys.pl Source8: README.SUSE Source9: 51-lirc.rules -#Patch0: lirc-hw.diff -#Patch1: lirc-sockets-in-var.diff -Patch2: imon2_conf.patch -Patch3: lirc-0.8.7-lirc_h.diff +Patch0: imon2_conf.patch +Patch1: lirc-0.8.7-lirc_h.diff Patch4: lirc-0.8.7-lirc_h_2.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: udev @@ -126,10 +124,9 @@ the 'lirc' package has to be configured and started. %prep %setup -q -n %{name}-%{version}%{?snapshot:-%snapshot} -#%patch0 -p1 -b .hw +%patch0 -p1 +%patch1 -p1 %patch2 -p1 -%patch3 -p1 -%patch4 -p1 cp %{SOURCE8} . #find . -type d -name CVS -print0 | xargs -0 -- rm -rf #find . -name .cvsignore -print0 | xargs -0 -- rm -rf From 08e0316806bf874a5ec72dc32e5330b4b03a0c791063dcd3d6535ff18fbf36c9 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Wed, 9 Feb 2011 08:33:48 +0000 Subject: [PATCH 4/4] fix OBS-URL: https://build.opensuse.org/package/show/vdr/lirc?expand=0&rev=29 --- lirc-kernel.spec | 4 ++-- lirc.spec | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lirc-kernel.spec b/lirc-kernel.spec index e85348d..880980f 100644 --- a/lirc-kernel.spec +++ b/lirc-kernel.spec @@ -29,8 +29,8 @@ Release: 2 Source0: http://downloads.sourceforge.net/project/lirc/LIRC/%version/lirc-%version%{?snapshot:-%snapshot}.tar.bz2 Source1: Makefile.module Source2: Makefile.modsub -Patch0: imon2_conf.patch -Patch1: lirc-0.8.7-lirc_h.diff +Patch0: lirc-0.8.7-lirc_h.diff +Patch1: lirc-0.8.7-lirc_h_2.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build ExcludeArch: s390 s390x %suse_kernel_module_package -n lirc kdump um debug diff --git a/lirc.spec b/lirc.spec index 2ffdb26..c5faee5 100644 --- a/lirc.spec +++ b/lirc.spec @@ -62,9 +62,9 @@ Source5: sysconfig.lirc Source6: fix-remote-keys.pl Source8: README.SUSE Source9: 51-lirc.rules -Patch0: imon2_conf.patch -Patch1: lirc-0.8.7-lirc_h.diff -Patch4: lirc-0.8.7-lirc_h_2.diff +Patch0: lirc-0.8.7-lirc_h.diff +Patch1: lirc-0.8.7-lirc_h_2.diff +Patch90: imon2_conf.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: udev Suggests: lirc-kmp @@ -126,7 +126,7 @@ the 'lirc' package has to be configured and started. %setup -q -n %{name}-%{version}%{?snapshot:-%snapshot} %patch0 -p1 %patch1 -p1 -%patch2 -p1 +%patch90 -p1 cp %{SOURCE8} . #find . -type d -name CVS -print0 | xargs -0 -- rm -rf #find . -name .cvsignore -print0 | xargs -0 -- rm -rf