Add udisks2 dameon and udisks2 OS agent support (#1284)

* Add udisks2 package

Add latest release of udisks2 as a package. Also disable polkit to avoid
excessive dependencies.

* Add udisks2 and os-agent to Home Assistant OS

* Bump OS Agent to latest version with udisks support
This commit is contained in:
Stefan Agner 2021-03-22 23:43:09 +01:00 committed by GitHub
parent 23fb6b8dd3
commit fdd8c246dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 1522 additions and 1 deletions

View File

@ -7,3 +7,4 @@ source "$BR2_EXTERNAL_HASSOS_PATH/package/intel-e1000e/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-eeprom/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-eeprom/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl8812au/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl8812au/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/os-agent/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/os-agent/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/udisks2/Config.in"

View File

@ -36,6 +36,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_IBT=y BR2_PACKAGE_LINUX_FIRMWARE_IBT=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y

View File

@ -38,6 +38,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y

View File

@ -38,6 +38,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y

View File

@ -38,6 +38,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y

View File

@ -38,6 +38,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8=y BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y

View File

@ -37,6 +37,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_IBT=y BR2_PACKAGE_LINUX_FIRMWARE_IBT=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y

View File

@ -39,6 +39,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y

View File

@ -39,6 +39,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y

View File

@ -39,6 +39,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y

View File

@ -39,6 +39,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y

View File

@ -40,6 +40,7 @@ BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y

View File

@ -39,6 +39,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y

View File

@ -39,6 +39,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y

View File

@ -40,6 +40,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_SQUASHFS=y BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_OS_AGENT=y
BR2_PACKAGE_UDISKS2=y
BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y

View File

@ -4,7 +4,7 @@
# #
################################################################################ ################################################################################
OS_AGENT_VERSION = 0cb548c6acfb7e0a9542e6c85ffbce626af04cce OS_AGENT_VERSION = 7bff7f5cd223ad439b738cea513cb558a18155c9
OS_AGENT_SITE = $(call github,home-assistant,os-agent,$(OS_AGENT_VERSION)) OS_AGENT_SITE = $(call github,home-assistant,os-agent,$(OS_AGENT_VERSION))
OS_AGENT_LICENSE = Apache License 2.0 OS_AGENT_LICENSE = Apache License 2.0
OS_AGENT_LICENSE_FILES = LICENSE OS_AGENT_LICENSE_FILES = LICENSE

View File

@ -0,0 +1,264 @@
From 573a9b6988c48abb7579acbe634d6b532ecb8517 Mon Sep 17 00:00:00 2001
Message-Id: <573a9b6988c48abb7579acbe634d6b532ecb8517.1616318066.git.stefan@agner.ch>
In-Reply-To: <abcac570bfe1db867fda504942e6c782ada2aa00.1616318066.git.stefan@agner.ch>
References: <abcac570bfe1db867fda504942e6c782ada2aa00.1616318066.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch>
Date: Sat, 13 Mar 2021 15:24:45 +0100
Subject: [PATCH 2/3] Make polkit dependency optional
Make authorization using polkit a compile time option. This allows to
build udisks2 without polkit.
Fixes: #615
---
configure.ac | 33 +++++++++++++++----
data/Makefile.am | 2 ++
src/udisksauthorization.c | 68 +++++++++++++++++++++++----------------
src/udisksauthorization.h | 5 +++
src/udisksdaemon.c | 2 ++
tools/udisksctl.c | 13 ++++++++
6 files changed, 89 insertions(+), 34 deletions(-)
diff --git a/configure.ac b/configure.ac
index 53917998..7d95bc91 100644
--- a/configure.ac
+++ b/configure.ac
@@ -150,13 +150,31 @@ PKG_CHECK_MODULES(GIO, [gio-unix-2.0 >= 2.50])
AC_SUBST(GIO_CFLAGS)
AC_SUBST(GIO_LIBS)
-PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.102])
-AC_SUBST(POLKIT_GOBJECT_1_CFLAGS)
-AC_SUBST(POLKIT_GOBJECT_1_LIBS)
-
-PKG_CHECK_MODULES(POLKIT_AGENT_1, [polkit-agent-1 >= 0.102])
-AC_SUBST(POLKIT_AGENT_1_CFLAGS)
-AC_SUBST(POLKIT_AGENT_1_LIBS)
+have_polkit=no
+AC_ARG_ENABLE(polkit, AS_HELP_STRING([--disable-polkit], [disable polkit support]))
+if test "x$enable_polkit" != "xno"; then
+ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.102],
+ [have_polkit_gobject=yes],
+ [have_polkit_gobject=no])
+ if test "x$have_polkit_gobject" = "xno"; then
+ AC_MSG_ERROR([polkit support requested but polkit-gobject libraries not found])
+ fi
+ AC_SUBST(POLKIT_GOBJECT_1_CFLAGS)
+ AC_SUBST(POLKIT_GOBJECT_1_LIBS)
+
+ PKG_CHECK_MODULES(POLKIT_AGENT_1, [polkit-agent-1 >= 0.102],
+ [have_polkit_agent=yes],
+ [have_polkit_agent=no])
+ if test "x$have_polkit_agent" = "xno"; then
+ AC_MSG_ERROR([polkit support requested but polkit-agent libraries not found])
+ fi
+ AC_SUBST(POLKIT_AGENT_1_CFLAGS)
+ AC_SUBST(POLKIT_AGENT_1_LIBS)
+ if test "$have_polkit_gobject" = "yes" -a "$have_polkit_agent" = "yes"; then
+ have_polkit=yes
+ fi
+fi
+AM_CONDITIONAL(HAVE_POLKIT, [test "$have_polkit" = "yes"])
if test "x$enable_daemon" = "xyes"; then
PKG_CHECK_MODULES(GUDEV, [gudev-1.0 >= 165])
@@ -793,6 +811,7 @@ echo "
using libelogind: ${have_libelogind}
use /media for mounting: ${fhs_media}
acl support: ${have_acl}
+ polkit support: ${have_polkit}
using libmount/utab: ${have_libmount_utab}
compiler: ${CC}
diff --git a/data/Makefile.am b/data/Makefile.am
index 758644be..bf4f29b8 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -31,6 +31,7 @@ endif
udevrulesdir = $(udevdir)/rules.d
udevrules_DATA = 80-udisks2.rules
+if HAVE_POLKIT
polkitdir = $(datadir)/polkit-1/actions
polkit_in_files = org.freedesktop.UDisks2.policy.in
polkit_DATA = $(polkit_in_files:.policy.in=.policy)
@@ -38,6 +39,7 @@ polkit_DATA = $(polkit_in_files:.policy.in=.policy)
$(polkit_DATA): $(polkit_in_files)
$(AM_V_GEN) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@
endif
+endif
completionsdir = $(datadir)/bash-completion/completions
completions_DATA = \
diff --git a/src/udisksauthorization.c b/src/udisksauthorization.c
index f74e194a..0256cef9 100644
--- a/src/udisksauthorization.c
+++ b/src/udisksauthorization.c
@@ -24,33 +24,6 @@
#include "udisksdaemonutil.h"
#include "udisksauthorization.h"
-/* Need this until we can depend on a libpolkit with this bugfix
- *
- * http://cgit.freedesktop.org/polkit/commit/?h=wip/js-rule-files&id=224f7b892478302dccbe7e567b013d3c73d376fd
- */
-static void
-_safe_polkit_details_insert (PolkitDetails *details, const gchar *key, const gchar *value)
-{
- if (value != NULL && strlen (value) > 0)
- polkit_details_insert (details, key, value);
-}
-
-static void
-_safe_polkit_details_insert_int (PolkitDetails *details, const gchar *key, gint value)
-{
- gchar buf[32];
- snprintf (buf, sizeof buf, "%d", value);
- polkit_details_insert (details, key, buf);
-}
-
-static void
-_safe_polkit_details_insert_uint64 (PolkitDetails *details, const gchar *key, guint64 value)
-{
- gchar buf[32];
- snprintf (buf, sizeof buf, "0x%08llx", (unsigned long long int) value);
- polkit_details_insert (details, key, buf);
-}
-
static gboolean
check_authorization_no_polkit (UDisksDaemon *daemon,
UDisksObject *object,
@@ -157,6 +130,34 @@ udisks_daemon_util_check_authorization_sync (UDisksDaemon *daemon,
return TRUE;
}
+#ifdef HAVE_POLKIT
+/* Need this until we can depend on a libpolkit with this bugfix
+ *
+ * http://cgit.freedesktop.org/polkit/commit/?h=wip/js-rule-files&id=224f7b892478302dccbe7e567b013d3c73d376fd
+ */
+static void
+_safe_polkit_details_insert (PolkitDetails *details, const gchar *key, const gchar *value)
+{
+ if (value != NULL && strlen (value) > 0)
+ polkit_details_insert (details, key, value);
+}
+
+static void
+_safe_polkit_details_insert_int (PolkitDetails *details, const gchar *key, gint value)
+{
+ gchar buf[32];
+ snprintf (buf, sizeof buf, "%d", value);
+ polkit_details_insert (details, key, buf);
+}
+
+static void
+_safe_polkit_details_insert_uint64 (PolkitDetails *details, const gchar *key, guint64 value)
+{
+ gchar buf[32];
+ snprintf (buf, sizeof buf, "0x%08llx", (unsigned long long int) value);
+ polkit_details_insert (details, key, buf);
+}
+
gboolean
udisks_daemon_util_check_authorization_sync_with_error (UDisksDaemon *daemon,
UDisksObject *object,
@@ -379,4 +380,17 @@ udisks_daemon_util_check_authorization_sync_with_error (UDisksDaemon *
g_clear_object (&result);
return ret;
}
+#else
+gboolean
+udisks_daemon_util_check_authorization_sync_with_error (UDisksDaemon *daemon,
+ UDisksObject *object,
+ const gchar *action_id,
+ GVariant *options,
+ const gchar *message,
+ GDBusMethodInvocation *invocation,
+ GError **error)
+{
+ return check_authorization_no_polkit (daemon, object, action_id, options, message, invocation, error);
+}
+#endif
diff --git a/src/udisksauthorization.h b/src/udisksauthorization.h
index 4903bb57..64dcf4e4 100644
--- a/src/udisksauthorization.h
+++ b/src/udisksauthorization.h
@@ -22,7 +22,12 @@
#define __UDISKS_AUTHORIZATION_H__
#include "udisksdaemontypes.h"
+
+#ifdef HAVE_POLKIT
#include <polkit/polkit.h>
+#else
+typedef void* PolkitAuthority;
+#endif
G_BEGIN_DECLS
diff --git a/src/udisksdaemon.c b/src/udisksdaemon.c
index 51e2bb5c..8995167f 100644
--- a/src/udisksdaemon.c
+++ b/src/udisksdaemon.c
@@ -379,6 +379,7 @@ udisks_daemon_constructed (GObject *object)
uuid_unparse (uuid, &uuid_buf[0]);
daemon->uuid = g_strdup (uuid_buf);
+#ifdef HAVE_POLKIT
daemon->authority = polkit_authority_get_sync (NULL, &error);
if (daemon->authority == NULL)
{
@@ -386,6 +387,7 @@ udisks_daemon_constructed (GObject *object)
error->message, g_quark_to_string (error->domain), error->code);
g_clear_error (&error);
}
+#endif
daemon->object_manager = g_dbus_object_manager_server_new ("/org/freedesktop/UDisks2");
diff --git a/tools/udisksctl.c b/tools/udisksctl.c
index 7a5de65d..feacfa6d 100644
--- a/tools/udisksctl.c
+++ b/tools/udisksctl.c
@@ -35,9 +35,11 @@
#include <locale.h>
+#ifdef HAVE_POLKIT
#include <polkit/polkit.h>
#define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE
#include <polkitagent/polkitagent.h>
+#endif
static UDisksClient *client = NULL;
static GMainLoop *loop = NULL;
@@ -57,6 +59,7 @@ static void modify_argv0_for_command (gint *argc, gchar **argv[], const gchar *c
/* ---------------------------------------------------------------------------------------------------- */
+#ifdef HAVE_POLKIT
static PolkitAgentListener *local_polkit_agent = NULL;
static gpointer local_agent_handle = NULL;
@@ -119,6 +122,16 @@ shutdown_local_polkit_agent (void)
if (local_polkit_agent != NULL)
g_object_unref (local_polkit_agent);
}
+#else
+static gboolean
+setup_local_polkit_agent (void)
+{
+ return TRUE;
+}
+
+static void
+shutdown_local_polkit_agent (void) { }
+#endif
/* ---------------------------------------------------------------------------------------------------- */
--
2.30.2

View File

@ -0,0 +1,34 @@
From 25b38dee43559d58f1bf9cc464107f32f476c753 Mon Sep 17 00:00:00 2001
Message-Id: <25b38dee43559d58f1bf9cc464107f32f476c753.1616318066.git.stefan@agner.ch>
In-Reply-To: <abcac570bfe1db867fda504942e6c782ada2aa00.1616318066.git.stefan@agner.ch>
References: <abcac570bfe1db867fda504942e6c782ada2aa00.1616318066.git.stefan@agner.ch>
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 19 Mar 2021 15:54:30 +0100
Subject: [PATCH 3/3] Avoid autoreconf error if introspection macros are not
available
Don't make macros for introspection mandatory. This allows to run
autoreconf even without GObject introspection automake macros available.
---
configure.ac | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 7d95bc91..30096af9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,7 +123,10 @@ AC_ARG_ENABLE(daemon,
enable_daemon=yes)
AM_CONDITIONAL(ENABLE_DAEMON, test "$enable_daemon" != no)
-GOBJECT_INTROSPECTION_CHECK([0.6.2])
+m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [
+ GOBJECT_INTROSPECTION_CHECK([0.6.2])
+])
+AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
# Behavior
#
--
2.30.2

