From b235e3097f09cf0340f0f7e1215fb1146e709abe Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 25 Nov 2025 01:11:30 +0000 Subject: [PATCH] sys-fs/udisks: add 2.11.0 smart functionality was previously part of udisks itself using dev-libs/libatasmart, but udisks upstream have now farmed it out to sys-libs/libblockdev. In 271edaee5439e8fb4fb76de8ef9d2c559556bc14 bumping libblockdev, I made USE=smart use sys-apps/smartmontools and I disabled dev-libs/libatasmart entirely given it is dead upstream, but in the udisks-2.11.0 release notes, they say: > ATA SMART handling has been ported over to libblockdev which now offers > two plugins, based on libatasmart (default, recommended) and smartmontools (experimental). I don't know if we want to revisit that decision in libblockdev accordingly or not, but let's see how this goes. Signed-off-by: Sam James --- sys-fs/udisks/Manifest | 1 + sys-fs/udisks/metadata.xml | 1 + sys-fs/udisks/udisks-2.11.0.ebuild | 141 +++++++++++++++++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 sys-fs/udisks/udisks-2.11.0.ebuild diff --git a/sys-fs/udisks/Manifest b/sys-fs/udisks/Manifest index ba5c1f5bd87b..320441274d57 100644 --- a/sys-fs/udisks/Manifest +++ b/sys-fs/udisks/Manifest @@ -1 +1,2 @@ DIST udisks-2.10.2.tar.bz2 1791811 BLAKE2B 59c4f76860a33c2a453e2750a24d66cbc5e7b15ac6504a3332fc75792c4f41d49cd34957dcad9ee5fe8bd72959b46b9c61b38a2558e55ef19e32fbea8ec2fcd3 SHA512 8b2fb6d5a9b5c040f315073d0890cde2cad67f06684e607a31636012a515ec798c2129c3dbc8fcd6655d72b7b4a9485172e5e85795a0aeb4ff20a5ea76e690a8 +DIST udisks-2.11.0.tar.bz2 1847966 BLAKE2B 4356ea8c781608b84b36ba298e57b1247d8f2900a8fc0d55d4e6002cb4ebb2723a3054ea037c07411a2bb40d6570f755dd6bf51b5b60ecd1edd2bfacd60f3416 SHA512 ddf7bbf6d71c100ea2787aa45d51ae84d8184d33d9e0c1c8824e3da1ca34814b3278f9f74a1aab7acc37efe3ed2b702404fbb9dc3733c0accbb366a74e7d3fe5 diff --git a/sys-fs/udisks/metadata.xml b/sys-fs/udisks/metadata.xml index b74a66645ed4..2d03303cef31 100644 --- a/sys-fs/udisks/metadata.xml +++ b/sys-fs/udisks/metadata.xml @@ -7,6 +7,7 @@ Build the system daemon, not just the client tool Add support for Logical Volume Management via sys-fs/lvm2 + Support SMART via sys-libs/libblockdev Support sys-apps/systemd's logind diff --git a/sys-fs/udisks/udisks-2.11.0.ebuild b/sys-fs/udisks/udisks-2.11.0.ebuild new file mode 100644 index 000000000000..8dfb3b65e671 --- /dev/null +++ b/sys-fs/udisks/udisks-2.11.0.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools bash-completion-r1 linux-info systemd tmpfiles udev xdg-utils + +DESCRIPTION="Daemon providing interfaces to work with storage devices" +HOMEPAGE="https://www.freedesktop.org/wiki/Software/udisks/ https://github.com/storaged-project/udisks" +SRC_URI="https://github.com/storaged-project/udisks/releases/download/${P}/${P}.tar.bz2" + +LICENSE="LGPL-2+ GPL-2+" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="acl +daemon debug elogind +introspection lvm nls selinux smart systemd" + +REQUIRED_USE=" + ?? ( elogind systemd ) + elogind? ( daemon ) + systemd? ( daemon ) +" + +COMMON_DEPEND=" + >=sys-auth/polkit-0.114[daemon(+)] + >=sys-libs/libblockdev-3.4.0:=[cryptsetup,lvm?,nvme,smart?] + virtual/udev + acl? ( virtual/acl ) + daemon? ( + >=dev-libs/glib-2.68:2 + >=dev-libs/libgudev-165:= + ) + elogind? ( >=sys-auth/elogind-219 ) + introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= ) + lvm? ( sys-fs/lvm2 ) + systemd? ( >=sys-apps/systemd-209 ) +" +# util-linux -> mount, umount, swapon, swapoff (see also #403073) +RDEPEND=" + ${COMMON_DEPEND} + >=sys-block/parted-3 + >=sys-apps/util-linux-2.30 + selinux? ( sec-policy/selinux-devicekit ) +" +DEPEND=" + ${COMMON_DEPEND} + >=sys-kernel/linux-headers-3.1 +" +BDEPEND=" + app-text/docbook-xsl-stylesheets + >=dev-util/gdbus-codegen-2.32 + >=dev-build/gtk-doc-am-1.3 + virtual/pkgconfig + nls? ( >=sys-devel/gettext-0.19.8 ) + dev-libs/gobject-introspection-common + dev-build/autoconf-archive +" +# If adding a eautoreconf, then these might be needed at buildtime: +# dev-libs/gobject-introspection-common +# dev-build/autoconf-archive + +DOCS=( AUTHORS HACKING NEWS README.md ) + +pkg_setup() { + # Listing only major arch's here to avoid tracking kernel's defconfig + if use amd64 || use arm || use ppc || use ppc64 || use x86; then + CONFIG_CHECK="~!IDE" #319829 + CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" #412377 + CONFIG_CHECK+=" ~NLS_UTF8" #425562 + kernel_is lt 3 10 && CONFIG_CHECK+=" ~USB_SUSPEND" #331065, #477278 + linux-info_pkg_setup + fi +} + +src_prepare() { + xdg_environment_reset + default + + if ! use systemd ; then + sed -i -e 's:libsystemd-login:&disable:' configure || die + fi + + # bug #782061 + eautoreconf +} + +src_configure() { + local myeconfargs=( + --enable-btrfs + --disable-gtk-doc + --disable-static + --localstatedir="${EPREFIX}"/var + --with-html-dir="${EPREFIX}"/usr/share/gtk-doc/html + --with-modprobedir="${EPREFIX}"/lib/modprobe.d + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + --with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d + --with-udevdir="${EPREFIX}$(get_udevdir)" + $(use_enable acl) + $(use_enable daemon) + $(use_enable debug) + $(use_enable introspection) + $(use_enable lvm lvm2) + $(use_enable nls) + $(use_enable smart) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + find "${ED}" -type f -name "*.la" -delete || die + keepdir /var/lib/udisks2 #383091 + + rm -rf "${ED}"/usr/share/bash-completion + dobashcomp data/completions/udisksctl +} + +pkg_preinst() { + # Remove gtk-doc symlink, #597628 + if [[ -L "${EROOT}"/usr/share/gtk-doc/html/udisks2 ]]; then + rm "${EROOT}"/usr/share/gtk-doc/html/udisks2 || die + fi +} + +pkg_postinst() { + udev_reload + + # TODO: obsolete with tmpfiles_process? + # mkdir -p "${EROOT}"/run #415987 + + tmpfiles_process udisks2.conf + + # See pkg_postinst() of >=sys-apps/baselayout-2.1-r1. Keep in sync? + if ! grep -qs "^tmpfs.*/run " "${EROOT}"/proc/mounts ; then + echo + ewarn "You should reboot the system now to get /run mounted with tmpfs!" + fi +} + +pkg_postrm() { + udev_reload +}