allow udev backend on el6
afiestas recommended simply ommitting the new solid api for systems with older udev, so here we are.
This commit is contained in:
parent
8207dace25
commit
f3efe1f53c
95
kdelibs-UDEV_HAVE_GET_SYSATTR_LIST_ENTRY.patch
Normal file
95
kdelibs-UDEV_HAVE_GET_SYSATTR_LIST_ENTRY.patch
Normal file
@ -0,0 +1,95 @@
|
||||
diff --git a/cmake/modules/FindUDev.cmake b/cmake/modules/FindUDev.cmake
|
||||
index 4c8390d..1c05dd0 100644
|
||||
--- a/cmake/modules/FindUDev.cmake
|
||||
+++ b/cmake/modules/FindUDev.cmake
|
||||
@@ -4,14 +4,32 @@
|
||||
# UDEV_FOUND - system has UDev
|
||||
# UDEV_INCLUDE_DIR - the libudev include directory
|
||||
# UDEV_LIBS - The libudev libraries
|
||||
+# UDEV_HAVE_GET_SYSATTR_LIST_ENTRY - TRUE if the udev library has the function
|
||||
+# udev_device_get_sysattr_list_entry(), added in version 167 of libudev
|
||||
|
||||
# Copyright (c) 2010, Rafael Fernández López, <ereslibre@kde.org>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
-find_path(UDEV_INCLUDE_DIR libudev.h)
|
||||
-find_library(UDEV_LIBS udev)
|
||||
+find_package(PkgConfig)
|
||||
+if(PKG_CONFIG_FOUND)
|
||||
+ pkg_check_modules(PC_LIBUDEV libudev)
|
||||
+endif()
|
||||
+
|
||||
+find_path(UDEV_INCLUDE_DIR libudev.h
|
||||
+ HINTS ${PC_LIBUDEV_INCLUDEDIR} ${PC_LIBUDEV_INCLUDE_DIRS})
|
||||
+find_library(UDEV_LIBS udev
|
||||
+ HINTS ${PC_LIBUDEV_LIBDIR} ${PC_LIBUDEV_LIBRARY_DIRS})
|
||||
+
|
||||
+if(UDEV_INCLUDE_DIR AND UDEV_LIBS)
|
||||
+ include(CheckFunctionExists)
|
||||
+ include(CMakePushCheckState)
|
||||
+ cmake_push_check_state()
|
||||
+ set(CMAKE_REQUIRED_LIBRARIES ${UDEV_LIBS} )
|
||||
+ check_function_exists(udev_device_get_sysattr_list_entry UDEV_HAVE_GET_SYSATTR_LIST_ENTRY )
|
||||
+ cmake_pop_check_state()
|
||||
+endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(UDev DEFAULT_MSG UDEV_INCLUDE_DIR UDEV_LIBS)
|
||||
diff --git a/solid/solid/CMakeLists.txt b/solid/solid/CMakeLists.txt
|
||||
index a7f1f07..97ca6c4 100644
|
||||
--- a/solid/solid/CMakeLists.txt
|
||||
+++ b/solid/solid/CMakeLists.txt
|
||||
@@ -200,6 +200,7 @@ if(NOT WIN32 AND NOT APPLE)
|
||||
|
||||
if ( UDEV_FOUND )
|
||||
message(STATUS "Building Solid UDev backend." )
|
||||
+ macro_bool_to_01(UDEV_HAVE_GET_SYSATTR_LIST_ENTRY)
|
||||
set(solid_LIB_SRCS ${solid_LIB_SRCS}
|
||||
backends/udev/utils.cpp
|
||||
backends/udev/udevdevice.cpp
|
||||
diff --git a/solid/solid/backends/shared/udevqt.h b/solid/solid/backends/shared/udevqt.h
|
||||
index 228687e..9611658 100644
|
||||
--- a/solid/solid/backends/shared/udevqt.h
|
||||
+++ b/solid/solid/backends/shared/udevqt.h
|
||||
@@ -49,7 +49,9 @@ class Device
|
||||
QString primaryDeviceFile() const;
|
||||
QStringList alternateDeviceSymlinks() const;
|
||||
QStringList deviceProperties() const;
|
||||
+#ifdef UDEV_HAVE_GET_SYSATTR_LIST_ENTRY
|
||||
QStringList sysfsProperties() const;
|
||||
+#endif
|
||||
Device parent() const;
|
||||
|
||||
// ### should this really be a QVariant? as far as udev knows, everything is a string...
|
||||
diff --git a/solid/solid/backends/shared/udevqtdevice.cpp b/solid/solid/backends/shared/udevqtdevice.cpp
|
||||
index d18b616..4721b7a 100644
|
||||
--- a/solid/solid/backends/shared/udevqtdevice.cpp
|
||||
+++ b/solid/solid/backends/shared/udevqtdevice.cpp
|
||||
@@ -197,6 +197,7 @@ QStringList Device::deviceProperties() const
|
||||
return listFromListEntry(udev_device_get_properties_list_entry(d->udev));
|
||||
}
|
||||
|
||||
+#ifdef UDEV_HAVE_GET_SYSATTR_LIST_ENTRY
|
||||
QStringList Device::sysfsProperties() const
|
||||
{
|
||||
if (!d)
|
||||
@@ -204,6 +205,7 @@ QStringList Device::sysfsProperties() const
|
||||
|
||||
return listFromListEntry(udev_device_get_sysattr_list_entry(d->udev));
|
||||
}
|
||||
+#endif
|
||||
|
||||
Device Device::parent() const
|
||||
{
|
||||
diff --git a/solid/solid/config-solid.h.cmake b/solid/solid/config-solid.h.cmake
|
||||
index 84c3b5c..bb71645 100644
|
||||
--- a/solid/solid/config-solid.h.cmake
|
||||
+++ b/solid/solid/config-solid.h.cmake
|
||||
@@ -19,4 +19,5 @@
|
||||
*/
|
||||
|
||||
#cmakedefine UDEV_FOUND
|
||||
+#cmakedefine UDEV_HAVE_GET_SYSATTR_LIST_ENTRY
|
||||
#cmakedefine HUPNP_FOUND
|
11
kdelibs.spec
11
kdelibs.spec
@ -23,7 +23,6 @@
|
||||
%define cmake_pkg cmake28
|
||||
%else
|
||||
%define cmake_pkg cmake
|
||||
%define udev 1
|
||||
%define upower 1
|
||||
%endif
|
||||
|
||||
@ -138,6 +137,11 @@ Patch49: kdelibs-solid_qt_no_debug_output.patch
|
||||
# https://git.reviewboard.kde.org/r/102439/
|
||||
Patch50: kdelibs-4.7.0-knewstuff2_gpg2.patch
|
||||
|
||||
# an improvement on
|
||||
# https://projects.kde.org/projects/kde/kdelibs/repository/revisions/a8d3d3321522d35c2852abb02a475c6b43be5cfe
|
||||
# strictly, only required for old pre-systemd systems (like el6)
|
||||
Patch51: kdelibs-UDEV_HAVE_GET_SYSATTR_LIST_ENTRY.patch
|
||||
|
||||
# Toggle solid upnp support at runtime via env var SOLID_UPNP=1 (disabled by default)
|
||||
Patch52: kdelibs-4.10.0-SOLID_UPNP.patch
|
||||
|
||||
@ -222,9 +226,7 @@ BuildRequires: pkgconfig(libattica) >= %{attica_ver}
|
||||
BuildRequires: pkgconfig(liblzma)
|
||||
BuildRequires: pkgconfig(libpcre)
|
||||
BuildRequires: pkgconfig(libstreams) >= %{strigi_ver}
|
||||
%if 0%{?udev}
|
||||
BuildRequires: pkgconfig(libudev) >= 167
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libudev)
|
||||
BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
|
||||
BuildRequires: pkgconfig(OpenEXR)
|
||||
BuildRequires: pkgconfig(openssl)
|
||||
@ -353,6 +355,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
|
||||
|
||||
# upstreamable patches
|
||||
%patch50 -p1 -b .knewstuff2_gpg2
|
||||
%patch51 -p1 -b .UDEV_HAVE_GET_SYSATTR_LIST_ENTRY
|
||||
%patch52 -p1 -b .SOLID_UPNP
|
||||
%patch53 -p1 -b .kjs-s390
|
||||
%patch54 -p1 -b .kjs-locale
|
||||
|
Loading…
Reference in New Issue
Block a user