diff options
Diffstat (limited to 'external/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch')
-rw-r--r-- | external/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch | 498 |
1 files changed, 498 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch b/external/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch new file mode 100644 index 00000000..a890954f --- /dev/null +++ b/external/meta-openembedded/meta-oe/recipes-support/udisks/udisks/optional-depends.patch @@ -0,0 +1,498 @@ +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 + /* ------------------------------------------------------------------------------------------------- */ + + } |