Compare commits

...

No commits in common. "c8" and "c9" have entirely different histories.
c8 ... c9

6 changed files with 390 additions and 63 deletions

View File

@ -1 +1 @@
3d291f83deebd254b23fcd5fa4ef108afe94e82d SOURCES/fprintd-v1.90.9.tar.gz
356c91c4efa14b8118de17bc91bb4d25dfcd8591 SOURCES/fprintd-v1.94.0.tar.gz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/fprintd-v1.90.9.tar.gz
SOURCES/fprintd-v1.94.0.tar.gz

View File

@ -1,13 +0,0 @@
diff --git a/meson.build b/meson.build
index c1f40f3..c80fb9d 100644
--- a/meson.build
+++ b/meson.build
@@ -141,7 +141,7 @@ python3_available_modules = []
foreach module, required : python3_test_modules
if required and run_command(python3, '-c', 'import @0@'.format(module)).returncode() != 0
- error('Python3 module \'' + module + '\' required by test suite not found')
+ warning('Python3 module \'' + module + '\' required by test suite not found')
endif
endforeach

153
SOURCES/157.patch Normal file
View File

@ -0,0 +1,153 @@
From 5d7422e17aaaf3a0c09fc4a3c8f6fa67371d3130 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Wed, 25 Aug 2021 13:43:30 +0200
Subject: [PATCH 1/4] tests: Cleanup inhibitor fifo properly
Unlink the fifo itself and use addCleanup to close it.
---
tests/fprintd.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index a274793..f0dbc7b 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -601,7 +601,9 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
fifo_path = os.path.join(self.tmpdir, 'logind_inhibit_fifo')
os.mkfifo(fifo_path)
+ self.addCleanup(os.unlink, fifo_path)
self.logind_inhibit_fifo = os.open(fifo_path, os.O_RDONLY | os.O_NONBLOCK | os.O_CLOEXEC)
+ self.addCleanup(os.close, self.logind_inhibit_fifo)
# EOF without a writer, BlockingIOError with a writer
self.assertFalse(self.holds_inhibitor())
@@ -662,8 +664,6 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
self.device = None
self.manager = None
- os.close(self.logind_inhibit_fifo)
-
super().tearDown()
def try_release(self):
--
GitLab
From e6fc854a9ae3f640945ff621959cf9984e7d036a Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Wed, 25 Aug 2021 15:19:43 +0200
Subject: [PATCH 2/4] tests: Use addCleanup to stop polkitd
---
tests/fprintd.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index f0dbc7b..0dea501 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -598,6 +598,7 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
self.manager = None
self.device = None
self.polkitd_start()
+ self.addCleanup(self.polkitd_stop)
fifo_path = os.path.join(self.tmpdir, 'logind_inhibit_fifo')
os.mkfifo(fifo_path)
@@ -660,7 +661,6 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
self._changed_properties = []
def tearDown(self):
- self.polkitd_stop()
self.device = None
self.manager = None
--
GitLab
From 717a9199963d1ea8c96f9208ecdca18a12247481 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Wed, 25 Aug 2021 15:22:42 +0200
Subject: [PATCH 3/4] tests: Make class cleanup more robust
Use addClassCleanup rather than doing cleanup in tearDownClass, which
may not be called in all cases.
---
tests/fprintd.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index 0dea501..7d9eb4d 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -201,6 +201,7 @@ class FPrintdTest(dbusmock.DBusTestCase):
cls.tmpdir = tempfile.mkdtemp(prefix='libfprint-')
+ cls.addClassCleanup(shutil.rmtree, cls.tmpdir)
cls.sockaddr = os.path.join(cls.tmpdir, 'virtual-image.socket')
os.environ[cls.socket_env] = cls.sockaddr
@@ -213,6 +214,7 @@ class FPrintdTest(dbusmock.DBusTestCase):
cls.test_bus = Gio.TestDBus.new(Gio.TestDBusFlags.NONE)
cls.test_bus.up()
+ cls.addClassCleanup(cls.test_bus.down)
cls.test_bus.unset()
addr = cls.test_bus.get_bus_address()
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = addr
@@ -220,16 +222,14 @@ class FPrintdTest(dbusmock.DBusTestCase):
Gio.DBusConnectionFlags.MESSAGE_BUS_CONNECTION |
Gio.DBusConnectionFlags.AUTHENTICATION_CLIENT, None, None)
assert cls.dbus.is_closed() == False
+ cls.addClassCleanup(cls.dbus.close)
@classmethod
def tearDownClass(cls):
- cls.dbus.close()
- cls.test_bus.down()
- del cls.dbus
- del cls.test_bus
- shutil.rmtree(cls.tmpdir)
dbusmock.DBusTestCase.tearDownClass()
+ del cls.dbus
+ del cls.test_bus
def daemon_start(self, driver='Virtual image device for debugging'):
timeout = get_timeout('daemon_start') # seconds
--
GitLab
From e4c155d5b8ea48e337e64c24170be023229bbb07 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Wed, 25 Aug 2021 15:27:26 +0200
Subject: [PATCH 4/4] tests: Give fprintd some more time to be ready
While the delay inhibitor is grabbed almost immediately, this can be
slow enough to not have happened immediately after the bus name has been
registered. Add a generous timeout to prevent issues.
---
tests/fprintd.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index 7d9eb4d..8fa615f 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -615,7 +615,7 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
'GLib.idle_add(lambda fd: os.close(fd), ret)')
self.daemon_start(self.driver_name)
- self.wait_got_delay_inhibitor()
+ self.wait_got_delay_inhibitor(timeout=5)
if self.device is None:
self.skipTest("Need {} device to run the test".format(self.device_driver))
--
GitLab