View File

@ -0,0 +1,62 @@
config BR2_PACKAGE_UDISKS2
bool "udisks2"
depends on BR2_ENABLE_LOCALE # parted
depends on BR2_PACKAGE_HAS_UDEV
depends on BR2_USE_MMU # lvm2
depends on BR2_USE_WCHAR # dbus-glib -> glib2
depends on !BR2_TOOLCHAIN_USES_UCLIBC # polkit, lvm2
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_DBUS_GLIB
select BR2_PACKAGE_LIBATASMART
select BR2_PACKAGE_LIBBLOCKDEV
select BR2_PACKAGE_LIBBLOCKDEV_CRYPTO
select BR2_PACKAGE_LIBBLOCKDEV_FS
select BR2_PACKAGE_LIBBLOCKDEV_LOOP
select BR2_PACKAGE_LIBBLOCKDEV_MDRAID
select BR2_PACKAGE_LIBBLOCKDEV_PART
select BR2_PACKAGE_LIBBLOCKDEV_SWAP
select BR2_PACKAGE_LIBGUDEV
select BR2_PACKAGE_PARTED
help
The udisks2 project provides
o A storage daemon that implements well-defined D-Bus
interfaces that can be used to query and manipulate
storage devices.
o a command-line tool, udisksctl(1), that can be used to query
and use the daemon
https://github.com/storaged-project/udisks
if BR2_PACKAGE_UDISKS2
config BR2_PACKAGE_UDISKS2_LVM2
bool "lvm2 support"
# The lvm app library can't compile against musl
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_LVM2
select BR2_PACKAGE_LVM2_APP_LIBRARY
help
Enable LVM2 support
comment "lvm2 support needs a glibc toolchain"
depends on !BR2_TOOLCHAIN_USES_GLIBC
endif
comment "udisks2 needs udev /dev management"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_HAS_UDEV
comment "udisks2 needs a glibc or musl toolchain with locale, C++, wchar, dynamic library, NPTL, gcc >= 4.9"
depends on BR2_USE_MMU
depends on BR2_PACKAGE_SPIDERMONKEY_ARCH_SUPPORTS
depends on !BR2_ENABLE_LOCALE || BR2_TOOLCHAIN_USES_UCLIBC || \
!BR2_INSTALL_LIBSTDCPP || \
BR2_STATIC_LIBS || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
!BR2_HOST_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_USE_WCHAR

