diff --git a/.gitignore b/.gitignore index 777a9bb..919f18a 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ /udisks-2.10.1.tar.bz2 /udisks-2.10.90.gitdb54112e.tar.bz2 /udisks-2.10.90.tar.bz2 +/udisks-2.11.0.tar.bz2 diff --git a/plans/env.yaml b/plans/env.yaml deleted file mode 100644 index 3a70499..0000000 --- a/plans/env.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- - xversion: '2.10.90' diff --git a/plans/udisks2.fmf b/plans/udisks2.fmf index 07d6f77..25f73f2 100644 --- a/plans/udisks2.fmf +++ b/plans/udisks2.fmf @@ -1,6 +1,4 @@ summary: udisks2 gating tests -environment-file: - - plans/env.yaml prepare: how: install @@ -29,8 +27,6 @@ prepare: discover: how: shell - url: https://gitlab.com/redhat/centos-stream/rpms/udisks2.git - ref: c10s dist-git-source: true dist-git-install-builddeps: true tests: diff --git a/sources b/sources index 55741ad..da0149d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (udisks-2.10.90.tar.bz2) = 7e2507ee9b235925af6d367a0d55608f7a2780a07efba9db3c4bc06a3d42728ce74fc9edc42255fc9259aa3426c83eb164e1e99740a2d2c1b80ec2265b51df90 +SHA512 (udisks-2.11.0.tar.bz2) = ddf7bbf6d71c100ea2787aa45d51ae84d8184d33d9e0c1c8824e3da1ca34814b3278f9f74a1aab7acc37efe3ed2b702404fbb9dc3733c0accbb366a74e7d3fe5 diff --git a/udisks-2.10.91-manager_loopsetup_fd_bounds.patch b/udisks-2.10.91-manager_loopsetup_fd_bounds.patch deleted file mode 100644 index f659e05..0000000 --- a/udisks-2.10.91-manager_loopsetup_fd_bounds.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 55e36ef2af4fbfc92aab5cef50a69123e321f9f1 Mon Sep 17 00:00:00 2001 -From: Marc Deslauriers -Date: Tue, 15 Jul 2025 13:34:08 -0400 -Subject: [PATCH 1/1] udiskslinuxmanager: Add lower bounds check to fd_index - -Make sure fd_index isn't negative as this can lead to an OOB read -resulting in a crash, or to exposing internal file descriptors. - -Reported by Michael Imfeld (born0monday). ---- - src/udiskslinuxmanager.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udiskslinuxmanager.c b/src/udiskslinuxmanager.c -index 4e633284..887771ee 100644 ---- a/src/udiskslinuxmanager.c -+++ b/src/udiskslinuxmanager.c -@@ -381,7 +381,7 @@ handle_loop_setup (UDisksManager *object, - goto out; - - fd_num = g_variant_get_handle (fd_index); -- if (fd_list == NULL || fd_num >= g_unix_fd_list_get_length (fd_list)) -+ if (fd_list == NULL || fd_num < 0 || fd_num >= g_unix_fd_list_get_length (fd_list)) - { - g_dbus_method_invocation_return_error (invocation, - UDISKS_ERROR, --- -2.43.0 - diff --git a/udisks-2.11.0-lvm2-unused_device_detection-try_harder.patch b/udisks-2.11.0-lvm2-unused_device_detection-try_harder.patch deleted file mode 100644 index eac0265..0000000 --- a/udisks-2.11.0-lvm2-unused_device_detection-try_harder.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d747e73aaec2c4e2cf124646230159e8b45a5da8 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Tue, 5 Nov 2024 17:01:00 +0100 -Subject: [PATCH] lvm2: Try opening for unused device detection harder - -Though the voluntary BSD locks cannot be used here due to opening -O_EXCL already, let's make several attempts before bailing out. ---- - modules/lvm2/udiskslvm2daemonutil.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/modules/lvm2/udiskslvm2daemonutil.c b/modules/lvm2/udiskslvm2daemonutil.c -index b2131f9ca..32736d20f 100644 ---- a/modules/lvm2/udiskslvm2daemonutil.c -+++ b/modules/lvm2/udiskslvm2daemonutil.c -@@ -65,9 +65,16 @@ udisks_daemon_util_lvm2_block_is_unused (UDisksBlock *block, - { - const gchar *device_file; - int fd; -+ gint num_tries = 0; - - device_file = udisks_block_get_device (block); -- fd = open (device_file, O_RDONLY | O_EXCL); -+ -+ while ((fd = open (device_file, O_RDONLY | O_EXCL)) < 0) -+ { -+ g_usleep (100 * 1000); /* microseconds */ -+ if (num_tries++ > 10) -+ break; -+ } - if (fd < 0) - { - g_set_error (error, UDISKS_ERROR, UDISKS_ERROR_FAILED, diff --git a/udisks-2.11.0-mdraid-inhibit-locks.patch b/udisks-2.11.0-mdraid-inhibit-locks.patch deleted file mode 100644 index a7b68fb..0000000 --- a/udisks-2.11.0-mdraid-inhibit-locks.patch +++ /dev/null @@ -1,1011 +0,0 @@ -From 2a1ee3b5e105d5e42fe536df282d86f1b226245d Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Tue, 21 Jan 2025 19:08:56 +0100 -Subject: [PATCH 1/5] udisksdaemon: Add 'no_inhibit' argument for job creation - functions - -Avoid placing system inhibit lock if desired. ---- - src/udisksdaemon.c | 34 ++++++++++++++++++++++++++++------ - src/udisksdaemon.h | 15 +++++++++++---- - 2 files changed, 39 insertions(+), 10 deletions(-) - -diff --git a/src/udisksdaemon.c b/src/udisksdaemon.c -index d7505d8b..8769486b 100644 ---- a/src/udisksdaemon.c -+++ b/src/udisksdaemon.c -@@ -822,6 +822,7 @@ common_job (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - gpointer job) - { - gchar *job_object_path; -@@ -832,9 +833,12 @@ common_job (UDisksDaemon *daemon, - job_data = g_new0 (JobData, 1); - job_data->daemon = g_object_ref (daemon); - /* register inhibitor to systemd logind while job is running */ -- operation_description = udisks_client_get_job_description_from_operation (job_operation); -- job_data->inhibit_cookie = udisks_daemon_util_inhibit_system_sync (operation_description); -- g_free (operation_description); -+ if (!no_inhibit) -+ { -+ operation_description = udisks_client_get_job_description_from_operation (job_operation); -+ job_data->inhibit_cookie = udisks_daemon_util_inhibit_system_sync (operation_description); -+ g_free (operation_description); -+ } - - if (object != NULL) - udisks_base_job_add_object (UDISKS_BASE_JOB (job), object); -@@ -863,6 +867,7 @@ common_job (UDisksDaemon *daemon, - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @cancellable: A #GCancellable or %NULL. - * - * Launches a new simple job. -@@ -879,6 +884,7 @@ udisks_daemon_launch_simple_job (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable) - { - UDisksSimpleJob *job; -@@ -886,7 +892,7 @@ udisks_daemon_launch_simple_job (UDisksDaemon *daemon, - g_return_val_if_fail (UDISKS_IS_DAEMON (daemon), NULL); - - job = udisks_simple_job_new (daemon, cancellable); -- return common_job (daemon, object, job_operation, job_started_by_uid, job); -+ return common_job (daemon, object, job_operation, job_started_by_uid, no_inhibit, job); - } - - /* ---------------------------------------------------------------------------------------------------- */ -@@ -897,6 +903,7 @@ udisks_daemon_launch_simple_job (UDisksDaemon *daemon, - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @job_func: The function to run in another thread. - * @user_data: User data to pass to @job_func. - * @user_data_free_func: Function to free @user_data with or %NULL. -@@ -926,6 +933,7 @@ udisks_daemon_launch_threaded_job (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - UDisksThreadedJobFunc job_func, - gpointer user_data, - GDestroyNotify user_data_free_func, -@@ -941,7 +949,7 @@ udisks_daemon_launch_threaded_job (UDisksDaemon *daemon, - user_data_free_func, - daemon, - cancellable); -- return common_job (daemon, object, job_operation, job_started_by_uid, job); -+ return common_job (daemon, object, job_operation, job_started_by_uid, no_inhibit, job); - } - - /* ---------------------------------------------------------------------------------------------------- */ -@@ -952,6 +960,7 @@ udisks_daemon_launch_threaded_job (UDisksDaemon *daemon, - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @cancellable: A #GCancellable or %NULL. - * @run_as_uid: The #uid_t to run the command as. - * @run_as_euid: The effective #uid_t to run the command as. -@@ -980,6 +989,7 @@ udisks_daemon_launch_spawned_job (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, -@@ -1003,6 +1013,7 @@ udisks_daemon_launch_spawned_job (UDisksDaemon *daemon, - object, - job_operation, - job_started_by_uid, -+ no_inhibit, - cancellable, - run_as_uid, - run_as_euid, -@@ -1021,6 +1032,7 @@ udisks_daemon_launch_spawned_job (UDisksDaemon *daemon, - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @cancellable: A #GCancellable or %NULL. - * @run_as_uid: The #uid_t to run the command as. - * @run_as_euid: The effective #uid_t to run the command as. -@@ -1054,6 +1066,7 @@ udisks_daemon_launch_spawned_job_gstring ( - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, -@@ -1075,7 +1088,7 @@ udisks_daemon_launch_spawned_job_gstring ( - job = udisks_spawned_job_new (command_line, input_string, run_as_uid, run_as_euid, daemon, cancellable); - g_free (command_line); - -- return common_job (daemon, object, job_operation, job_started_by_uid, job); -+ return common_job (daemon, object, job_operation, job_started_by_uid, no_inhibit, job); - } - - /* ---------------------------------------------------------------------------------------------------- */ -@@ -1120,6 +1133,7 @@ spawned_job_sync_on_completed (UDisksJob *job, - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @cancellable: A #GCancellable or %NULL. - * @run_as_uid: The #uid_t to run the command as. - * @run_as_euid: The effective #uid_t to run the command as. -@@ -1139,6 +1153,7 @@ udisks_daemon_launch_spawned_job_sync (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, -@@ -1164,6 +1179,7 @@ udisks_daemon_launch_spawned_job_sync (UDisksDaemon *daemon, - object, - job_operation, - job_started_by_uid, -+ no_inhibit, - cancellable, - run_as_uid, - run_as_euid, -@@ -1184,6 +1200,7 @@ udisks_daemon_launch_spawned_job_sync (UDisksDaemon *daemon, - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @cancellable: A #GCancellable or %NULL. - * @run_as_uid: The #uid_t to run the command as. - * @run_as_euid: The effective #uid_t to run the command as. -@@ -1207,6 +1224,7 @@ udisks_daemon_launch_spawned_job_gstring_sync (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, -@@ -1239,6 +1257,7 @@ udisks_daemon_launch_spawned_job_gstring_sync (UDisksDaemon *daemon, - object, - job_operation, - job_started_by_uid, -+ no_inhibit, - cancellable, - run_as_uid, - run_as_euid, -@@ -1318,6 +1337,7 @@ udisks_bd_thread_disable_progress (void) - * @object: (allow-none): A #UDisksObject to add to the job or %NULL. - * @job_operation: The operation for the job. - * @job_started_by_uid: The user who started the job. -+ * @no_inhibit: Avoid placing system inhibitor lock. - * @job_func: The function to run in another thread. - * @user_data: User data to pass to @job_func. - * @user_data_free_func: Function to free @user_data with or %NULL. -@@ -1334,6 +1354,7 @@ udisks_daemon_launch_threaded_job_sync (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - UDisksThreadedJobFunc job_func, - gpointer user_data, - GDestroyNotify user_data_free_func, -@@ -1350,6 +1371,7 @@ udisks_daemon_launch_threaded_job_sync (UDisksDaemon *daemon, - object, - job_operation, - job_started_by_uid, -+ no_inhibit, - job_func, - user_data, - user_data_free_func, -diff --git a/src/udisksdaemon.h b/src/udisksdaemon.h -index 2edbaf3a..2f612c67 100644 ---- a/src/udisksdaemon.h -+++ b/src/udisksdaemon.h -@@ -110,21 +110,24 @@ UDisksBaseJob *udisks_daemon_launch_simple_job (UDisksDaemon * - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable); - UDisksBaseJob *udisks_daemon_launch_spawned_job (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, - const gchar *input_string, - const gchar *command_line_format, -- ...) G_GNUC_PRINTF (9, 10); -+ ...) G_GNUC_PRINTF (10, 11); - gboolean udisks_daemon_launch_spawned_job_sync (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, -@@ -132,21 +135,23 @@ gboolean udisks_daemon_launch_spawned_job_sync (UDisksDaemon - gchar **out_message, - const gchar *input_string, - const gchar *command_line_format, -- ...) G_GNUC_PRINTF (11, 12); -+ ...) G_GNUC_PRINTF (12, 13); - UDisksBaseJob *udisks_daemon_launch_spawned_job_gstring (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, - GString *input_string, - const gchar *command_line_format, -- ...) G_GNUC_PRINTF (9, 10); -+ ...) G_GNUC_PRINTF (10, 11); - gboolean udisks_daemon_launch_spawned_job_gstring_sync (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - GCancellable *cancellable, - uid_t run_as_uid, - uid_t run_as_euid, -@@ -154,11 +159,12 @@ gboolean udisks_daemon_launch_spawned_job_gstring_sync (UDisksD - gchar **out_message, - GString *input_string, - const gchar *command_line_format, -- ...) G_GNUC_PRINTF (11, 12); -+ ...) G_GNUC_PRINTF (12, 13); - UDisksBaseJob *udisks_daemon_launch_threaded_job (UDisksDaemon *daemon, - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - UDisksThreadedJobFunc job_func, - gpointer user_data, - GDestroyNotify user_data_free_func, -@@ -168,6 +174,7 @@ gboolean udisks_daemon_launch_threaded_job_sync (UDisksDaemon - UDisksObject *object, - const gchar *job_operation, - uid_t job_started_by_uid, -+ gboolean no_inhibit, - UDisksThreadedJobFunc job_func, - gpointer user_data, - GDestroyNotify user_data_free_func, --- -2.48.1 - -From 322863e6b49ae011b8d2f1e2c8741f56dabbb5f3 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Tue, 21 Jan 2025 19:15:45 +0100 -Subject: [PATCH 2/5] daemon: Align to the no_inhibit job argument change - ---- - src/udiskslinuxblock.c | 7 ++++++- - src/udiskslinuxdrive.c | 1 + - src/udiskslinuxdriveata.c | 3 ++- - src/udiskslinuxencrypted.c | 6 ++++++ - src/udiskslinuxfilesystem.c | 10 ++++++++++ - src/udiskslinuxloop.c | 1 + - src/udiskslinuxmanager.c | 1 + - src/udiskslinuxmdraid.c | 7 +++++++ - src/udiskslinuxnvmecontroller.c | 2 ++ - src/udiskslinuxnvmenamespace.c | 1 + - src/udiskslinuxpartition.c | 6 ++++++ - src/udiskslinuxpartitiontable.c | 1 + - src/udiskslinuxswapspace.c | 4 ++++ - src/udisksstate.c | 2 ++ - 14 files changed, 50 insertions(+), 2 deletions(-) - -diff --git a/src/udiskslinuxblock.c b/src/udiskslinuxblock.c -index 5b5588b2..008d1265 100644 ---- a/src/udiskslinuxblock.c -+++ b/src/udiskslinuxblock.c -@@ -2482,7 +2482,7 @@ erase_device (UDisksBlock *block, - goto out; - } - -- job = udisks_daemon_launch_simple_job (daemon, object, "format-erase", caller_uid, NULL); -+ job = udisks_daemon_launch_simple_job (daemon, object, "format-erase", caller_uid, FALSE, NULL); - udisks_base_job_set_auto_estimate (UDISKS_BASE_JOB (job), TRUE); - udisks_job_set_progress_valid (UDISKS_JOB (job), TRUE); - -@@ -3185,6 +3185,7 @@ format_create_luks (UDisksDaemon *daemon, - object, - "format-mkfs", - caller_uid, -+ FALSE, - luks_format_job_func, - &crypto_job_data, - NULL, /* user_data_free_func */ -@@ -3229,6 +3230,7 @@ format_create_luks (UDisksDaemon *daemon, - object, - "format-mkfs", - caller_uid, -+ FALSE, - luks_open_job_func, - &crypto_job_data, - NULL, /* user_data_free_func */ -@@ -3571,6 +3573,7 @@ udisks_linux_block_handle_format (UDisksBlock *block, - object, - "format-mkfs", - caller_uid, -+ FALSE, - format_job_func, - &format_job_data, - NULL, /* user_data_free_func */ -@@ -3679,6 +3682,7 @@ udisks_linux_block_handle_format (UDisksBlock *block, - object, - "format-mkfs", - caller_uid, -+ FALSE, - format_job_func, - &format_job_data, - NULL, /* user_data_free_func */ -@@ -4268,6 +4272,7 @@ handle_restore_encrypted_header (UDisksBlock *encrypted, - UDISKS_OBJECT (object), - "block-restore-encrypted-header", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -diff --git a/src/udiskslinuxdrive.c b/src/udiskslinuxdrive.c -index 18b9ae4f..93ca3813 100644 ---- a/src/udiskslinuxdrive.c -+++ b/src/udiskslinuxdrive.c -@@ -1142,6 +1142,7 @@ handle_eject (UDisksDrive *_drive, - if (!udisks_daemon_launch_spawned_job_sync (daemon, - UDISKS_OBJECT (object), - "drive-eject", caller_uid, -+ FALSE, - NULL, /* GCancellable */ - 0, /* uid_t run_as_uid */ - 0, /* uid_t run_as_euid */ -diff --git a/src/udiskslinuxdriveata.c b/src/udiskslinuxdriveata.c -index 0675d1ed..dd7b0b0d 100644 ---- a/src/udiskslinuxdriveata.c -+++ b/src/udiskslinuxdriveata.c -@@ -1194,6 +1194,7 @@ handle_smart_selftest_start (UDisksDriveAta *_drive, - drive->selftest_job = UDISKS_THREADED_JOB (udisks_daemon_launch_threaded_job (daemon, - UDISKS_OBJECT (object), - "ata-smart-selftest", caller_uid, -+ FALSE, - selftest_job_func, - g_object_ref (drive), - g_object_unref, -@@ -2226,7 +2227,7 @@ udisks_linux_drive_ata_secure_erase_sync (UDisksLinuxDriveAta *drive, - job = udisks_daemon_launch_simple_job (daemon, - UDISKS_OBJECT (object), - enhanced ? "ata-enhanced-secure-erase" : "ata-secure-erase", -- caller_uid, NULL); -+ caller_uid, FALSE, NULL); - udisks_job_set_cancelable (UDISKS_JOB (job), FALSE); - - /* A value of 510 (255 in the IDENTIFY DATA register) means "erase -diff --git a/src/udiskslinuxencrypted.c b/src/udiskslinuxencrypted.c -index f6ae85c7..bb1f9e10 100644 ---- a/src/udiskslinuxencrypted.c -+++ b/src/udiskslinuxencrypted.c -@@ -588,6 +588,7 @@ handle_unlock (UDisksEncrypted *encrypted, - object, - "encrypted-unlock", - caller_uid, -+ FALSE, - open_func, - &data, - NULL, /* user_data_free_func */ -@@ -807,6 +808,7 @@ udisks_linux_encrypted_lock (UDisksLinuxEncrypted *encrypted, - object, - "encrypted-lock", - caller_uid, -+ FALSE, - close_func, - &data, - NULL, /* user_data_free_func */ -@@ -991,6 +993,7 @@ handle_change_passphrase (UDisksEncrypted *encrypted, - object, - "encrypted-modify", - caller_uid, -+ FALSE, - luks_change_key_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -1155,6 +1158,7 @@ handle_resize (UDisksEncrypted *encrypted, - UDISKS_OBJECT (object), - "encrypted-resize", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -1296,6 +1300,7 @@ handle_convert (UDisksEncrypted *encrypted, - UDISKS_OBJECT (object), - "encrypted-convert", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -1389,6 +1394,7 @@ handle_header_backup (UDisksEncrypted *encrypted, - UDISKS_OBJECT (object), - "encrypted-header-backup", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -diff --git a/src/udiskslinuxfilesystem.c b/src/udiskslinuxfilesystem.c -index e7df067d..b1974483 100644 ---- a/src/udiskslinuxfilesystem.c -+++ b/src/udiskslinuxfilesystem.c -@@ -983,6 +983,7 @@ handle_mount_fstab (UDisksDaemon *daemon, - UDISKS_OBJECT (object), - "filesystem-mount", - mount_fstab_as_root ? 0 : caller_uid, -+ FALSE, - NULL /* cancellable */); - - /* XXX: using run_as_uid for root doesn't work even if the caller is already root */ -@@ -1208,6 +1209,7 @@ handle_mount_dynamic (UDisksDaemon *daemon, - UDISKS_OBJECT (object), - "filesystem-mount", - 0, -+ FALSE, - NULL /* cancellable */); - - success = FALSE; -@@ -1564,6 +1566,7 @@ handle_unmount (UDisksFilesystem *filesystem, - UDISKS_OBJECT (object), - "filesystem-unmount", - unmount_fstab_as_root ? 0 : caller_uid, -+ FALSE, - NULL); - - if (!unmount_fstab_as_root && caller_uid != 0) -@@ -1669,6 +1672,7 @@ handle_unmount (UDisksFilesystem *filesystem, - UDISKS_OBJECT (object), - "filesystem-unmount", - 0, -+ FALSE, - NULL); - - if (!bd_fs_unmount (mount_point ? mount_point : udisks_block_get_device (block), -@@ -1850,6 +1854,7 @@ handle_set_label (UDisksFilesystem *filesystem, - object, - "filesystem-modify", - caller_uid, -+ FALSE, - NULL /* cancellable */); - if (job == NULL) - { -@@ -2030,6 +2035,7 @@ handle_resize (UDisksFilesystem *filesystem, - UDISKS_OBJECT (object), - "filesystem-resize", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -2201,6 +2207,7 @@ handle_repair (UDisksFilesystem *filesystem, - UDISKS_OBJECT (object), - "filesystem-repair", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -2369,6 +2376,7 @@ handle_check (UDisksFilesystem *filesystem, - UDISKS_OBJECT (object), - "filesystem-check", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -2518,6 +2526,7 @@ handle_take_ownership (UDisksFilesystem *filesystem, - UDISKS_OBJECT (object), - "filesystem-modify", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -2698,6 +2707,7 @@ handle_set_uuid (UDisksFilesystem *filesystem, - object, - "filesystem-modify", - caller_uid, -+ FALSE, - NULL /* cancellable */); - if (job == NULL) - { -diff --git a/src/udiskslinuxloop.c b/src/udiskslinuxloop.c -index 500df6ef..ee690991 100644 ---- a/src/udiskslinuxloop.c -+++ b/src/udiskslinuxloop.c -@@ -249,6 +249,7 @@ handle_delete (UDisksLoop *loop, - UDISKS_OBJECT(object), - "loop-setup", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -diff --git a/src/udiskslinuxmanager.c b/src/udiskslinuxmanager.c -index 139be7ca..4e633284 100644 ---- a/src/udiskslinuxmanager.c -+++ b/src/udiskslinuxmanager.c -@@ -598,6 +598,7 @@ handle_mdraid_create (UDisksManager *_object, - NULL, - "mdraid-create", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -diff --git a/src/udiskslinuxmdraid.c b/src/udiskslinuxmdraid.c -index 176b0258..a24c78c2 100644 ---- a/src/udiskslinuxmdraid.c -+++ b/src/udiskslinuxmdraid.c -@@ -371,6 +371,7 @@ udisks_linux_mdraid_update (UDisksLinuxMDRaid *mdraid, - UDISKS_OBJECT (object), - sync_action_to_job_id (sync_action), - 0, -+ FALSE, - NULL /* cancellable */); - - /* Mark the job as not cancellable. It simply has to finish... */ -@@ -643,6 +644,7 @@ handle_start (UDisksMDRaid *_mdraid, - UDISKS_OBJECT (object), - "md-raid-start", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -805,6 +807,7 @@ udisks_linux_mdraid_stop (UDisksMDRaid *_mdraid, - UDISKS_OBJECT (object), - "md-raid-stop", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -1026,6 +1029,7 @@ handle_remove_device (UDisksMDRaid *_mdraid, - UDISKS_OBJECT (object), - "md-raid-remove-device", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -1170,6 +1174,7 @@ handle_add_device (UDisksMDRaid *_mdraid, - UDISKS_OBJECT (object), - "md-raid-add-device", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -1286,6 +1291,7 @@ handle_set_bitmap_location (UDisksMDRaid *_mdraid, - UDISKS_OBJECT (object), - "md-raid-set-bitmap", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -1403,6 +1409,7 @@ handle_request_sync_action (UDisksMDRaid *_mdraid, - UDISKS_OBJECT (object), - sync_action_to_job_id (sync_action), - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -diff --git a/src/udiskslinuxnvmecontroller.c b/src/udiskslinuxnvmecontroller.c -index b032467e..dff3ab06 100644 ---- a/src/udiskslinuxnvmecontroller.c -+++ b/src/udiskslinuxnvmecontroller.c -@@ -873,6 +873,7 @@ handle_smart_selftest_start (UDisksNVMeController *_ctrl, - UDISKS_OBJECT (object), - "nvme-selftest", - caller_uid, -+ FALSE, - selftest_job_func, - g_object_ref (ctrl), - (GDestroyNotify) selftest_job_func_done, -@@ -1298,6 +1299,7 @@ handle_sanitize_start (UDisksNVMeController *_object, - UDISKS_OBJECT (object), - "nvme-sanitize", - caller_uid, -+ FALSE, - sanitize_job_func, - g_object_ref (ctrl), - (GDestroyNotify) sanitize_job_func_done, -diff --git a/src/udiskslinuxnvmenamespace.c b/src/udiskslinuxnvmenamespace.c -index 076c2285..ddb03e22 100644 ---- a/src/udiskslinuxnvmenamespace.c -+++ b/src/udiskslinuxnvmenamespace.c -@@ -429,6 +429,7 @@ handle_format_namespace (UDisksNVMeNamespace *_ns, - UDISKS_OBJECT (object), - "nvme-format-ns", - caller_uid, -+ FALSE, - format_ns_job_func, - data, - (GDestroyNotify) format_ns_job_func_done, -diff --git a/src/udiskslinuxpartition.c b/src/udiskslinuxpartition.c -index c4433627..2e07ca2c 100644 ---- a/src/udiskslinuxpartition.c -+++ b/src/udiskslinuxpartition.c -@@ -389,6 +389,7 @@ handle_set_flags (UDisksPartition *partition, - UDISKS_OBJECT (object), - "partition-modify", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -527,6 +528,7 @@ handle_set_name (UDisksPartition *partition, - UDISKS_OBJECT (object), - "partition-modify", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -669,6 +671,7 @@ handle_set_uuid (UDisksPartition *partition, - UDISKS_OBJECT (object), - "partition-modify", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -774,6 +777,7 @@ udisks_linux_partition_set_type_sync (UDisksLinuxPartition *partition, - UDISKS_OBJECT (object), - "partition-modify", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -984,6 +988,7 @@ handle_resize (UDisksPartition *partition, - UDISKS_OBJECT (object), - "partition-modify", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -@@ -1115,6 +1120,7 @@ handle_delete (UDisksPartition *partition, - UDISKS_OBJECT (object), - "partition-delete", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -diff --git a/src/udiskslinuxpartitiontable.c b/src/udiskslinuxpartitiontable.c -index 528b22ff..09bd545b 100644 ---- a/src/udiskslinuxpartitiontable.c -+++ b/src/udiskslinuxpartitiontable.c -@@ -422,6 +422,7 @@ udisks_linux_partition_table_handle_create_partition (UDisksPartitionTable *ta - UDISKS_OBJECT (object), - "partition-create", - caller_uid, -+ FALSE, - NULL); - - if (job == NULL) -diff --git a/src/udiskslinuxswapspace.c b/src/udiskslinuxswapspace.c -index 0c4fd9a4..4c51bd88 100644 ---- a/src/udiskslinuxswapspace.c -+++ b/src/udiskslinuxswapspace.c -@@ -201,6 +201,7 @@ handle_start (UDisksSwapspace *swapspace, - object, - "swapspace-start", - caller_uid, -+ FALSE, - start_job_func, - object, - NULL, /* user_data_free_func */ -@@ -299,6 +300,7 @@ handle_stop (UDisksSwapspace *swapspace, - object, - "swapspace-stop", - caller_uid, -+ FALSE, - stop_job_func, - object, - NULL, /* user_data_free_func */ -@@ -376,6 +378,7 @@ handle_set_label (UDisksSwapspace *swapspace, - UDISKS_OBJECT (object), - "swapspace-modify", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -@@ -462,6 +465,7 @@ handle_set_uuid (UDisksSwapspace *swapspace, - UDISKS_OBJECT (object), - "swapspace-modify", - caller_uid, -+ FALSE, - NULL); - if (job == NULL) - { -diff --git a/src/udisksstate.c b/src/udisksstate.c -index df6ef337..7323036d 100644 ---- a/src/udisksstate.c -+++ b/src/udisksstate.c -@@ -783,6 +783,7 @@ udisks_state_check_mounted_fs_entry (UDisksState *state, - if (!udisks_daemon_launch_spawned_job_sync (state->daemon, - NULL, /* UDisksObject */ - "cleanup", 0, /* StartedByUID */ -+ FALSE, - NULL, /* GCancellable */ - 0, /* uid_t run_as_uid */ - 0, /* uid_t run_as_euid */ -@@ -1247,6 +1248,7 @@ udisks_state_check_unlocked_crypto_dev_entry (UDisksState *state, - NULL, /* UDisksObject */ - "cleanup", - 0, /* StartedByUID */ -+ FALSE, - luks_close_job_func, - &data, - NULL, /* user_data_free_func */ --- -2.48.1 - -From 6d3ca4c21d3a9724aab4c021cc9c5c0b3fc39a1e Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Tue, 21 Jan 2025 19:16:11 +0100 -Subject: [PATCH 3/5] lvm2: Align to the no_inhibit job argument change - ---- - modules/lvm2/udiskslinuxlogicalvolume.c | 9 +++++++++ - modules/lvm2/udiskslinuxmanagerlvm2.c | 2 ++ - modules/lvm2/udiskslinuxvdovolume.c | 2 ++ - modules/lvm2/udiskslinuxvolumegroup.c | 8 ++++++++ - 4 files changed, 21 insertions(+) - -diff --git a/modules/lvm2/udiskslinuxlogicalvolume.c b/modules/lvm2/udiskslinuxlogicalvolume.c -index c0c43c03..f517f7cc 100644 ---- a/modules/lvm2/udiskslinuxlogicalvolume.c -+++ b/modules/lvm2/udiskslinuxlogicalvolume.c -@@ -593,6 +593,7 @@ handle_delete (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-delete", - caller_uid, -+ FALSE, - lvremove_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -669,6 +670,7 @@ handle_repair (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-repair", - caller_uid, -+ FALSE, - lvrepair_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -766,6 +768,7 @@ handle_rename (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-rename", - caller_uid, -+ FALSE, - lvrename_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -848,6 +851,7 @@ handle_resize (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-resize", - caller_uid, -+ FALSE, - lvresize_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -937,6 +941,7 @@ handle_activate (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-activate", - caller_uid, -+ FALSE, - lvactivate_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -1005,6 +1010,7 @@ handle_deactivate (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-deactivate", - caller_uid, -+ FALSE, - lvdeactivate_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -1074,6 +1080,7 @@ handle_create_snapshot (UDisksLogicalVolume *_volume, - UDISKS_OBJECT (object), - "lvm-lvol-snapshot", - caller_uid, -+ FALSE, - lvsnapshot_create_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -1134,6 +1141,7 @@ handle_cache_attach (UDisksLogicalVolume *volume_, - UDISKS_OBJECT (object), - "lvm-lv-make-cache", - caller_uid, -+ FALSE, - lvcache_attach_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -1185,6 +1193,7 @@ handle_cache_detach_or_split (UDisksLogicalVolume *volume_, - UDISKS_OBJECT (object), - "lvm-lv-split-cache", - caller_uid, -+ FALSE, - lvcache_detach_job_func, - &data, - NULL, /* user_data_free_func */ -diff --git a/modules/lvm2/udiskslinuxmanagerlvm2.c b/modules/lvm2/udiskslinuxmanagerlvm2.c -index 5c06b921..7cd96384 100644 ---- a/modules/lvm2/udiskslinuxmanagerlvm2.c -+++ b/modules/lvm2/udiskslinuxmanagerlvm2.c -@@ -338,6 +338,7 @@ handle_volume_group_create (UDisksManagerLVM2 *_object, - NULL, - "lvm-pv-create", - caller_uid, -+ FALSE, - pvcreate_job_func, - &pv_data, - NULL, /* user_data_free_func */ -@@ -363,6 +364,7 @@ handle_volume_group_create (UDisksManagerLVM2 *_object, - NULL, - "lvm-vg-create", - caller_uid, -+ FALSE, - vgcreate_job_func, - &data, - NULL, /* user_data_free_func */ -diff --git a/modules/lvm2/udiskslinuxvdovolume.c b/modules/lvm2/udiskslinuxvdovolume.c -index 19164d96..64247dfc 100644 ---- a/modules/lvm2/udiskslinuxvdovolume.c -+++ b/modules/lvm2/udiskslinuxvdovolume.c -@@ -262,6 +262,7 @@ _set_compression_deduplication (UDisksVDOVolume *_volume, - UDISKS_OBJECT (object), - "lvm-vdo-dedup-comp", - caller_uid, -+ FALSE, - compression ? lv_vdo_compression_job_func : lv_vdo_deduplication_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -340,6 +341,7 @@ _vdo_resize (UDisksLinuxLogicalVolumeObject *object, - UDISKS_OBJECT (object), - "lvm-lvol-resize", - caller_uid, -+ FALSE, - lvresize_job_func, - &data, - NULL, /* user_data_free_func */ -diff --git a/modules/lvm2/udiskslinuxvolumegroup.c b/modules/lvm2/udiskslinuxvolumegroup.c -index 5cb904e2..e1c6d76e 100644 ---- a/modules/lvm2/udiskslinuxvolumegroup.c -+++ b/modules/lvm2/udiskslinuxvolumegroup.c -@@ -336,6 +336,7 @@ handle_delete (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "lvm-vg-delete", - caller_uid, -+ FALSE, - vgremove_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -457,6 +458,7 @@ handle_rename (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "lvm-vg-rename", - caller_uid, -+ FALSE, - vgrename_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -585,6 +587,7 @@ handle_add_device (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "lvm-pv-create", - caller_uid, -+ FALSE, - pvcreate_job_func, - &pv_data, - NULL, /* user_data_free_func */ -@@ -610,6 +613,7 @@ handle_add_device (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "lvm-vg-add-device", - caller_uid, -+ FALSE, - vgextend_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -729,6 +733,7 @@ handle_remove_common (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - job_operation, - caller_uid, -+ FALSE, - job_func, - &data, - NULL, /* user_data_free_func */ -@@ -751,6 +756,7 @@ handle_remove_common (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "pv-format-erase", - caller_uid, -+ FALSE, - pvremove_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -854,6 +860,7 @@ handle_remove_missing_physical_volumes (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "lvm-vg-rem-device", - caller_uid, -+ FALSE, - vgreduce_job_func, - &data, - NULL, /* user_data_free_func */ -@@ -1098,6 +1105,7 @@ handle_create_volume (UDisksVolumeGroup *_group, - UDISKS_OBJECT (object), - "lvm-vg-create-volume", - caller_uid, -+ FALSE, - create_function, - &data, - NULL, /* user_data_free_func */ --- -2.48.1 - -From 6e8948401251f60e5cd8989ec4992974b375f4ed Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Tue, 21 Jan 2025 19:19:05 +0100 -Subject: [PATCH 4/5] udiskslinuxmdraid: Avoid putting inhibit lock for - externally started operations - -UDisks publishes a new job object whenever it sees an array in sync, -repair or generally any other operation running. However this involves -acquiring and holding a system inhibit lock for the whole duration -of the operation, which for large disks may take hours or days. -Besides, mdraid resync is a restartable operation, defeating the purpose -for an inhibit lock. - -This is also causing problems for installation environments where -UDisks is blocking post-installation reboot until the operation is done. ---- - src/udiskslinuxmdraid.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/udiskslinuxmdraid.c b/src/udiskslinuxmdraid.c -index a24c78c2..0ca9d681 100644 ---- a/src/udiskslinuxmdraid.c -+++ b/src/udiskslinuxmdraid.c -@@ -371,8 +371,8 @@ udisks_linux_mdraid_update (UDisksLinuxMDRaid *mdraid, - UDISKS_OBJECT (object), - sync_action_to_job_id (sync_action), - 0, -- FALSE, -- NULL /* cancellable */); -+ TRUE, /* no_inhibit */ -+ NULL /* cancellable */); - - /* Mark the job as not cancellable. It simply has to finish... */ - udisks_job_set_cancelable (UDISKS_JOB (job), FALSE); --- -2.48.1 - diff --git a/udisks2.spec b/udisks2.spec index 71dd5c6..d74b700 100644 --- a/udisks2.spec +++ b/udisks2.spec @@ -4,7 +4,7 @@ %global systemd_version 208 %global dbus_version 1.4.0 %global with_gtk_doc 1 -%global libblockdev_version 3.2 +%global libblockdev_version 3.4 %define with_btrfs 1 %define with_lsm 1 @@ -27,19 +27,12 @@ Name: udisks2 Summary: Disk Manager -Version: 2.10.90 -Release: 6%{?dist}.alma.1 +Version: 2.11.0 +Release: 1%{?dist}.alma.1 License: GPL-2.0-or-later URL: https://github.com/storaged-project/udisks Source0: https://github.com/storaged-project/udisks/releases/download/udisks-%{version}/udisks-%{version}.tar.bz2 -# https://issues.redhat.com/browse/RHEL-39935 -Patch0: udisks-2.11.0-lvm2-unused_device_detection-try_harder.patch -# https://issues.redhat.com/browse/RHEL-74012 -Patch1: udisks-2.11.0-mdraid-inhibit-locks.patch -# https://issues.redhat.com/browse/RHEL-109406 -Patch2: udisks-2.10.91-manager_loopsetup_fd_bounds.patch - BuildRequires: make BuildRequires: glib2-devel >= %{glib2_version} BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version} @@ -346,9 +339,14 @@ fi %endif %changelog -* Thu Sep 04 2025 Neal Gompa - 2.10.90-6.alma.1 +* Sat Nov 08 2025 Neal Gompa - 2.11.0-1.alma.1 - AlmaLinux changes: Enable Btrfs support +* Thu Nov 06 2025 Tomas Bzatek - 2.11.0-1 +- Version 2.11.0 (RHEL-114981) +- tests: Rework nvme revision check (RHEL-90572) +- tests: Adapt for missing fstab and crypttab (RHEL-78987) + * Tue Sep 02 2025 Tomas Bzatek - 2.10.90-6 - udiskslinuxmanager: Add lower bounds check to fd_index (CVE-2025-8067) (RHEL-109406)