SHA256
1
0
forked from pool/lirc

4 Commits

Author SHA256 Message Date
6b74115df2 Accepting request 1328946 from vdr
OBS-URL: https://build.opensuse.org/request/show/1328946
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lirc?expand=0&rev=80
2026-01-26 09:43:51 +00:00
Stefan Seyfried
0a40cb3389 - Add lirc.sysusers to replace useradd/groupadd/usermod for transactional
updates (jsc#PED-14918)
- Add lirc-rpmlintfix.patch to make rpmlint happy
- Add %check from Fedora (with some omission for 15.6 to pass)

OBS-URL: https://build.opensuse.org/package/show/vdr/lirc?expand=0&rev=122
2026-01-23 18:47:08 +00:00
9f2d033ac9 Accepting request 1245277 from vdr
OBS-URL: https://build.opensuse.org/request/show/1245277
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lirc?expand=0&rev=79
2025-02-12 20:31:10 +00:00
Stefan Seyfried
9846bb6ea7 - Update to version 0.10.2
* Vendor latest linux/lirc.h and handle lirc overflows.
  * mode2: support lirc overflows, carrier reports, and timeouts
  * Lots of fixes for python 3.
  * irdroid: fix hang after transmit
  * The deprecated lircd --uinput option is dropped. Use
    lircd-uinput(8) instead.
  * The deprecated generation of lirc.hwdb is dropped. Use
    the configs/*.conf or the python database.py instead.
  * Added a new lirc-postinstall scripts which updates
    configuration and docs in final install destination (#286).
  * Using LIRC_IRDB_CACHE_ID lirc now supports reproducible
    builds. See #301 and updated irdb-get(1) manpage.
  * lircd: Support for the GOLDSTAR flag in lircd.conf(5) is dropped.
  * plugins: srm7500libusb: Major overhaul.
  * plugins:girs: Drop support for LIRC_SET_REC_TIMEOUT, add new
    driver option ending_timeout (#302).
- Drop pyyaml-60-compatibility.patch: merged upstream.
- Drop lirc-autoconf-py310.patch: no longer needed.
- Rebase harden_lircd.service.patch and reproducible.patch.
- Drop rcFOO symlinks.

# Happens to fix build with Python 3.13

OBS-URL: https://build.opensuse.org/package/show/vdr/lirc?expand=0&rev=120
2025-02-12 09:25:20 +00:00
10 changed files with 115 additions and 15495 deletions

View File

@@ -1,7 +1,7 @@
Index: lirc-0.10.1/systemd/lircd.service Index: lirc-0.10.2/systemd/lircd.service
=================================================================== ===================================================================
--- lirc-0.10.1.orig/systemd/lircd.service --- lirc-0.10.2.orig/systemd/lircd.service
+++ lirc-0.10.1/systemd/lircd.service +++ lirc-0.10.2/systemd/lircd.service
@@ -6,6 +6,16 @@ Wants=lircd-setup.service @@ -6,6 +6,16 @@ Wants=lircd-setup.service
After=network.target lircd-setup.service After=network.target lircd-setup.service
@@ -16,6 +16,6 @@ Index: lirc-0.10.1/systemd/lircd.service
+RestrictRealtime=true +RestrictRealtime=true
+# end of automatic additions +# end of automatic additions
+# +#
Type=simple Type=notify
RuntimeDirectory=lirc
ExecStart=/usr/sbin/lircd --nodaemon ExecStart=/usr/sbin/lircd --nodaemon
; User=lirc

Binary file not shown.

BIN
lirc-0.10.2.tar.bz2 LFS Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

19
lirc-rpmlintfix.patch Normal file
View File

@@ -0,0 +1,19 @@
diff --git a/doc/lirc-data2table b/doc/lirc-data2table
index 14c492b..9f79327 100644
--- a/doc/lirc-data2table
+++ b/doc/lirc-data2table
@@ -1,3 +1,4 @@
+#!/usr/bin/python3
''' Create the lirc Supported Devices Table using data in hardware.yaml '''
import glob
diff --git a/tools/lirc-postinstall b/tools/lirc-postinstall
index a0d0830..ccdd169 100755
--- a/tools/lirc-postinstall
+++ b/tools/lirc-postinstall
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/bash
#
# Perform post-install updates after lirc or externak driver install:
# - Create the drivers.yaml list from the configs directory

View File

@@ -1,3 +1,36 @@
-------------------------------------------------------------------
Fri Jan 23 10:48:40 UTC 2026 - Bernhard Wiedemann <bwiedemann@suse.com>
- Add lirc.sysusers to replace useradd/groupadd/usermod for transactional
updates (jsc#PED-14918)
- Add lirc-rpmlintfix.patch to make rpmlint happy
- Add %check from Fedora
-------------------------------------------------------------------
Wed Jan 29 15:21:16 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 0.10.2
* Vendor latest linux/lirc.h and handle lirc overflows.
* mode2: support lirc overflows, carrier reports, and timeouts
* Lots of fixes for python 3.
* irdroid: fix hang after transmit
* The deprecated lircd --uinput option is dropped. Use
lircd-uinput(8) instead.
* The deprecated generation of lirc.hwdb is dropped. Use
the configs/*.conf or the python database.py instead.
* Added a new lirc-postinstall scripts which updates
configuration and docs in final install destination (#286).
* Using LIRC_IRDB_CACHE_ID lirc now supports reproducible
builds. See #301 and updated irdb-get(1) manpage.
* lircd: Support for the GOLDSTAR flag in lircd.conf(5) is dropped.
* plugins: srm7500libusb: Major overhaul.
* plugins:girs: Drop support for LIRC_SET_REC_TIMEOUT, add new
driver option ending_timeout (#302).
- Drop pyyaml-60-compatibility.patch: merged upstream.
- Drop lirc-autoconf-py310.patch: no longer needed.
- Rebase harden_lircd.service.patch and reproducible.patch.
- Drop rcFOO symlinks.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Mar 26 08:47:23 UTC 2024 - pgajdos@suse.com Tue Mar 26 08:47:23 UTC 2024 - pgajdos@suse.com

View File

@@ -1,7 +1,7 @@
# #
# spec file for package lirc # spec file for package lirc
# #
# Copyright (c) 2024 SUSE LLC # Copyright (c) 2025 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
%define _rundir /run %define _rundir /run
%endif %endif
Name: lirc Name: lirc
Version: 0.10.1 Version: 0.10.2
Release: 0 Release: 0
Summary: Tools for Infrared Receivers Summary: Tools for Infrared Receivers
License: GPL-2.0-or-later License: GPL-2.0-or-later
@@ -31,16 +31,13 @@ Group: Hardware/Other
URL: http://www.lirc.org/ URL: http://www.lirc.org/
Source0: https://downloads.sourceforge.net/project/lirc/LIRC/%{version}/lirc-%{version}.tar.bz2 Source0: https://downloads.sourceforge.net/project/lirc/LIRC/%{version}/lirc-%{version}.tar.bz2
Source1: baselibs.conf Source1: baselibs.conf
Source9: %{name}.sysusers
Patch0: reproducible.patch Patch0: reproducible.patch
Patch1: harden_irexec.service.patch Patch1: harden_irexec.service.patch
Patch2: harden_lircd-uinput.service.patch Patch2: harden_lircd-uinput.service.patch
Patch3: harden_lircd.service.patch Patch3: harden_lircd.service.patch
Patch4: harden_lircmd.service.patch Patch4: harden_lircmd.service.patch
# PATCH-FIX-UPSTREAM pyyaml-60-compatibility.patch sht#lirc#365 mcepl@suse.com Patch5: lirc-rpmlintfix.patch
# Makes the package compatible with PyYAML 6.0+
Patch5: pyyaml-60-compatibility.patch
# PATCH-FIX-OPENSUSE lirc-autoconf-py310.patch, ran autoreconf for finding python 3.10
Patch6: lirc-autoconf-py310.patch
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: gobject-introspection BuildRequires: gobject-introspection
@@ -64,6 +61,11 @@ BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(udev) BuildRequires: pkgconfig(udev)
BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x11)
BuildRequires: sysuser-tools
# for tests:
BuildRequires: expect
BuildRequires: socat
%sysusers_requires
Requires: udev Requires: udev
Recommends: lirc-remotes Recommends: lirc-remotes
Suggests: lirc-kmp Suggests: lirc-kmp
@@ -164,6 +166,7 @@ License: GPL-2.0-or-later
Group: Hardware/Other Group: Hardware/Other
Requires: %{name}-core = %{version}-%{release} Requires: %{name}-core = %{version}-%{release}
Recommends: lirc-core = %{version} Recommends: lirc-core = %{version}
BuildArch: noarch
%description disable-kernel-rc %description disable-kernel-rc
Udev rule which disables the kernel built-in handling of infrared devices Udev rule which disables the kernel built-in handling of infrared devices
@@ -219,13 +222,16 @@ sed -i -e "1{s|/usr/bin/env bash|$(which bash)|}" \
%build %build
%configure --enable-devinput %configure --enable-devinput
make %{?_smp_mflags} make %{?_smp_mflags}
%sysusers_generate_pre %{SOURCE9} %{name} %{name}.conf
%install %install
%make_install %make_install
chmod a+x %{buildroot}%{_bindir}/pronto2lirc chmod a+x %{buildroot}%{_bindir}/pronto2lirc
%if 0%{?suse_version} < 1600
# Create backward compatibility symlink # Create backward compatibility symlink
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}d ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}d
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}md ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}md
%endif
mkdir -p %{buildroot}%{_tmpfilesdir} mkdir -p %{buildroot}%{_tmpfilesdir}
echo "d /run/lirc 0755 root root 10d" \ echo "d /run/lirc 0755 root root 10d" \
> %{buildroot}/%{_tmpfilesdir}/lirc.conf > %{buildroot}/%{_tmpfilesdir}/lirc.conf
@@ -238,13 +244,14 @@ install -Dpm 644 contrib/60-lirc.rules \
install -Dpm 644 contrib/99-remote-control-lirc.rules \ install -Dpm 644 contrib/99-remote-control-lirc.rules \
%{buildroot}%{_udevrulesdir}/99-remote-control-lirc.rules %{buildroot}%{_udevrulesdir}/99-remote-control-lirc.rules
# get rid of libtool file # get rid of libtool file
find %{buildroot} -type f -name "*.la" -delete -print find %{buildroot}%{_libdir} -type f -name "*.la" -delete -print
# #
# #
# Don't install documentation in a non standard directory # Don't install documentation in a non standard directory
rm -rf %{buildroot}%{_datadir}/doc rm -rf %{buildroot}%{_datadir}/{,%{name}/}doc
# hide python dependency # hide python dependency
chmod a+x %{buildroot}%{_bindir}/pronto2lirc chmod a+x %{buildroot}%{_bindir}/pronto2lirc
install -D -m 0644 %{SOURCE9} %{buildroot}%{_sysusersdir}/%{name}.conf
mkdir -p %{buildroot}%{_rundir} mkdir -p %{buildroot}%{_rundir}
# Remove old %%{_rundir}; deprecated but still installed by lirc, which is not looking for it # Remove old %%{_rundir}; deprecated but still installed by lirc, which is not looking for it
rm -rf %{buildroot}%{_localstatedir} rm -rf %{buildroot}%{_localstatedir}
@@ -263,6 +270,20 @@ rm -rf %{buildroot}/%{_datadir}/lirc/lirc-%{version}.tar.gz %{buildroot}/%{_data
%python3_fix_shebang_path %{buildroot}%{python3_sitearch}/lirc-setup/* %python3_fix_shebang_path %{buildroot}%{python3_sitearch}/lirc-setup/*
%endif %endif
%check
%if 0%{?suse_version} >= 1600
if test -d python-pkg/tests; then
cd python-pkg/tests; python3 -m unittest discover || exit 1
cd $OLDPWD
fi
%endif
echo "Plugins: 34" > summary.ok
echo "Drivers: 45" >> summary.ok
echo "Errors: 0" >> summary.ok
tools/lirc-lsplugins -U plugins/.libs -s > summary
diff -w summary summary.ok || exit 1
%post -n liblirc_client0 -p /sbin/ldconfig %post -n liblirc_client0 -p /sbin/ldconfig
%post -n liblirc_driver0 -p /sbin/ldconfig %post -n liblirc_driver0 -p /sbin/ldconfig
%post -n liblirc0 -p /sbin/ldconfig %post -n liblirc0 -p /sbin/ldconfig
@@ -273,13 +294,6 @@ rm -rf %{buildroot}/%{_datadir}/lirc/lirc-%{version}.tar.gz %{buildroot}/%{_data
%postun -n libirrecord0 -p /sbin/ldconfig %postun -n libirrecord0 -p /sbin/ldconfig
%pre core %pre core
getent group lirc >/dev/null || groupadd -r lirc
getent passwd lirc >/dev/null || \
useradd -r -g lirc -d %{_localstatedir}/log/lirc -s /sbin/nologin \
-c "LIRC daemon user, runs lircd." lirc
usermod -a -G dialout lirc &> /dev/null || :
usermod -a -G lock lirc &> /dev/null || :
usermod -a -G input lirc &> /dev/null || :
%service_add_pre lircd.service lircmd.service lircd-uinput.service lircd-setup.service lircd.socket irexec.service %service_add_pre lircd.service lircmd.service lircd-uinput.service lircd-setup.service lircd.socket irexec.service
%post core %post core
@@ -295,22 +309,20 @@ usermod -a -G input lirc &> /dev/null || :
%files core %files core
%license COPYING %license COPYING
%doc AUTHORS ChangeLog NEWS README %doc AUTHORS ChangeLog NEWS README
%doc doc/html doc/lirc.hwdb doc/irxevent.keys %doc doc/irxevent.keys
%doc contrib %doc contrib
%dir %{_datadir}/%{name} %dir %{_datadir}/%{name}
%dir %{_libdir}/%{name} %dir %{_libdir}/%{name}
%dir %ghost %{_rundir}/lirc %dir %ghost %attr(0755,root,root) %{_rundir}/lirc
%ghost %{_rundir}/lirc/lircm %ghost %attr(0644,root,root) %{_rundir}/lirc/lircm
%ghost %{_rundir}/lirc/lircd %ghost %attr(0644,root,root) %{_rundir}/lirc/lircd
%exclude %{_bindir}/irxevent %exclude %{_bindir}/irxevent
%exclude %{_bindir}/xmode2 %exclude %{_bindir}/xmode2
%{_bindir}/* %{_bindir}/*
%{_datadir}/%{name}/lirc.hwdb
%{_sbindir}/* %{_sbindir}/*
%{_udevdir}/rules.d/60-%{name}.rules %{_udevdir}/rules.d/60-%{name}.rules
%{_libdir}/%{name}/plugins %{_libdir}/%{name}/plugins
%exclude %{_libdir}/%{name}/plugins/ftdi.so %exclude %{_libdir}/%{name}/plugins/ftdi.so
%exclude %{_libdir}/%{name}/plugins/audio.so
%exclude %{_mandir}/man1/irxevent.* %exclude %{_mandir}/man1/irxevent.*
%exclude %{_mandir}/man1/xmode2.* %exclude %{_mandir}/man1/xmode2.*
%{_mandir}/man1/* %{_mandir}/man1/*
@@ -328,6 +340,7 @@ usermod -a -G input lirc &> /dev/null || :
%config(noreplace,missingok) %{_sysconfdir}/%{name}/irexec.lircrc %config(noreplace,missingok) %{_sysconfdir}/%{name}/irexec.lircrc
%{_unitdir}/lirc* %{_unitdir}/lirc*
%{_unitdir}/irexec.service %{_unitdir}/irexec.service
%{_sysusersdir}/%{name}.conf
%{_tmpfilesdir}/lirc.conf %{_tmpfilesdir}/lirc.conf
%files devel %files devel

6
lirc.sysusers Normal file
View File

@@ -0,0 +1,6 @@
#Type Name ID GECOS Home directory Shell
g lirc - - - -
u lirc - "LIRC daemon user, runs lircd" /log/lirc -
m lirc dialout
m lirc lock
m lirc input

View File

@@ -1,53 +0,0 @@
---
python-pkg/lirc/database.py | 8 ++++----
tools/check_configs.py | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
--- a/python-pkg/lirc/database.py
+++ b/python-pkg/lirc/database.py
@@ -66,7 +66,7 @@ def _load_kerneldrivers(configdir):
'''
with open(os.path.join(configdir, "kernel-drivers.yaml")) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader=yaml.Loader)
drivers = cf['drivers'].copy()
for driver in cf['drivers']:
if driver == 'default':
@@ -132,14 +132,14 @@ class Database(object):
yamlpath = configdir
db = {}
with open(os.path.join(yamlpath, "confs_by_driver.yaml")) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader=yaml.Loader)
db['lircd_by_driver'] = cf['lircd_by_driver'].copy()
db['lircmd_by_driver'] = cf['lircmd_by_driver'].copy()
db['kernel-drivers'] = _load_kerneldrivers(configdir)
db['drivers'] = db['kernel-drivers'].copy()
with open(os.path.join(yamlpath, "drivers.yaml")) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader=yaml.Loader)
db['drivers'].update(cf['drivers'].copy())
for key, d in db['drivers'].items():
d['id'] = key
@@ -158,7 +158,7 @@ class Database(object):
configs = {}
for path in sorted(glob.glob(configdir + '/*.conf')):
with open(path) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader=yaml.Loader)
configs[cf['config']['id']] = cf['config']
db['configs'] = configs
self.db = db
--- a/tools/check_configs.py
+++ b/tools/check_configs.py
@@ -9,7 +9,7 @@ def main():
configs = {}
for path in glob.glob('*.conf'):
with open(path) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader=yaml.Loader)
if cf['config']['id'] + '.conf' != path:
print( "Id: %s, path: %s" % (cf['config']['id'], path))
configs[cf['config']['id']] = cf['config']

View File

@@ -3,11 +3,11 @@ https://sourceforge.net/p/lirc/git/merge-requests/33/
https://sourceforge.net/p/lirc/git/merge-requests/34/ https://sourceforge.net/p/lirc/git/merge-requests/34/
https://sourceforge.net/p/lirc/git/merge-requests/36/ https://sourceforge.net/p/lirc/git/merge-requests/36/
Index: lirc-0.10.1/tools/lirc-lsplugins.cpp Index: lirc-0.10.2/tools/lirc-lsplugins.cpp
=================================================================== ===================================================================
--- lirc-0.10.1.orig/tools/lirc-lsplugins.cpp --- lirc-0.10.2.orig/tools/lirc-lsplugins.cpp
+++ lirc-0.10.1/tools/lirc-lsplugins.cpp +++ lirc-0.10.2/tools/lirc-lsplugins.cpp
@@ -415,10 +415,9 @@ static void print_header(void) @@ -413,10 +413,9 @@ static void print_header(void)
static void print_yaml_header(void) static void print_yaml_header(void)
{ {
static const char* const YAML_HEADER = static const char* const YAML_HEADER =
@@ -20,23 +20,23 @@ Index: lirc-0.10.1/tools/lirc-lsplugins.cpp
printf("\ndrivers:\n"); printf("\ndrivers:\n");
} }
Index: lirc-0.10.1/python-pkg/lirc/database.py Index: lirc-0.10.2/python-pkg/lirc/database.py
=================================================================== ===================================================================
--- lirc-0.10.1.orig/python-pkg/lirc/database.py --- lirc-0.10.2.orig/python-pkg/lirc/database.py
+++ lirc-0.10.1/python-pkg/lirc/database.py +++ lirc-0.10.2/python-pkg/lirc/database.py
@@ -156,7 +156,7 @@ class Database(object): @@ -160,7 +160,7 @@ class Database(object):
d['device_hint'] = hint d['device_hint'] = hint
configs = {} configs = {}
- for path in glob.glob(configdir + '/*.conf'): - for path in glob.glob(configdir + '/*.conf'):
+ for path in sorted(glob.glob(configdir + '/*.conf')): + for path in sorted(glob.glob(configdir + '/*.conf')):
with open(path) as f: with open(path) as f:
cf = yaml.load(f.read()) cf = yaml.load(f.read(), Loader = Loader)
configs[cf['config']['id']] = cf['config'] configs[cf['config']['id']] = cf['config']
Index: lirc-0.10.1/tools/irdb-get Index: lirc-0.10.2/tools/irdb-get
=================================================================== ===================================================================
--- lirc-0.10.1.orig/tools/irdb-get --- lirc-0.10.2.orig/tools/irdb-get
+++ lirc-0.10.1/tools/irdb-get +++ lirc-0.10.2/tools/irdb-get
@@ -9,7 +9,6 @@ import fnmatch @@ -9,7 +9,6 @@ import fnmatch
import os import os
import os.path import os.path
@@ -45,26 +45,12 @@ Index: lirc-0.10.1/tools/irdb-get
import urllib.error # pylint: disable=no-name-in-module,F0401,E0611 import urllib.error # pylint: disable=no-name-in-module,F0401,E0611
import urllib.request # pylint: disable=no-name-in-module,F0401,E0611 import urllib.request # pylint: disable=no-name-in-module,F0401,E0611
@@ -193,7 +192,7 @@ def do_yaml_config(): @@ -198,7 +197,7 @@ def do_yaml_config():
lircmd_by_driver[driver].append("%s/%s" % (tokens[0], tokens[2])) lircmd_by_driver[driver].append("%s/%s" % (tokens[0], tokens[2]))
print("#") print("#")
- print("# Created by 'irdb-get yaml-config' at " + time.ctime()) - print("# Created by 'irdb-get yaml-config' as of " + CACHE_ID)
+ print("# Created by 'irdb-get yaml-config'") + print("# Created by 'irdb-get yaml-config'")
print("#") print("#")
print("\nlircd_by_driver:") print("\nlircd_by_driver:")
print_yaml_dict(lircd_by_driver) print_yaml_dict(lircd_by_driver)
Index: lirc-0.10.1/tools/lirc-make-devinput
===================================================================
--- lirc-0.10.1.orig/tools/lirc-make-devinput
+++ lirc-0.10.1/tools/lirc-make-devinput
@@ -61,8 +61,7 @@ if test -n "$lirc_map"; then
fi
-echo "# Generated by $(basename $0) on $(uname -r)"
-echo "# Date: $(date)"
+echo "# Generated by $(basename $0)"
cat <<EOF
begin remote