taskd: add patch for correct gnutls libraries in static build
PATCH 1/1 taskd: add patch for correct gnutls libraries in static build
The CMakeLists.txt was using the wrong variables names to add to includes and libs, so the additional libraries for static build weren't added to the link command.
Patch sent upstream to taskwarrior-dev at googlegroups.com but it doesn't seem to be very active.
Fixes:
http://autobuild.buildroot.net/results/d01e947fa807336ffcfd0fad27397af8e7442833
--- ...se-correct-variables-for-GnuTLS-detection.patch | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 package/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patch
package/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patch new file +32 -0
@@ -0,0 +1,32 @@ +From 88fee5c6eb2271d3de6b9878cd29a0494999aa18 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]> +Date: Sun, 20 Nov 2016 23:46:45 +0100 +Subject: [PATCH] Use correct variables for GnuTLS detection + +At least with recent CMake, it seems the variables created by +find_package (GnuTLS) are called PC_GNUTLS_INCLUDE_DIRS and +PC_GNUTLS_LIBRARIES. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d8125d9..ccf827b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -110,8 +110,8 @@ message ("-- Looking for GnuTLS") + find_package (GnuTLS REQUIRED) + if (GNUTLS_FOUND) + set (HAVE_LIBGNUTLS true) +- set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) ++ set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${PC_GNUTLS_INCLUDE_DIRS}) ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_LIBRARIES}) + endif (GNUTLS_FOUND) + + message ("-- Looking for libuuid") +-- +2.10.2 +
Signature · 1 line
2.10.2
PATCH 1/1 taskd: add patch for correct gnutls libraries in static build
Quoted 6 lines · Arnout Vandecappelle (Essensium/Mind)
The CMakeLists.txt was using the wrong variables names to add to includes and libs, so the additional libraries for static build weren't added to the link command.
Patch sent upstream to taskwarrior-dev at googlegroups.com but it doesn't seem to be very active.
Well, turns out that they _are_ active, I got feedback immediately and the
patch got rejected. The problem is not in taskd, but in CMake itself.
FindGnuTLS.cmake does the following:
if (NOT WIN32)
# try using pkg-config to get the directories and then use these values
# in the find_path() and find_library() calls
# also fills in GNUTLS_DEFINITIONS, although that isn't normally useful
find_package(PkgConfig QUIET)
PKG_CHECK_MODULES(PC_GNUTLS QUIET gnutls)
set(GNUTLS_DEFINITIONS ${PC_GNUTLS_CFLAGS_OTHER})
set(GNUTLS_VERSION_STRING ${PC_GNUTLS_VERSION})
endif ()find_path(GNUTLS_INCLUDE_DIR gnutls/gnutls.h
HINTS
${PC_GNUTLS_INCLUDEDIR}
${PC_GNUTLS_INCLUDE_DIRS}
)
find_library(GNUTLS_LIBRARY NAMES gnutls libgnutls
HINTS
${PC_GNUTLS_LIBDIR} ${PC_GNUTLS_LIBRARY_DIRS}
)
Since it is using find_path and find_library, it basically destroys all
information coming from pkg-config and keeps only the gnutls paths and libs.
It looks like cmake does this in most bundled modules, so I guess we have to
take it with upstream CMake to see what's going on.
Samuel, any feedback from you?
For now, I think it's better to accept this patch however. We can revert it
when the fundamental problem in CMake has been resolved.
Regards,
Arnout
Quoted 49 lines
Fixes:
http://autobuild.buildroot.net/results/d01e947fa807336ffcfd0fad27397af8e7442833--- ...se-correct-variables-for-GnuTLS-detection.patch | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 package/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patchpackage/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patch new file +32
-0@@ -0,0 +1,32 @@ +From 88fee5c6eb2271d3de6b9878cd29a0494999aa18 Mon Sep 17 00:00:00 2001 +From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]> +Date: Sun, 20 Nov 2016 23:46:45 +0100 +Subject: [PATCH] Use correct variables for GnuTLS detection + +At least with recent CMake, it seems the variables created by +find_package (GnuTLS) are called PC_GNUTLS_INCLUDE_DIRS and +PC_GNUTLS_LIBRARIES. + +Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d8125d9..ccf827b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -110,8 +110,8 @@ message ("-- Looking for GnuTLS") + find_package (GnuTLS REQUIRED) + if (GNUTLS_FOUND) + set (HAVE_LIBGNUTLS true) +- set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) ++ set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${PC_GNUTLS_INCLUDE_DIRS}) ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_LIBRARIES}) + endif (GNUTLS_FOUND) + + message ("-- Looking for libuuid") +-- +2.10.2 +
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH 1/1 taskd: add patch for correct gnutls libraries in static build
In reply to Arnout Vandecappelle (Essensium/Mind)Hello,
Quoted 7 lines · Arnout Vandecappelle (Essensium/Mind)
The CMakeLists.txt was using the wrong variables names to add to includes and libs, so the additional libraries for static build weren't added to the link command.
Patch sent upstream to taskwarrior-dev at googlegroups.com but it doesn't seem to be very active.
Quoted 8 lines
Fixes:
http://autobuild.buildroot.net/results/d01e947fa807336ffcfd0fad27397af8e7442833--- ...se-correct-variables-for-GnuTLS-detection.patch | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 package/taskd/0002-Use-correct-variables-for-GnuTLS-detection.patch
Regardless of the feedback from upstream which says it's an upstream CMake bug, I've nonetheless applied to fix the immediate problem.
Would indeed be good if Samuel could have a look, and take this upstream to the CMake developers.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com