update to version 2.10.1

This commit is contained in:
li weigang 2023-10-30 17:56:41 +08:00 committed by liweigang
parent cdcbb61959
commit b4b8f48049
5 changed files with 57 additions and 250 deletions

View File

@ -1,74 +0,0 @@
From d205057296957d6064825252a3d3377e809d6fed Mon Sep 17 00:00:00 2001
From: Tomas Bzatek <tbzatek@redhat.com>
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)
{

BIN
udisks-2.10.1.tar.bz2 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -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 <weigangli99@gmail.com> - 2.10.1-1
- update to version 2.10.1
* Tue Feb 21 2023 miaoguanqin <miaoguanqin@huawei.com> - 2.9.4-4
- fix coredump while stop udisks2

View File

@ -1,4 +1,4 @@
version_control: github
src_repo: storaged-project/udisks
tag_prefix: "udisks-"
seperator: "."
separator: "."