View File

@ -0,0 +1,3 @@
# Locally calculated
sha256 bda6f9d7edc632c57e55862731a8ffeff2413fa4346708a22bf31ed72b0fe058 udisks-2.9.2.tar.bz2
sha256 98046e932dc6c739001e79d7079a3bd958fc55475dcd917d27f884c0c93525cc COPYING

View File

@ -0,0 +1,41 @@
################################################################################
#
# udisks2
#
################################################################################
UDISKS2_VERSION = 2.9.2
UDISKS2_SITE = https://github.com/storaged-project/udisks/releases/download/udisks-$(UDISKS2_VERSION)
UDISKS2_SOURCE = udisks-$(UDISKS2_VERSION).tar.bz2
UDISKS2_LICENSE = GPL-2.0+
UDISKS2_LICENSE_FILES = COPYING
# For 0002-Make-polkit-dependency-optional.patch
# Running autoreconf when GObject Introspection is not selected
# requires 0003-Avoid-autoreconf-error-if-introspection-macros-are-n.patch
UDISKS2_AUTORECONF = YES
UDISKS2_DEPENDENCIES = \
host-pkgconf \
dbus \
dbus-glib \
libatasmart \
libblockdev \
libgudev \
lvm2 \
parted \
udev
UDISKS2_CONF_OPTS = --disable-polkit --disable-man
ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
UDISKS2_CONF_OPTS += --enable-introspection
UDISKS2_DEPENDENCIES += gobject-introspection
else
UDISKS2_CONF_OPTS += --disable-introspection
endif
ifeq ($(BR2_PACKAGE_UDISKS2_LVM2),y)
UDISKS2_CONF_OPTS += --enable-lvm2
endif
$(eval $(autotools-package))