From 9406129f4b3ce487d77afb8f219b47327894fcb5 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 2 Nov 2021 15:28:46 -0400 Subject: [PATCH] import udisks2-2.9.2-6.el9 --- .gitignore | 1 + .udisks2.metadata | 1 + SOURCES/ignore-apple-boot-part.patch | 25 + ...e-Extended-Boot-Loader-GPT-partition.patch | 29 + .../udisks-2.10.0-ata_conf_apply_GTask.patch | 60 ++ ...ks-2.10.0-dosfstools_4.2-reread_part.patch | 24 + SOURCES/udisks-2.10.0-dosfstools_4.2.patch | 75 ++ SOURCES/udisks-2.10.0-g_mkdtemp-leak.patch | 32 + ...udisks-2.10.0-mdraid-g_source_attach.patch | 44 ++ .../udisks-2.10.0-mdraid-iochannel-data.patch | 47 ++ SOURCES/udisks-2.10.0-module-names.patch | 136 ++++ .../udisks-2.10.0-tests-drive_ata-apm.patch | 64 ++ ...sks-2.10.0-tests-no-dev_disk-by-path.patch | 43 ++ SPECS/udisks2.spec | 651 ++++++++++++++++++ 14 files changed, 1232 insertions(+) create mode 100644 .gitignore create mode 100644 .udisks2.metadata create mode 100644 SOURCES/ignore-apple-boot-part.patch create mode 100644 SOURCES/udisks-2.10.0-Ignore-Extended-Boot-Loader-GPT-partition.patch create mode 100644 SOURCES/udisks-2.10.0-ata_conf_apply_GTask.patch create mode 100644 SOURCES/udisks-2.10.0-dosfstools_4.2-reread_part.patch create mode 100644 SOURCES/udisks-2.10.0-dosfstools_4.2.patch create mode 100644 SOURCES/udisks-2.10.0-g_mkdtemp-leak.patch create mode 100644 SOURCES/udisks-2.10.0-mdraid-g_source_attach.patch create mode 100644 SOURCES/udisks-2.10.0-mdraid-iochannel-data.patch create mode 100644 SOURCES/udisks-2.10.0-module-names.patch create mode 100644 SOURCES/udisks-2.10.0-tests-drive_ata-apm.patch create mode 100644 SOURCES/udisks-2.10.0-tests-no-dev_disk-by-path.patch create mode 100644 SPECS/udisks2.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c794bb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/udisks-2.9.2.tar.bz2 diff --git a/.udisks2.metadata b/.udisks2.metadata new file mode 100644 index 0000000..cfa44e3 --- /dev/null +++ b/.udisks2.metadata @@ -0,0 +1 @@ +15aaadab7f6ce2ddc4c6ca114019241cd1152f04 SOURCES/udisks-2.9.2.tar.bz2 diff --git a/SOURCES/ignore-apple-boot-part.patch b/SOURCES/ignore-apple-boot-part.patch new file mode 100644 index 0000000..0c57303 --- /dev/null +++ b/SOURCES/ignore-apple-boot-part.patch @@ -0,0 +1,25 @@ +From b9863c11601e199420a375e13505e2b795de77c5 Mon Sep 17 00:00:00 2001 +From: Frederick Grose <4335897+FGrose@users.noreply.github.com> +Date: Tue, 9 Feb 2021 19:02:01 -0500 +Subject: [PATCH] 80-udisks2.rules: Ignore Apple boot partition from + livecd-tools + +https://github.com/livecd-tools/livecd-tools/pull/176 creates a new boot +partition with livecd-iso-to-disk from Fedora Live .iso files that UDISKS +should ignore. +--- + data/80-udisks2.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/data/80-udisks2.rules b/data/80-udisks2.rules +index fb50f48a0..d6fa072fd 100644 +--- a/data/80-udisks2.rules ++++ b/data/80-udisks2.rules +@@ -122,6 +122,7 @@ ENV{ID_PART_ENTRY_SCHEME}=="mac", ENV{ID_PART_ENTRY_TYPE}=="Apple_Bootstrap", EN + + # Apple Boot partitions + ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_TYPE}=="426f6f74-0000-11aa-aa11-00306543ecac", ENV{UDISKS_IGNORE}="1" ++ENV{ID_FS_LABEL}=="ANACONDA", ENV{ID_PART_ENTRY_TYPE}=="48465300-0000-11aa-aa11-00306543ecac|0xaf", ENV{UDISKS_IGNORE}="1" + + # special DOS partition types (EFI, hidden, etc.) and RAID/LVM + # see http://www.win.tue.nl/~aeb/partitions/partition_types-1.html diff --git a/SOURCES/udisks-2.10.0-Ignore-Extended-Boot-Loader-GPT-partition.patch b/SOURCES/udisks-2.10.0-Ignore-Extended-Boot-Loader-GPT-partition.patch new file mode 100644 index 0000000..1f98913 --- /dev/null +++ b/SOURCES/udisks-2.10.0-Ignore-Extended-Boot-Loader-GPT-partition.patch @@ -0,0 +1,29 @@ +From 79eed9aa35fbf1c5131b44b50b407742f68e2f61 Mon Sep 17 00:00:00 2001 +From: Florian Ziegler +Date: Sat, 17 Apr 2021 13:31:31 +0200 +Subject: [PATCH 8/8] Ignore "Extended Boot Loader" GPT partition + +--- + data/80-udisks2.rules | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/data/80-udisks2.rules b/data/80-udisks2.rules +index fb50f48a..39bfa28b 100644 +--- a/data/80-udisks2.rules ++++ b/data/80-udisks2.rules +@@ -135,6 +135,12 @@ ENV{ID_PART_ENTRY_SCHEME}=="gpt", \ + ENV{ID_PART_ENTRY_TYPE}=="c12a7328-f81f-11d2-ba4b-00a0c93ec93b|21686148-6449-6e6f-744e-656564454649|a19d880f-05fc-4d3b-a006-743f0f84911e|e6d6d379-f507-44c2-a23c-238f2a3df928|e3c9e316-0b5c-4db8-817d-f92df00215ae|de94bba4-06d1-4d40-a16a-bfd50179d6ac", \ + ENV{UDISKS_IGNORE}="1" + ++# special Extended Boot Loader partition (XBOOTLDR) ++# see https://systemd.io/BOOT_LOADER_SPECIFICATION/ ++ENV{ID_PART_ENTRY_SCHEME}=="gpt", \ ++ ENV{ID_PART_ENTRY_TYPE}=="bc13c2ff-59e6-4262-a352-b275fd6f7172", \ ++ ENV{UDISKS_IGNORE}="1" ++ + # ZFS member partitions + ENV{ID_PART_ENTRY_SCHEME}=="gpt", \ + ENV{ID_FS_TYPE}=="zfs_member", ENV{ID_PART_ENTRY_TYPE}=="6a898cc3-1dd2-11b2-99a6-080020736631", \ +-- +2.30.2 + diff --git a/SOURCES/udisks-2.10.0-ata_conf_apply_GTask.patch b/SOURCES/udisks-2.10.0-ata_conf_apply_GTask.patch new file mode 100644 index 0000000..077fada --- /dev/null +++ b/SOURCES/udisks-2.10.0-ata_conf_apply_GTask.patch @@ -0,0 +1,60 @@ +commit 6ff556afabd490feb6c4b29f9e91e81d64e2c0ed +Author: Tomas Bzatek +Date: Tue Mar 23 12:56:40 2021 +0100 + + udiskslinuxdriveata: Use GTask to apply configuration in a thread + + Should fix a leaking GThread without a need to join or track it anyhow. + +diff --git a/src/udiskslinuxdriveata.c b/src/udiskslinuxdriveata.c +index 5ebdcd76..2de138cd 100644 +--- a/src/udiskslinuxdriveata.c ++++ b/src/udiskslinuxdriveata.c +@@ -1625,10 +1625,13 @@ apply_conf_data_free (ApplyConfData *data) + g_free (data); + } + +-static gpointer +-apply_configuration_thread_func (gpointer user_data) ++static void ++apply_configuration_thread_func (GTask *task, ++ gpointer source_object, ++ gpointer task_data, ++ GCancellable *cancellable) + { +- ApplyConfData *data = user_data; ++ ApplyConfData *data = task_data; + UDisksDaemon *daemon; + const gchar *device_file = NULL; + gint fd = -1; +@@ -1799,8 +1802,6 @@ apply_configuration_thread_func (gpointer user_data) + out: + if (fd != -1) + close (fd); +- apply_conf_data_free (data); +- return NULL; + } + + /** +@@ -1819,6 +1820,7 @@ udisks_linux_drive_ata_apply_configuration (UDisksLinuxDriveAta *drive, + { + gboolean has_conf = FALSE; + ApplyConfData *data = NULL; ++ GTask *task; + + data = g_new0 (ApplyConfData, 1); + data->ata_pm_standby = -1; +@@ -1862,9 +1864,10 @@ udisks_linux_drive_ata_apply_configuration (UDisksLinuxDriveAta *drive, + /* this can easily take a long time and thus block (the drive may be in standby mode + * and needs to spin up) - so run it in a thread + */ +- g_thread_new ("apply-conf-thread", +- apply_configuration_thread_func, +- data); ++ task = g_task_new (data->object, NULL, NULL, NULL); ++ g_task_set_task_data (task, data, (GDestroyNotify) apply_conf_data_free); ++ g_task_run_in_thread (task, apply_configuration_thread_func); ++ g_object_unref (task); + + data = NULL; /* don't free data below */ + diff --git a/SOURCES/udisks-2.10.0-dosfstools_4.2-reread_part.patch b/SOURCES/udisks-2.10.0-dosfstools_4.2-reread_part.patch new file mode 100644 index 0000000..414c830 --- /dev/null +++ b/SOURCES/udisks-2.10.0-dosfstools_4.2-reread_part.patch @@ -0,0 +1,24 @@ +commit d58ebcc32b583371dd73ab7f4c7be5191674ca62 +Author: Tomas Bzatek +Date: Wed Mar 17 18:52:22 2021 +0100 + + udiskslinuxblock: Re-read partition table after creating FAT filesystem + + Might not be needed after reverting mkfs.vfat behaviour back + to the legacy way, added just as a precautionary measure. + +diff --git a/src/udiskslinuxblock.c b/src/udiskslinuxblock.c +index 901426ad..69161b61 100644 +--- a/src/udiskslinuxblock.c ++++ b/src/udiskslinuxblock.c +@@ -2913,7 +2913,9 @@ static inline gboolean + need_partprobe_after_mkfs (const gchar *fs_type) + { + /* udftools makes fake MBR since the 2.0 release */ +- return (g_strcmp0 (fs_type, "udf") == 0); ++ /* dosfstools makes fake MBR since the 4.2 release */ ++ return (g_strcmp0 (fs_type, "udf") == 0 || ++ g_strcmp0 (fs_type, "vfat") == 0); + } + + void diff --git a/SOURCES/udisks-2.10.0-dosfstools_4.2.patch b/SOURCES/udisks-2.10.0-dosfstools_4.2.patch new file mode 100644 index 0000000..2764315 --- /dev/null +++ b/SOURCES/udisks-2.10.0-dosfstools_4.2.patch @@ -0,0 +1,75 @@ +commit ef1979d8cbfb8ad976de0af21a70f8c0f98fbbe9 +Author: Tomas Bzatek +Date: Wed Mar 17 18:50:19 2021 +0100 + + udiskslinuxfsinfo: Add dosfstools >= 4.2 quirks + + Reverting back the legacy behaviour with no protective (fake) MBR + created while making new FAT filesystem on an unpartitioned block device. + + Added a label clear functionality as well. + +diff --git a/src/udiskslinuxfsinfo.c b/src/udiskslinuxfsinfo.c +index 15af26c8..f18b9b80 100644 +--- a/src/udiskslinuxfsinfo.c ++++ b/src/udiskslinuxfsinfo.c +@@ -21,6 +21,8 @@ + #include + #include + ++#include ++ + #include "config.h" + #include "udiskslinuxfsinfo.h" + #include "udisksconfigmanager.h" +@@ -236,6 +238,19 @@ const FSInfo _fs_info[] = + }, + }; + ++/* workaround for dosfstools >= 4.2 */ ++static const FSInfo vfat_dosfstools_42 = ++ { ++ FS_VFAT, ++ "fatlabel $DEVICE $LABEL", ++ "fatlabel --reset $DEVICE", ++ FALSE, /* supports_online_label_rename */ ++ FALSE, /* supports_owners */ ++ "mkfs.vfat -I -n $LABEL --mbr=n $DEVICE", ++ NULL, ++ NULL, /* option_no_discard */ ++ }; ++ + /** + * get_fs_info: + * +@@ -248,6 +263,7 @@ const FSInfo _fs_info[] = + const FSInfo * + get_fs_info (const gchar *fstype) + { ++ const FSInfo *info = NULL; + guint n; + + g_return_val_if_fail (fstype != NULL, NULL); +@@ -255,10 +271,20 @@ get_fs_info (const gchar *fstype) + for (n = 0; n < sizeof(_fs_info)/sizeof(FSInfo); n++) + { + if (strcmp (_fs_info[n].fstype, fstype) == 0) +- return &_fs_info[n]; ++ { ++ info = &_fs_info[n]; ++ break; ++ } ++ } ++ ++ /* dosfstools >= 4.2 workaround */ ++ if (g_str_equal (fstype, FS_VFAT) && ++ bd_utils_check_util_version ("mkfs.vfat", "4.2", "--help", "mkfs.fat\\s+([\\d\\.]+).+", NULL)) ++ { ++ info = &vfat_dosfstools_42; + } + +- return NULL; ++ return info; + } + + /** diff --git a/SOURCES/udisks-2.10.0-g_mkdtemp-leak.patch b/SOURCES/udisks-2.10.0-g_mkdtemp-leak.patch new file mode 100644 index 0000000..58d58cd --- /dev/null +++ b/SOURCES/udisks-2.10.0-g_mkdtemp-leak.patch @@ -0,0 +1,32 @@ +From fcdec5d58ba2bbe6d7ecf7168ab1a11282763041 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Fri, 16 Apr 2021 18:15:03 +0200 +Subject: [PATCH 5/8] udiskslinuxfilesystemhelpers: Fix leaking string in case + g_mkdtemp() fails + +--- + src/udiskslinuxfilesystemhelpers.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/udiskslinuxfilesystemhelpers.c b/src/udiskslinuxfilesystemhelpers.c +index 74d83152..7c5fc037 100644 +--- a/src/udiskslinuxfilesystemhelpers.c ++++ b/src/udiskslinuxfilesystemhelpers.c +@@ -142,11 +142,11 @@ take_filesystem_ownership (const gchar *device, + else + { + /* device is not mounted, we need to mount it */ +- mountpoint = g_mkdtemp (g_strdup ("/run/udisks2/temp-mount-XXXXXX")); +- if (mountpoint == NULL) ++ mountpoint = g_strdup ("/run/udisks2/temp-mount-XXXXXX"); ++ if (g_mkdtemp (mountpoint) == NULL) + { + g_set_error (error, UDISKS_ERROR, UDISKS_ERROR_FAILED, +- "Cannot create temporary mountpoint."); ++ "Cannot create temporary mountpoint: %m."); + success = FALSE; + goto out; + } +-- +2.30.2 + diff --git a/SOURCES/udisks-2.10.0-mdraid-g_source_attach.patch b/SOURCES/udisks-2.10.0-mdraid-g_source_attach.patch new file mode 100644 index 0000000..9fb9911 --- /dev/null +++ b/SOURCES/udisks-2.10.0-mdraid-g_source_attach.patch @@ -0,0 +1,44 @@ +From cd458666a93fe9d07f3718e88f3169f01a11a63e Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Fri, 16 Apr 2021 18:36:16 +0200 +Subject: [PATCH 7/8] udiskslinuxmdraidobject: Handle source attach failure + gracefully + +Only negligible theoretical chance to hit this, reported by Coverity. +--- + src/udiskslinuxmdraidobject.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/udiskslinuxmdraidobject.c b/src/udiskslinuxmdraidobject.c +index 20ca89c5..828c7058 100644 +--- a/src/udiskslinuxmdraidobject.c ++++ b/src/udiskslinuxmdraidobject.c +@@ -468,7 +468,8 @@ watch_attr (UDisksLinuxDevice *device, + GError *error = NULL; + gchar *path = NULL; + GIOChannel *channel = NULL; +- GSource *ret = NULL;; ++ GSource *ret = NULL; ++ guint source_id; + + g_return_val_if_fail (UDISKS_IS_LINUX_DEVICE (device), NULL); + +@@ -478,9 +479,14 @@ watch_attr (UDisksLinuxDevice *device, + { + ret = g_io_create_watch (channel, G_IO_ERR); + g_source_set_callback (ret, callback, user_data, NULL); +- g_source_attach (ret, g_main_context_get_thread_default ()); ++ source_id = g_source_attach (ret, g_main_context_get_thread_default ()); + g_source_unref (ret); + g_io_channel_unref (channel); /* the keeps a reference to this object */ ++ if (source_id == 0) ++ { ++ /* something bad happened while attaching the source */ ++ ret = NULL; ++ } + } + else + { +-- +2.30.2 + diff --git a/SOURCES/udisks-2.10.0-mdraid-iochannel-data.patch b/SOURCES/udisks-2.10.0-mdraid-iochannel-data.patch new file mode 100644 index 0000000..51daf79 --- /dev/null +++ b/SOURCES/udisks-2.10.0-mdraid-iochannel-data.patch @@ -0,0 +1,47 @@ +From 0353b5f2f9c586d872750423259b6ef6cc375625 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Fri, 16 Apr 2021 18:22:46 +0200 +Subject: [PATCH 6/8] udiskslinuxmdraidobject: Optimize unused data out from + the g_io_channel_read_to_end() call + +Looking into glib sources the g_io_channel_read_to_end() function +can handle NULL output pointers just fine and since the data is thrown +right away it's pointless to have them assigned. +--- + src/udiskslinuxmdraidobject.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/udiskslinuxmdraidobject.c b/src/udiskslinuxmdraidobject.c +index 759ff5f4..20ca89c5 100644 +--- a/src/udiskslinuxmdraidobject.c ++++ b/src/udiskslinuxmdraidobject.c +@@ -503,8 +503,6 @@ attr_changed (GIOChannel *channel, + UDisksLinuxMDRaidObject *object = UDISKS_LINUX_MDRAID_OBJECT (user_data); + gboolean bail = FALSE; + GError *error = NULL; +- gchar *str = NULL; +- gsize len = 0; + + if (cond & ~G_IO_ERR) + goto out; +@@ -518,7 +516,7 @@ attr_changed (GIOChannel *channel, + goto out; + } + +- if (g_io_channel_read_to_end (channel, &str, &len, &error) != G_IO_STATUS_NORMAL) ++ if (g_io_channel_read_to_end (channel, NULL, NULL, &error) != G_IO_STATUS_NORMAL) + { + udisks_debug ("Error reading (uuid %s): %s (%s, %d)", + object->uuid, error->message, g_quark_to_string (error->domain), error->code); +@@ -527,8 +525,6 @@ attr_changed (GIOChannel *channel, + goto out; + } + +- g_free (str); +- + /* synthesize uevent */ + if (object->raid_device != NULL) + udisks_linux_mdraid_object_uevent (object, "change", object->raid_device, FALSE); +-- +2.30.2 + diff --git a/SOURCES/udisks-2.10.0-module-names.patch b/SOURCES/udisks-2.10.0-module-names.patch new file mode 100644 index 0000000..a1a6619 --- /dev/null +++ b/SOURCES/udisks-2.10.0-module-names.patch @@ -0,0 +1,136 @@ +commit e062c17e3829f3c04c25b5f6fc17ccc4491befa8 +Author: Tomas Bzatek +Date: Tue Mar 23 16:48:08 2021 +0100 + + modules: Limit module name to alphanumeric characters and -_ separators + + A hardening feature as long as the module name is directly involved + in filename creation. + +diff --git a/doc/udisks2-sections.txt.daemon.sections.in b/doc/udisks2-sections.txt.daemon.sections.in +index 16eaf74e..204ca897 100644 +--- a/doc/udisks2-sections.txt.daemon.sections.in ++++ b/doc/udisks2-sections.txt.daemon.sections.in +@@ -312,6 +312,7 @@ udisks_daemon_util_get_free_mdraid_device + udisks_ata_identify_get_word + udisks_daemon_util_trigger_uevent + udisks_daemon_util_trigger_uevent_sync ++udisks_module_validate_name + + +
+diff --git a/src/udisksconfigmanager.c b/src/udisksconfigmanager.c +index 9558e276..5868e864 100644 +--- a/src/udisksconfigmanager.c ++++ b/src/udisksconfigmanager.c +@@ -26,6 +26,7 @@ + #include "udiskslogging.h" + #include "udisksdaemontypes.h" + #include "udisksconfigmanager.h" ++#include "udisksdaemonutil.h" + + struct _UDisksConfigManager { + GObject parent_instance; +@@ -60,6 +61,8 @@ enum + #define DEFAULTS_GROUP_NAME "defaults" + #define DEFAULTS_ENCRYPTION_KEY "encryption" + ++#define MODULES_ALL_ARG "*" ++ + static void + udisks_config_manager_get_property (GObject *object, + guint property_id, +@@ -170,7 +173,16 @@ parse_config_file (UDisksConfigManager *manager, + { + modules_tmp = modules; + for (module_i = *modules_tmp; module_i; module_i = *++modules_tmp) +- *out_modules = g_list_append (*out_modules, g_strdup (g_strstrip (module_i))); ++ { ++ g_strstrip (module_i); ++ if (! udisks_module_validate_name (module_i) && !g_str_equal (module_i, MODULES_ALL_ARG)) ++ { ++ g_warning ("Invalid module name '%s' specified in the %s config file.", ++ module_i, conf_filename); ++ continue; ++ } ++ *out_modules = g_list_append (*out_modules, g_strdup (module_i)); ++ } + g_strfreev (modules); + } + } +@@ -397,7 +409,7 @@ udisks_config_manager_get_modules_all (UDisksConfigManager *manager) + + parse_config_file (manager, NULL, NULL, &modules); + +- ret = !modules || (g_strcmp0 (modules->data, "*") == 0 && g_list_length (modules) == 1); ++ ret = !modules || (g_strcmp0 (modules->data, MODULES_ALL_ARG) == 0 && g_list_length (modules) == 1); + + g_list_free_full (modules, (GDestroyNotify) g_free); + +diff --git a/src/udisksdaemonutil.c b/src/udisksdaemonutil.c +index 60134765..1695b524 100644 +--- a/src/udisksdaemonutil.c ++++ b/src/udisksdaemonutil.c +@@ -1880,3 +1880,29 @@ udisks_daemon_util_trigger_uevent_sync (UDisksDaemon *daemon, + } + + /* ---------------------------------------------------------------------------------------------------- */ ++ ++/** ++ * udisks_module_validate_name: ++ * @module_name: A udisks2 module name. ++ * ++ * Checks the string for a valid udisks2 module name. Only alphanumeric characters ++ * along with the '-' and '_' separators are permitted. ++ * ++ * Returns: %TRUE if the string is a valid udisks2 module name, %FALSE otherwise. ++ */ ++gboolean ++udisks_module_validate_name (const gchar *module_name) ++{ ++ int i; ++ ++ for (i = 0; module_name[i] != '\0'; i++) ++ /* going ASCII, will disqualify any UTF-* string */ ++ if (! g_ascii_isalnum (module_name[i]) && ++ module_name[i] != '-' && ++ module_name[i] != '_') ++ return FALSE; ++ ++ return TRUE; ++} ++ ++/* ---------------------------------------------------------------------------------------------------- */ +diff --git a/src/udisksdaemonutil.h b/src/udisksdaemonutil.h +index 2d7ac981..df584de4 100644 +--- a/src/udisksdaemonutil.h ++++ b/src/udisksdaemonutil.h +@@ -129,6 +129,8 @@ gchar *udisks_daemon_util_get_free_mdraid_device (void); + + guint16 udisks_ata_identify_get_word (const guchar *identify_data, guint word_number); + ++gboolean udisks_module_validate_name (const gchar *module_name); ++ + /* Utility macro for policy verification. */ + #define UDISKS_DAEMON_CHECK_AUTHORIZATION(daemon, \ + object, \ +diff --git a/src/udiskslinuxmanager.c b/src/udiskslinuxmanager.c +index 8af65d97..26d8a5d7 100644 +--- a/src/udiskslinuxmanager.c ++++ b/src/udiskslinuxmanager.c +@@ -956,6 +956,15 @@ handle_enable_module (UDisksManager *object, + UDisksLinuxManager *manager = UDISKS_LINUX_MANAGER (object); + EnableModulesData *data; + ++ if (! udisks_module_validate_name (arg_name)) ++ { ++ g_dbus_method_invocation_return_error (invocation, ++ G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, ++ "Requested module name '%s' is not a valid udisks2 module name.", ++ arg_name); ++ return TRUE; ++ } ++ + if (! arg_enable) + { + /* TODO: implement proper module unloading */ diff --git a/SOURCES/udisks-2.10.0-tests-drive_ata-apm.patch b/SOURCES/udisks-2.10.0-tests-drive_ata-apm.patch new file mode 100644 index 0000000..32c11ad --- /dev/null +++ b/SOURCES/udisks-2.10.0-tests-drive_ata-apm.patch @@ -0,0 +1,64 @@ +From c21ad308b1313a35cafa1664e5eb4772925bc005 Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +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): + # ninth 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 + diff --git a/SOURCES/udisks-2.10.0-tests-no-dev_disk-by-path.patch b/SOURCES/udisks-2.10.0-tests-no-dev_disk-by-path.patch new file mode 100644 index 0000000..044a8aa --- /dev/null +++ b/SOURCES/udisks-2.10.0-tests-no-dev_disk-by-path.patch @@ -0,0 +1,43 @@ +From 1358d1e5208d71d5a70f17a242eda00f079a9d0b Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +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 + diff --git a/SPECS/udisks2.spec b/SPECS/udisks2.spec new file mode 100644 index 0000000..3780351 --- /dev/null +++ b/SPECS/udisks2.spec @@ -0,0 +1,651 @@ +%global glib2_version 2.50 +%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.25 + +%define with_bcache 1 +%define with_btrfs 1 +%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 +%define is_git %(git show > /dev/null 2>&1 && echo 1 || echo 0) +%define git_hash %(git log -1 --pretty=format:"%h" || true) +%define build_date %(date '+%Y%m%d') + + +# 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 +%define with_btrfs 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.2 +Release: 6%{?dist} +License: GPLv2+ +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.10.0-dosfstools_4.2.patch +Patch1: udisks-2.10.0-dosfstools_4.2-reread_part.patch +Patch2: udisks-2.10.0-module-names.patch +Patch3: udisks-2.10.0-ata_conf_apply_GTask.patch +# https://github.com/storaged-project/udisks/pull/847 +Patch4: ignore-apple-boot-part.patch +Patch5: udisks-2.10.0-g_mkdtemp-leak.patch +Patch6: udisks-2.10.0-mdraid-iochannel-data.patch +Patch7: udisks-2.10.0-mdraid-g_source_attach.patch +Patch8: udisks-2.10.0-Ignore-Extended-Boot-Loader-GPT-partition.patch +Patch9: udisks-2.10.0-tests-drive_ata-apm.patch +Patch10: udisks-2.10.0-tests-no-dev_disk-by-path.patch + +BuildRequires: make +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 + +%if ! (0%{?rhel} && 0%{?rhel} < 8) +# Not really needed but doesn't make much sense to use UDisks without polkit +# (weak deps don't work on older versions of RHEL) +Recommends: polkit +%endif + +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 +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 +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 +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} +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 +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 +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 +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 +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 + +%prep +%autosetup -p1 -n udisks-%{version} +sed -i udisks/udisks2.conf.in -e "s/encryption=luks1/encryption=%{default_luks_encryption}/" +rm -f src/tests/dbus-tests/config_h.py + +%build +autoreconf -ivf +# modules need to be explicitly enabled +%configure \ +%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 + --disable-vdo \ +%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 udisks2-zram-setup@.service +if [ -S /run/udev/control ]; then + udevadm control --reload + udevadm trigger +fi + +%preun -n %{name}-zram +%systemd_preun udisks2-zram-setup@.service + +%postun -n %{name}-zram +%systemd_postun udisks2-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_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}/udisks2-zram-setup@.service +%{_udevrulesdir}/90-udisks2-zram.rules +%endif + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 2.9.2-6 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Apr 22 2021 Tomas Bzatek - 2.9.2-5 +- Fix Drive.ATA test failures + +* Tue Apr 20 2021 Tomas Bzatek - 2.9.2-4 +- Fix a couple of issues found by Coverity (#1938890) +- Ignore systemd "Extended Boot Loader" GPT partition + +* Fri Apr 16 2021 Mohan Boddu - 2.9.2-3 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Fri Mar 26 2021 Tomas Bzatek - 2.9.2-2 +- Fix FAT mkfs with dosfstools >= 4.2 +- udiskslinuxdriveata: Use GTask to apply configuration in a thread +- Limit allowed module names +- 80-udisks2.rules: Ignore Apple boot partition from livecd-tools + +* Thu Feb 04 2021 Tomas Bzatek - 2.9.2-1 +- Version 2.9.2 + +* Wed Jan 27 2021 Fedora Release Engineering - 2.9.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Sep 07 2020 Neal Gompa - 2.9.1-2 +- Fix conditional around polkit Recommends for building on EL7 + +* Wed Aug 12 2020 Tomas Bzatek - 2.9.1-1 +- Version 2.9.1 +- Renamed zram-setup@.service to udisks2-zram-setup@.service + +* Wed Jul 29 2020 Fedora Release Engineering - 2.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Tomas Bzatek - 2.9.0-1 +- Version 2.9.0 + +* Fri Jan 31 2020 Fedora Release Engineering - 2.8.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Oct 01 2019 Jonathan Lebon - 2.8.4-3 +- Don't trigger udev if socket is not accessible + +* Sat Jul 27 2019 Fedora Release Engineering - 2.8.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jul 22 2019 Tomas Bzatek - 2.8.4-1 +- Version 2.8.4 + +* Thu Jun 13 2019 Tomas Bzatek - 2.8.3-1 +- Version 2.8.3 + +* Fri Mar 15 2019 Debarshi Ray - 2.8.2-2 +- Update for tmpfiles.d snippet + +* Mon Mar 04 2019 Tomas Bzatek - 2.8.2-1 +- Version 2.8.2 + +* Sun Feb 03 2019 Fedora Release Engineering - 2.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Sep 26 2018 Vojtech Trefny - 2.8.1-1 +- Version 2.8.1 + +* Fri Sep 14 2018 Adam Williamson - 2.8.0-2 +- Backport PR #576 to fix udev multipath device check (see RHBZ#1628192) + +* Mon Aug 13 2018 Tomas Bzatek - 2.8.0-1 +- Version 2.8.0 + +* Tue Jul 24 2018 Adam Williamson - 2.7.7-3 +- Rebuild for new libconfig + +* Sat Jul 14 2018 Fedora Release Engineering - 2.7.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 04 2018 Vojtech Trefny - 2.7.7-1 +- Version 2.7.7 + +* Thu Feb 08 2018 Vojtech Trefny - 2.7.6-1 +- Version 2.7.6 + +* Fri Feb 02 2018 Igor Gnatenko - 2.7.5-2 +- Switch to %%ldconfig_scriptlets + +* Mon Dec 04 2017 Vojtech Trefny - 2.7.5-1 +- Version 2.7.5 + +* Wed Nov 01 2017 Vojtech Trefny - 2.7.4-1 +- Version 2.7.4 + +* Thu Aug 31 2017 Vojtech Trefny - 2.7.3-1 +- Version 2.7.3 + +* Thu Aug 03 2017 Vojtech Trefny - 2.7.2-1 +- Version 2.7.2 + +* Thu Aug 03 2017 Fedora Release Engineering - 2.7.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 03 2017 Vojtech Trefny - 2.7.1-1 +- Version 2.7.1 + +* Tue Jun 20 2017 Vojtech Trefny - 2.7.0-3 +- Do not try to remove changed_blacklist hash table in finalize + +* Mon Jun 19 2017 Vojtech Trefny - 2.7.0-2 +- Fix how UDisksClient filters property changes + +* Fri Jun 02 2017 Vojtech Trefny - 2.7.0-1 +- Version 2.7.0 + +* Mon May 15 2017 Vojtech Trefny - 2.6.5-1 +- Version 2.6.5 + +* Tue Mar 14 2017 Vojtech Trefny - 2.6.4-1 +- Version 2.6.4 + +* Mon Nov 14 2016 Tomas Smetana - 2.6.3-1 +- Version 2.6.3 + +* Thu Jun 16 2016 Tomas Smetana - 2.6.2-1 +- Version 2.6.2; aimed to replace udisks2 + +* Wed Apr 27 2016 Peter Hatina - 2.6.0-3 +- Add support for libblockdev-part plugin which replaces + parted calls + +* Wed Mar 16 2016 Peter Hatina - 2.6.0-2 +- Fix permissions set for storaged_lsm.conf so it is readable only by root + +* Mon Mar 14 2016 Peter Hatina - 2.6.0-1 +- Upgrade to 2.6.0 + +* Wed Feb 10 2016 Peter Hatina - 2.5.0-3 +- Package template zram-setup@.service file + +* Wed Feb 10 2016 Peter Hatina - 2.5.0-2 +- Add udisksd configuration file and its man page + +* Thu Jan 28 2016 Peter Hatina - 2.5.0-1 +- UDisks2 drop-in replacement + +* Thu Jan 21 2016 Peter Hatina - 2.4.0-3 +- Redesign subpackage dependencies +- Make GTK documentation generation configurable + +* Wed Jan 20 2016 Peter Hatina - 2.4.0-2 +- Reload udev rules and trigger events when installed + +* Wed Jan 13 2016 Peter Hatina - 2.4.0-1 +- Upgrade to 2.4.0 + +* Wed Sep 30 2015 Peter Hatina - 2.3.0-2 +- Add Fedora/RHEL package configuration options + +* Mon Sep 14 2015 Peter Hatina - 2.3.0-1 +- Change BuildRequires from pkgconfig macro to -devel packages +- Upgrade to 2.3.0 + +* Mon Aug 24 2015 Peter Hatina - 2.2.0-1 +- Upgrade to 2.2.0 + +* Fri Jul 3 2015 Peter Hatina - 2.1.1-1 +- Upgrade to 2.1.1 + +* Wed Jun 24 2015 Peter Hatina - 2.1.0-4 +- Add Requires for storaged modules + +* Wed Jun 24 2015 Peter Hatina - 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 - 2.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Jun 11 2015 Peter Hatina - 2.1.0-1 +- Update to upstream 2.1.0 + +* Thu Apr 02 2015 Peter Hatina - 2.0.0-1 +- Rebase to the new Storaged implementation +- Upstream: https://storaged.org + +* Tue Sep 16 2014 Stef Walter - 0.3.1-1 +- Update to upstream 0.3.1 + +* Mon Aug 18 2014 Fedora Release Engineering - 0.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 0.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Apr 08 2014 Patrick Uiterwijk - 0.3.0-1 +- Update to upstream 0.3.0 + +* Fri Jan 31 2014 Patrick Uiterwijk - 0.2.0-1 +- Update to upstream 0.2.0 + +* Thu Jan 16 2014 Patrick Uiterwijk - 0.1.0-2 +- Removed double systemd BuildRequire +- Rewritten summary and description + +* Sun Jan 12 2014 Patrick Uiterwijk - 0.1.0-1 +- Rename from udisks2-lvm