Files
meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
Armin Kuster 8b3e126484 udisks: refresh patches
WARNING:
Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.
The context lines in the patches can be updated with devtool:

    devtool modify <recipe>
    devtool finish --force-patch-refresh <recipe> <layer_path>

Then the updated patches and the source tree (in devtool's workspace)
should be reviewed to make sure the patches apply in the correct place
and don't introduce duplicate lines (which can, and does happen
when some of the context is ignored). Further information:
http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450

Signed-off-by: Armin Kuster <akuster808@gmail.com>
2018-04-13 12:43:37 -07:00

499 lines
16 KiB
Diff

From e8b3fbfa3d6a11eee25db2dc0f31f439aaf0b65a Mon Sep 17 00:00:00 2001
From: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
Date: Thu, 26 May 2011 17:30:04 -0300
Subject: [PATCH] Allow disabling atasmart, lvm2 and devicemapper support.
https://bugs.freedesktop.org/show_bug.cgi?id=37647
---
configure.ac | 53 +++++++++++++++++++++++++++++++++++++++----------
src/adapter-private.h | 1 -
src/adapter.c | 1 -
src/daemon.c | 4 ++++
src/device-private.c | 2 +-
src/device-private.h | 5 ++---
src/device.c | 23 +++++++++++++++++----
src/expander-private.h | 1 -
src/expander.c | 1 -
src/helpers/Makefile.am | 20 +++++++++++++------
src/helpers/partutil.c | 3 ++-
src/port-private.h | 1 -
src/probers/Makefile.am | 8 ++++++--
tools/udisks.c | 10 ++++++++--
14 files changed, 99 insertions(+), 34 deletions(-)
diff --git a/configure.ac b/configure.ac
index 9454423..8c4e4c2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -155,13 +155,33 @@ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.97])
AC_SUBST(POLKIT_GOBJECT_1_CFLAGS)
AC_SUBST(POLKIT_GOBJECT_1_LIBS)
-PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8])
-AC_SUBST(LIBPARTED_CFLAGS)
-AC_SUBST(LIBPARTED_LIBS)
-
-PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02])
-AC_SUBST(DEVMAPPER_CFLAGS)
-AC_SUBST(DEVMAPPER_LIBS)
+have_parted=no
+AC_ARG_ENABLE(parted, AS_HELP_STRING([--disable-parted], [disable disk partitioning]))
+if test "x$enable_parted" != "xno"; then
+ PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8],
+ [AC_DEFINE(USE_PARTED, 1, [Define if parted should be used]) have_parted=yes],
+ have_parted=no)
+ AC_SUBST(LIBPARTED_CFLAGS)
+ AC_SUBST(LIBPARTED_LIBS)
+ if test "x$have_parted" = xno -a "x$enable_parted" = xyes; then
+ AC_MSG_ERROR([parted support requested but libraries not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_PARTED, [test "$have_parted" = "yes"])
+
+have_devmapper=no
+AC_ARG_ENABLE(devmapper, AS_HELP_STRING([--disable-devmapper], [disable device mapper support]))
+if test "x$enable_devmapper" != "xno"; then
+ PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02],
+ [AC_DEFINE(HAVE_DEVMAPPER, 1, [Define if device mapper is available]) have_devmapper=yes],
+ have_devmapper=no)
+ AC_SUBST(DEVMAPPER_CFLAGS)
+ AC_SUBST(DEVMAPPER_LIBS)
+ if test "x$have_devmapper" = xno -a "x$enable_devmapper" = xyes; then
+ AC_MSG_ERROR([devmapper support requested but libraries not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_DEVMAPPER, [test "$have_devmapper" = "yes"])
have_lvm2=no
AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--enable-lvm2], [enable LVM2 support]))
@@ -185,9 +205,19 @@ if test "x$enable_dmmp" = "xyes"; then
fi
AM_CONDITIONAL(HAVE_DMMP, [test "$have_dmmp" = "yes"])
-PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14])
-AC_SUBST(LIBATASMART_CFLAGS)
-AC_SUBST(LIBATASMART_LIBS)
+have_libatasmart=no
+AC_ARG_ENABLE(libatasmart, AS_HELP_STRING([--disable-libatasmart], [disable libatasmart support]))
+if test "x$enable_libatasmart" != "xno"; then
+ PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14],
+ [AC_DEFINE(HAVE_LIBATASMART, 1, [Define if libatasmart is available]) have_libatasmart=yes],
+ have_libatasmart=no)
+ AC_SUBST(LIBATASMART_CFLAGS)
+ AC_SUBST(LIBATASMART_LIBS)
+ if test "x$have_libatasmart" = xno -a "x$enable_libatasmart" = xyes; then
+ AC_MSG_ERROR([libatasmart support requested but libraries not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_LIBATASMART, [test "$have_libatasmart" = "yes"])
PKG_CHECK_MODULES(LIBUDEV, [libudev >= 143])
AC_SUBST(LIBUDEV_CFLAGS)
@@ -278,9 +308,12 @@ echo "
cppflags: ${CPPFLAGS}
xsltproc: ${XSLTPROC}
+ Parted support: ${have_parted}
+ Device Mapper support: ${have_devmapper}
LVM2 support: ${have_lvm2}
dm-multipath: ${have_dmmp}
Remote Access: ${remote_access}
+ libatasmart support: ${have_libatasmart}
Maintainer mode: ${USE_MAINTAINER_MODE}
Profiling: ${enable_profiling}
diff --git a/src/adapter-private.h b/src/adapter-private.h
index 3409e21..ef584e3 100644
--- a/src/adapter-private.h
+++ b/src/adapter-private.h
@@ -23,7 +23,6 @@
#include <dbus/dbus-glib.h>
#include <gudev/gudev.h>
-#include <atasmart.h>
#include "types.h"
diff --git a/src/adapter.c b/src/adapter.c
index 65e05b0..45db8c8 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -30,7 +30,6 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <gudev/gudev.h>
-#include <atasmart.h>
#include "daemon.h"
#include "adapter.h"
diff --git a/src/daemon.c b/src/daemon.c
index fafcf9a..14e952f 100644
--- a/src/daemon.c
+++ b/src/daemon.c
@@ -1748,6 +1748,7 @@ mdstat_changed_event (GIOChannel *channel,
return TRUE;
}
+#ifdef HAVE_LIBATASMART
static gboolean
refresh_ata_smart_data (Daemon *daemon)
{
@@ -1776,6 +1777,7 @@ refresh_ata_smart_data (Daemon *daemon)
return FALSE;
}
+#endif
static gboolean
register_disks_daemon (Daemon *daemon)
@@ -1987,12 +1989,14 @@ daemon_new (void)
mount_file_clean_stale (l);
g_list_free (l);
+#ifdef HAVE_LIBATASMART
/* set up timer for refreshing ATA SMART data - we don't want to refresh immediately because
* when adding a device we also do this...
*/
daemon->priv->ata_smart_refresh_timer_id = g_timeout_add_seconds (ATA_SMART_REFRESH_INTERVAL_SECONDS,
(GSourceFunc) refresh_ata_smart_data,
daemon);
+#endif
PROFILE ("daemon_new(): end");
return daemon;
diff --git a/src/device-private.c b/src/device-private.c
index 45418ce..fb1d959 100644
--- a/src/device-private.c
+++ b/src/device-private.c
@@ -1390,7 +1390,7 @@ device_set_drive_ata_smart_time_collected (Device *device,
void
device_set_drive_ata_smart_status (Device *device,
- SkSmartOverall value)
+ guint value)
{
if (G_UNLIKELY (device->priv->drive_ata_smart_status != value))
{
diff --git a/src/device-private.h b/src/device-private.h
index 32a9bd0..8c57c13 100644
--- a/src/device-private.h
+++ b/src/device-private.h
@@ -23,7 +23,6 @@
#include <dbus/dbus-glib.h>
#include <gudev/gudev.h>
-#include <atasmart.h>
#include "types.h"
@@ -228,7 +227,7 @@ struct DevicePrivate
gboolean drive_ata_smart_is_available;
guint64 drive_ata_smart_time_collected;
- SkSmartOverall drive_ata_smart_status;
+ guint drive_ata_smart_status;
void *drive_ata_smart_blob;
gsize drive_ata_smart_blob_size;
@@ -396,7 +395,7 @@ void device_set_holders_objpath (Device *device, GStrv value);
void device_set_drive_ata_smart_is_available (Device *device, gboolean value);
void device_set_drive_ata_smart_time_collected (Device *device, guint64 value);
-void device_set_drive_ata_smart_status (Device *device, SkSmartOverall value);
+void device_set_drive_ata_smart_status (Device *device, guint value);
void device_set_drive_ata_smart_blob_steal (Device *device, gchar *blob, gsize blob_size);
G_END_DECLS
diff --git a/src/device.c b/src/device.c
index 2ae7f38..d73f9d6 100644
--- a/src/device.c
+++ b/src/device.c
@@ -50,7 +50,9 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <gudev/gudev.h>
+#ifdef HAVE_LIBATASMART
#include <atasmart.h>
+#endif
#include "daemon.h"
#include "device.h"
@@ -664,10 +666,14 @@ get_property (GObject *object,
case PROP_DRIVE_ATA_SMART_STATUS:
{
const gchar *status;
- if (device->priv->drive_ata_smart_status == (SkSmartOverall) - 1)
+#ifdef HAVE_LIBATASMART
+ if (device->priv->drive_ata_smart_status == (guint) - 1)
status = "";
else
status = sk_smart_overall_to_string (device->priv->drive_ata_smart_status);
+#else
+ status = "";
+#endif
g_value_set_string (value, status);
}
break;
@@ -5144,6 +5150,7 @@ device_new (Daemon *daemon,
goto out;
}
+#ifdef HAVE_LIBATASMART
/* if just added, update the smart data if applicable */
if (device->priv->drive_ata_smart_is_available)
{
@@ -5151,6 +5158,7 @@ device_new (Daemon *daemon,
gchar *ata_smart_refresh_data_options[] = { NULL };
device_drive_ata_smart_refresh_data (device, ata_smart_refresh_data_options, NULL);
}
+#endif
PROFILE ("device_new(native_path=%s): end", native_path);
out:
@@ -9840,16 +9848,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
const char *stdout,
gpointer user_data)
{
+#ifdef HAVE_LIBATASMART
gint rc;
- SkDisk *d;
+ SkDisk *d = NULL;
+ SkSmartOverall overall;
gchar *blob;
gsize blob_size;
time_t time_collected;
- SkSmartOverall overall;
+#endif
PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) start", device->priv->native_path);
- d = NULL;
+#ifdef HAVE_LIBATASMART
blob = NULL;
if (job_was_cancelled || stdout == NULL)
@@ -9953,6 +9963,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
g_free (blob);
if (d != NULL)
sk_disk_free (d);
+
+#else
+ throw_error (context, ERROR_FAILED, "libatasmart support disabled");
+#endif
+
PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) end", device->priv->native_path);
}
diff --git a/src/expander-private.h b/src/expander-private.h
index ef4f440..98a8300 100644
--- a/src/expander-private.h
+++ b/src/expander-private.h
@@ -23,7 +23,6 @@
#include <dbus/dbus-glib.h>
#include <gudev/gudev.h>
-#include <atasmart.h>
#include "types.h"
diff --git a/src/expander.c b/src/expander.c
index 734ec0a..e799f13 100644
--- a/src/expander.c
+++ b/src/expander.c
@@ -34,7 +34,6 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <gudev/gudev.h>
-#include <atasmart.h>
#include <stdlib.h>
#include "daemon.h"
diff --git a/src/helpers/Makefile.am b/src/helpers/Makefile.am
index 4b863c0..d3ec4e9 100644
--- a/src/helpers/Makefile.am
+++ b/src/helpers/Makefile.am
@@ -19,15 +19,9 @@ INCLUDES = \
libexec_PROGRAMS = \
udisks-helper-mkfs \
- udisks-helper-delete-partition \
- udisks-helper-create-partition \
- udisks-helper-modify-partition \
- udisks-helper-create-partition-table \
udisks-helper-change-filesystem-label \
udisks-helper-linux-md-remove-component \
udisks-helper-fstab-mounter \
- udisks-helper-ata-smart-collect \
- udisks-helper-ata-smart-selftest \
udisks-helper-drive-detach \
udisks-helper-drive-poll \
udisks-helper-linux-md-check \
@@ -48,6 +42,13 @@ udisks_helper_mkfs_SOURCES = job-shared.h job-mkfs.c
udisks_helper_mkfs_CPPFLAGS = $(AM_CPPFLAGS)
udisks_helper_mkfs_LDADD = $(GLIB_LIBS)
+if HAVE_PARTED
+libexec_PROGRAMS += \
+ udisks-helper-delete-partition \
+ udisks-helper-create-partition \
+ udisks-helper-modify-partition \
+ udisks-helper-create-partition-table
+
udisks_helper_delete_partition_SOURCES = job-shared.h job-delete-partition.c
udisks_helper_delete_partition_CPPFLAGS = $(AM_CPPFLAGS)
udisks_helper_delete_partition_LDADD = $(GLIB_LIBS) libpartutil.la
@@ -63,11 +64,17 @@ udisks_helper_modify_partition_LDADD = $(GLIB_LIBS) libpartutil.la
udisks_helper_create_partition_table_SOURCES = job-shared.h job-create-partition-table.c
udisks_helper_create_partition_table_CPPFLAGS = $(AM_CPPFLAGS)
udisks_helper_create_partition_table_LDADD = $(GLIB_LIBS) libpartutil.la
+endif
udisks_helper_change_filesystem_label_SOURCES = job-shared.h job-change-filesystem-label.c
udisks_helper_change_filesystem_label_CPPFLAGS = $(AM_CPPFLAGS)
udisks_helper_change_filesystem_label_LDADD = $(GLIB_LIBS)
+if HAVE_LIBATASMART
+libexec_PROGRAMS += \
+ udisks-helper-ata-smart-collect \
+ udisks-helper-ata-smart-selftest
+
udisks_helper_ata_smart_selftest_SOURCES = job-shared.h job-ata-smart-selftest.c
udisks_helper_ata_smart_selftest_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
@@ -75,6 +82,7 @@ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
udisks_helper_ata_smart_collect_SOURCES = job-ata-smart-collect.c
udisks_helper_ata_smart_collect_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
udisks_helper_ata_smart_collect_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
+endif
udisks_helper_linux_md_remove_component_SOURCES = job-shared.h job-linux-md-remove-component.c
udisks_helper_linux_md_remove_component_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/src/helpers/partutil.c b/src/helpers/partutil.c
index 72a8fe3..8893a39 100644
--- a/src/helpers/partutil.c
+++ b/src/helpers/partutil.c
@@ -62,7 +62,6 @@ DEBUG (const gchar *format,
# include <config.h>
#endif
-#define USE_PARTED
#ifdef USE_PARTED
#include <parted/parted.h>
#endif
@@ -928,6 +927,7 @@ part_table_parse_apple (int fd,
return p;
}
+#ifdef USE_PARTED
static PartitionTable *
part_table_load_from_disk_from_file (char *device_file)
{
@@ -948,6 +948,7 @@ part_table_load_from_disk_from_file (char *device_file)
out:
return ret;
}
+#endif
PartitionTable *
part_table_load_from_disk (int fd)
diff --git a/src/port-private.h b/src/port-private.h
index cc48376..a91532f 100644
--- a/src/port-private.h
+++ b/src/port-private.h
@@ -23,7 +23,6 @@
#include <dbus/dbus-glib.h>
#include <gudev/gudev.h>
-#include <atasmart.h>
#include "types.h"
diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am
index 06bb566..01c693b 100644
--- a/src/probers/Makefile.am
+++ b/src/probers/Makefile.am
@@ -22,8 +22,6 @@ INCLUDES = \
udevhelperdir = $(slashlibdir)/udev
udevhelper_PROGRAMS = udisks-part-id \
- udisks-dm-export \
- udisks-probe-ata-smart \
udisks-probe-sas-expander \
$(NULL)
@@ -35,17 +33,23 @@ udisks_part_id_SOURCES = part-id.c
udisks_part_id_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUDEV_CFLAGS)
udisks_part_id_LDADD = $(GLIB_LIBS) $(LIBUDEV_LIBS) $(top_builddir)/src/helpers/libpartutil.la
+if HAVE_DEVMAPPER
+udevhelper_PROGRAMS += udisks-dm-export
udisks_dm_export_SOURCES = udisks-dm-export.c
udisks_dm_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(GLIB_CFLAGS)
udisks_dm_export_LDADD = $(DEVMAPPER_LIBS) $(GLIB_LIBS)
+endif
udisks_lvm_pv_export_SOURCES = udisks-lvm-pv-export.c
udisks_lvm_pv_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(LVM2_CFLAGS) $(GLIB_CFLAGS)
udisks_lvm_pv_export_LDADD = $(DEVMAPPER_LIBS) $(LVM2_LIBS) $(GLIB_LIBS)
+if HAVE_LIBATASMART
+udevhelper_PROGRAMS += udisks-probe-ata-smart
udisks_probe_ata_smart_SOURCES = udisks-probe-ata-smart.c
udisks_probe_ata_smart_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS)
udisks_probe_ata_smart_LDADD = $(LIBATASMART_LIBS)
+endif
udisks_probe_sas_expander_SOURCES = udisks-probe-sas-expander.c
udisks_probe_sas_expander_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
diff --git a/tools/udisks.c b/tools/udisks.c
index 97e80d7..d30159b 100644
--- a/tools/udisks.c
+++ b/tools/udisks.c
@@ -43,7 +43,9 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
+#ifdef HAVE_LIBATASMART
#include <atasmart.h>
+#endif
#include "udisks-daemon-glue.h"
#include "udisks-device-glue.h"
@@ -983,6 +985,7 @@ end_highlight (void)
g_print ("\x1B[0m");
}
+#ifdef HAVE_LIBATASMART
static const gchar *
ata_smart_status_to_desc (const gchar *status,
gboolean *out_highlight)
@@ -1163,6 +1166,7 @@ print_ata_smart_attr (SkDisk *d,
g_free (threshold_str);
g_free (pretty);
}
+#endif
static void
do_show_info (const char *object_path)
@@ -1445,7 +1449,7 @@ do_show_info (const char *object_path)
g_print (" if speed: %" G_GINT64_FORMAT " bits/s\n", props->drive_connection_speed);
/* ------------------------------------------------------------------------------------------------- */
-
+#ifdef HAVE_LIBATASMART
if (!props->drive_ata_smart_is_available)
{
g_print (" ATA SMART: not available\n");
@@ -1498,7 +1502,9 @@ do_show_info (const char *object_path)
}
}
-
+#else
+ g_print (" ATA SMART: not supported\n");
+#endif
/* ------------------------------------------------------------------------------------------------- */
}