Search
SailfishOS Open Build Service
>
Projects
>
nemo
:
testing:hw
:
motorola
:
moto_msm8960_jbbl
:
4.4.0.68
>
udisks2
> _service:tar_git:0002-Make-libatasmart-support-optional.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File _service:tar_git:0002-Make-libatasmart-support-optional.patch of Package udisks2
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@jolla.com> Date: Thu, 7 Dec 2017 13:15:34 +0200 Subject: [PATCH] Make libatasmart support optional MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Bidar <bjorn.bidar@jolla.com> --- configure.ac | 18 +++++++++++++++--- src/udiskslinuxdriveata.c | 14 ++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 0e186fc9..6e09a1c0 100644 --- a/configure.ac +++ b/configure.ac @@ -168,9 +168,20 @@ if test "x$enable_daemon" = "xyes"; then AC_SUBST(BLOCKDEV_CFLAGS) AC_SUBST(BLOCKDEV_LIBS) - PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.17]) - AC_SUBST(LIBATASMART_CFLAGS) - AC_SUBST(LIBATASMART_LIBS) + + AC_ARG_ENABLE(libata, AS_HELP_STRING([--enable-libatasmart], [enable libatasmart support])) + AS_IF([test "x$enable_libatasmart" != "xno"], + [PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.17], + [ + AC_SUBST(LIBATASMART_CFLAGS) + AC_SUBST(LIBATASMART_LIBS) + AC_DEFINE([HAVE_ATA_SMART], 1, [Define to 1 if libatasmart is enabled]) + have_libatasmart=yes + ], + [AS_IF([test "x$enable_libata" = "xyes"], + [AC_MSG_ERROR([libatasmart requested but not found]) + ]) + ])]) PKG_CHECK_MODULES(LIBMOUNT, [mount >= 2.18]) AC_SUBST(LIBMOUNT_CFLAGS) @@ -841,6 +852,7 @@ echo " using libsystemd-login: ${have_libsystemd_login} using libelogind: ${have_libelogind} use /media for mounting: ${fhs_media} + libatasmart: ${have_libatasmart:-no} acl support: ${have_acl} using libmount/utab: ${have_libmount_utab} diff --git a/src/udiskslinuxdriveata.c b/src/udiskslinuxdriveata.c index 2de138cd..c3943b9d 100644 --- a/src/udiskslinuxdriveata.c +++ b/src/udiskslinuxdriveata.c @@ -36,7 +36,9 @@ #include <glib/gstdio.h> #include <errno.h> +#ifdef HAVE_ATA_SMART #include <atasmart.h> +#endif #include "udiskslogging.h" #include "udiskslinuxprovider.h" @@ -356,6 +358,7 @@ typedef struct gint num_attributes_failed_in_the_past; } ParseData; +#ifdef HAVE_ATA_SMART static void parse_attr_cb (SkDisk *d, const SkSmartAttributeParsedData *a, @@ -436,6 +439,7 @@ selftest_status_to_string (SkSmartSelfTestExecutionStatus status) } return ret; } +#endif static gboolean get_pm_state (UDisksLinuxDevice *device, GError **error, guchar *count) @@ -474,6 +478,7 @@ get_pm_state (UDisksLinuxDevice *device, GError **error, guchar *count) return rc; } +#ifdef HAVE_ATA_SMART static gboolean update_io_stats (UDisksLinuxDriveAta *drive, UDisksLinuxDevice *device) { const gchar *drivepath = g_udev_device_get_sysfs_path (device->udev_device); @@ -505,6 +510,7 @@ static gboolean update_io_stats (UDisksLinuxDriveAta *drive, UDisksLinuxDevice * } return noio; } +#endif /** * udisks_linux_drive_ata_refresh_smart_sync: @@ -535,6 +541,7 @@ udisks_linux_drive_ata_refresh_smart_sync (UDisksLinuxDriveAta *drive, GCancellable *cancellable, GError **error) { +#ifdef HAVE_ATA_SMART UDisksLinuxDriveObject *object; UDisksLinuxDevice *device = NULL; gboolean ret = FALSE; @@ -693,6 +700,9 @@ udisks_linux_drive_ata_refresh_smart_sync (UDisksLinuxDriveAta *drive, sk_disk_free (d); g_clear_object (&object); return ret; +#else + return FALSE; +#endif } /* ---------------------------------------------------------------------------------------------------- */ @@ -719,6 +729,7 @@ udisks_linux_drive_ata_smart_selftest_sync (UDisksLinuxDriveAta *drive, GCancellable *cancellable, GError **error) { +#ifdef HAVE_ATA_SMART UDisksLinuxDriveObject *object; UDisksLinuxDevice *device = NULL; SkDisk *d = NULL; @@ -775,6 +786,9 @@ udisks_linux_drive_ata_smart_selftest_sync (UDisksLinuxDriveAta *drive, sk_disk_free (d); g_clear_object (&object); return ret; +#else + return FALSE; +#endif } /* ---------------------------------------------------------------------------------------------------- */ -- 2.33.1