tomh / rpms / lirc

Forked from rpms/lirc 6 years ago
Clone
Blob Blame History Raw
# Driver TODO, sometime maybe:
# - caraca (req: caraca, http://caraca.sf.net/)
# - irman: (req: libirman, http://lirc.sf.net/software/snapshots/)
# Other TODO:
# - move to -devel (?): irw, *mode2, others?
#   note: xmode2 inflicts a dependency on X, and smode2 on svgalib
#   - does someone actually need xmode2/smode2 for something?
# - don't run as root and/or create dedicated group, reduce fifo permissions?
# - Fixup /etc/lirc(m)d.conf %%ghost'ification, existence after erase etc.
# - Verify that the kernel modules work and correct /dev entries get created
#   automagically with proper permissions etc.

%{!?kver: %{expand: %%define kver %(uname -r)}}
%define ksrc %{_usrsrc}/kernels/%{kver}-%{_target_cpu}
%define mdir /lib/modules/%{kver}/extra

Name:           lirc
Version:        0.8.0
Release:        0.2.pre2%{?dist}
Summary:        The Linux Infrared Remote Control package

Group:          System Environment/Daemons
License:        GPL
URL:            http://www.lirc.org/
#Source0:        http://download.sourceforge.net/lirc/%{name}-%{version}.tar.bz2
Source0:        http://lirc.sf.net/software/snapshots/lirc-0.8.0pre2.tar.bz2
Source1:        %{name}.init
Source2:        %{name}.sysconfig
Patch0:         %{name}-optflags.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%if 0%{!?_with_modules:1}
BuildRequires:  %{__perl}
BuildRequires:  alsa-lib-devel
BuildRequires:  libXt-devel
BuildRequires:  libusb-devel
BuildRequires:  portaudio-devel >= 18
Build%{?_with_svgalib:Requires}%{!?_with_svgalib:Conflicts}: svgalib-devel
%endif
Requires(post): /sbin/chkconfig
Requires(post): /sbin/ldconfig
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/ldconfig

%description
LIRC is a package that allows you to decode and send infra-red and
other signals of many (but not all) commonly used remote controls.
Included applications include daemons which decode the received
signals as well as user space applications which allow controlling a
computer with a remote control.

%package        devel
Summary:        Development files for LIRC
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description    devel
%{summary}.

%package     -n kernel-module-%{name}-%{kver}
Summary:        Kernel modules for LIRC
Group:          System Environment/Kernel
Provides:       kernel-module
Provides:       kernel-module-%{name} = %{version}
%if 0%{?_with_modules:1}
BuildRequires:  kernel-devel-%{_target_cpu} = %{kver}
%endif
Requires:       %{name} = %{version}
Requires:       module-init-tools
Requires:       kernel-%{_target_cpu} = %{kver}
Requires:       udev

%description -n kernel-module-%{name}-%{kver}
LIRC kernel modules built for kernel
%{kver} (%{_target_cpu}).


%prep
%setup -q -n %{name}-%{version}pre2
%patch0 -p1

# *cough*
echo %{kver} | grep -q _FC5 && \
   sed -i -e 's/KERNEL_VERSION(2,\s*6,\s*15)/KERNEL_VERSION(2,6,14)/' \
   drivers/kcompat.h drivers/lirc_{imon,sasem}/lirc_*.c

