diff --git a/.gitignore b/.gitignore index e887308..406358e 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,5 @@ /blivet-3.2.2-tests.tar.gz /blivet-3.3.0.tar.gz /blivet-3.3.0-tests.tar.gz +/blivet-3.3.1.tar.gz +/blivet-3.3.1-tests.tar.gz diff --git a/0001-Avoid-using-unnecessary-udev-settle-calls.patch b/0001-Avoid-using-unnecessary-udev-settle-calls.patch deleted file mode 100644 index 0f130f6..0000000 --- a/0001-Avoid-using-unnecessary-udev-settle-calls.patch +++ /dev/null @@ -1,151 +0,0 @@ -From dae3375e720fe67870fe92e0aecd9638726c4d43 Mon Sep 17 00:00:00 2001 -From: Vojtech Trefny -Date: Wed, 9 Sep 2020 15:26:39 +0200 -Subject: [PATCH 1/2] Try to not use udev.resolve_devspec when querying - MountsCache - -udev.resolve_devspec is slow and uses udev.settle, we should avoid -using it if possible when getting system mountpoints. ---- - blivet/mounts.py | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/blivet/mounts.py b/blivet/mounts.py -index 7ce41d77..ef2def89 100644 ---- a/blivet/mounts.py -+++ b/blivet/mounts.py -@@ -27,6 +27,8 @@ - import logging - log = logging.getLogger("blivet") - -+import os -+ - - class _MountinfoCache(object): - -@@ -113,6 +115,12 @@ def get_mountpoints(self, devspec, subvolspec=None): - - # devspec == None means "get 'nodev' mount points" - if devspec not in (None, "tmpfs"): -+ if devspec.startswith("/dev"): -+ # try to avoid using resolve_devspec if possible -+ name = os.path.realpath(devspec).split("/")[-1] -+ if (name, subvolspec) in self.mountpoints.keys(): -+ return self.mountpoints[(name, subvolspec)] -+ - # use the canonical device path (if available) - canon_devspec = resolve_devspec(devspec, sysname=True) - if canon_devspec is not None: - -From ae32d008e7425610d437c72bb284664ace7ce5b7 Mon Sep 17 00:00:00 2001 -From: Vojtech Trefny -Date: Wed, 9 Sep 2020 15:27:57 +0200 -Subject: [PATCH 2/2] Do not run udev.settle in StorageDevice._pre_teardown - -We currently run udev.settle for every _pre_teardown call even if -there is no change or format teardown. This commit moves the -udev.settle call to format classes so it is called only when -format.teardown calls in _pre_teardown change the format. ---- - blivet/devices/storage.py | 1 - - blivet/formats/fs.py | 2 ++ - blivet/formats/luks.py | 5 +++++ - blivet/formats/swap.py | 3 +++ - tests/devices_test/device_methods_test.py | 2 -- - 5 files changed, 10 insertions(+), 3 deletions(-) - -diff --git a/blivet/devices/storage.py b/blivet/devices/storage.py -index d47affca..bde0b7d6 100644 ---- a/blivet/devices/storage.py -+++ b/blivet/devices/storage.py -@@ -425,7 +425,6 @@ def _pre_teardown(self, recursive=None): - self.original_format.teardown() - if self.format.exists: - self.format.teardown() -- udev.settle() - return True - - def _teardown(self, recursive=None): -diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py -index 9c14649e..d351dee1 100644 ---- a/blivet/formats/fs.py -+++ b/blivet/formats/fs.py -@@ -614,6 +614,8 @@ def _teardown(self, **kwargs): - if mountpoint == self._chrooted_mountpoint: - self._chrooted_mountpoint = None - -+ udev.settle() -+ - def read_label(self): - """Read this filesystem's label. - -diff --git a/blivet/formats/luks.py b/blivet/formats/luks.py -index de9f1d32..0d036588 100644 ---- a/blivet/formats/luks.py -+++ b/blivet/formats/luks.py -@@ -36,6 +36,7 @@ - from ..tasks import availability, lukstasks - from ..size import Size, KiB - from ..static_data import luks_data -+from .. import udev - - import logging - log = logging.getLogger("blivet") -@@ -275,6 +276,8 @@ def _teardown(self, **kwargs): - log.debug("unmapping %s", self.map_name) - blockdev.crypto.luks_close(self.map_name) - -+ udev.settle() -+ - def _pre_resize(self): - if self.luks_version == "luks2" and not self.has_key: - raise LUKSError("Passphrase or key needs to be set before resizing LUKS2 format.") -@@ -442,5 +445,7 @@ def _teardown(self, **kwargs): - # for all devices supported by cryptsetup - blockdev.crypto.luks_close(self.map_name) - -+ udev.settle() -+ - - register_device_format(Integrity) -diff --git a/blivet/formats/swap.py b/blivet/formats/swap.py -index 3cc59138..2e4b07df 100644 ---- a/blivet/formats/swap.py -+++ b/blivet/formats/swap.py -@@ -29,6 +29,7 @@ - from ..tasks import fsuuid - from . import DeviceFormat, register_device_format - from ..size import Size -+from .. import udev - - import gi - gi.require_version("BlockDev", "2.0") -@@ -206,6 +207,8 @@ def _teardown(self, **kwargs): - type=self.type, status=self.status) - blockdev.swap.swapoff(self.device) - -+ udev.settle() -+ - def _create(self, **kwargs): - log_method_call(self, device=self.device, - type=self.type, status=self.status) -diff --git a/tests/devices_test/device_methods_test.py b/tests/devices_test/device_methods_test.py -index e6718121..f00509be 100644 ---- a/tests/devices_test/device_methods_test.py -+++ b/tests/devices_test/device_methods_test.py -@@ -161,7 +161,6 @@ def _destroy(): - - self.assertFalse(self.device.exists) - self.assertEqual(self.device.update_sysfs_path.called, self.destroy_updates_sysfs_path) -- self.assertEqual(self.patches["udev"].settle.called, self.destroy_calls_udev_settle) - self.patches["udev"].reset_mock() - self.device.update_sysfs_path.reset_mock() - -@@ -228,7 +227,6 @@ def test_teardown(self): - self.device.teardown() - self.assertTrue(self.teardown_method_mock.called) - -- self.assertEqual(self.patches["udev"].settle.called, self.teardown_calls_udev_settle) - self.assertEqual(self.device.update_sysfs_path.called, self.teardown_updates_sysfs_path) - self.patches["udev"].reset_mock() - self.device.update_sysfs_path.reset_mock() diff --git a/python-blivet.spec b/python-blivet.spec index 7971452..4a3244f 100644 --- a/python-blivet.spec +++ b/python-blivet.spec @@ -19,18 +19,17 @@ Summary: A python module for system storage configuration Name: python-blivet Url: https://storageapis.wordpress.com/projects/blivet -Version: 3.3.0 +Version: 3.3.1 #%%global prerelease .b2 # prerelease, if defined, should be something like .a1, .b1, .b2.dev1, or .c2 -Release: 2%{?prerelease}%{?dist} +Release: 1%{?prerelease}%{?dist} Epoch: 1 License: LGPLv2+ %global realname blivet %global realversion %{version}%{?prerelease} Source0: http://github.com/storaged-project/blivet/archive/%{realname}-%{realversion}.tar.gz Source1: http://github.com/storaged-project/blivet/archive/%{realname}-%{realversion}-tests.tar.gz -Patch0: 0001-Avoid-using-unnecessary-udev-settle-calls.patch # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -192,6 +191,23 @@ configuration. %endif %changelog +* Tue Oct 20 2020 Vojtech Trefny - 3.3.1-1 +- Make sure the product name is safe when using it for device name (vtrefny) +- Run packit RPM builds on Fedora ELN (vtrefny) +- Allow specifying 'mode' for the sdist command (vtrefny) +- Enable packit RPM builds on pull requests (vtrefny) +- Start the iscsi-init service (#1880673) (vponcova) +- Let parted fix fixable issues with partition table (vtrefny) +- edd: Fix UnboundLocalError when trying to close fd in collect_mbrs (vtrefny) +- Use UnusableConfigurationError for partially hidden multipath devices (vtrefny) +- Close fd if it fails to read the device (nashok) +- Do not run udev.settle in StorageDevice._pre_teardown (vtrefny) +- Try to not use udev.resolve_devspec when querying MountsCache (vtrefny) +- Remove Zanata config file (vtrefny) +- Ignore new pylint warning W0707 "raise-missing-from" (vtrefny) +- Use SSH "link" for l10n repository in Makefile (vtrefny) +- Fix source tarball cleanup in srpm and rpm Makefile targets (vtrefny) + * Wed Sep 16 2020 Vojtech Trefny - 3.3.0-2 - Avoid using unnecessary udev.settle calls (#1876162) diff --git a/sources b/sources index 061e0a7..59e9e60 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (blivet-3.3.0.tar.gz) = 2e628c88e3a5872bd9db0aebb9fbc9a2db88ff7dfaf044e8df12936254d3dc3a723994579cbff98e1c300cd266a3ac223289217b67f6e749621041137ba4a50e -SHA512 (blivet-3.3.0-tests.tar.gz) = d68c5b536f4c1f9bbaf0bc5d11e9eb2df05df0b68497fd22798aabdcc2709e7e0c572f4726510b317ee062c90bfaf3dbacb03c4830d3099df942bcc91771021a +SHA512 (blivet-3.3.1.tar.gz) = 5cfbaf363f8d4ae8501d7ec2bb102c2ceb063ec42627939f5acb164a08ec4767a91793f517be35293fcad65adf7be4605c827d3550457b21f6ab3da08c27babb +SHA512 (blivet-3.3.1-tests.tar.gz) = 423f7fc72ac15961d8cc53710b9d8882df1f0f0b42268c30d57bc76c4c6a4f68bcf97be026fccbbf4e85f6d5e2e89e71af99437b732adc90dba766203d053c21