File project.diff of Package lirc

--- lirc.changes.orig
+++ lirc.changes
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+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
--- lirc.spec.orig
+++ lirc.spec
@@ -31,11 +31,13 @@ Group:          Hardware/Other
 URL:            http://www.lirc.org/
 Source0:        https://downloads.sourceforge.net/project/lirc/LIRC/%{version}/lirc-%{version}.tar.bz2
 Source1:        baselibs.conf
+Source9:        %{name}.sysusers
 Patch0:         reproducible.patch
 Patch1:         harden_irexec.service.patch
 Patch2:         harden_lircd-uinput.service.patch
 Patch3:         harden_lircd.service.patch
 Patch4:         harden_lircmd.service.patch
+Patch5:         lirc-rpmlintfix.patch
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  gobject-introspection
@@ -59,6 +61,11 @@ BuildRequires:  pkgconfig(sm)
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:  pkgconfig(udev)
 BuildRequires:  pkgconfig(x11)
+BuildRequires:  sysuser-tools
+# for tests:
+BuildRequires:  expect
+BuildRequires:  socat
+%sysusers_requires
 Requires:       udev
 Recommends:     lirc-remotes
 Suggests:       lirc-kmp
@@ -159,6 +166,7 @@ License:        GPL-2.0-or-later
 Group:          Hardware/Other
 Requires:       %{name}-core = %{version}-%{release}
 Recommends:     lirc-core = %{version}
+BuildArch:      noarch
 
 %description  disable-kernel-rc
 Udev rule which disables the kernel built-in handling of infrared devices
@@ -214,6 +222,7 @@ sed -i -e "1{s|/usr/bin/env bash|$(which
 %build
 %configure --enable-devinput
 make %{?_smp_mflags}
+%sysusers_generate_pre %{SOURCE9} %{name} %{name}.conf
 
 %install
 %make_install
@@ -235,13 +244,14 @@ install -Dpm 644 contrib/60-lirc.rules \
 install -Dpm 644 contrib/99-remote-control-lirc.rules \
     %{buildroot}%{_udevrulesdir}/99-remote-control-lirc.rules
 # 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
 rm -rf %{buildroot}%{_datadir}/{,%{name}/}doc
 # hide python dependency
 chmod a+x %{buildroot}%{_bindir}/pronto2lirc
+install -D -m 0644 %{SOURCE9} %{buildroot}%{_sysusersdir}/%{name}.conf
 mkdir -p %{buildroot}%{_rundir}
 # Remove old %%{_rundir}; deprecated but still installed by lirc, which is not looking for it
 rm -rf %{buildroot}%{_localstatedir}
@@ -260,6 +270,20 @@ rm -rf %{buildroot}/%{_datadir}/lirc/lir
 %python3_fix_shebang_path %{buildroot}%{python3_sitearch}/lirc-setup/*
 %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_driver0 -p /sbin/ldconfig
 %post -n liblirc0 -p /sbin/ldconfig
@@ -270,13 +294,6 @@ rm -rf %{buildroot}/%{_datadir}/lirc/lir
 %postun -n libirrecord0 -p /sbin/ldconfig
 
 %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
 
 %post core
@@ -296,9 +313,9 @@ usermod -a -G input lirc &> /dev/null ||
 %doc contrib
 %dir %{_datadir}/%{name}
 %dir %{_libdir}/%{name}
-%dir %ghost %{_rundir}/lirc
-%ghost %{_rundir}/lirc/lircm
-%ghost %{_rundir}/lirc/lircd
+%dir %ghost %attr(0755,root,root) %{_rundir}/lirc
+%ghost %attr(0644,root,root) %{_rundir}/lirc/lircm
+%ghost %attr(0644,root,root) %{_rundir}/lirc/lircd
 %exclude %{_bindir}/irxevent
 %exclude %{_bindir}/xmode2
 %{_bindir}/*
@@ -323,6 +340,7 @@ usermod -a -G input lirc &> /dev/null ||
 %config(noreplace,missingok) %{_sysconfdir}/%{name}/irexec.lircrc
 %{_unitdir}/lirc*
 %{_unitdir}/irexec.service
+%{_sysusersdir}/%{name}.conf
 %{_tmpfilesdir}/lirc.conf
 
 %files devel
openSUSE Build Service is sponsored by