package/libblockdev: new package
libblockdev is a C library supporting GObject introspection for manipulation of block devices. It has a plugin-based architecture where each technology (like LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly with multiple implementations. gobject-introspection is not a strict dependency and may be disabled via a configure flag. This is the base package with everything disabled, the subsequent patches in this series will add more options necessary to bump udisks to the latest. Signed-off-by: Adam Duskett <Aduskett@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
e1bf9bedd5
commit
0c52826291
@ -44,6 +44,7 @@ F: package/imx-usb-loader/
|
||||
F: package/janus-gateway/
|
||||
F: package/json-for-modern-cpp/
|
||||
F: package/libabseil-cpp/
|
||||
F: package/libblockdev/
|
||||
F: package/libcpprestsdk/
|
||||
F: package/libcutl/
|
||||
F: package/libodb/
|
||||
|
@ -1498,6 +1498,7 @@ menu "Hardware handling"
|
||||
source "package/let-me-create/Config.in"
|
||||
source "package/libaio/Config.in"
|
||||
source "package/libatasmart/Config.in"
|
||||
source "package/libblockdev/Config.in"
|
||||
source "package/libcec/Config.in"
|
||||
source "package/libfreefare/Config.in"
|
||||
source "package/libftdi/Config.in"
|
||||
|
@ -0,0 +1,69 @@
|
||||
From ccf93148aa3587dd98a02e253cdc42a7af14df1e Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Sat, 29 Aug 2020 16:04:15 +0200
|
||||
Subject: [PATCH] Provide replacement function for strerror_l()
|
||||
|
||||
strerror_l() is not implemented in some C libraries, such as uClibc,
|
||||
so let's provide a simple replacement function that falls back on
|
||||
strerror().
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
configure.ac | 2 ++
|
||||
src/plugins/crypto.c | 7 +++++++
|
||||
src/utils/module.c | 8 ++++++++
|
||||
3 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c2d22c2..36aeb51 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -137,6 +137,8 @@ AC_CHECK_HEADERS([dlfcn.h string.h unistd.h sys/fcntl.h sys/ioctl.h linux/random
|
||||
[LIBBLOCKDEV_SOFT_FAILURE([Header file $ac_header not found.])],
|
||||
[])
|
||||
|
||||
+AC_CHECK_FUNCS([strerror_l])
|
||||
+
|
||||
AC_ARG_WITH([bcache],
|
||||
AS_HELP_STRING([--with-bcache], [support bcache @<:@default=yes@:>@]),
|
||||
[],
|
||||
diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
|
||||
index f4a2e8f..c1bd7b5 100644
|
||||
--- a/src/plugins/crypto.c
|
||||
+++ b/src/plugins/crypto.c
|
||||
@@ -52,6 +52,13 @@
|
||||
|
||||
#define UNUSED __attribute__((unused))
|
||||
|
||||
+#if !defined(HAVE_STRERROR_L)
|
||||
+static char *strerror_l(int errnum, locale_t locale UNUSED)
|
||||
+{
|
||||
+ return strerror(errnum);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/**
|
||||
* SECTION: crypto
|
||||
* @short_description: plugin for operations with encrypted devices
|
||||
diff --git a/src/utils/module.c b/src/utils/module.c
|
||||
index 9750e24..086bec0 100644
|
||||
--- a/src/utils/module.c
|
||||
+++ b/src/utils/module.c
|
||||
@@ -27,6 +27,14 @@
|
||||
|
||||
#include "module.h"
|
||||
|
||||
+#define UNUSED __attribute__((unused))
|
||||
+
|
||||
+#if !defined(HAVE_STRERROR_L)
|
||||
+static char *strerror_l(int errnum, locale_t locale UNUSED)
|
||||
+{
|
||||
+ return strerror(errnum);
|
||||
+}
|
||||
+#endif
|
||||
|
||||
/**
|
||||
* bd_utils_module_error_quark: (skip)
|
||||
--
|
||||
2.26.2
|
||||
|
22
package/libblockdev/Config.in
Normal file
22
package/libblockdev/Config.in
Normal file
@ -0,0 +1,22 @@
|
||||
config BR2_PACKAGE_LIBBLOCKDEV
|
||||
bool "libblockdev"
|
||||
depends on !BR2_STATIC_LIBS # kmod
|
||||
depends on BR2_USE_WCHAR # libglib2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
|
||||
depends on BR2_USE_MMU # libglib2
|
||||
depends on BR2_PACKAGE_HAS_UDEV
|
||||
select BR2_PACKAGE_KMOD
|
||||
select BR2_PACKAGE_LIBGLIB2
|
||||
help
|
||||
libblockdev is a C library supporting GObject introspection
|
||||
for manipulation of block devices. It has a plugin-based
|
||||
architecture where each technology (like LVM, Btrfs, MD RAID,
|
||||
Swap,...) is implemented in a separate plugin, possibly with
|
||||
multiple implementations.
|
||||
|
||||
https://github.com/storaged-project/libblockdev/
|
||||
|
||||
comment "libblockdev needs udev /dev management and a toolchain w/ wchar, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_PACKAGE_HAS_UDEV || BR2_STATIC_LIBS || \
|
||||
!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
|
3
package/libblockdev/libblockdev.hash
Normal file
3
package/libblockdev/libblockdev.hash
Normal file
@ -0,0 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 dc207c70dbef52c818a8abbcb6b8e298a6b63c0b78a5e1f2773b5f7b89300773 libblockdev-2.24.tar.gz
|
||||
sha256 97bdc721d875501b6243a456333fdfdb1ab64d31c4da2554de845caf4674b946 LICENSE
|
41
package/libblockdev/libblockdev.mk
Normal file
41
package/libblockdev/libblockdev.mk
Normal file
@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
#
|
||||
# libblockdev
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBBLOCKDEV_VERSION = 2.24
|
||||
LIBBLOCKDEV_SITE = https://github.com/storaged-project/libblockdev/releases/download/$(LIBBLOCKDEV_VERSION)-1
|
||||
LIBBLOCKDEV_LICENSE = LGPL-2.1
|
||||
LIBBLOCKDEV_LICENSE_FILES = LICENSE
|
||||
LIBBLOCKDEV_INSTALL_STAGING = YES
|
||||
LIBBLOCKDEV_DEPENDENCIES = host-pkgconf libglib2 kmod udev
|
||||
# 0001-Provide-replacement-function-for-strerror_l.patch
|
||||
LIBBLOCKDEV_AUTORECONF = YES
|
||||
|
||||
LIBBLOCKDEV_CONF_OPTS = \
|
||||
--disable-introspection \
|
||||
--with-loop \
|
||||
--without-bcache \
|
||||
--without-btrfs \
|
||||
--without-crypto \
|
||||
--without-dm \
|
||||
--without-dmraid \
|
||||
--without-escrow \
|
||||
--without-fs \
|
||||
--without-kbd \
|
||||
--without-loop \
|
||||
--without-lvm \
|
||||
--without-lvm_dbus \
|
||||
--without-mdraid \
|
||||
--without-mpath \
|
||||
--without-nvdimm \
|
||||
--without-part \
|
||||
--without-python2 \
|
||||
--without-python3 \
|
||||
--without-s390 \
|
||||
--without-swap \
|
||||
--without-tools \
|
||||
--without-vdo
|
||||
|
||||
$(eval $(autotools-package))
|
Loading…
Reference in New Issue
Block a user