chmod 644 contrib/*

sed -i -e 's/\r//' remotes/{imon,hercules}/lircd.conf*

# cmdir: unknown symbols (cmdir_{read,write}, set_tx_channels)
# gpio: missing drivers/media/video/{bttv,bttvp}.h in kernel-devel
for drv in cmdir gpio ; do
  sed -i -e "/^\\s*(lirc_dev lirc_$drv)/d" -e "/^\\s*lirc_$drv/d" configure*
done

touch -r aclocal.m4 configure.in # avoid autofoo re-run


%build
%configure \
  --disable-static \
  --disable-dependency-tracking \
  --enable-debug \
  --enable-sandboxed \
  --with-syslog=LOG_DAEMON \
%if 0%{?_with_modules:1}
  --with-kerneldir=%{ksrc} \
  --with-moduledir=%{mdir}/%{name} \
  --with-driver=all
make %{?_smp_mflags} -C drivers
%else
  --with-driver=userspace
make %{?_smp_mflags}
%endif


%install
rm -rf $RPM_BUILD_ROOT __docs

%if 0%{?_with_modules:1}
make install DESTDIR=$RPM_BUILD_ROOT -C drivers
# executable here to allow stripping, fixed later in %%files
chmod +x $RPM_BUILD_ROOT%{mdir}/%{name}/*.ko

%else
make install DESTDIR=$RPM_BUILD_ROOT
%{!?_with_svgalib:rm $RPM_BUILD_ROOT%{_mandir}/man1/smode2.1*}
install -Dpm 755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/lirc
%{__perl} -pi -e \
  's|/etc/|%{_sysconfdir}/|g ;
   s|/var/|%{_localstatedir}/|g ;
   s|/usr/sbin/|%{_sbindir}/|g' \
  $RPM_BUILD_ROOT%{_initrddir}/lirc
install -Dpm 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/lirc
mkdir __docs
cp -pR doc contrib __docs
cd __docs
rm -rf doc/Makefile* doc/.libs doc/man* contrib/lirc.* contrib/sendxevent.c
cd ..
touch $RPM_BUILD_ROOT%{_sysconfdir}/lirc{d,md}.conf
install -dm 755 $RPM_BUILD_ROOT/dev
touch $RPM_BUILD_ROOT/dev/lirc{d,m}
rm $RPM_BUILD_ROOT%{_libdir}/liblirc_client.la
%endif


%clean
rm -rf $RPM_BUILD_ROOT


%post
/sbin/ldconfig
/sbin/chkconfig --add lirc

%post -n kernel-module-%{name}-%{kver}
depmod -ae -F /boot/System.map-%{kver} %{kver} >/dev/null || :

%preun
if [ $1 -eq 0 ] ; then
  %{_initrddir}/lirc stop >/dev/null || :
  /sbin/chkconfig --del lirc || :
fi

%postun
/sbin/ldconfig
if [ $1 -gt 0 ] ; then
  %{_initrddir}/lirc try-restart >/dev/null || :
fi

%postun -n kernel-module-%{name}-%{kver}
depmod -ae -F /boot/System.map-%{kver} %{kver} >/dev/null || :


%if 0%{!?_with_modules:1}
%files
%defattr(-,root,root,-)
%doc ANNOUNCE AUTHORS ChangeLog COPYING NEWS README TODO remotes __docs/*
%ghost %config(noreplace) %{_sysconfdir}/lirc*d.conf
%config(noreplace) %{_sysconfdir}/sysconfig/lirc
%{_initrddir}/lirc
%{_bindir}/*ir*
%{_bindir}/*mode2
%{_sbindir}/lirc*d
%{_libdir}/liblirc_client.so.*
%{_mandir}/man1/*ir*.1*
%{_mandir}/man1/*mode2*.1*
%{_mandir}/man8/lirc*d.8*
%ghost /dev/lirc*

%files devel
%defattr(-,root,root,-)
%{_includedir}/lirc/
%{_libdir}/liblirc_client.so
%endif

%if 0%{?_with_modules:1}
%files -n kernel-module-%{name}-%{kver}
%defattr(644,root,root,755)
%{mdir}/
%endif


%changelog
* Wed Dec 14 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.8.0-0.2.pre2
- 0.8.0pre2, kernel >= 2.6.15 USB patch applied upstream.
- lirc_clientd renamed to lircrcd.

* Tue Nov 29 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.8.0-0.2.pre1
- Pull security fix for the new lirc_clientd from upstream CVS, and
  while at it, some other useful post-0.8.0pre1 changes.
- Kernel >= 2.6.15 patchwork based on initial patch from Andy Burns (#172404).
- Disable lirc_cmdir kernel module (unknown symbols).
- Adapt to modular X.Org packaging.

* Wed Nov  9 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.8.0-0.1.pre1
- 0.8.0pre1, usage message patch applied upstream.

* Sun Oct 30 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.7.3-0.1.pre1
- 0.7.3pre1, "no device" crash fix applied upstream.
- Fix lircd and lircmd usage messages.

* Wed Aug 31 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.7.2-3
- Make the init script startup earlier and shutdown later by default.

* Sun Aug 14 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.7.2-2
- 0.7.2, patch to fix crash at startup when no device is specified.
- Enable audio input driver support (portaudio).
- Improve package description.
- Don't ship static libraries.
- Drop pre Fedora Extras backwards compatibility hacks.
- Make svgalib support (smode2) build conditional, disabled by default.
- Simplify module package build (still work in progress, disabled by default).
- Other minor specfile cleanups and maintainability improvements.

* Thu May 26 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.7.1-3
- Adjust kernel module build for FC4 and add hauppauge, igorplugusb, imon,
  sasem, and streamzap to the list of modules to build.  This stuff is still
  disabled by default, rebuild with "--with modules --target $arch" to enable.

* Sun Apr 17 2005 Ville Skyttä <ville.skytta at iki.fi> - 0.7.1-2
- 0.7.1.

* Fri Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
- rebuilt

* Sun Dec  5 2004 Ville Skyttä <ville.skytta at iki.fi> - 0.7.0-1
- Update to 0.7.0; major rework of the package:
- Change default driver to "any".
- Add -devel subpackage.
- Improve init script, add %%{_sysconfdir}/sysconfig/lirc for options.
- Rename init script to "lirc" to follow upstream; the script is not only
  for lircd, but lircmd as well.
- Log to syslog instead of separate log file.
- %%ghost'ify /dev/lirc*.
- Build kernel modules when rebuilt with "--with kmod".  This stuff was mostly
  borrowed from Axel Thimm's packages, and is not really ready for FC3+ yet.
- Enable debugging features.
- Specfile cleanups.

* Mon Aug 30 2004 Matthias Saou <http://freshrpms.net/> 0.6.6-3
- Added missing /sbin/ldconfig calls.

* Wed May 19 2004 Matthias Saou <http://freshrpms.net/> 0.6.6-2
- Rebuild for Fedora Core 2... this spec file still _really_ needs reworking!

* Fri Nov  7 2003 Matthias Saou <http://freshrpms.net/> 0.6.6-2
- Rebuild for Fedora Core 1... this spec file _really_ needs reworking!

* Mon Mar 31 2003 Matthias Saou <http://freshrpms.net/>
- Rebuilt for Red Hat Linux 9... this spec file needs some reworking!

* Mon Oct  7 2002 Matthias Saou <http://freshrpms.net/>
- Update to 0.6.6 final.

* Mon Sep 16 2002 Matthias Saou <http://freshrpms.net/>
- Updated to latest pre-version.
- Kernel modules still need to be compiled separately and with a custom
  kernel :-(

* Thu May  2 2002 Matthias Saou <http://freshrpms.net/>
- Update to 0.6.5.
- Rebuilt against Red Hat Linux 7.3.
- Added the %%{?_smp_mflags} expansion.

* Thu Oct  4 2001 Matthias Saou <http://freshrpms.net/>
- Initial RPM release.