142
SOURCES/158.patch Normal file
View File

@ -0,0 +1,142 @@
From e5b0e0948a422e5cc241efe0b55a1e841e2ca29c Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Thu, 26 Aug 2021 14:26:40 +0200
Subject: [PATCH 1/3] tests: Set G_MESSAGES_DEBUG=all for daemon as it is
needed
Otherwise executing the test script outside of the meson environment
will fail as the inhibitor test relies on being able to parse the log.
---
tests/fprintd.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index 8fa615f..801ee81 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -237,6 +237,8 @@ class FPrintdTest(dbusmock.DBusTestCase):
env['G_DEBUG'] = 'fatal-criticals'
env['STATE_DIRECTORY'] = (self.state_dir + ':' + '/hopefully/a/state_dir_path/that/shouldnt/be/writable')
env['RUNTIME_DIRECTORY'] = self.run_dir
+ # The tests parses the debug output for suspend inhibitor debugging
+ env['G_MESSAGES_DEBUG'] = 'all'
argv = [self.paths['daemon'], '-t']
valgrind = os.getenv('VALGRIND')
--
GitLab
From 8ca81d5166b47300e99ba5637f4b3c7fa9a00cd4 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Thu, 26 Aug 2021 14:23:15 +0200
Subject: [PATCH 2/3] tests: Use dbusmock start_system_bus instead of GLib
server
---
tests/fprintd.py | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index 801ee81..6754a56 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -211,14 +211,8 @@ class FPrintdTest(dbusmock.DBusTestCase):
n = os.path.basename(f)[:-4]
cls.prints[n] = load_image(f)
-
- cls.test_bus = Gio.TestDBus.new(Gio.TestDBusFlags.NONE)
- cls.test_bus.up()
- cls.addClassCleanup(cls.test_bus.down)
- cls.test_bus.unset()
- addr = cls.test_bus.get_bus_address()
- os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = addr
- cls.dbus = Gio.DBusConnection.new_for_address_sync(addr,
+ cls.start_system_bus()
+ cls.dbus = Gio.DBusConnection.new_for_address_sync(os.environ['DBUS_SYSTEM_BUS_ADDRESS'],
Gio.DBusConnectionFlags.MESSAGE_BUS_CONNECTION |
Gio.DBusConnectionFlags.AUTHENTICATION_CLIENT, None, None)
assert cls.dbus.is_closed() == False
@@ -229,7 +223,6 @@ class FPrintdTest(dbusmock.DBusTestCase):
dbusmock.DBusTestCase.tearDownClass()
del cls.dbus
- del cls.test_bus
def daemon_start(self, driver='Virtual image device for debugging'):
timeout = get_timeout('daemon_start') # seconds
--
GitLab
From 84ad711d48952e129abfad3bd2f509d30af65eb6 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Thu, 26 Aug 2021 14:25:12 +0200
Subject: [PATCH 3/3] tests: Better cleanup helper processes and objects
We were leaking the bus connections for the proxy objects. Also, now the
subprocesses will be forcefully killed at shutdown.
---
tests/fprintd.py | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/tests/fprintd.py b/tests/fprintd.py
index 6754a56..f828b27 100644
--- a/tests/fprintd.py
+++ b/tests/fprintd.py
@@ -243,6 +243,7 @@ class FPrintdTest(dbusmock.DBusTestCase):
self.valgrind = True
self.kill_daemon = False
self.daemon_log = OutputChecker()
+ self.addCleanup(self.daemon_log.force_close)
self.daemon = subprocess.Popen(argv,
env=env,
stdout=self.daemon_log.fd,
@@ -330,14 +331,23 @@ class FPrintdTest(dbusmock.DBusTestCase):
self._polkitd, self._polkitd_obj = self.spawn_server_template(
polkitd_template, {}, stdout=subprocess.PIPE)
+ self.addCleanup(self.stop_server, '_polkitd', '_polkitd_obj')
return self._polkitd
- def polkitd_stop(self):
- if self._polkitd is None:
+ def stop_server(self, proc_attr, obj_attr):
+ proc = getattr(self, proc_attr, None)
+ if proc is None:
return
- self._polkitd.terminate()
- self._polkitd.wait()
+
+ proc.terminate()
+ try:
+ proc.wait(timeout=1)
+ except subprocess.TimeoutExpired as e:
+ proc.kill()
+
+ delattr(self, proc_attr)
+ delattr(self, obj_attr)
def polkitd_allow_all(self):
self._polkitd_obj.SetAllowed([FprintDevicePermission.set_username,
@@ -593,7 +603,6 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
self.manager = None
self.device = None
self.polkitd_start()
- self.addCleanup(self.polkitd_stop)
fifo_path = os.path.join(self.tmpdir, 'logind_inhibit_fifo')
os.mkfifo(fifo_path)
@@ -608,6 +617,7 @@ class FPrintdVirtualDeviceBaseTest(FPrintdVirtualImageDeviceBaseTests):
'ret = os.open("%s", os.O_WRONLY)\n' % fifo_path +
'from gi.repository import GLib\n' +
'GLib.idle_add(lambda fd: os.close(fd), ret)')
+ self.addCleanup(self.stop_server, 'logind', 'logind_obj')
self.daemon_start(self.driver_name)
self.wait_got_delay_inhibitor(timeout=5)
--
GitLab

View File

@ -1,32 +1,30 @@
Name: fprintd
Version: 1.90.9
Release: 2%{?dist}
Version: 1.94.0
Release: 3%{?dist}
Summary: D-Bus service for Fingerprint reader access
Group: System Environment/Daemons
License: GPLv2+
Source0: https://gitlab.freedesktop.org/libfprint/fprintd/-/archive/v%{version}/fprintd-v%{version}.tar.gz
Url: http://www.freedesktop.org/wiki/Software/fprint/fprintd
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
ExcludeArch: s390 s390x
BuildRequires: rpm-build
BuildRequires: meson
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: pam-devel
BuildRequires: libfprint-devel >= 1.90.1
BuildRequires: libfprint-devel >= 1.94.0
BuildRequires: polkit-devel
BuildRequires: gtk-doc
BuildRequires: gettext
BuildRequires: perl-podlators
BuildRequires: systemd-devel
BuildRequires: pam_wrapper
BuildRequires: python3-dbusmock
BuildRequires: python3-libpamtest
# We cannot run the tests as python3-dbusmock and python3-libpamtest are missing
Patch0001: 0001-disable-test-dependencies.patch
# Test fixes
Patch0000: https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/157.patch
Patch0001: https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/158.patch
%description
D-Bus service to access fingerprint readers.
@ -38,9 +36,8 @@ Requires: %{name} = %{version}-%{release}
# is different, it will be mentioned in the release notes
Provides: pam_fprint = %{version}-%{release}
Obsoletes: pam_fprint < 0.2-3
Requires(postun): authconfig
Requires(postun): authselect >= 0.3
Group: System Environment/Base
License: GPLv2+
%description pam
@ -50,8 +47,7 @@ authentication.
%package devel
Summary: Development files for %{name}
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
License: GFDLv1.1+
License: GFDL
BuildArch: noarch
%description devel
@ -62,27 +58,22 @@ fingerprint readers access.
%autosetup -S git -n %{name}-v%{version}
%build
%meson -Dgtk_doc=true -Dpam=true
%meson -Dgtk_doc=true -Dpam=true -Dpam_modules_dir=%{_libdir}/security
%meson_build
%install
%meson_install
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/fprint
rm -f $RPM_BUILD_ROOT/%{_lib}/security/pam_fprintd.{a,la,so.*}
%find_lang %{name}
%check
# The test suite will just throw errors due to missing dependencies
%postun pam
if [ $1 -eq 0 ]; then
/sbin/authconfig --disablefingerprint --update || :
/bin/authselect disable-feature with-fingerprint || :
fi
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc README COPYING AUTHORS TODO
%{_bindir}/fprintd-*
%{_libexecdir}/fprintd
@ -90,55 +81,109 @@ fi
%{_sysconfdir}/fprintd.conf
%{_datadir}/dbus-1/system.d/net.reactivated.Fprint.conf
%{_datadir}/dbus-1/system-services/net.reactivated.Fprint.service
/usr/lib/systemd/system/fprintd.service
%{_unitdir}/fprintd.service
%{_datadir}/polkit-1/actions/net.reactivated.fprint.device.policy
%{_localstatedir}/lib/fprint
%{_mandir}/man1/fprintd.1.gz
%files pam
%defattr(-,root,root,-)
%doc pam/README
/%{_lib}/security/pam_fprintd.so
%{_libdir}/security/pam_fprintd.so
%{_mandir}/man8/pam_fprintd.8.gz
%files devel
%defattr(-,root,root,-)
%{_datadir}/gtk-doc/
%{_datadir}/dbus-1/interfaces/net.reactivated.Fprint.Device.xml
%{_datadir}/dbus-1/interfaces/net.reactivated.Fprint.Manager.xml
%changelog
* Wed Jan 20 17:47:44 CET 2021 Benjamin Berg <bberg@redhat.com> - 1.90.9-2
- Fix build with --nocheck
The earlier fix was accidentally reverted again.
Resolves: #1907766
* Thu Aug 26 2021 Benjamin Berg <bberg@redhat.com> - 1.94.0-3
- Use GFDL abbreviation as GFDLv1.1+ is not listed
- Install PAM module into /usr
- Pull in further test fixes
* Wed Jan 20 14:13:55 CET 2021 Benjamin Berg <bberg@redhat.com> - 1.90.9-1
- Update to fprintd 1.90.9
Fixes: #1907766
Fixes: #1907954
Related: #1888181
* Wed Aug 25 2021 Benjamin Berg <bberg@redhat.com> - 1.94.0-2
- Pull in build/test fixes from upstream
Related: #1996636
* Tue Dec 15 2020 Benjamin Berg <bberg@redhat.com> - 1.90.8-2
- Fix build with --nocheck
Resolves: #1907766
* Mon Aug 23 2021 Benjamin Berg <bberg@redhat.com> - 1.94.0-1
- Update to 1.94.0
Resolves: #1996636
* Mon Dec 14 2020 Benjamin Berg <bberg@redhat.com> - 1.90.8-1
- Update to fprintd 1.90.8
Related: #1888181
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.90.9-4
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Nov 21 2019 Benjamin Berg <bberg@redhat.com> - 1.90.0-0.20191121git%{shortcommit}
- git snapshot build of fprintd 1.90.0
- Resolves: rhbz1740752
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 1.90.9-3
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Aug 08 2018 Bastien Nocera <bnocera@redhat.com> - 0.8.1-2
+ fprintd-0.8.1-2
- Require systemd for the .service installation location
- Resolves: #1611717
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.90.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jun 18 2018 Bastien Nocera <bnocera@redhat.com> - 0.8.1-1
* Wed Jan 13 13:33:37 CET 2021 Benjamin Berg <bberg@redhat.com> - 1.90.9-1
- Update to 1.90.9 (#1915788)
Resolves: #1909669
Resolves: #1909559
* Fri Dec 18 2020 Adam Williamson <awilliam@redhat.com> - 1.90.8-2
- Rebuild for libnss dependency issue
* Fri Dec 11 2020 Benjamin Berg <bberg@redhat.com> - 1.90.8-1
- Update to 1.90.8 (#1902255)
This fixes PAM not working when fprintd was just started
* Wed Dec 09 2020 Benjamin Berg <bberg@redhat.com> - 1.90.7-1
- Update to 1.90.7 (#1902255)
Resolves: #1905667
Resolves: #1905964
* Mon Dec 07 2020 Benjamin Berg <bberg@redhat.com> - 1.90.6-1
- Update to 1.90.6 (#1902255)
Resolves: #1904370
* Tue Dec 01 2020 Benjamin Berg <bberg@redhat.com> - 1.90.5-1
- Update to 1.90.5 (#1902255)
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.90.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Feb 10 2020 Bastien Nocera <bnocera@redhat.com> - 1.90.1-1
+ fprintd-1.90.1-1
- Update to 1.90.1
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Aug 14 2019 Benjamin Berg <bberg@redhat.com> - 0.9.0-1
+ fprintd-0.9.0-1
- Update to 0.9.0
- Add patch to fix length check of rhost
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 20 2018 Bastien Nocera <bnocera@redhat.com> - 0.8.1-3
+ fprintd-0.8.1-3
- Fix missing .service file in files by installing systemd
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jun 15 2018 Bastien Nocera <bnocera@redhat.com> - 0.8.1-1
+ fprintd-0.8.1-1
- Update to 0.8.1
- Fixes a possible crash on exit (#1515720)
* Wed May 30 2018 Bastien Nocera <bnocera@redhat.com> - 0.8.0-4
+ fprintd-0.8.0-4
- Rebuild
* Tue Feb 20 2018 Pavel Březina <pbrezina@redhat.com> - 0.8.0-3
+ fprintd-0.8.0-3
- Switch from authconfig to authselect
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild