Opened 22 months ago

Closed 22 months ago

Last modified 21 months ago

#18216 closed enhancement (fixed)

libblockdev-3.0

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: normal Milestone: 12.0
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New major version.

Change History (10)

comment:1 by Bruce Dubbs, 22 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:2 by Bruce Dubbs, 22 months ago

New major release of the libblockdev library. This release contains a large API overhaul, please check the documentation for full list of API changes.

Notable changes

  • VDO a KBD plugins were removed.
  • New NVMe plugin was added.
  • Runtime dependencies are no longer checked during plugin initialization.
  • Part plugin was rewritten to use libfdisk instead of libparted.
  • Crypto plugin API went through an extensive rewrite.
  • Support for new technologies was added to the crypto plugin: FileVault2 encryption, DM Integrity, LUKS2 tokens.
  • Filesystem plugin adds support for btrfs, F2FS, NILFS2, exFAT and UDF.
  • Support for new filesystem operations was added to the plugin: setting label and UUID, generic mkfs function and API for getting feature support for filesystems.
  • dmraid support was removed from the DM plugin.
  • Python 2 support was dropped.

comment:3 by Bruce Dubbs, 22 months ago

This is a new major version. When I tried to build with current instructions it failed due to missing libnvme.so. That can be overcome with passing --without-nvme. I am reluctant to add a new page to the book, but I really don't know what capabilities this library adds.

The only package we have that uses this one is udisks2. The only packages that use udisks2 are kf5 (opt for solid), gvfs (rec), gnome-control-center (req), and gnome-disk-utility (req).

The info I found for libnvme is:

"This is the libnvme development C library. libnvme provides type definitions for NVMe specification structures, enumerations, and bit fields, helper functions to construct, dispatch, and decode commands and payloads, and utilities to connect, scan, and manage nvme devices on a Linux system."

In src/plugins/nvme/nvme.c:

  • SECTION: nvme
  • @short_description: plugin for NVMe device reporting and management

I guess the question is whether to add yet another library to the book or just list this as an external optional library.

comment:4 by Douglas R. Reno, 22 months ago

This library would add the capability of checking the health of an NVMe SSD (such as how many wear cycles it has left), as well as running commands directly on the controller of an NVMe SSD. It's similar to what sg3_utils does for SCSI/SATA drives

That being said though, I think we can probably go without it, though in the case of gnome-disk-utility it might be useful.

comment:5 by Xi Ruoyao, 22 months ago

It seems keyutils is required now. It can be disabled with --without-crypto but I'm not sure if it's a good idea.

Last edited 22 months ago by Xi Ruoyao (previous) (diff)

comment:6 by Xi Ruoyao, 22 months ago

Ooooops. Udisks2-2.10.0 requires libblockdev to be built with keyutils and libnvme, unless --disable-daemon is used. And a Udisks2 installation w/o the daemon is essentially useless.

comment:7 by Xi Ruoyao, 22 months ago

JSON-C, keyutils, d-bus are optional dependencies for libnvme. d-bus is not enabled automatically.

We can pass -Dlibdbus=auto so d-bus will be pick up if installed.

Last edited 22 months ago by Xi Ruoyao (previous) (diff)

comment:8 by Bruce Dubbs, 22 months ago

OK, I'll add libnvme to the book.

comment:9 by Bruce Dubbs, 22 months ago

Resolution: fixed
Status: assignedclosed

Fixed at commits

1e12131018 Add libnvme-1.5.
a4013faf3b Update to libblockdev-3.0.
f0454b5734 Update to udisks-2.10.0.

comment:10 by Bruce Dubbs, 21 months ago

Milestone: 11.412.0

Milestone renamed

Note: See TracTickets for help on using tickets.