diff --git a/0001-udiskslinuxmountoptions-Do-not-free-static-daemon-resources.patch b/0001-udiskslinuxmountoptions-Do-not-free-static-daemon-resources.patch deleted file mode 100644 index 18a4ed0f6b310c25d9da59f7e16130a969cfd6d7..0000000000000000000000000000000000000000 --- a/0001-udiskslinuxmountoptions-Do-not-free-static-daemon-resources.patch +++ /dev/null @@ -1,74 +0,0 @@ -From d205057296957d6064825252a3d3377e809d6fed Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek -Date: Wed, 6 Oct 2021 17:12:13 +0200 -Subject: [PATCH] udiskslinuxmountoptions: Do not free static daemon resources - -The GResource instance returned from udisks_daemon_resources_get_resource() -that calls g_static_resource_get_resource() internally is marked as -'(transfer none)' and should not be freed. In fact that causes double -free inside the g_static_resource_fini() atexit handler leading -to memory corruption causing random failures of further atexit -handlers such as cryptsetup and openssl destructors. - - Invalid read of size 4 - at 0x4BB03A4: g_resource_unref (gresource.c:527) - by 0x4BB2150: g_static_resource_fini (gresource.c:1449) - by 0x4010ADB: _dl_fini (dl-fini.c:139) - by 0x4EF0DF4: __run_exit_handlers (exit.c:113) - by 0x4EF0F6F: exit (exit.c:143) - by 0x4ED9566: __libc_start_call_main (libc_start_call_main.h:74) - by 0x4ED960B: __libc_start_main@@GLIBC_2.34 (libc-start.c:409) - by 0x128774: (below main) (in udisks/src/.libs/udisksd) - Address 0x5cc5fc0 is 0 bytes inside a block of size 16 free'd - at 0x48430E4: free (vg_replace_malloc.c:755) - by 0x4DB10BC: g_free (gmem.c:199) - by 0x4BB2148: g_static_resource_fini (gresource.c:1448) - by 0x4010ADB: _dl_fini (dl-fini.c:139) - by 0x4EF0DF4: __run_exit_handlers (exit.c:113) - by 0x4EF0F6F: exit (exit.c:143) - by 0x4ED9566: __libc_start_call_main (libc_start_call_main.h:74) - by 0x4ED960B: __libc_start_main@@GLIBC_2.34 (libc-start.c:409) - by 0x128774: (below main) (in udisks/src/.libs/udisksd) - Block was alloc'd at - at 0x484086F: malloc (vg_replace_malloc.c:380) - by 0x4DB47A8: g_malloc (gmem.c:106) - by 0x4BB19C7: UnknownInlinedFun (gresource.c:545) - by 0x4BB19C7: g_resource_new_from_data (gresource.c:613) - by 0x4BB1A88: register_lazy_static_resources_unlocked (gresource.c:1374) - by 0x4BB218C: UnknownInlinedFun (gresource.c:1393) - by 0x4BB218C: UnknownInlinedFun (gresource.c:1387) - by 0x4BB218C: g_static_resource_get_resource (gresource.c:1472) - by 0x14F6A3: UnknownInlinedFun (udisks-daemon-resources.c:284) - by 0x14F6A3: udisks_linux_mount_options_get_builtin (udiskslinuxmountoptions.c:612) - by 0x12CC6E: udisks_daemon_constructed (udisksdaemon.c:441) - by 0x4D1ED96: g_object_new_internal (gobject.c:1985) - by 0x4D20227: g_object_new_valist (gobject.c:2288) - by 0x4D2075C: g_object_new (gobject.c:1788) - by 0x129A5F: udisks_daemon_new (udisksdaemon.c:619) - by 0x129AD5: on_bus_acquired (main.c:63) - by 0x4C35C95: connection_get_cb.lto_priv.0 (gdbusnameowning.c:504) - by 0x4BD3F99: g_task_return_now (gtask.c:1219) - by 0x4BD419A: UnknownInlinedFun (gtask.c:1289) - by 0x4BD419A: g_task_return (gtask.c:1245) - by 0x4C31D51: bus_get_async_initable_cb (gdbusconnection.c:7433) - by 0x4BD3F99: g_task_return_now (gtask.c:1219) - by 0x4BD3FDC: complete_in_idle_cb (gtask.c:1233) - by 0x4DA852A: g_idle_dispatch (gmain.c:5897) - by 0x4DAC33E: UnknownInlinedFun (gmain.c:3381) - by 0x4DAC33E: g_main_context_dispatch (gmain.c:4099) ---- - src/udiskslinuxmountoptions.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/udiskslinuxmountoptions.c b/src/udiskslinuxmountoptions.c -index 7729d40159..819c9ba96a 100644 ---- a/src/udiskslinuxmountoptions.c -+++ b/src/udiskslinuxmountoptions.c -@@ -614,7 +614,6 @@ udisks_linux_mount_options_get_builtin (void) - "/org/freedesktop/UDisks2/data/builtin_mount_options.conf", - G_RESOURCE_LOOKUP_FLAGS_NONE, - &error); -- g_resource_unref (daemon_resource); - - if (builtin_opts_bytes == NULL) - { diff --git a/udisks-2.10.1.tar.bz2 b/udisks-2.10.1.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..581db76c2c125934b6ecf05501b4ad1e108c66d6 Binary files /dev/null and b/udisks-2.10.1.tar.bz2 differ diff --git a/udisks-2.9.4.tar.bz2 b/udisks-2.9.4.tar.bz2 deleted file mode 100644 index d59b57ccbb0d2dc25aa00059dd47416abd1d8969..0000000000000000000000000000000000000000 Binary files a/udisks-2.9.4.tar.bz2 and /dev/null differ diff --git a/udisks2.spec b/udisks2.spec index 0346fd01a4b0117a1114b75c86094054fcaeb917..05467ca0b55983a83f898d83c4274af9a8e178c6 100644 --- a/udisks2.spec +++ b/udisks2.spec @@ -1,82 +1,44 @@ -%global glib2_version 2.36 +%global glib2_version 2.68 %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.19 +%global libblockdev_version 3.0 -%define with_bcache 1 %define with_btrfs 1 -%define with_vdo 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) && (0%{?openeuler} == 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 is not available on RHEL -%if (0%{?rhel}) || (0%{?openeuler}) || %{with_bcache} == 0 -%define with_bcache 0 -%endif - -# btrfs is not available on RHEL > 7 -%if 0%{?rhel} > 7 || 0%{?openeuler} || %{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) && (0%{?openeuler} == 0) -%define with_lsm 0 -%define with_zram 0 -%define with_lvmcache 0 -%endif - -# default to LUKS2 for RHEL > 7 -%if 0%{?rhel} > 7 || 0%{?openeuler} -%define default_luks_encryption luks2 -%endif - - Name: udisks2 Summary: Disk Manager -Version: 2.9.4 -Release: 4 +Version: 2.10.1 +Release: 1 License: GPL-2.0+ and LGPL-2.0+ 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 -Patch1: 0001-udiskslinuxmountoptions-Do-not-free-static-daemon-resources.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: gnome-common BuildRequires: libacl-devel BuildRequires: chrpath BuildRequires: gtk-doc BuildRequires: intltool BuildRequires: system-rpm-config +BuildRequires: gettext-devel BuildRequires: libblockdev-devel >= %{libblockdev_version} BuildRequires: libblockdev-part-devel >= %{libblockdev_version} BuildRequires: libblockdev-loop-devel >= %{libblockdev_version} @@ -84,7 +46,9 @@ 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: libblockdev-nvme-devel >= %{libblockdev_version} BuildRequires: libmount-devel +BuildRequires: libuuid-devel Requires: libblockdev >= %{libblockdev_version} Requires: libblockdev-part >= %{libblockdev_version} @@ -93,10 +57,9 @@ Requires: libblockdev-swap >= %{libblockdev_version} Requires: libblockdev-mdraid >= %{libblockdev_version} Requires: libblockdev-fs >= %{libblockdev_version} Requires: libblockdev-crypto >= %{libblockdev_version} +#Requires: libblockdev-nvme >= %{libblockdev_version} -# Needed for the systemd-related macros used in this file -%{?systemd_requires} -BuildRequires: systemd +Requires: lib%{name}%{?_isa} = %{version}-%{release} # Needed to pull in the system bus daemon Requires: dbus >= %{dbus_version} @@ -107,31 +70,39 @@ Requires: libatasmart >= %{libatasmart_version} # For mount, umount, mkswap Requires: util-linux # For mkfs.ext3, mkfs.ext3, e2label -Requires: e2fsprogs +Recommends: e2fsprogs # For mkfs.xfs, xfs_admin -Requires: xfsprogs +Recommends: xfsprogs # For mkfs.vfat -Requires: dosfstools -Requires: gdisk +Recommends: dosfstools +# For exfat +Recommends: exfatprogs +# For UDF +Recommends: udftools # For ejecting removable disks -Requires: eject +Recommends: eject # For utab monitor Requires: libmount +# The actual polkit agent +Requires: polkit >= %{polkit_version} -Requires: lib%{name}%{?_isa} = %{version}-%{release} - -# For mkntfs (not available on rhel or on ppc/ppc64) -%if ! 0%{?rhel} && ! 0%{?openeuler} +# For mkntfs (not available on rhel or on ppc/ppc64) and f2fs +%if %{is_fedora} +Recommends: f2fs-tools +Recommends: nilfs-utils %ifnarch ppc ppc64 -Requires: ntfsprogs +Recommends: ntfsprogs %endif %endif +Recommends: ntfs-3g -# For /proc/self/mountinfo, only available in 2.6.26 or higher -Conflicts: kernel < 2.6.26 +# btrfs +%if 0%{?with_btrfs} +Recommends: btrfs-progs +%endif Provides: storaged = %{version}-%{release} -Obsoletes: storaged +Obsoletes: storaged < %{version}-%{release} %description The Udisks project provides a daemon, tools and libraries to access and @@ -139,10 +110,9 @@ 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 +Obsoletes: libstoraged < %{version}-%{release} %description -n lib%{name} This package contains the dynamic library, which provides @@ -150,56 +120,37 @@ access to the udisksd daemon. %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 +Obsoletes: storaged-lvm2 < %{version}-%{release} %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 +Obsoletes: libstoraged-devel < %{version}-%{release} %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 +This package contains the development files for the library lib%{name}, +a dynamic library, which provides access to the udisksd daemon. %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 +Obsoletes: storaged-btrfs < %{version}-%{release} %description -n %{name}-btrfs This package contains module for BTRFS configuration. @@ -208,81 +159,39 @@ This package contains module for BTRFS configuration. %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 +Obsoletes: storaged-lsm < %{version}-%{release} %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 -%autosetup -n udisks-%{version} -p1 -sed -i udisks/udisks2.conf.in -e "s/encryption=luks1/encryption=%{default_luks_encryption}/" +%autosetup -p1 -n udisks-%{version} +rm -f src/tests/dbus-tests/config_h.py +rm -f src/udisks-daemon-resources.{c,h} +# default to ntfs-3g (#2182206) +sed -i data/builtin_mount_options.conf -e 's/ntfs_drivers=ntfs3,ntfs/ntfs_drivers=ntfs,ntfs3/' %build -autoreconf -ivf +# 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 make %{?_smp_mflags} @@ -306,7 +215,12 @@ make check %post -n %{name} %systemd_post udisks2.service -udevadm trigger +# 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 @@ -316,14 +230,6 @@ udevadm trigger %ldconfig_scriptlets -n lib%{name} -%if 0%{?with_zram} -%post -n %{name}-zram - -%preun -n %{name}-zram - -%postun -n %{name}-zram -%endif - %files -f udisks2.lang %doc README.md AUTHORS NEWS HACKING %license COPYING @@ -337,6 +243,7 @@ udevadm trigger %{_datadir}/dbus-1/system.d/org.freedesktop.UDisks2.conf %{_datadir}/bash-completion/completions/udisksctl +%{_datadir}/zsh/site-functions/_udisks2 %{_tmpfilesdir}/%{name}.conf %{_unitdir}/udisks2.service %{_udevrulesdir}/80-udisks2.rules @@ -383,27 +290,12 @@ udevadm trigger %endif %{_libdir}/pkgconfig/udisks2.pc %{_libdir}/pkgconfig/udisks2-lvm2.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 @@ -420,22 +312,11 @@ udevadm trigger %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 - -%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 +* Mon Oct 30 2023 li weigang - 2.10.1-1 +- update to version 2.10.1 + * Tue Feb 21 2023 miaoguanqin - 2.9.4-4 - fix coredump while stop udisks2 diff --git a/udisks2.yaml b/udisks2.yaml index 600246297a7c534a43d59a6d6ae3a38c46b87699..e4f4dd1f5b102b2dea6dc8e72579c63210087c3c 100644 --- a/udisks2.yaml +++ b/udisks2.yaml @@ -1,4 +1,4 @@ version_control: github src_repo: storaged-project/udisks tag_prefix: "udisks-" -seperator: "." +separator: "."