Auto sync2gitlab import of udisks2-2.9.0-9.el8.src.rpm
This commit is contained in:
parent
faa3bc5fb6
commit
35aa3f3251
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/udisks-2.9.0.tar.bz2
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (udisks-2.9.0.tar.bz2) = 314355c9b0cc562b2359ea77137b3f2189c48e642c67cc9d9ed07048176967b67e78dfb3190dd160db2f92e8143a4f005bf2cc1aa814388a79201705e5297d0c
|
11
tests-disable-zram.patch
Normal file
11
tests-disable-zram.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
diff -up udisks-2.9.0/src/tests/dbus-tests/test_10_basic.py.bak udisks-2.9.0/src/tests/dbus-tests/test_10_basic.py
|
||||||
|
--- udisks-2.9.0/src/tests/dbus-tests/test_10_basic.py.bak 2020-05-26 14:59:20.000000000 +0200
|
||||||
|
+++ udisks-2.9.0/src/tests/dbus-tests/test_10_basic.py 2021-04-23 15:49:07.405824214 +0200
|
||||||
|
@@ -26,6 +26,7 @@ class UdisksBaseTest(udiskstestcase.Udis
|
||||||
|
elif distro in ('enterprise_linux', 'centos') and int(version) > 7:
|
||||||
|
modules.pop('bcache')
|
||||||
|
modules.pop('btrfs')
|
||||||
|
+ modules.pop('zram')
|
||||||
|
# assuming the kvdo module is typically pulled in as a vdo tool dependency
|
||||||
|
if not find_executable("vdo"):
|
||||||
|
modules.pop('vdo')
|
64
udisks-2.10.0-tests-drive_ata-apm.patch
Normal file
64
udisks-2.10.0-tests-drive_ata-apm.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
From c21ad308b1313a35cafa1664e5eb4772925bc005 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Thu, 22 Apr 2021 18:05:29 +0200
|
||||||
|
Subject: [PATCH 1/2] tests: Mark Drive.ATA tests as unstable
|
||||||
|
|
||||||
|
Some of the tests operate on physical ATA drives, comparing values between
|
||||||
|
smartctl output and udisks. Different libraries used, different approach
|
||||||
|
to retrieve some ATA features and values. Turned out this is not working
|
||||||
|
correctly on some SATA disks with each approach giving slightly different
|
||||||
|
results, presumably for the quirks in place.
|
||||||
|
---
|
||||||
|
src/tests/dbus-tests/test_drive_ata.py | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tests/dbus-tests/test_drive_ata.py b/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
index 3187367e..e91bd02f 100644
|
||||||
|
--- a/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
+++ b/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
@@ -4,7 +4,7 @@ import re
|
||||||
|
import unittest
|
||||||
|
import time
|
||||||
|
|
||||||
|
-from udiskstestcase import UdisksTestCase
|
||||||
|
+import udiskstestcase
|
||||||
|
|
||||||
|
SMART_CMDLINE_FAIL = 1 << 0
|
||||||
|
SMART_OPEN_READ_FAIL = 1 << 1
|
||||||
|
@@ -32,7 +32,7 @@ def _get_sata_disks():
|
||||||
|
|
||||||
|
|
||||||
|
for disk in _get_sata_disks():
|
||||||
|
- ret, out = UdisksTestCase.run_command("smartctl -a /dev/%s" % disk)
|
||||||
|
+ ret, out = udiskstestcase.UdisksTestCase.run_command("smartctl -a /dev/%s" % disk)
|
||||||
|
|
||||||
|
# Only the following bits in the exit status mean the device failed to
|
||||||
|
# provide valid SMART data, others may be set for different reasons (see
|
||||||
|
@@ -46,7 +46,7 @@ for disk in _get_sata_disks():
|
||||||
|
else:
|
||||||
|
smart_unsupported.add(disk)
|
||||||
|
|
||||||
|
-class UdisksDriveAtaTest(UdisksTestCase):
|
||||||
|
+class UdisksDriveAtaTest(udiskstestcase.UdisksTestCase):
|
||||||
|
'''Noninvasive tests for the Drive.Ata interface'''
|
||||||
|
|
||||||
|
def get_smart_setting(self, disk, attr, out_prefix):
|
||||||
|
@@ -102,6 +102,7 @@ class UdisksDriveAtaTest(UdisksTestCase)
|
||||||
|
intro_data = drive_intro.Introspect()
|
||||||
|
self.assertNotIn('interface name="org.freedesktop.UDisks2.Drive.Ata"', intro_data)
|
||||||
|
|
||||||
|
+ @udiskstestcase.tag_test(udiskstestcase.TestTags.UNSTABLE)
|
||||||
|
@unittest.skipUnless(smart_supported, "No disks supporting S.M.A.R.T. available")
|
||||||
|
def test_properties(self):
|
||||||
|
for disk in smart_supported:
|
||||||
|
@@ -148,6 +149,7 @@ class UdisksDriveAtaTest(UdisksTestCase)
|
||||||
|
# nineth field is the raw value
|
||||||
|
self.assertEqual(int(pwon_s.value / 3600), int(pwon_attr[8]))
|
||||||
|
|
||||||
|
+ @udiskstestcase.tag_test(udiskstestcase.TestTags.UNSTABLE)
|
||||||
|
@unittest.skipUnless(smart_supported, "No disks supporting S.M.A.R.T. available")
|
||||||
|
def test_smart_get_attributes(self):
|
||||||
|
for disk in smart_supported:
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
43
udisks-2.10.0-tests-no-dev_disk-by-path.patch
Normal file
43
udisks-2.10.0-tests-no-dev_disk-by-path.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From 1358d1e5208d71d5a70f17a242eda00f079a9d0b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Thu, 22 Apr 2021 18:20:48 +0200
|
||||||
|
Subject: [PATCH 2/2] tests: Handle missing /dev/disk/by-path gracefully
|
||||||
|
|
||||||
|
Limited testing environments may not have this path always available.
|
||||||
|
---
|
||||||
|
src/tests/dbus-tests/test_drive_ata.py | 19 +++++++++++--------
|
||||||
|
1 file changed, 11 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tests/dbus-tests/test_drive_ata.py b/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
index e91bd02f..37740c60 100644
|
||||||
|
--- a/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
+++ b/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
@@ -20,14 +20,17 @@ DISK_PATH = "/dev/disk/by-path/"
|
||||||
|
|
||||||
|
def _get_sata_disks():
|
||||||
|
sata_disks = []
|
||||||
|
- by_path = os.listdir(DISK_PATH)
|
||||||
|
- for dev in by_path:
|
||||||
|
- if "ata" in dev and "part" not in dev:
|
||||||
|
- path = os.path.realpath(os.path.join(DISK_PATH, dev))
|
||||||
|
- name = os.path.basename(path)
|
||||||
|
- if name.startswith("sd"):
|
||||||
|
- # ignore devices like CD drives etc.
|
||||||
|
- sata_disks.append(name)
|
||||||
|
+ try:
|
||||||
|
+ by_path = os.listdir(DISK_PATH)
|
||||||
|
+ for dev in by_path:
|
||||||
|
+ if "ata" in dev and "part" not in dev:
|
||||||
|
+ path = os.path.realpath(os.path.join(DISK_PATH, dev))
|
||||||
|
+ name = os.path.basename(path)
|
||||||
|
+ if name.startswith("sd"):
|
||||||
|
+ # ignore devices like CD drives etc.
|
||||||
|
+ sata_disks.append(name)
|
||||||
|
+ except:
|
||||||
|
+ pass
|
||||||
|
return sata_disks
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
30
udisks-2.10.0-udiskslinuxencrypted_GError.patch
Normal file
30
udisks-2.10.0-udiskslinuxencrypted_GError.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 486778c778a4ddb24395408c6b267e702e19ae02 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Sat, 1 Jan 2022 22:01:49 +0100
|
||||||
|
Subject: [PATCH] udiskslinuxencrypted: Fix GError ownership
|
||||||
|
|
||||||
|
---
|
||||||
|
src/udiskslinuxencrypted.c | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxencrypted.c b/src/udiskslinuxencrypted.c
|
||||||
|
index c3a0821ac..3bc54e695 100644
|
||||||
|
--- a/src/udiskslinuxencrypted.c
|
||||||
|
+++ b/src/udiskslinuxencrypted.c
|
||||||
|
@@ -1040,7 +1040,7 @@ handle_resize (UDisksEncrypted *encrypted,
|
||||||
|
object = udisks_daemon_util_dup_object (encrypted, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1066,7 +1066,6 @@ handle_resize (UDisksEncrypted *encrypted,
|
||||||
|
if (!udisks_daemon_util_get_caller_uid_sync (daemon, invocation, NULL /* GCancellable */, &caller_uid, &error))
|
||||||
|
{
|
||||||
|
g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
- g_clear_error (&error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
49
udisks-2.10.0-udiskslinuxfilesystem_GError.patch
Normal file
49
udisks-2.10.0-udiskslinuxfilesystem_GError.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
From 223256777f6e269b8501d95a64c4c6095a7a8a3e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Sat, 1 Jan 2022 22:02:17 +0100
|
||||||
|
Subject: [PATCH] udiskslinuxfilesystem: Fix GError ownership
|
||||||
|
|
||||||
|
---
|
||||||
|
src/udiskslinuxfilesystem.c | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxfilesystem.c b/src/udiskslinuxfilesystem.c
|
||||||
|
index f7c99757a..a8390a044 100644
|
||||||
|
--- a/src/udiskslinuxfilesystem.c
|
||||||
|
+++ b/src/udiskslinuxfilesystem.c
|
||||||
|
@@ -1739,7 +1739,7 @@ handle_resize (UDisksFilesystem *filesystem,
|
||||||
|
object = udisks_daemon_util_dup_object (filesystem, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1921,7 +1921,7 @@ handle_repair (UDisksFilesystem *filesystem,
|
||||||
|
object = udisks_daemon_util_dup_object (filesystem, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2089,7 +2089,7 @@ handle_check (UDisksFilesystem *filesystem,
|
||||||
|
object = udisks_daemon_util_dup_object (filesystem, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2257,7 +2257,7 @@ handle_take_ownership (UDisksFilesystem *filesystem,
|
||||||
|
object = udisks_daemon_util_dup_object (filesystem, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
70
udisks-2.10.0-udiskslinuxpartition_GError.patch
Normal file
70
udisks-2.10.0-udiskslinuxpartition_GError.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From 7c9933c0f80faaabbed607983fdf77f8c4562df6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Sat, 1 Jan 2022 20:11:57 +0100
|
||||||
|
Subject: [PATCH] udiskslinuxpartition: Fix GError ownership
|
||||||
|
|
||||||
|
---
|
||||||
|
src/udiskslinuxpartition.c | 15 ++++++---------
|
||||||
|
1 file changed, 6 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxpartition.c b/src/udiskslinuxpartition.c
|
||||||
|
index 5461b3903..3d970768d 100644
|
||||||
|
--- a/src/udiskslinuxpartition.c
|
||||||
|
+++ b/src/udiskslinuxpartition.c
|
||||||
|
@@ -135,8 +135,7 @@ check_authorization (UDisksPartition *partition,
|
||||||
|
caller_uid,
|
||||||
|
&error))
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
- g_clear_error (&error);
|
||||||
|
+ g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -351,7 +350,7 @@ handle_set_flags (UDisksPartition *partition,
|
||||||
|
object = udisks_daemon_util_dup_object (partition, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -499,7 +498,7 @@ handle_set_name (UDisksPartition *partition,
|
||||||
|
object = udisks_daemon_util_dup_object (partition, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -873,7 +872,7 @@ handle_resize (UDisksPartition *partition,
|
||||||
|
object = udisks_daemon_util_dup_object (partition, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -994,7 +993,7 @@ handle_delete (UDisksPartition *partition,
|
||||||
|
object = udisks_daemon_util_dup_object (partition, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1012,9 +1011,7 @@ handle_delete (UDisksPartition *partition,
|
||||||
|
if (!udisks_linux_block_teardown (block, invocation, options, &error))
|
||||||
|
{
|
||||||
|
if (invocation != NULL)
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
- else
|
||||||
|
- g_clear_error (&error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
73
udisks-2.10.0-udiskslinuxpartitiontable_GError.patch
Normal file
73
udisks-2.10.0-udiskslinuxpartitiontable_GError.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
From f486a9fa22c2f9785a4a8fc58eb3be7b0cf934ce Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Sat, 1 Jan 2022 19:59:27 +0100
|
||||||
|
Subject: [PATCH] udiskslinuxpartitiontable: Fix GError ownership
|
||||||
|
|
||||||
|
---
|
||||||
|
src/udiskslinuxpartitiontable.c | 11 ++++-------
|
||||||
|
1 file changed, 4 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxpartitiontable.c b/src/udiskslinuxpartitiontable.c
|
||||||
|
index b4c301095..14a54c9c7 100644
|
||||||
|
--- a/src/udiskslinuxpartitiontable.c
|
||||||
|
+++ b/src/udiskslinuxpartitiontable.c
|
||||||
|
@@ -277,7 +277,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
object = udisks_daemon_util_dup_object (table, &error);
|
||||||
|
if (object == NULL)
|
||||||
|
{
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -293,7 +293,6 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
- error = NULL;
|
||||||
|
if (!udisks_daemon_util_get_caller_uid_sync (daemon,
|
||||||
|
invocation,
|
||||||
|
NULL /* GCancellable */,
|
||||||
|
@@ -301,7 +300,6 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
&error))
|
||||||
|
{
|
||||||
|
g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
- g_clear_error (&error);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -464,7 +462,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
if (!bd_part_set_part_name (device_name, part_spec->path, name, &error))
|
||||||
|
{
|
||||||
|
g_prefix_error (&error, "Error setting name for newly created partition: ");
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), FALSE, error->message);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
@@ -483,7 +481,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
g_prefix_error (&error, "Error setting type for newly created partition: ");
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), FALSE, error->message);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
@@ -520,7 +518,6 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
/* sit and wait for the partition to show up */
|
||||||
|
g_warn_if_fail (wait_data->pos_to_wait_for > 0);
|
||||||
|
wait_data->partition_table_object = object;
|
||||||
|
- error = NULL;
|
||||||
|
partition_object = udisks_daemon_wait_for_object_sync (daemon,
|
||||||
|
wait_for_partition,
|
||||||
|
wait_data,
|
||||||
|
@@ -530,7 +527,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta
|
||||||
|
if (partition_object == NULL)
|
||||||
|
{
|
||||||
|
g_prefix_error (&error, "Error waiting for partition to appear: ");
|
||||||
|
- g_dbus_method_invocation_take_error (invocation, error);
|
||||||
|
+ g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
|
udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), FALSE, error->message);
|
||||||
|
goto out;
|
||||||
|
}
|
25
udisks-2.10.0-vdo_test_writeAmplificationRatio.patch
Normal file
25
udisks-2.10.0-vdo_test_writeAmplificationRatio.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 0edd6f5579c964323d86897aff9476c20d7901ba Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vojtech Trefny <vtrefny@redhat.com>
|
||||||
|
Date: Mon, 22 Nov 2021 14:23:08 +0100
|
||||||
|
Subject: [PATCH] tests: Do not check that writeAmplificationRatio is bigger
|
||||||
|
than 0
|
||||||
|
|
||||||
|
Apparently the bios_in_write value is now 0 for newly created VDO
|
||||||
|
pools and because we use it for the writeAmplificationRatio
|
||||||
|
calculation we get zero too.
|
||||||
|
---
|
||||||
|
src/tests/dbus-tests/test_20_LVM.py | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/tests/dbus-tests/test_20_LVM.py b/src/tests/dbus-tests/test_20_LVM.py
|
||||||
|
index 7fbff0434..fde7c3f3f 100644
|
||||||
|
--- a/src/tests/dbus-tests/test_20_LVM.py
|
||||||
|
+++ b/src/tests/dbus-tests/test_20_LVM.py
|
||||||
|
@@ -508,7 +508,6 @@ def test_create(self):
|
||||||
|
# get statistics and do some simple sanity check
|
||||||
|
stats = lv.GetStatistics(self.no_options, dbus_interface=self.iface_prefix + '.VDOVolume')
|
||||||
|
self.assertIn("writeAmplificationRatio", stats.keys())
|
||||||
|
- self.assertGreater(float(stats["writeAmplificationRatio"]), 0)
|
||||||
|
|
||||||
|
def test_enable_disable_compression_deduplication(self):
|
||||||
|
vgname = 'udisks_test_vdo_vg'
|
@ -0,0 +1,190 @@
|
|||||||
|
From e039516b103eb9749a3e261c5ee1a9bc110676cf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 26 Jun 2020 17:42:32 +0200
|
||||||
|
Subject: [PATCH 1/8] daemon: Always flush interface property changes
|
||||||
|
|
||||||
|
Setting properties on a GDBusInterfaceSkeleton from the main thread
|
||||||
|
as a result of uevent is somewhat racy to clients that are waiting
|
||||||
|
for a method call to return that is processed in a separate thread
|
||||||
|
by the daemon. Perhaps there's a race in the GDBus worker thread
|
||||||
|
that processes changes from both threads and send them out on the bus.
|
||||||
|
|
||||||
|
Explicit flush on GDBusInterfaceSkeleton interfaces seems to fix
|
||||||
|
the issue. Such approach was used before on some places, this change
|
||||||
|
adds explicit flushes at all places where properties may change.
|
||||||
|
---
|
||||||
|
src/udiskslinuxblock.c | 2 ++
|
||||||
|
src/udiskslinuxdrive.c | 1 +
|
||||||
|
src/udiskslinuxdriveata.c | 5 +++++
|
||||||
|
src/udiskslinuxencrypted.c | 5 +++++
|
||||||
|
src/udiskslinuxfilesystem.c | 3 +++
|
||||||
|
src/udiskslinuxloop.c | 1 +
|
||||||
|
src/udiskslinuxmdraid.c | 1 +
|
||||||
|
src/udiskslinuxpartition.c | 2 ++
|
||||||
|
src/udiskslinuxpartitiontable.c | 1 +
|
||||||
|
src/udiskslinuxswapspace.c | 1 +
|
||||||
|
10 files changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxblock.c b/src/udiskslinuxblock.c
|
||||||
|
index ddc7fe1f..34d73f0e 100644
|
||||||
|
--- a/src/udiskslinuxblock.c
|
||||||
|
+++ b/src/udiskslinuxblock.c
|
||||||
|
@@ -893,6 +893,7 @@ update_configuration (UDisksLinuxBlock *block,
|
||||||
|
configuration = g_variant_new ("a(sa{sv})", NULL);
|
||||||
|
}
|
||||||
|
udisks_block_set_configuration (UDISKS_BLOCK (block), configuration);
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (block));
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBMOUNT_UTAB
|
||||||
|
@@ -1280,6 +1281,7 @@ udisks_linux_block_update (UDisksLinuxBlock *block,
|
||||||
|
update_mdraid (block, device, drive, object_manager);
|
||||||
|
|
||||||
|
out:
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (block));
|
||||||
|
if (device != NULL)
|
||||||
|
g_object_unref (device);
|
||||||
|
if (drive != NULL)
|
||||||
|
diff --git a/src/udiskslinuxdrive.c b/src/udiskslinuxdrive.c
|
||||||
|
index e9dd7117..28a90ce9 100644
|
||||||
|
--- a/src/udiskslinuxdrive.c
|
||||||
|
+++ b/src/udiskslinuxdrive.c
|
||||||
|
@@ -950,6 +950,7 @@ udisks_linux_drive_update (UDisksLinuxDrive *drive,
|
||||||
|
ret = update_configuration (drive, object);
|
||||||
|
|
||||||
|
out:
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (drive));
|
||||||
|
if (device != NULL)
|
||||||
|
g_clear_object (&device);
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxdriveata.c b/src/udiskslinuxdriveata.c
|
||||||
|
index d65f3254..4ba66d09 100644
|
||||||
|
--- a/src/udiskslinuxdriveata.c
|
||||||
|
+++ b/src/udiskslinuxdriveata.c
|
||||||
|
@@ -339,6 +339,8 @@ udisks_linux_drive_ata_update (UDisksLinuxDriveAta *drive,
|
||||||
|
update_security (drive, device);
|
||||||
|
|
||||||
|
out:
|
||||||
|
+ /* ensure property changes are sent before the method return */
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (drive));
|
||||||
|
if (device != NULL)
|
||||||
|
g_object_unref (device);
|
||||||
|
|
||||||
|
@@ -681,6 +683,9 @@ udisks_linux_drive_ata_refresh_smart_sync (UDisksLinuxDriveAta *drive,
|
||||||
|
/* update stats again to account for the IO we just did to read the SMART info */
|
||||||
|
update_io_stats (drive, device);
|
||||||
|
|
||||||
|
+ /* ensure property changes are sent before the method return */
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (drive));
|
||||||
|
+
|
||||||
|
out:
|
||||||
|
g_clear_object (&device);
|
||||||
|
if (d != NULL)
|
||||||
|
diff --git a/src/udiskslinuxencrypted.c b/src/udiskslinuxencrypted.c
|
||||||
|
index 73c78873..8a230fda 100644
|
||||||
|
--- a/src/udiskslinuxencrypted.c
|
||||||
|
+++ b/src/udiskslinuxencrypted.c
|
||||||
|
@@ -237,6 +237,8 @@ udisks_linux_encrypted_update (UDisksLinuxEncrypted *encrypted,
|
||||||
|
update_metadata_size (encrypted, object);
|
||||||
|
|
||||||
|
udisks_linux_block_encrypted_unlock (block);
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (encrypted));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
@@ -630,6 +632,9 @@ handle_unlock (UDisksEncrypted *encrypted,
|
||||||
|
g_udev_device_get_sysfs_attr (cleartext_device->udev_device, "dm/uuid"),
|
||||||
|
caller_uid);
|
||||||
|
|
||||||
|
+ /* ensure property changes are sent before the method return */
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (encrypted));
|
||||||
|
+
|
||||||
|
udisks_encrypted_complete_unlock (encrypted,
|
||||||
|
invocation,
|
||||||
|
g_dbus_object_get_object_path (G_DBUS_OBJECT (cleartext_object)));
|
||||||
|
diff --git a/src/udiskslinuxfilesystem.c b/src/udiskslinuxfilesystem.c
|
||||||
|
index 669fc40b..3ae11c32 100644
|
||||||
|
--- a/src/udiskslinuxfilesystem.c
|
||||||
|
+++ b/src/udiskslinuxfilesystem.c
|
||||||
|
@@ -277,6 +277,8 @@ udisks_linux_filesystem_update (UDisksLinuxFilesystem *filesystem,
|
||||||
|
if (! skip_fs_size)
|
||||||
|
udisks_filesystem_set_size (UDISKS_FILESYSTEM (filesystem), get_filesystem_size (object));
|
||||||
|
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (filesystem));
|
||||||
|
+
|
||||||
|
g_object_unref (device);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1865,6 +1867,7 @@ handle_resize (UDisksFilesystem *filesystem,
|
||||||
|
UDISKS_DEFAULT_WAIT_TIMEOUT);
|
||||||
|
|
||||||
|
udisks_filesystem_set_size (filesystem, get_filesystem_size (UDISKS_LINUX_BLOCK_OBJECT (object)));
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (filesystem));
|
||||||
|
udisks_filesystem_complete_resize (filesystem, invocation);
|
||||||
|
udisks_simple_job_complete (UDISKS_SIMPLE_JOB (job), TRUE, NULL);
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxloop.c b/src/udiskslinuxloop.c
|
||||||
|
index 6c8a4561..5d7e3553 100644
|
||||||
|
--- a/src/udiskslinuxloop.c
|
||||||
|
+++ b/src/udiskslinuxloop.c
|
||||||
|
@@ -187,6 +187,7 @@ udisks_linux_loop_update (UDisksLinuxLoop *loop,
|
||||||
|
}
|
||||||
|
udisks_loop_set_setup_by_uid (UDISKS_LOOP (loop), setup_by_uid);
|
||||||
|
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (loop));
|
||||||
|
g_object_unref (device);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxmdraid.c b/src/udiskslinuxmdraid.c
|
||||||
|
index 85fc2a3b..7eca9764 100644
|
||||||
|
--- a/src/udiskslinuxmdraid.c
|
||||||
|
+++ b/src/udiskslinuxmdraid.c
|
||||||
|
@@ -512,6 +512,7 @@ udisks_linux_mdraid_update (UDisksLinuxMDRaid *mdraid,
|
||||||
|
uuid));
|
||||||
|
|
||||||
|
out:
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (mdraid));
|
||||||
|
if (raid_data)
|
||||||
|
bd_md_examine_data_free (raid_data);
|
||||||
|
g_free (sync_completed);
|
||||||
|
diff --git a/src/udiskslinuxpartition.c b/src/udiskslinuxpartition.c
|
||||||
|
index 97ba02fe..ff0fdfc0 100644
|
||||||
|
--- a/src/udiskslinuxpartition.c
|
||||||
|
+++ b/src/udiskslinuxpartition.c
|
||||||
|
@@ -312,6 +312,8 @@ udisks_linux_partition_update (UDisksLinuxPartition *partition,
|
||||||
|
udisks_partition_set_is_container (UDISKS_PARTITION (partition), is_container);
|
||||||
|
udisks_partition_set_is_contained (UDISKS_PARTITION (partition), is_contained);
|
||||||
|
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (partition));
|
||||||
|
+
|
||||||
|
g_free (name);
|
||||||
|
g_clear_object (&device);
|
||||||
|
g_clear_object (&disk_block_object);
|
||||||
|
diff --git a/src/udiskslinuxpartitiontable.c b/src/udiskslinuxpartitiontable.c
|
||||||
|
index b26849bc..e43a0708 100644
|
||||||
|
--- a/src/udiskslinuxpartitiontable.c
|
||||||
|
+++ b/src/udiskslinuxpartitiontable.c
|
||||||
|
@@ -146,6 +146,7 @@ udisks_linux_partition_table_update (UDisksLinuxPartitionTable *table,
|
||||||
|
|
||||||
|
udisks_partition_table_set_partitions (UDISKS_PARTITION_TABLE (table),
|
||||||
|
partition_object_paths);
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (table));
|
||||||
|
|
||||||
|
|
||||||
|
g_free (partition_object_paths);
|
||||||
|
diff --git a/src/udiskslinuxswapspace.c b/src/udiskslinuxswapspace.c
|
||||||
|
index ee103528..bb47f3d4 100644
|
||||||
|
--- a/src/udiskslinuxswapspace.c
|
||||||
|
+++ b/src/udiskslinuxswapspace.c
|
||||||
|
@@ -127,6 +127,7 @@ udisks_linux_swapspace_update (UDisksLinuxSwapspace *swapspace,
|
||||||
|
active = TRUE;
|
||||||
|
udisks_swapspace_set_active (UDISKS_SWAPSPACE (swapspace), active);
|
||||||
|
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (swapspace));
|
||||||
|
g_object_unref (device);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
39
udisks-2.9.1-drive_ata_tests.patch
Normal file
39
udisks-2.9.1-drive_ata_tests.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
commit 214d65ae4d2b779fc1674420a042082ae029eb6b
|
||||||
|
Author: Vojtech Trefny <vtrefny@redhat.com>
|
||||||
|
Date: Mon Jul 13 16:16:47 2020 +0200
|
||||||
|
|
||||||
|
dbus_tests: Fix getting list of SATA drives for Drive.ATA test
|
||||||
|
|
||||||
|
Resolves: rhbz#1855785
|
||||||
|
|
||||||
|
diff --git a/src/tests/dbus-tests/test_drive_ata.py b/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
index ff6d01cc..df298a9c 100644
|
||||||
|
--- a/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
+++ b/src/tests/dbus-tests/test_drive_ata.py
|
||||||
|
@@ -14,8 +14,24 @@ SMART_ATA_CHECKSUM_FAIL = 1 << 2
|
||||||
|
smart_unsupported = set()
|
||||||
|
smart_supported = set()
|
||||||
|
|
||||||
|
-sata_disks = (dev for dev in os.listdir("/dev") if re.match(r'sd[a-z]+$', dev))
|
||||||
|
-for disk in sata_disks:
|
||||||
|
+
|
||||||
|
+DISK_PATH = "/dev/disk/by-path/"
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+def _get_sata_disks():
|
||||||
|
+ sata_disks = []
|
||||||
|
+ by_path = os.listdir(DISK_PATH)
|
||||||
|
+ for dev in by_path:
|
||||||
|
+ if "ata" in dev and "part" not in dev:
|
||||||
|
+ path = os.path.realpath(os.path.join(DISK_PATH, dev))
|
||||||
|
+ name = os.path.basename(path)
|
||||||
|
+ if name.startswith("sd"):
|
||||||
|
+ # ignore devices like CD drives etc.
|
||||||
|
+ sata_disks.append(name)
|
||||||
|
+ return sata_disks
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+for disk in _get_sata_disks():
|
||||||
|
ret, out = UdisksTestCase.run_command("smartctl -a /dev/%s" % disk)
|
||||||
|
|
||||||
|
# Only the following bits in the exit status mean the device failed to
|
@ -0,0 +1,25 @@
|
|||||||
|
From 195f3b030de32f5993da736c75e6a9bd76e6a7c7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 26 Jun 2020 17:56:39 +0200
|
||||||
|
Subject: [PATCH 5/8] iscsi: Always flush interface property changes
|
||||||
|
|
||||||
|
---
|
||||||
|
modules/iscsi/udiskslinuxiscsisessionobject.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules/iscsi/udiskslinuxiscsisessionobject.c b/modules/iscsi/udiskslinuxiscsisessionobject.c
|
||||||
|
index 9e525e3f..a43cecd1 100644
|
||||||
|
--- a/modules/iscsi/udiskslinuxiscsisessionobject.c
|
||||||
|
+++ b/modules/iscsi/udiskslinuxiscsisessionobject.c
|
||||||
|
@@ -355,6 +355,8 @@ udisks_linux_iscsi_session_object_update_iface (UDisksLinuxISCSISessionObject *s
|
||||||
|
udisks_iscsi_session_set_lu_reset_timeout (iface, session_info.tmo.lu_reset_tmo);
|
||||||
|
udisks_iscsi_session_set_recovery_timeout (iface, session_info.tmo.recovery_tmo);
|
||||||
|
udisks_iscsi_session_set_tgt_reset_timeout (iface, session_info.tmo.tgt_reset_tmo);
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -0,0 +1,25 @@
|
|||||||
|
From 861a0d8721536e2d210b79c845bb4f5b266b037f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 26 Jun 2020 17:57:01 +0200
|
||||||
|
Subject: [PATCH 6/8] lsm: Always flush interface property changes
|
||||||
|
|
||||||
|
---
|
||||||
|
modules/lsm/lsm_linux_drive.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules/lsm/lsm_linux_drive.c b/modules/lsm/lsm_linux_drive.c
|
||||||
|
index 19e68c2f..6433c308 100644
|
||||||
|
--- a/modules/lsm/lsm_linux_drive.c
|
||||||
|
+++ b/modules/lsm/lsm_linux_drive.c
|
||||||
|
@@ -220,6 +220,8 @@ _fill_drive_lsm (UDisksLinuxDriveLSM *drive_lsm,
|
||||||
|
udisks_drive_lsm_set_min_io_size (std_drv_lsm, lsm_vol_data->min_io_size);
|
||||||
|
udisks_drive_lsm_set_opt_io_size (std_drv_lsm, lsm_vol_data->opt_io_size);
|
||||||
|
udisks_drive_lsm_set_raid_disk_count (std_drv_lsm, lsm_vol_data->raid_disk_count);
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (std_drv_lsm));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
110
udisks-2.9.1-lvm2-Always-flush-interface-property-changes.patch
Normal file
110
udisks-2.9.1-lvm2-Always-flush-interface-property-changes.patch
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
From 39d13907f712269bb9debd0fd8a0852347c98136 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 26 Jun 2020 17:55:53 +0200
|
||||||
|
Subject: [PATCH 2/8] lvm2: Always flush interface property changes
|
||||||
|
|
||||||
|
---
|
||||||
|
modules/lvm2/udiskslinuxlogicalvolume.c | 3 +++
|
||||||
|
modules/lvm2/udiskslinuxphysicalvolume.c | 2 ++
|
||||||
|
modules/lvm2/udiskslinuxvdovolume.c | 2 ++
|
||||||
|
modules/lvm2/udiskslinuxvolumegroup.c | 3 +++
|
||||||
|
modules/lvm2/udiskslinuxvolumegroupobject.c | 3 +++
|
||||||
|
5 files changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules/lvm2/udiskslinuxlogicalvolume.c b/modules/lvm2/udiskslinuxlogicalvolume.c
|
||||||
|
index 373cee2e..c0f074d8 100644
|
||||||
|
--- a/modules/lvm2/udiskslinuxlogicalvolume.c
|
||||||
|
+++ b/modules/lvm2/udiskslinuxlogicalvolume.c
|
||||||
|
@@ -229,6 +229,8 @@ udisks_linux_logical_volume_update (UDisksLinuxLogicalVolume *logical_volume
|
||||||
|
logical_volume->needs_udev_hack = FALSE;
|
||||||
|
g_free (dev_file);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -248,6 +250,7 @@ udisks_linux_logical_volume_update_etctabs (UDisksLinuxLogicalVolume *logica
|
||||||
|
udisks_logical_volume_set_child_configuration (iface,
|
||||||
|
udisks_linux_find_child_configuration (daemon,
|
||||||
|
uuid));
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
diff --git a/modules/lvm2/udiskslinuxphysicalvolume.c b/modules/lvm2/udiskslinuxphysicalvolume.c
|
||||||
|
index 27043030..36e7c322 100644
|
||||||
|
--- a/modules/lvm2/udiskslinuxphysicalvolume.c
|
||||||
|
+++ b/modules/lvm2/udiskslinuxphysicalvolume.c
|
||||||
|
@@ -143,6 +143,8 @@ udisks_linux_physical_volume_update (UDisksLinuxPhysicalVolume *physical_vo
|
||||||
|
udisks_physical_volume_set_size (iface, pv_info->pv_size);
|
||||||
|
udisks_physical_volume_set_free_size (iface, pv_info->pv_free);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
diff --git a/modules/lvm2/udiskslinuxvdovolume.c b/modules/lvm2/udiskslinuxvdovolume.c
|
||||||
|
index 317eddc2..430e2814 100644
|
||||||
|
--- a/modules/lvm2/udiskslinuxvdovolume.c
|
||||||
|
+++ b/modules/lvm2/udiskslinuxvdovolume.c
|
||||||
|
@@ -177,6 +177,8 @@ udisks_linux_vdo_volume_update (UDisksLinuxVDOVolume *vdo_volume,
|
||||||
|
|
||||||
|
udisks_vdo_volume_set_compression (iface, vdo_info->compression);
|
||||||
|
udisks_vdo_volume_set_deduplication (iface, vdo_info->deduplication);
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
diff --git a/modules/lvm2/udiskslinuxvolumegroup.c b/modules/lvm2/udiskslinuxvolumegroup.c
|
||||||
|
index aad2193e..3fbf6f02 100644
|
||||||
|
--- a/modules/lvm2/udiskslinuxvolumegroup.c
|
||||||
|
+++ b/modules/lvm2/udiskslinuxvolumegroup.c
|
||||||
|
@@ -136,11 +136,14 @@ udisks_linux_volume_group_update (UDisksLinuxVolumeGroup *volume_group,
|
||||||
|
gboolean *needs_polling_ret)
|
||||||
|
{
|
||||||
|
UDisksVolumeGroup *iface = UDISKS_VOLUME_GROUP (volume_group);
|
||||||
|
+
|
||||||
|
udisks_volume_group_set_name (iface, vg_info->name);
|
||||||
|
udisks_volume_group_set_uuid (iface, vg_info->uuid);
|
||||||
|
udisks_volume_group_set_size (iface, vg_info->size);
|
||||||
|
udisks_volume_group_set_free_size (iface, vg_info->free);
|
||||||
|
udisks_volume_group_set_extent_size (iface, vg_info->extent_size);
|
||||||
|
+
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
diff --git a/modules/lvm2/udiskslinuxvolumegroupobject.c b/modules/lvm2/udiskslinuxvolumegroupobject.c
|
||||||
|
index 50e9c640..e3bc8dfc 100644
|
||||||
|
--- a/modules/lvm2/udiskslinuxvolumegroupobject.c
|
||||||
|
+++ b/modules/lvm2/udiskslinuxvolumegroupobject.c
|
||||||
|
@@ -442,6 +442,7 @@ block_object_update_lvm_iface (UDisksLinuxBlockObject *object,
|
||||||
|
|
||||||
|
udisks_linux_block_lvm2_update (UDISKS_LINUX_BLOCK_LVM2 (iface_block_lvm2), object);
|
||||||
|
udisks_block_lvm2_set_logical_volume (iface_block_lvm2, lv_obj_path);
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface_block_lvm2));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -456,6 +457,7 @@ lv_object_update_block_path (UDisksLinuxBlockObject *block_object,
|
||||||
|
{
|
||||||
|
block_objpath = g_dbus_object_get_object_path (G_DBUS_OBJECT (block_object));
|
||||||
|
udisks_logical_volume_set_block_device (UDISKS_LOGICAL_VOLUME (lv), block_objpath);
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (lv));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -695,6 +697,7 @@ update_vg (GObject *source_obj,
|
||||||
|
bd_lvm_vgdata_free (vg_info);
|
||||||
|
lv_list_free (lvs);
|
||||||
|
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (object->iface_volume_group));
|
||||||
|
g_object_unref (object);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
34
udisks-2.9.1-lvm_vdo-test_resize_physical-size.patch
Normal file
34
udisks-2.9.1-lvm_vdo-test_resize_physical-size.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 890a0f3ca8cb5894d1764752c98b90dcb6274d6d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vojtech Trefny <vtrefny@redhat.com>
|
||||||
|
Date: Tue, 9 Jun 2020 11:16:15 +0200
|
||||||
|
Subject: [PATCH] dbus-tests: Fix UdisksLVMVDOTest.test_resize_physical
|
||||||
|
|
||||||
|
1 GiB suddenly isn't enough for physical size grow, lets hope
|
||||||
|
2 GiB will be enough for everyone.
|
||||||
|
|
||||||
|
Resolves: rhzb#1845435
|
||||||
|
---
|
||||||
|
src/tests/dbus-tests/test_20_LVM.py | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/tests/dbus-tests/test_20_LVM.py b/src/tests/dbus-tests/test_20_LVM.py
|
||||||
|
index e238879a3..1073a2f90 100644
|
||||||
|
--- a/src/tests/dbus-tests/test_20_LVM.py
|
||||||
|
+++ b/src/tests/dbus-tests/test_20_LVM.py
|
||||||
|
@@ -576,6 +576,7 @@ def test_resize_logical(self):
|
||||||
|
dbus_size = self.get_property(lv, '.LogicalVolume', 'Size')
|
||||||
|
dbus_size.assertEqual(vsize * 5)
|
||||||
|
|
||||||
|
+ @udiskstestcase.tag_test(udiskstestcase.TestTags.UNSTABLE)
|
||||||
|
def test_resize_physical(self):
|
||||||
|
vgname = 'udisks_test_vdo_vg'
|
||||||
|
|
||||||
|
@@ -586,7 +587,7 @@ def test_resize_physical(self):
|
||||||
|
vg_free = self.get_property(vg, '.VolumeGroup', 'FreeSize')
|
||||||
|
lv_name = 'udisks_test_vdovlv'
|
||||||
|
pool_name = 'udisks_test_vdopool'
|
||||||
|
- psize = vg_free.value - 1 * 1024**3
|
||||||
|
+ psize = vg_free.value - 2 * 1024**3
|
||||||
|
vsize = psize * 5
|
||||||
|
lv_path = vg.CreateVDOVolume(lv_name, pool_name, dbus.UInt64(psize), dbus.UInt64(vsize),
|
||||||
|
dbus.UInt64(0), True, True, "auto", self.no_options,
|
29
udisks-2.9.1-teardown-needle-match.patch
Normal file
29
udisks-2.9.1-teardown-needle-match.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From fdf6b233df960e6903c62b86735d86c59d967d12 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 19 Jun 2020 19:12:07 +0200
|
||||||
|
Subject: [PATCH] udiskslinuxblock: Fix fstab records matching by needle
|
||||||
|
|
||||||
|
Apparently mnt_fs_match_options() is not suitable for this use case.
|
||||||
|
---
|
||||||
|
src/udiskslinuxblock.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxblock.c b/src/udiskslinuxblock.c
|
||||||
|
index 888ec634..d5be8e4c 100644
|
||||||
|
--- a/src/udiskslinuxblock.c
|
||||||
|
+++ b/src/udiskslinuxblock.c
|
||||||
|
@@ -575,7 +575,10 @@ find_fstab_entries (UDisksDaemon *daemon,
|
||||||
|
}
|
||||||
|
else if (needle != NULL)
|
||||||
|
{
|
||||||
|
- if (mnt_fs_match_options (fs, needle) == 0)
|
||||||
|
+ const char *opts;
|
||||||
|
+
|
||||||
|
+ opts = mnt_fs_get_options (fs);
|
||||||
|
+ if (! opts || g_strstr_len (opts, -1, needle) == NULL)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -0,0 +1,24 @@
|
|||||||
|
From 724ff8679e0ae0fd4d84f4e6c1b36007e648e8ca Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 26 Jun 2020 17:57:12 +0200
|
||||||
|
Subject: [PATCH 7/8] zram: Always flush interface property changes
|
||||||
|
|
||||||
|
---
|
||||||
|
modules/zram/udiskslinuxblockzram.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/modules/zram/udiskslinuxblockzram.c b/modules/zram/udiskslinuxblockzram.c
|
||||||
|
index 132d4174..1bae3686 100644
|
||||||
|
--- a/modules/zram/udiskslinuxblockzram.c
|
||||||
|
+++ b/modules/zram/udiskslinuxblockzram.c
|
||||||
|
@@ -277,6 +277,7 @@ udisks_linux_block_zram_update (UDisksLinuxBlockZRAM *zramblock,
|
||||||
|
|
||||||
|
udisks_block_zram_set_active (iface, bd_swap_swapstatus (dev_file, &error));
|
||||||
|
out:
|
||||||
|
+ g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (iface));
|
||||||
|
if (zram_info)
|
||||||
|
bd_kbd_zram_stats_free (zram_info);
|
||||||
|
if (error)
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -0,0 +1,528 @@
|
|||||||
|
From 8d5c90a1f4bbe548a1ae361f8d69970669d6e72e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 13 Nov 2020 16:52:11 +0100
|
||||||
|
Subject: [PATCH 1/2] udisksdaemonutil: Refactor
|
||||||
|
udisks_daemon_util_trigger_uevent() out of UDisksLinuxBlockObject
|
||||||
|
|
||||||
|
This decouples uevent triggering from UDisksLinuxBlockObject as sometimes
|
||||||
|
we don't have a block object yet or it's outdated.
|
||||||
|
---
|
||||||
|
doc/udisks2-sections.txt.daemon.sections.in | 2 +
|
||||||
|
src/udisksdaemonutil.c | 230 ++++++++++++++++++++
|
||||||
|
src/udisksdaemonutil.h | 7 +
|
||||||
|
src/udiskslinuxblockobject.c | 180 ++-------------
|
||||||
|
4 files changed, 253 insertions(+), 166 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/udisks2-sections.txt.daemon.sections.in b/doc/udisks2-sections.txt.daemon.sections.in
|
||||||
|
index 26c3c2cd..3030fa95 100644
|
||||||
|
--- a/doc/udisks2-sections.txt.daemon.sections.in
|
||||||
|
+++ b/doc/udisks2-sections.txt.daemon.sections.in
|
||||||
|
@@ -307,6 +307,8 @@ udisks_daemon_util_file_set_contents
|
||||||
|
udisks_daemon_util_on_user_seat
|
||||||
|
udisks_daemon_util_get_free_mdraid_device
|
||||||
|
udisks_ata_identify_get_word
|
||||||
|
+udisks_daemon_util_trigger_uevent
|
||||||
|
+udisks_daemon_util_trigger_uevent_sync
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
diff --git a/src/udisksdaemonutil.c b/src/udisksdaemonutil.c
|
||||||
|
index 75b877a0..d16c0766 100644
|
||||||
|
--- a/src/udisksdaemonutil.c
|
||||||
|
+++ b/src/udisksdaemonutil.c
|
||||||
|
@@ -34,10 +34,14 @@
|
||||||
|
#include <limits.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
+#include <blockdev/blockdev.h>
|
||||||
|
+
|
||||||
|
#include "udisksdaemon.h"
|
||||||
|
#include "udisksdaemonutil.h"
|
||||||
|
#include "udisksstate.h"
|
||||||
|
#include "udiskslogging.h"
|
||||||
|
+#include "udiskslinuxdevice.h"
|
||||||
|
+#include "udiskslinuxprovider.h"
|
||||||
|
#include "udiskslinuxblockobject.h"
|
||||||
|
#include "udiskslinuxdriveobject.h"
|
||||||
|
|
||||||
|
@@ -1626,3 +1630,229 @@ udisks_ata_identify_get_word (const guchar *identify_data, guint word_number)
|
||||||
|
out:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
+
|
||||||
|
+static volatile guint uevent_serial = 0;
|
||||||
|
+
|
||||||
|
+static gboolean
|
||||||
|
+trigger_uevent (const gchar *path, const gchar *str)
|
||||||
|
+{
|
||||||
|
+ gint fd;
|
||||||
|
+
|
||||||
|
+ fd = open (path, O_WRONLY);
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ {
|
||||||
|
+ udisks_warning ("Error opening %s while triggering uevent: %m", path);
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (write (fd, str, strlen (str)) != (ssize_t) strlen (str))
|
||||||
|
+ {
|
||||||
|
+ udisks_warning ("Error writing '%s' to file %s: %m", str, path);
|
||||||
|
+ close (fd);
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ close (fd);
|
||||||
|
+ return TRUE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+typedef struct
|
||||||
|
+{
|
||||||
|
+ UDisksDaemon *daemon;
|
||||||
|
+ GMainLoop *main_loop;
|
||||||
|
+ guint serial;
|
||||||
|
+ gchar *uevent_path;
|
||||||
|
+ gboolean success;
|
||||||
|
+} SynthUeventData;
|
||||||
|
+
|
||||||
|
+static gboolean
|
||||||
|
+trigger_uevent_idle_cb (gpointer user_data)
|
||||||
|
+{
|
||||||
|
+ SynthUeventData *data = user_data;
|
||||||
|
+ gchar *str;
|
||||||
|
+
|
||||||
|
+ str = g_strdup_printf ("change %s UDISKSSERIAL=%u", udisks_daemon_get_uuid (data->daemon), data->serial);
|
||||||
|
+
|
||||||
|
+ if (! trigger_uevent (data->uevent_path, str))
|
||||||
|
+ {
|
||||||
|
+ /* kernel refused our string, try simple "change" but don't wait for it */
|
||||||
|
+ trigger_uevent (data->uevent_path, "change");
|
||||||
|
+ data->success = FALSE;
|
||||||
|
+ g_main_loop_quit (data->main_loop);
|
||||||
|
+ }
|
||||||
|
+ g_free (str);
|
||||||
|
+
|
||||||
|
+ /* remove the source */
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static gboolean
|
||||||
|
+uevent_wait_timeout_cb (gpointer user_data)
|
||||||
|
+{
|
||||||
|
+ SynthUeventData *data = user_data;
|
||||||
|
+
|
||||||
|
+ data->success = FALSE;
|
||||||
|
+ g_main_loop_quit (data->main_loop);
|
||||||
|
+
|
||||||
|
+ /* remove the source */
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+uevent_probed_cb (UDisksLinuxProvider *provider,
|
||||||
|
+ const gchar *action,
|
||||||
|
+ UDisksLinuxDevice *device,
|
||||||
|
+ gpointer user_data)
|
||||||
|
+{
|
||||||
|
+ SynthUeventData *data = user_data;
|
||||||
|
+ const gchar *received_serial_str;
|
||||||
|
+ gint64 received_serial;
|
||||||
|
+ gchar *endptr;
|
||||||
|
+
|
||||||
|
+ received_serial_str = g_udev_device_get_property (device->udev_device, "SYNTH_ARG_UDISKSSERIAL");
|
||||||
|
+ if (received_serial_str != NULL)
|
||||||
|
+ {
|
||||||
|
+ endptr = (gchar *) received_serial_str;
|
||||||
|
+ received_serial = g_ascii_strtoll (received_serial_str, &endptr, 0);
|
||||||
|
+ if (endptr != received_serial_str && received_serial == data->serial)
|
||||||
|
+ {
|
||||||
|
+ data->success = TRUE;
|
||||||
|
+ g_main_loop_quit (data->main_loop);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * udisks_daemon_util_trigger_uevent:
|
||||||
|
+ * @daemon: A #UDisksDaemon.
|
||||||
|
+ * @device_path: Block device path.
|
||||||
|
+ *
|
||||||
|
+ * Triggers a 'change' uevent in the kernel.
|
||||||
|
+ *
|
||||||
|
+ * The triggered event will bubble up from the kernel through the udev
|
||||||
|
+ * stack and will eventually be received by the udisks daemon process
|
||||||
|
+ * itself. This method does not wait for the event to be received.
|
||||||
|
+ */
|
||||||
|
+void
|
||||||
|
+udisks_daemon_util_trigger_uevent (UDisksDaemon *daemon,
|
||||||
|
+ const gchar *device_path)
|
||||||
|
+{
|
||||||
|
+ GUdevClient *gudev_client;
|
||||||
|
+ GUdevDevice *gudev_device;
|
||||||
|
+ gchar *path;
|
||||||
|
+
|
||||||
|
+ g_return_if_fail (UDISKS_IS_DAEMON (daemon));
|
||||||
|
+ g_return_if_fail (device_path != NULL);
|
||||||
|
+
|
||||||
|
+ gudev_client = udisks_linux_provider_get_udev_client (udisks_daemon_get_linux_provider (daemon));
|
||||||
|
+ gudev_device = g_udev_client_query_by_device_file (gudev_client, device_path);
|
||||||
|
+ if (gudev_device == NULL)
|
||||||
|
+ {
|
||||||
|
+ udisks_critical ("Device %s not found in udev database, skipping uevent trigger", device_path);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ path = g_build_filename (g_udev_device_get_sysfs_path (gudev_device), "uevent", NULL);
|
||||||
|
+ trigger_uevent (path, "change");
|
||||||
|
+ g_free (path);
|
||||||
|
+
|
||||||
|
+ g_object_unref (gudev_device);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * udisks_daemon_util_trigger_uevent_sync:
|
||||||
|
+ * @daemon: A #UDisksDaemon.
|
||||||
|
+ * @device_path: Block device path.
|
||||||
|
+ * @timeout_seconds: Maximum time to wait for the uevent (in seconds).
|
||||||
|
+ *
|
||||||
|
+ * Triggers a 'change' uevent in the kernel and waits until it's received and
|
||||||
|
+ * processed by udisks.
|
||||||
|
+ *
|
||||||
|
+ * Unlike udisks_daemon_util_trigger_uevent() that just triggers
|
||||||
|
+ * a synthetic uevent to the kernel, this call will actually block and wait until
|
||||||
|
+ * the #UDisksLinuxProvider receives the uevent, performs probing and processes
|
||||||
|
+ * the uevent further down the UDisks object stack. Upon returning from this
|
||||||
|
+ * function call the caller may assume the event has been fully processed, all
|
||||||
|
+ * D-Bus objects are updated and settled. Typically used in busy wait for
|
||||||
|
+ * a particular D-Bus interface.
|
||||||
|
+ *
|
||||||
|
+ * Note that this uses synthetic uevent tagging and only works on linux kernel
|
||||||
|
+ * 4.13 and higher. In case an older kernel is detected this acts like the classic
|
||||||
|
+ * udisks_daemon_util_trigger_uevent() call and %FALSE is returned.
|
||||||
|
+ *
|
||||||
|
+ * Returns: %TRUE if the uevent has been successfully received, %FALSE otherwise
|
||||||
|
+ * or when the kernel version is too old.
|
||||||
|
+ */
|
||||||
|
+gboolean
|
||||||
|
+udisks_daemon_util_trigger_uevent_sync (UDisksDaemon *daemon,
|
||||||
|
+ const gchar *device_path,
|
||||||
|
+ guint timeout_seconds)
|
||||||
|
+{
|
||||||
|
+ UDisksLinuxProvider *provider;
|
||||||
|
+ GUdevClient *gudev_client;
|
||||||
|
+ GUdevDevice *gudev_device;
|
||||||
|
+ SynthUeventData data;
|
||||||
|
+ GMainContext *main_context;
|
||||||
|
+ GSource *idle_source;
|
||||||
|
+ GSource *timeout_source;
|
||||||
|
+
|
||||||
|
+ g_return_val_if_fail (UDISKS_IS_DAEMON (daemon), FALSE);
|
||||||
|
+ g_return_val_if_fail (device_path != NULL, FALSE);
|
||||||
|
+
|
||||||
|
+ if (bd_utils_check_linux_version (4, 13, 0) < 0)
|
||||||
|
+ {
|
||||||
|
+ udisks_daemon_util_trigger_uevent (daemon, device_path);
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ provider = udisks_daemon_get_linux_provider (daemon);
|
||||||
|
+ gudev_client = udisks_linux_provider_get_udev_client (provider);
|
||||||
|
+ gudev_device = g_udev_client_query_by_device_file (gudev_client, device_path);
|
||||||
|
+ if (gudev_device == NULL)
|
||||||
|
+ {
|
||||||
|
+ udisks_critical ("Device %s not found in udev database, skipping uevent trigger", device_path);
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ data.daemon = daemon;
|
||||||
|
+ data.uevent_path = g_build_filename (g_udev_device_get_sysfs_path (gudev_device), "uevent", NULL);
|
||||||
|
+ data.serial = g_atomic_int_add (&uevent_serial, 1);
|
||||||
|
+
|
||||||
|
+ main_context = g_main_context_new ();
|
||||||
|
+ g_main_context_push_thread_default (main_context);
|
||||||
|
+ data.main_loop = g_main_loop_new (main_context, FALSE);
|
||||||
|
+
|
||||||
|
+ /* queue the actual trigger in the loop */
|
||||||
|
+ idle_source = g_idle_source_new ();
|
||||||
|
+ g_source_set_callback (idle_source, (GSourceFunc) trigger_uevent_idle_cb, &data, NULL);
|
||||||
|
+ g_source_attach (idle_source, main_context);
|
||||||
|
+ g_source_unref (idle_source);
|
||||||
|
+
|
||||||
|
+ /* add timeout as a fallback */
|
||||||
|
+ timeout_source = g_timeout_source_new_seconds (timeout_seconds);
|
||||||
|
+ g_source_set_callback (timeout_source, (GSourceFunc) uevent_wait_timeout_cb, &data, NULL);
|
||||||
|
+ g_source_attach (timeout_source, main_context);
|
||||||
|
+ g_source_unref (timeout_source);
|
||||||
|
+
|
||||||
|
+ /* catch incoming uevents */
|
||||||
|
+ g_signal_connect (provider, "uevent-probed", G_CALLBACK (uevent_probed_cb), &data);
|
||||||
|
+
|
||||||
|
+ data.success = FALSE;
|
||||||
|
+ g_main_loop_run (data.main_loop);
|
||||||
|
+
|
||||||
|
+ g_signal_handlers_disconnect_by_func (provider, uevent_probed_cb, &data);
|
||||||
|
+ g_main_context_pop_thread_default (main_context);
|
||||||
|
+
|
||||||
|
+ g_main_loop_unref (data.main_loop);
|
||||||
|
+ g_main_context_unref (main_context);
|
||||||
|
+
|
||||||
|
+ g_free (data.uevent_path);
|
||||||
|
+ g_object_unref (gudev_device);
|
||||||
|
+
|
||||||
|
+ return data.success;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
diff --git a/src/udisksdaemonutil.h b/src/udisksdaemonutil.h
|
||||||
|
index 4fe36214..2edf2122 100644
|
||||||
|
--- a/src/udisksdaemonutil.h
|
||||||
|
+++ b/src/udisksdaemonutil.h
|
||||||
|
@@ -51,6 +51,13 @@ guint64 udisks_daemon_util_block_get_size (GUdevDevice *device,
|
||||||
|
gboolean *out_media_available,
|
||||||
|
gboolean *out_media_change_detected);
|
||||||
|
|
||||||
|
+void udisks_daemon_util_trigger_uevent (UDisksDaemon *daemon,
|
||||||
|
+ const gchar *device_path);
|
||||||
|
+
|
||||||
|
+gboolean udisks_daemon_util_trigger_uevent_sync (UDisksDaemon *daemon,
|
||||||
|
+ const gchar *device_path,
|
||||||
|
+ guint timeout_seconds);
|
||||||
|
+
|
||||||
|
gchar *udisks_daemon_util_resolve_link (const gchar *path,
|
||||||
|
const gchar *name);
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxblockobject.c b/src/udiskslinuxblockobject.c
|
||||||
|
index 42ab17d7..5a68c84b 100644
|
||||||
|
--- a/src/udiskslinuxblockobject.c
|
||||||
|
+++ b/src/udiskslinuxblockobject.c
|
||||||
|
@@ -38,8 +38,6 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <glib/gstdio.h>
|
||||||
|
|
||||||
|
-#include <blockdev/blockdev.h>
|
||||||
|
-
|
||||||
|
#include "udiskslogging.h"
|
||||||
|
#include "udisksdaemon.h"
|
||||||
|
#include "udisksdaemonutil.h"
|
||||||
|
@@ -959,122 +957,24 @@ on_mount_monitor_mount_removed (UDisksMountMonitor *monitor,
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
-static volatile guint uevent_serial = 0;
|
||||||
|
-
|
||||||
|
-static gboolean
|
||||||
|
-trigger_uevent (const gchar *path, const gchar *str)
|
||||||
|
-{
|
||||||
|
- gint fd;
|
||||||
|
-
|
||||||
|
- fd = open (path, O_WRONLY);
|
||||||
|
- if (fd < 0)
|
||||||
|
- {
|
||||||
|
- udisks_warning ("Error opening %s while triggering uevent: %m", path);
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (write (fd, str, strlen (str)) != (ssize_t) strlen (str))
|
||||||
|
- {
|
||||||
|
- udisks_warning ("Error writing '%s' to file %s: %m", str, path);
|
||||||
|
- close (fd);
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- close (fd);
|
||||||
|
- return TRUE;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-typedef struct
|
||||||
|
-{
|
||||||
|
- UDisksLinuxBlockObject *object;
|
||||||
|
- GMainLoop *main_loop;
|
||||||
|
- guint serial;
|
||||||
|
- gchar *uevent_path;
|
||||||
|
- gboolean success;
|
||||||
|
-} SynthUeventData;
|
||||||
|
-
|
||||||
|
-static gboolean
|
||||||
|
-trigger_uevent_idle_cb (gpointer user_data)
|
||||||
|
-{
|
||||||
|
- SynthUeventData *data = user_data;
|
||||||
|
- gchar *str;
|
||||||
|
-
|
||||||
|
- str = g_strdup_printf ("change %s UDISKSSERIAL=%u", udisks_daemon_get_uuid (data->object->daemon), data->serial);
|
||||||
|
-
|
||||||
|
- if (! trigger_uevent (data->uevent_path, str))
|
||||||
|
- {
|
||||||
|
- /* kernel refused our string, try simple "change" but don't wait for it */
|
||||||
|
- trigger_uevent (data->uevent_path, "change");
|
||||||
|
- data->success = FALSE;
|
||||||
|
- g_main_loop_quit (data->main_loop);
|
||||||
|
- }
|
||||||
|
- g_free (str);
|
||||||
|
-
|
||||||
|
- /* remove the source */
|
||||||
|
- return FALSE;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static gboolean
|
||||||
|
-uevent_wait_timeout_cb (gpointer user_data)
|
||||||
|
-{
|
||||||
|
- SynthUeventData *data = user_data;
|
||||||
|
-
|
||||||
|
- data->success = FALSE;
|
||||||
|
- g_main_loop_quit (data->main_loop);
|
||||||
|
-
|
||||||
|
- /* remove the source */
|
||||||
|
- return FALSE;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-static void
|
||||||
|
-uevent_probed_cb (UDisksLinuxProvider *provider,
|
||||||
|
- const gchar *action,
|
||||||
|
- UDisksLinuxDevice *device,
|
||||||
|
- gpointer user_data)
|
||||||
|
-{
|
||||||
|
- SynthUeventData *data = user_data;
|
||||||
|
- const gchar *received_serial_str;
|
||||||
|
- gint64 received_serial;
|
||||||
|
- gchar *endptr;
|
||||||
|
-
|
||||||
|
- received_serial_str = g_udev_device_get_property (device->udev_device, "SYNTH_ARG_UDISKSSERIAL");
|
||||||
|
- if (received_serial_str != NULL)
|
||||||
|
- {
|
||||||
|
- endptr = (gchar *) received_serial_str;
|
||||||
|
- received_serial = g_ascii_strtoll (received_serial_str, &endptr, 0);
|
||||||
|
- if (endptr != received_serial_str && received_serial == data->serial)
|
||||||
|
- {
|
||||||
|
- data->success = TRUE;
|
||||||
|
- g_main_loop_quit (data->main_loop);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
/**
|
||||||
|
* udisks_linux_block_object_trigger_uevent:
|
||||||
|
* @object: A #UDisksLinuxBlockObject.
|
||||||
|
*
|
||||||
|
* Triggers a 'change' uevent in the kernel.
|
||||||
|
*
|
||||||
|
- * The triggered event will bubble up from the kernel through the udev
|
||||||
|
- * stack and will eventually be received by the udisks daemon process
|
||||||
|
- * itself. This method does not wait for the event to be received.
|
||||||
|
+ * Refer to udisks_daemon_util_trigger_uevent() for detailed description.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
udisks_linux_block_object_trigger_uevent (UDisksLinuxBlockObject *object)
|
||||||
|
{
|
||||||
|
- UDisksLinuxDevice *device;
|
||||||
|
- gchar *path;
|
||||||
|
+ gchar *device_file;
|
||||||
|
|
||||||
|
g_return_if_fail (UDISKS_IS_LINUX_BLOCK_OBJECT (object));
|
||||||
|
|
||||||
|
- device = udisks_linux_block_object_get_device (object);
|
||||||
|
- path = g_strconcat (g_udev_device_get_sysfs_path (device->udev_device), "/uevent", NULL);
|
||||||
|
-
|
||||||
|
- trigger_uevent (path, "change");
|
||||||
|
-
|
||||||
|
- g_free (path);
|
||||||
|
- g_object_unref (device);
|
||||||
|
+ device_file = udisks_linux_block_object_get_device_file (object);
|
||||||
|
+ udisks_daemon_util_trigger_uevent (object->daemon, device_file);
|
||||||
|
+ g_free (device_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -1083,19 +983,10 @@ udisks_linux_block_object_trigger_uevent (UDisksLinuxBlockObject *object)
|
||||||
|
* @timeout_seconds: Maximum time to wait for the uevent (in seconds).
|
||||||
|
*
|
||||||
|
* Triggers a 'change' uevent in the kernel and waits until it's received and
|
||||||
|
- * processed by udisks.
|
||||||
|
- *
|
||||||
|
- * Unlike udisks_linux_block_object_trigger_uevent() that just triggers
|
||||||
|
- * a synthetic uevent to the kernel, this call will actually block and wait until
|
||||||
|
- * the #UDisksLinuxProvider receives the uevent, performs probing and processes
|
||||||
|
- * the uevent further down the UDisks object stack. Upon returning from this
|
||||||
|
- * function call the caller may assume the event has been fully processed, all
|
||||||
|
- * D-Bus objects are updated and settled. Typically used in busy wait for
|
||||||
|
- * a particular D-Bus interface.
|
||||||
|
+ * processed through the uevent queue.
|
||||||
|
*
|
||||||
|
- * Note that this uses synthetic uevent tagging and only works on linux kernel
|
||||||
|
- * 4.13 and higher. In case an older kernel is detected this acts like the classic
|
||||||
|
- * udisks_linux_block_object_trigger_uevent() call and %FALSE is returned.
|
||||||
|
+ * This is a convenient wrapper around udisks_daemon_util_trigger_uevent_sync().
|
||||||
|
+ * Refer to this function for detailed documentation.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if the uevent has been successfully received, %FALSE otherwise
|
||||||
|
* or when the kernel version is too old.
|
||||||
|
@@ -1104,59 +995,16 @@ gboolean
|
||||||
|
udisks_linux_block_object_trigger_uevent_sync (UDisksLinuxBlockObject *object,
|
||||||
|
guint timeout_seconds)
|
||||||
|
{
|
||||||
|
- UDisksLinuxDevice *device;
|
||||||
|
- UDisksLinuxProvider *provider;
|
||||||
|
- SynthUeventData data;
|
||||||
|
- GMainContext *main_context;
|
||||||
|
- GSource *idle_source;
|
||||||
|
- GSource *timeout_source;
|
||||||
|
+ gchar *device_file;
|
||||||
|
+ gboolean ret;
|
||||||
|
|
||||||
|
g_return_val_if_fail (UDISKS_IS_LINUX_BLOCK_OBJECT (object), FALSE);
|
||||||
|
|
||||||
|
- if (bd_utils_check_linux_version (4, 13, 0) < 0)
|
||||||
|
- {
|
||||||
|
- udisks_linux_block_object_trigger_uevent (object);
|
||||||
|
- return FALSE;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- data.object = object;
|
||||||
|
- device = udisks_linux_block_object_get_device (object);
|
||||||
|
- data.uevent_path = g_strconcat (g_udev_device_get_sysfs_path (device->udev_device), "/uevent", NULL);
|
||||||
|
- data.serial = g_atomic_int_add (&uevent_serial, 1);
|
||||||
|
-
|
||||||
|
- main_context = g_main_context_new ();
|
||||||
|
- g_main_context_push_thread_default (main_context);
|
||||||
|
- data.main_loop = g_main_loop_new (main_context, FALSE);
|
||||||
|
-
|
||||||
|
- /* queue the actual trigger in the loop */
|
||||||
|
- idle_source = g_idle_source_new ();
|
||||||
|
- g_source_set_callback (idle_source, (GSourceFunc) trigger_uevent_idle_cb, &data, NULL);
|
||||||
|
- g_source_attach (idle_source, main_context);
|
||||||
|
- g_source_unref (idle_source);
|
||||||
|
+ device_file = udisks_linux_block_object_get_device_file (object);
|
||||||
|
+ ret = udisks_daemon_util_trigger_uevent_sync (object->daemon, device_file, timeout_seconds);
|
||||||
|
+ g_free (device_file);
|
||||||
|
|
||||||
|
- /* add timeout as a fallback */
|
||||||
|
- timeout_source = g_timeout_source_new_seconds (timeout_seconds);
|
||||||
|
- g_source_set_callback (timeout_source, (GSourceFunc) uevent_wait_timeout_cb, &data, NULL);
|
||||||
|
- g_source_attach (timeout_source, main_context);
|
||||||
|
- g_source_unref (timeout_source);
|
||||||
|
-
|
||||||
|
- /* catch incoming uevents */
|
||||||
|
- provider = udisks_daemon_get_linux_provider (object->daemon);
|
||||||
|
- g_signal_connect (provider, "uevent-probed", G_CALLBACK (uevent_probed_cb), &data);
|
||||||
|
-
|
||||||
|
- data.success = FALSE;
|
||||||
|
- g_main_loop_run (data.main_loop);
|
||||||
|
-
|
||||||
|
- g_signal_handlers_disconnect_by_func (provider, uevent_probed_cb, &data);
|
||||||
|
- g_main_context_pop_thread_default (main_context);
|
||||||
|
-
|
||||||
|
- g_main_loop_unref (data.main_loop);
|
||||||
|
- g_main_context_unref (main_context);
|
||||||
|
-
|
||||||
|
- g_free (data.uevent_path);
|
||||||
|
- g_object_unref (device);
|
||||||
|
-
|
||||||
|
- return data.success;
|
||||||
|
+ return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------------------------------------- */
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From 7fe04e70dc5a5ccf621a0beacc6d4b9e904037df Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Fri, 13 Nov 2020 16:57:24 +0100
|
||||||
|
Subject: [PATCH 2/2] udiskslinuxmanager: Trigger uevent after loop device
|
||||||
|
setup
|
||||||
|
|
||||||
|
---
|
||||||
|
src/udiskslinuxmanager.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/udiskslinuxmanager.c b/src/udiskslinuxmanager.c
|
||||||
|
index 1bbf980a..e0a83a80 100644
|
||||||
|
--- a/src/udiskslinuxmanager.c
|
||||||
|
+++ b/src/udiskslinuxmanager.c
|
||||||
|
@@ -430,6 +430,9 @@ handle_loop_setup (UDisksManager *object,
|
||||||
|
error = NULL;
|
||||||
|
wait_data.loop_device = loop_device;
|
||||||
|
wait_data.path = path;
|
||||||
|
+ udisks_daemon_util_trigger_uevent_sync (manager->daemon,
|
||||||
|
+ loop_device,
|
||||||
|
+ UDISKS_DEFAULT_WAIT_TIMEOUT);
|
||||||
|
loop_object = udisks_daemon_wait_for_object_sync (manager->daemon,
|
||||||
|
wait_for_loop_object,
|
||||||
|
&wait_data,
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
54
udisks-2.9.4-ext-mount-options.patch
Normal file
54
udisks-2.9.4-ext-mount-options.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
From 2d5d2b7570b0f44c14b34b5dc831f174205c10f2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
||||||
|
Date: Wed, 15 Sep 2021 14:34:49 +0200
|
||||||
|
Subject: [PATCH] mount options: Always use errors=remount-ro for ext
|
||||||
|
filesystems
|
||||||
|
|
||||||
|
Default mount options are focused primarily on data safety, mounting
|
||||||
|
damaged ext2/3/4 filesystem as readonly would indicate something's wrong.
|
||||||
|
---
|
||||||
|
data/builtin_mount_options.conf | 9 +++++++++
|
||||||
|
src/tests/dbus-tests/test_80_filesystem.py | 6 ++++++
|
||||||
|
2 files changed, 15 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/data/builtin_mount_options.conf b/data/builtin_mount_options.conf
|
||||||
|
index 37715cfa4..e0bd0ee1f 100644
|
||||||
|
--- a/data/builtin_mount_options.conf
|
||||||
|
+++ b/data/builtin_mount_options.conf
|
||||||
|
@@ -27,3 +27,12 @@ f2fs_allow=discard,nodiscard,compress_algorithm,compress_log_size,compress_exten
|
||||||
|
btrfs_allow=compress,compress-force,datacow,nodatacow,datasum,nodatasum,degraded,device,discard,nodiscard,subvol,subvolid,space_cache
|
||||||
|
|
||||||
|
f2fs_allow=discard,nodiscard,compress_algorithm,compress_log_size,compress_extension,alloc_mode
|
||||||
|
+
|
||||||
|
+ext2_defaults=errors=remount-ro
|
||||||
|
+ext2_allow=errors=remount-ro
|
||||||
|
+
|
||||||
|
+ext3_defaults=errors=remount-ro
|
||||||
|
+ext3_allow=errors=remount-ro
|
||||||
|
+
|
||||||
|
+ext4_defaults=errors=remount-ro
|
||||||
|
+ext4_allow=errors=remount-ro
|
||||||
|
diff --git a/src/tests/dbus-tests/test_80_filesystem.py b/src/tests/dbus-tests/test_80_filesystem.py
|
||||||
|
index 019880f57..2d1933240 100644
|
||||||
|
--- a/src/tests/dbus-tests/test_80_filesystem.py
|
||||||
|
+++ b/src/tests/dbus-tests/test_80_filesystem.py
|
||||||
|
@@ -321,6 +321,8 @@ def test_mount_auto(self):
|
||||||
|
_ret, out = self.run_command('mount | grep %s' % block_fs_dev)
|
||||||
|
self.assertIn(mnt_path, out)
|
||||||
|
self.assertIn('ro', out)
|
||||||
|
+ if self._fs_name.startswith('ext'):
|
||||||
|
+ self.assertIn('errors=remount-ro', out)
|
||||||
|
|
||||||
|
# dbus mountpoint
|
||||||
|
dbus_mounts = self.get_property(block_fs, '.Filesystem', 'MountPoints')
|
||||||
|
@@ -478,6 +480,10 @@ def test_custom_option(self, should_fail, dbus_option, should_be_present, config
|
||||||
|
if self._fs_name == "udf":
|
||||||
|
test_custom_option(self, False, None, False, "[defaults]\ndefaults=\nallow=exec,noexec,nodev,nosuid,atime,noatime,nodiratime,ro,rw,sync,dirsync,noload,uid=ignore,uid=forget\n")
|
||||||
|
test_custom_option(self, True, "uid=notallowed", True, "[defaults]\nallow=exec,noexec,nodev,nosuid,atime,noatime,nodiratime,ro,rw,sync,dirsync,noload,uid=ignore\n")
|
||||||
|
+ if self._fs_name.startswith("ext"):
|
||||||
|
+ test_custom_option(self, False, "errors=remount-ro", True, "", match_mount_option="errors=remount-ro")
|
||||||
|
+ test_custom_option(self, True, "errors=panic", False, "")
|
||||||
|
+ test_custom_option(self, True, "errors=continue", False, "")
|
||||||
|
|
||||||
|
# udev rules overrides
|
||||||
|
test_readonly(self, False, "", udev_rules_content = { "UDISKS_MOUNT_OPTIONS_DEFAULTS": "rw" })
|
690
udisks2.spec
Normal file
690
udisks2.spec
Normal file
@ -0,0 +1,690 @@
|
|||||||
|
%global glib2_version 2.36
|
||||||
|
%global gobject_introspection_version 1.30.0
|
||||||
|
%global polkit_version 0.102
|
||||||
|
%global systemd_version 208
|
||||||
|
%global libatasmart_version 0.17
|
||||||
|
%global dbus_version 1.4.0
|
||||||
|
%global with_gtk_doc 1
|
||||||
|
%global libblockdev_version 2.24
|
||||||
|
|
||||||
|
%define with_bcache 1
|
||||||
|
%define with_btrfs 1
|
||||||
|
%define with_vdo 0
|
||||||
|
%define with_lsm 1
|
||||||
|
%define with_zram 1
|
||||||
|
%define with_lvmcache 1
|
||||||
|
|
||||||
|
# valid options are 'luks1' or 'luks2'
|
||||||
|
%define default_luks_encryption luks1
|
||||||
|
|
||||||
|
%define is_fedora 0%{?rhel} == 0
|
||||||
|
|
||||||
|
|
||||||
|
# bcache and zram are not available on RHEL
|
||||||
|
%if (0%{?rhel})
|
||||||
|
%define with_bcache 0
|
||||||
|
%define with_zram 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# btrfs is not available on RHEL > 7
|
||||||
|
%if 0%{?rhel} > 7 || %{with_btrfs} == 0
|
||||||
|
%define with_btrfs 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# vdo is not available on Fedora
|
||||||
|
%if (0%{?fedora}) || %{with_vdo} == 0
|
||||||
|
%define with_vdo 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# vdo is not available on i686
|
||||||
|
%ifnarch x86_64 aarch64 ppc64le s390x
|
||||||
|
%define with_vdo 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# feature parity with existing RHEL 7 packages
|
||||||
|
%if (0%{?rhel}) && (0%{?rhel} <= 7)
|
||||||
|
%define with_lsm 0
|
||||||
|
%define with_lvmcache 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# default to LUKS2 for RHEL > 7
|
||||||
|
%if 0%{?rhel} > 7
|
||||||
|
%define default_luks_encryption luks2
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
Name: udisks2
|
||||||
|
Summary: Disk Manager
|
||||||
|
Version: 2.9.0
|
||||||
|
Release: 9%{?dist}
|
||||||
|
License: GPLv2+
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
URL: https://github.com/storaged-project/udisks
|
||||||
|
Source0: https://github.com/storaged-project/udisks/releases/download/udisks-%{version}/udisks-%{version}.tar.bz2
|
||||||
|
Patch0: udisks-2.9.1-teardown-needle-match.patch
|
||||||
|
Patch1: udisks-2.9.1-lvm_vdo-test_resize_physical-size.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1855785
|
||||||
|
Patch2: udisks-2.9.1-drive_ata_tests.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1845973
|
||||||
|
Patch10: udisks-2.9.1-daemon-Always-flush-interface-property-changes.patch
|
||||||
|
Patch11: udisks-2.9.1-lvm2-Always-flush-interface-property-changes.patch
|
||||||
|
Patch12: udisks-2.9.1-lsm-Always-flush-interface-property-changes.patch
|
||||||
|
Patch13: udisks-2.9.1-iscsi-Always-flush-interface-property-changes.patch
|
||||||
|
Patch14: udisks-2.9.1-zram-Always-flush-interface-property-changes.patch
|
||||||
|
Patch15: udisks-2.9.2-udisksdaemonutil-Refactor-udisks_daemon_util_trigger.patch
|
||||||
|
Patch16: udisks-2.9.2-udiskslinuxmanager-Trigger-uevent-after-loop-device-setup.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2004422
|
||||||
|
Patch17: udisks-2.9.4-ext-mount-options.patch
|
||||||
|
Patch20: udisks-2.10.0-tests-drive_ata-apm.patch
|
||||||
|
Patch21: udisks-2.10.0-tests-no-dev_disk-by-path.patch
|
||||||
|
Patch22: tests-disable-zram.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2023880
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2025483
|
||||||
|
Patch23: udisks-2.10.0-vdo_test_writeAmplificationRatio.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1999149
|
||||||
|
Patch24: udisks-2.10.0-udiskslinuxencrypted_GError.patch
|
||||||
|
Patch25: udisks-2.10.0-udiskslinuxpartition_GError.patch
|
||||||
|
Patch26: udisks-2.10.0-udiskslinuxpartitiontable_GError.patch
|
||||||
|
Patch27: udisks-2.10.0-udiskslinuxfilesystem_GError.patch
|
||||||
|
|
||||||
|
BuildRequires: glib2-devel >= %{glib2_version}
|
||||||
|
BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version}
|
||||||
|
BuildRequires: libgudev1-devel >= %{systemd_version}
|
||||||
|
BuildRequires: libatasmart-devel >= %{libatasmart_version}
|
||||||
|
BuildRequires: polkit-devel >= %{polkit_version}
|
||||||
|
BuildRequires: systemd >= %{systemd_version}
|
||||||
|
BuildRequires: systemd-devel >= %{systemd_version}
|
||||||
|
BuildRequires: libacl-devel
|
||||||
|
BuildRequires: chrpath
|
||||||
|
BuildRequires: gtk-doc
|
||||||
|
BuildRequires: gettext-devel
|
||||||
|
BuildRequires: redhat-rpm-config
|
||||||
|
BuildRequires: libblockdev-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-part-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-loop-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-swap-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-mdraid-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-fs-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-crypto-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libmount-devel
|
||||||
|
BuildRequires: libuuid-devel
|
||||||
|
|
||||||
|
Requires: libblockdev >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-part >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-loop >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-swap >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-mdraid >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-fs >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-crypto >= %{libblockdev_version}
|
||||||
|
|
||||||
|
# Needed for the systemd-related macros used in this file
|
||||||
|
%{?systemd_requires}
|
||||||
|
BuildRequires: systemd
|
||||||
|
|
||||||
|
# Needed to pull in the system bus daemon
|
||||||
|
Requires: dbus >= %{dbus_version}
|
||||||
|
# Needed to pull in the udev daemon
|
||||||
|
Requires: udev >= %{systemd_version}
|
||||||
|
# We need at least this version for bugfixes/features etc.
|
||||||
|
Requires: libatasmart >= %{libatasmart_version}
|
||||||
|
# For mount, umount, mkswap
|
||||||
|
Requires: util-linux
|
||||||
|
# For mkfs.ext3, mkfs.ext3, e2label
|
||||||
|
Requires: e2fsprogs
|
||||||
|
# For mkfs.xfs, xfs_admin
|
||||||
|
Requires: xfsprogs
|
||||||
|
# For mkfs.vfat
|
||||||
|
Requires: dosfstools
|
||||||
|
Requires: gdisk
|
||||||
|
# For ejecting removable disks
|
||||||
|
Requires: eject
|
||||||
|
# For utab monitor
|
||||||
|
Requires: libmount
|
||||||
|
|
||||||
|
Requires: lib%{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
# For mkntfs (not available on rhel or on ppc/ppc64)
|
||||||
|
%if ! 0%{?rhel}
|
||||||
|
%ifnarch ppc ppc64
|
||||||
|
Requires: ntfsprogs
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# For /proc/self/mountinfo, only available in 2.6.26 or higher
|
||||||
|
Conflicts: kernel < 2.6.26
|
||||||
|
|
||||||
|
Provides: storaged = %{version}-%{release}
|
||||||
|
Obsoletes: storaged
|
||||||
|
|
||||||
|
%description
|
||||||
|
The Udisks project provides a daemon, tools and libraries to access and
|
||||||
|
manipulate disks, storage devices and technologies.
|
||||||
|
|
||||||
|
%package -n lib%{name}
|
||||||
|
Summary: Dynamic library to access the udisksd daemon
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
License: LGPLv2+
|
||||||
|
Provides: libstoraged = %{version}-%{release}
|
||||||
|
Obsoletes: libstoraged
|
||||||
|
|
||||||
|
%description -n lib%{name}
|
||||||
|
This package contains the dynamic library, which provides
|
||||||
|
access to the udisksd daemon.
|
||||||
|
|
||||||
|
%package -n %{name}-iscsi
|
||||||
|
Summary: Module for iSCSI
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: iscsi-initiator-utils
|
||||||
|
BuildRequires: iscsi-initiator-utils-devel
|
||||||
|
Provides: storaged-iscsi = %{version}-%{release}
|
||||||
|
Obsoletes: storaged-iscsi
|
||||||
|
|
||||||
|
%description -n %{name}-iscsi
|
||||||
|
This package contains module for iSCSI configuration.
|
||||||
|
|
||||||
|
%package -n %{name}-lvm2
|
||||||
|
Summary: Module for LVM2
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: lvm2
|
||||||
|
Requires: libblockdev-lvm >= %{libblockdev_version}
|
||||||
|
BuildRequires: lvm2-devel
|
||||||
|
BuildRequires: libblockdev-lvm-devel >= %{libblockdev_version}
|
||||||
|
Provides: storaged-lvm2 = %{version}-%{release}
|
||||||
|
Obsoletes: storaged-lvm2
|
||||||
|
|
||||||
|
%description -n %{name}-lvm2
|
||||||
|
This package contains module for LVM2 configuration.
|
||||||
|
|
||||||
|
%package -n lib%{name}-devel
|
||||||
|
Summary: Development files for lib%{name}
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: lib%{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Provides: libstoraged-devel = %{version}-%{release}
|
||||||
|
Obsoletes: libstoraged-devel
|
||||||
|
|
||||||
|
%description -n lib%{name}-devel
|
||||||
|
This package contains the development files for the library lib%{name}, a
|
||||||
|
dynamic library, which provides access to the udisksd daemon.
|
||||||
|
|
||||||
|
%if 0%{?with_bcache}
|
||||||
|
%package -n %{name}-bcache
|
||||||
|
Summary: Module for Bcache
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: libblockdev-kbd >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-kbd-devel >= %{libblockdev_version}
|
||||||
|
Provides: storaged-bcache = %{version}-%{release}
|
||||||
|
Obsoletes: storaged-bcache
|
||||||
|
|
||||||
|
%description -n %{name}-bcache
|
||||||
|
This package contains module for Bcache configuration.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_btrfs}
|
||||||
|
%package -n %{name}-btrfs
|
||||||
|
Summary: Module for BTRFS
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: libblockdev-btrfs >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-btrfs-devel >= %{libblockdev_version}
|
||||||
|
Provides: storaged-btrfs = %{version}-%{release}
|
||||||
|
Obsoletes: storaged-btrfs
|
||||||
|
|
||||||
|
%description -n %{name}-btrfs
|
||||||
|
This package contains module for BTRFS configuration.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_lsm}
|
||||||
|
%package -n %{name}-lsm
|
||||||
|
Summary: Module for LSM
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: libstoragemgmt
|
||||||
|
BuildRequires: libstoragemgmt-devel
|
||||||
|
BuildRequires: libconfig-devel
|
||||||
|
Provides: storaged-lsm = %{version}-%{release}
|
||||||
|
Obsoletes: storaged-lsm
|
||||||
|
|
||||||
|
%description -n %{name}-lsm
|
||||||
|
This package contains module for LSM configuration.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_zram}
|
||||||
|
%package -n %{name}-zram
|
||||||
|
Summary: Module for ZRAM
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: libblockdev-kbd >= %{libblockdev_version}
|
||||||
|
Requires: libblockdev-swap >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-kbd-devel >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-swap-devel
|
||||||
|
Provides: storaged-zram = %{version}-%{release}
|
||||||
|
Obsoletes: storaged-zram
|
||||||
|
|
||||||
|
%description -n %{name}-zram
|
||||||
|
This package contains module for ZRAM configuration.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_vdo}
|
||||||
|
%package -n %{name}-vdo
|
||||||
|
Summary: Module for VDO
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
License: LGPLv2+
|
||||||
|
Requires: vdo
|
||||||
|
Requires: libblockdev-vdo >= %{libblockdev_version}
|
||||||
|
BuildRequires: libblockdev-vdo-devel >= %{libblockdev_version}
|
||||||
|
|
||||||
|
%description -n %{name}-vdo
|
||||||
|
This package contains module for VDO management.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n udisks-%{version}
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch10 -p1
|
||||||
|
%patch11 -p1
|
||||||
|
%patch12 -p1
|
||||||
|
%patch13 -p1
|
||||||
|
%patch14 -p1
|
||||||
|
%patch15 -p1
|
||||||
|
%patch16 -p1
|
||||||
|
%patch17 -p1
|
||||||
|
%patch20 -p1
|
||||||
|
%patch21 -p1
|
||||||
|
%patch22 -p1
|
||||||
|
%patch23 -p1
|
||||||
|
%patch24 -p1
|
||||||
|
%patch25 -p1
|
||||||
|
%patch26 -p1
|
||||||
|
%patch27 -p1
|
||||||
|
sed -i udisks/udisks2.conf.in -e "s/encryption=luks1/encryption=%{default_luks_encryption}/"
|
||||||
|
|
||||||
|
%build
|
||||||
|
autoreconf -ivf
|
||||||
|
# modules need to be explicitly enabled
|
||||||
|
%configure \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
%if %{with_gtk_doc}
|
||||||
|
--enable-gtk-doc \
|
||||||
|
%else
|
||||||
|
--disable-gtk-doc \
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_bcache}
|
||||||
|
--enable-bcache \
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_btrfs}
|
||||||
|
--enable-btrfs \
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_vdo}
|
||||||
|
--enable-vdo \
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_zram}
|
||||||
|
--enable-zram \
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_lsm}
|
||||||
|
--enable-lsm \
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_lvmcache}
|
||||||
|
--enable-lvmcache \
|
||||||
|
%endif
|
||||||
|
--enable-lvm2 \
|
||||||
|
--enable-iscsi
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install DESTDIR=%{buildroot}
|
||||||
|
%if %{with_gtk_doc} == 0
|
||||||
|
rm -fr %{buildroot}/%{_datadir}/gtk-doc/html/udisks2
|
||||||
|
%endif
|
||||||
|
|
||||||
|
find %{buildroot} -name \*.la -o -name \*.a | xargs rm
|
||||||
|
|
||||||
|
chrpath --delete %{buildroot}/%{_sbindir}/umount.udisks2
|
||||||
|
chrpath --delete %{buildroot}/%{_bindir}/udisksctl
|
||||||
|
chrpath --delete %{buildroot}/%{_libexecdir}/udisks2/udisksd
|
||||||
|
|
||||||
|
%find_lang udisks2
|
||||||
|
|
||||||
|
%post -n %{name}
|
||||||
|
%systemd_post udisks2.service
|
||||||
|
# skip retriggering if udevd isn't even accessible, e.g. containers or
|
||||||
|
# rpm-ostree-based systems
|
||||||
|
if [ -S /run/udev/control ]; then
|
||||||
|
udevadm control --reload
|
||||||
|
udevadm trigger
|
||||||
|
fi
|
||||||
|
|
||||||
|
%preun -n %{name}
|
||||||
|
%systemd_preun udisks2.service
|
||||||
|
|
||||||
|
%postun -n %{name}
|
||||||
|
%systemd_postun_with_restart udisks2.service
|
||||||
|
|
||||||
|
%ldconfig_scriptlets -n lib%{name}
|
||||||
|
|
||||||
|
%if 0%{?with_zram}
|
||||||
|
%post -n %{name}-zram
|
||||||
|
%systemd_post zram-setup@.service
|
||||||
|
|
||||||
|
%preun -n %{name}-zram
|
||||||
|
%systemd_preun zram-setup@.service
|
||||||
|
|
||||||
|
%postun -n %{name}-zram
|
||||||
|
%systemd_postun zram-setup@.service
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files -f udisks2.lang
|
||||||
|
%doc README.md AUTHORS NEWS HACKING
|
||||||
|
%license COPYING
|
||||||
|
|
||||||
|
%dir %{_sysconfdir}/udisks2
|
||||||
|
%if %{is_fedora}
|
||||||
|
%dir %{_sysconfdir}/udisks2/modules.conf.d
|
||||||
|
%endif
|
||||||
|
%{_sysconfdir}/udisks2/udisks2.conf
|
||||||
|
%{_sysconfdir}/udisks2/mount_options.conf.example
|
||||||
|
|
||||||
|
%{_datadir}/dbus-1/system.d/org.freedesktop.UDisks2.conf
|
||||||
|
%{_datadir}/bash-completion/completions/udisksctl
|
||||||
|
%{_tmpfilesdir}/%{name}.conf
|
||||||
|
%{_unitdir}/udisks2.service
|
||||||
|
%{_udevrulesdir}/80-udisks2.rules
|
||||||
|
%{_sbindir}/umount.udisks2
|
||||||
|
|
||||||
|
|
||||||
|
%dir %{_libdir}/udisks2
|
||||||
|
%dir %{_libdir}/udisks2/modules
|
||||||
|
%dir %{_libexecdir}/udisks2
|
||||||
|
%{_libexecdir}/udisks2/udisksd
|
||||||
|
|
||||||
|
%{_bindir}/udisksctl
|
||||||
|
|
||||||
|
%{_mandir}/man1/udisksctl.1*
|
||||||
|
%{_mandir}/man5/udisks2.conf.5*
|
||||||
|
%{_mandir}/man8/udisksd.8*
|
||||||
|
%{_mandir}/man8/udisks.8*
|
||||||
|
%{_mandir}/man8/umount.udisks2.8*
|
||||||
|
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.policy
|
||||||
|
%{_datadir}/dbus-1/system-services/org.freedesktop.UDisks2.service
|
||||||
|
|
||||||
|
# Permissions for local state data are 0700 to avoid leaking information
|
||||||
|
# about e.g. mounts to unprivileged users
|
||||||
|
%attr(0700,root,root) %dir %{_localstatedir}/lib/udisks2
|
||||||
|
|
||||||
|
%files -n lib%{name}
|
||||||
|
%{_libdir}/libudisks2.so.*
|
||||||
|
%{_libdir}/girepository-1.0/UDisks-2.0.typelib
|
||||||
|
|
||||||
|
%files -n %{name}-lvm2
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_lvm2.so
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.lvm2.policy
|
||||||
|
|
||||||
|
%files -n %{name}-iscsi
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_iscsi.so
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.iscsi.policy
|
||||||
|
|
||||||
|
%files -n lib%{name}-devel
|
||||||
|
%{_libdir}/libudisks2.so
|
||||||
|
%dir %{_includedir}/udisks2
|
||||||
|
%dir %{_includedir}/udisks2/udisks
|
||||||
|
%{_includedir}/udisks2/udisks/*.h
|
||||||
|
%{_datadir}/gir-1.0/UDisks-2.0.gir
|
||||||
|
%if %{with_gtk_doc}
|
||||||
|
%dir %{_datadir}/gtk-doc/html/udisks2
|
||||||
|
%{_datadir}/gtk-doc/html/udisks2/*
|
||||||
|
%endif
|
||||||
|
%{_libdir}/pkgconfig/udisks2.pc
|
||||||
|
%{_libdir}/pkgconfig/udisks2-lvm2.pc
|
||||||
|
%{_libdir}/pkgconfig/udisks2-iscsi.pc
|
||||||
|
%if 0%{?with_bcache}
|
||||||
|
%{_libdir}/pkgconfig/udisks2-bcache.pc
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_btrfs}
|
||||||
|
%{_libdir}/pkgconfig/udisks2-btrfs.pc
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_lsm}
|
||||||
|
%{_libdir}/pkgconfig/udisks2-lsm.pc
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_zram}
|
||||||
|
%{_libdir}/pkgconfig/udisks2-zram.pc
|
||||||
|
%endif
|
||||||
|
%if 0%{?with_vdo}
|
||||||
|
%{_libdir}/pkgconfig/udisks2-vdo.pc
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_bcache}
|
||||||
|
%files -n %{name}-bcache
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_bcache.so
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.bcache.policy
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_btrfs}
|
||||||
|
%files -n %{name}-btrfs
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_btrfs.so
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.btrfs.policy
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_lsm}
|
||||||
|
%files -n %{name}-lsm
|
||||||
|
%dir %{_sysconfdir}/udisks2/modules.conf.d
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_lsm.so
|
||||||
|
%{_mandir}/man5/udisks2_lsm.conf.*
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.lsm.policy
|
||||||
|
%attr(0600,root,root) %{_sysconfdir}/udisks2/modules.conf.d/udisks2_lsm.conf
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_zram}
|
||||||
|
%files -n %{name}-zram
|
||||||
|
%dir %{_sysconfdir}/udisks2/modules.conf.d
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_zram.so
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.zram.policy
|
||||||
|
%{_unitdir}/zram-setup@.service
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?with_vdo}
|
||||||
|
%files -n %{name}-vdo
|
||||||
|
%{_libdir}/udisks2/modules/libudisks2_vdo.so
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.vdo.policy
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Feb 01 2022 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-9
|
||||||
|
- Fix LVM-VDO statistics tests (#2023880,#2025483)
|
||||||
|
- Fix GError ownership (#1999149)
|
||||||
|
|
||||||
|
* Mon Oct 25 2021 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-8
|
||||||
|
- CVE-2021-3802: Harden the default mount options for ext filesystems (#2004422)
|
||||||
|
|
||||||
|
* Fri Apr 23 2021 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-7
|
||||||
|
- Do not build udisks2-zram (#1923078)
|
||||||
|
- Fix Drive.ATA test failures (#1926827)
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-6
|
||||||
|
- Rebuilt for new docbook-style-xsl (#1853153)
|
||||||
|
|
||||||
|
* Mon Nov 16 2020 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-5
|
||||||
|
- Fix loop device setup
|
||||||
|
|
||||||
|
* Tue Nov 10 2020 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-4
|
||||||
|
- Fix Drive.Ata tests with system SAS drives (#1855785)
|
||||||
|
- Force D-Bus interfaces flush (#1845973)
|
||||||
|
|
||||||
|
* Mon Jun 22 2020 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-3
|
||||||
|
- Fix the UdisksLVMVDOTest.test_resize_physical test (#1845435)
|
||||||
|
|
||||||
|
* Mon Jun 22 2020 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-2
|
||||||
|
- Fix block tear-down functionality (#1843454)
|
||||||
|
- Fix libblockdev requires
|
||||||
|
|
||||||
|
* Tue May 26 2020 Tomas Bzatek <tbzatek@redhat.com> - 2.9.0-1
|
||||||
|
- Rebase to 2.9.0 (#1824147)
|
||||||
|
|
||||||
|
* Fri Jun 14 2019 Tomas Bzatek <tbzatek@redhat.com> - 2.8.3-2
|
||||||
|
- Minor test fixes
|
||||||
|
- Fix potential NULL dereference in UDisksLinuxPartition
|
||||||
|
|
||||||
|
* Thu Jun 13 2019 Tomas Bzatek <tbzatek@redhat.com> - 2.8.3-1
|
||||||
|
- Rebased to upstream 2.8.3 release (#1685210)
|
||||||
|
- Fix leaking filedescriptors (#1614774)
|
||||||
|
- Fix udisksctl pager scrolling (#1662336)
|
||||||
|
- Fix LVM2 plugin CreateSnapshot() error (#1668291)
|
||||||
|
- Add ISCSI plugin GetInitiatorNameRaw() method (#1710257)
|
||||||
|
|
||||||
|
* Mon Oct 08 2018 Vojtech Trefny <vtrefny@redhat.com> - 2.8.0-2
|
||||||
|
- Fix string format vulnerability
|
||||||
|
Resolves: rhbz#1632831
|
||||||
|
|
||||||
|
* Mon Aug 13 2018 Tomas Bzatek <tbzatek@redhat.com> - 2.8.0-1
|
||||||
|
- Version 2.8.0
|
||||||
|
|
||||||
|
* Tue Jul 24 2018 Adam Williamson <awilliam@redhat.com> - 2.7.7-3
|
||||||
|
- Rebuild for new libconfig
|
||||||
|
|
||||||
|
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.7-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 04 2018 Vojtech Trefny <vtrefny@redhat.com> - 2.7.7-1
|
||||||
|
- Version 2.7.7
|
||||||
|
|
||||||
|
* Thu Feb 08 2018 Vojtech Trefny <vtrefny@redhat.com> - 2.7.6-1
|
||||||
|
- Version 2.7.6
|
||||||
|
|
||||||
|
* Fri Feb 02 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.7.5-2
|
||||||
|
- Switch to %%ldconfig_scriptlets
|
||||||
|
|
||||||
|
* Mon Dec 04 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.5-1
|
||||||
|
- Version 2.7.5
|
||||||
|
|
||||||
|
* Wed Nov 01 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.4-1
|
||||||
|
- Version 2.7.4
|
||||||
|
|
||||||
|
* Thu Aug 31 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.3-1
|
||||||
|
- Version 2.7.3
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.2-1
|
||||||
|
- Version 2.7.2
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 03 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.1-1
|
||||||
|
- Version 2.7.1
|
||||||
|
|
||||||
|
* Tue Jun 20 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.0-3
|
||||||
|
- Do not try to remove changed_blacklist hash table in finalize
|
||||||
|
|
||||||
|
* Mon Jun 19 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.0-2
|
||||||
|
- Fix how UDisksClient filters property changes
|
||||||
|
|
||||||
|
* Fri Jun 02 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.7.0-1
|
||||||
|
- Version 2.7.0
|
||||||
|
|
||||||
|
* Mon May 15 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.6.5-1
|
||||||
|
- Version 2.6.5
|
||||||
|
|
||||||
|
* Tue Mar 14 2017 Vojtech Trefny <vtrefny@redhat.com> - 2.6.4-1
|
||||||
|
- Version 2.6.4
|
||||||
|
|
||||||
|
* Mon Nov 14 2016 Tomas Smetana <tsmetana@redhat.com> - 2.6.3-1
|
||||||
|
- Version 2.6.3
|
||||||
|
|
||||||
|
* Thu Jun 16 2016 Tomas Smetana <tsmetana@redhat.com> - 2.6.2-1
|
||||||
|
- Version 2.6.2; aimed to replace udisks2
|
||||||
|
|
||||||
|
* Wed Apr 27 2016 Peter Hatina <phatina@redhat.com> - 2.6.0-3
|
||||||
|
- Add support for libblockdev-part plugin which replaces
|
||||||
|
parted calls
|
||||||
|
|
||||||
|
* Wed Mar 16 2016 Peter Hatina <phatina@redhat.com> - 2.6.0-2
|
||||||
|
- Fix permissions set for storaged_lsm.conf so it is readable only by root
|
||||||
|
|
||||||
|
* Mon Mar 14 2016 Peter Hatina <phatina@redhat.com> - 2.6.0-1
|
||||||
|
- Upgrade to 2.6.0
|
||||||
|
|
||||||
|
* Wed Feb 10 2016 Peter Hatina <phatina@redhat.com> - 2.5.0-3
|
||||||
|
- Package template zram-setup@.service file
|
||||||
|
|
||||||
|
* Wed Feb 10 2016 Peter Hatina <phatina@redhat.com> - 2.5.0-2
|
||||||
|
- Add udisksd configuration file and its man page
|
||||||
|
|
||||||
|
* Thu Jan 28 2016 Peter Hatina <phatina@redhat.com> - 2.5.0-1
|
||||||
|
- UDisks2 drop-in replacement
|
||||||
|
|
||||||
|
* Thu Jan 21 2016 Peter Hatina <phatina@redhat.com> - 2.4.0-3
|
||||||
|
- Redesign subpackage dependencies
|
||||||
|
- Make GTK documentation generation configurable
|
||||||
|
|
||||||
|
* Wed Jan 20 2016 Peter Hatina <phatina@redhat.com> - 2.4.0-2
|
||||||
|
- Reload udev rules and trigger events when installed
|
||||||
|
|
||||||
|
* Wed Jan 13 2016 Peter Hatina <phatina@redhat.com> - 2.4.0-1
|
||||||
|
- Upgrade to 2.4.0
|
||||||
|
|
||||||
|
* Wed Sep 30 2015 Peter Hatina <phatina@redhat.com> - 2.3.0-2
|
||||||
|
- Add Fedora/RHEL package configuration options
|
||||||
|
|
||||||
|
* Mon Sep 14 2015 Peter Hatina <phatina@redhat.com> - 2.3.0-1
|
||||||
|
- Change BuildRequires from pkgconfig macro to -devel packages
|
||||||
|
- Upgrade to 2.3.0
|
||||||
|
|
||||||
|
* Mon Aug 24 2015 Peter Hatina <phatina@redhat.com> - 2.2.0-1
|
||||||
|
- Upgrade to 2.2.0
|
||||||
|
|
||||||
|
* Fri Jul 3 2015 Peter Hatina <phatina@redhat.com> - 2.1.1-1
|
||||||
|
- Upgrade to 2.1.1
|
||||||
|
|
||||||
|
* Wed Jun 24 2015 Peter Hatina <phatina@redhat.com> - 2.1.0-4
|
||||||
|
- Add Requires for storaged modules
|
||||||
|
|
||||||
|
* Wed Jun 24 2015 Peter Hatina <phatina@redhat.com> - 2.1.0-3
|
||||||
|
- Changes for EPEL-7
|
||||||
|
- Lower systemd required version to 208
|
||||||
|
- Rewrite BuildRequires for systemd-devel
|
||||||
|
|
||||||
|
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 11 2015 Peter Hatina <phatina@redhat.com> - 2.1.0-1
|
||||||
|
- Update to upstream 2.1.0
|
||||||
|
|
||||||
|
* Thu Apr 02 2015 Peter Hatina <phatina@redhat.com> - 2.0.0-1
|
||||||
|
- Rebase to the new Storaged implementation
|
||||||
|
- Upstream: https://storaged.org
|
||||||
|
|
||||||
|
* Tue Sep 16 2014 Stef Walter <stefw@redhat.com> - 0.3.1-1
|
||||||
|
- Update to upstream 0.3.1
|
||||||
|
|
||||||
|
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.0-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Apr 08 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-1
|
||||||
|
- Update to upstream 0.3.0
|
||||||
|
|
||||||
|
* Fri Jan 31 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.2.0-1
|
||||||
|
- Update to upstream 0.2.0
|
||||||
|
|
||||||
|
* Thu Jan 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.1.0-2
|
||||||
|
- Removed double systemd BuildRequire
|
||||||
|
- Rewritten summary and description
|
||||||
|
|
||||||
|
* Sun Jan 12 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.1.0-1
|
||||||
|
- Rename from udisks2-lvm
|
Loading…
Reference in New Issue
Block a user