[arch-commits] Commit in restbed/trunk (5 files)

Baptiste Jonglez zorun at archlinux.org
Sat Feb 2 15:35:31 UTC 2019


    Date: Saturday, February 2, 2019 @ 15:35:31
  Author: zorun
Revision: 429177

restbed: update to 4.6+89+ga1e9c97

This update drops the dependency on kashmir, and requires some CMake hacks
to build the tests.

A single test is failing (out of 113 tests), fixing this is future work.

Added:
  restbed/trunk/0001-build-Only-run-tests-if-catch2-is-installed.patch
  restbed/trunk/0002-build-make-static-shared-builds-optional.patch
  restbed/trunk/0003-build-allow-only-static-or-shared-crypto-lib.patch
Modified:
  restbed/trunk/PKGBUILD
Deleted:
  restbed/trunk/0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch

-----------------------------------------------------------------+
 0001-build-Only-run-tests-if-catch2-is-installed.patch          |   62 +++++++
 0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch |   64 -------
 0002-build-make-static-shared-builds-optional.patch             |   88 ++++++++++
 0003-build-allow-only-static-or-shared-crypto-lib.patch         |   25 ++
 PKGBUILD                                                        |   28 ++-
 5 files changed, 195 insertions(+), 72 deletions(-)

Added: 0001-build-Only-run-tests-if-catch2-is-installed.patch
===================================================================
--- 0001-build-Only-run-tests-if-catch2-is-installed.patch	                        (rev 0)
+++ 0001-build-Only-run-tests-if-catch2-is-installed.patch	2019-02-02 15:35:31 UTC (rev 429177)
@@ -0,0 +1,62 @@
+From 5c8fc4e9a6afe0e0b5bcfa4f3e7dbb4bfe167ba1 Mon Sep 17 00:00:00 2001
+From: Baptiste Jonglez <git at bitsofnetworks.org>
+Date: Thu, 3 Jan 2019 00:47:39 +0100
+Subject: [PATCH] build: Only run tests if catch2 is installed
+
+---
+ CMakeLists.txt        | 14 ++++++++------
+ cmake/Findcatch.cmake | 11 +++--------
+ 2 files changed, 11 insertions(+), 14 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c618244..95889e1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,7 +42,14 @@ endif ( )
+ set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake" )
+ 
+ find_package( asio REQUIRED )
+-find_package( catch REQUIRED )
++find_package( catch )
++if ( CATCH_FOUND )
++    enable_testing( )
++    add_subdirectory( "${PROJECT_SOURCE_DIR}/test/unit" )
++    add_subdirectory( "${PROJECT_SOURCE_DIR}/test/feature" )
++    add_subdirectory( "${PROJECT_SOURCE_DIR}/test/regression" )
++    add_subdirectory( "${PROJECT_SOURCE_DIR}/test/integration" )
++endif ( )
+ if ( BUILD_SSL )
+     find_package( openssl REQUIRED )
+ endif ( )
+@@ -77,11 +84,6 @@ else ( )
+     target_link_libraries( ${SHARED_LIBRARY_NAME} )
+ endif ( )
+ 
+-enable_testing( )
+-add_subdirectory( "${PROJECT_SOURCE_DIR}/test/unit" )
+-add_subdirectory( "${PROJECT_SOURCE_DIR}/test/feature" )
+-add_subdirectory( "${PROJECT_SOURCE_DIR}/test/regression" )
+-add_subdirectory( "${PROJECT_SOURCE_DIR}/test/integration" )
+ 
+ #
+ # Install
+diff --git a/cmake/Findcatch.cmake b/cmake/Findcatch.cmake
+index d070243..6c5be19 100644
+--- a/cmake/Findcatch.cmake
++++ b/cmake/Findcatch.cmake
+@@ -1,9 +1,4 @@
+-find_path( catch_INCLUDE catch.hpp HINTS "${PROJECT_SOURCE_DIR}/dependency/catch/single_include" "/usr/include/catch2/single_include" "/usr/local/include/catch2/single_include" "/opt/local/include/catch2/single_include" )
++find_path( catch_INCLUDE catch.hpp HINTS "${PROJECT_SOURCE_DIR}/dependency/catch/single_include" "/usr/include/catch2" "/usr/local/include/catch2/single_include" "/opt/local/include/catch2/single_include" )
+ 
+-if ( catch_INCLUDE )
+-    set( CATCH_FOUND TRUE )
+-
+-    message( STATUS "Found Catch include at: ${catch_INCLUDE}" )
+-else ( )
+-    message( FATAL_ERROR "Failed to locate Catch dependency." )
+-endif ( )
++include(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(catch DEFAULT_MSG catch_INCLUDE)
+-- 
+2.20.0
+

Deleted: 0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch
===================================================================
--- 0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch	2019-02-02 14:56:12 UTC (rev 429176)
+++ 0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch	2019-02-02 15:35:31 UTC (rev 429177)
@@ -1,64 +0,0 @@
-From 78a25164be8a15bf3d677ac0f1de402e15555377 Mon Sep 17 00:00:00 2001
-From: Baptiste Jonglez <git at bitsofnetworks.org>
-Date: Mon, 2 Apr 2018 12:40:34 +0200
-Subject: [PATCH] cmake: Auto-detect Catch dependency to decide whether to
- enable tests
-
-This automatically enables or disables tests, depending on whether Catch
-is found on the system.
-
-Of course, it is still possible to force building tests:
-
-* `-DBUILD_TESTS=OFF` will disable tests even if Catch is found
-* `-DBUILD_TESTS=ON` will enable tests even if Catch is not found (mostly useful because it causes cmake to fail early)
----
- CMakeLists.txt                | 8 +++++++-
- cmake/modules/Findcatch.cmake | 9 ++-------
- 2 files changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 6cda77e..2679d5c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -13,7 +13,6 @@ set( VERSION "${restbed_VERSION}" )
- #
- option( BUILD_SHARED   "Build shared library."              OFF )
- option( BUILD_EXAMPLES "Build examples applications."       OFF )
--option( BUILD_TESTS    "Build all available test suites."   OFF )
- option( BUILD_SSL      "Build secure socket layer support."  ON )
- 
- #
-@@ -39,6 +38,13 @@ if ( BUILD_SSL )
-     include_directories( SYSTEM ${ssl_INCLUDE} )
- endif ( )
- 
-+find_package( catch )
-+if ( CATCH_FOUND )
-+    option( BUILD_TESTS    "Build all available test suites."   ON)
-+else ( )
-+    option( BUILD_TESTS    "Build all available test suites."  OFF)
-+endif ( )
-+
- #
- # Build
- #
-diff --git a/cmake/modules/Findcatch.cmake b/cmake/modules/Findcatch.cmake
-index c1fd84e..ed241ec 100644
---- a/cmake/modules/Findcatch.cmake
-+++ b/cmake/modules/Findcatch.cmake
-@@ -2,10 +2,5 @@
- 
- find_path( catch_INCLUDE catch.hpp HINTS "${PROJECT_SOURCE_DIR}/dependency/catch/include" "/usr/include" "/usr/include/catch" "/usr/include/catch2" "/usr/local/include" "/usr/local/include/catch" "/usr/local/include/catch2" "/opt/local/include" "/opt/local/include/catch" "/opt/local/include/catch2" )
- 
--if ( catch_INCLUDE )
--    set( CATCH_FOUND TRUE )
--
--    message( STATUS "${Green}Found Catch include at: ${catch_INCLUDE}${Reset}" )
--else ( )
--    message( FATAL_ERROR "${Red}Failed to locate Catch dependency.${Reset}" )
--endif ( )
-+include(FindPackageHandleStandardArgs)
-+FIND_PACKAGE_HANDLE_STANDARD_ARGS(catch DEFAULT_MSG catch_INCLUDE)
--- 
-2.16.3
-

Added: 0002-build-make-static-shared-builds-optional.patch
===================================================================
--- 0002-build-make-static-shared-builds-optional.patch	                        (rev 0)
+++ 0002-build-make-static-shared-builds-optional.patch	2019-02-02 15:35:31 UTC (rev 429177)
@@ -0,0 +1,88 @@
+From 23fc2778b9ce6288cdcb33ae6b40926dc7dd69bf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud at savoirfairelinux.com>
+Date: Mon, 1 Oct 2018 16:36:08 -0400
+Subject: [PATCH] build: make static, shared builds optional
+
+---
+ CMakeLists.txt | 52 ++++++++++++++++++++++++++++++--------------------
+ 1 file changed, 31 insertions(+), 21 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2b27743..5e99964 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,8 @@ message( "Copyright 2013-2018, Corvusoft Ltd, All Rights Reserved." )
+ # Build Options
+ #
+ option( BUILD_SSL      "Build secure socket layer support."  ON )
++option( BUILD_STATIC   "Build static library."  ON )
++option( BUILD_SHARED   "Build shared library."  OFF )
+ 
+ #
+ # Configuration
+@@ -61,27 +63,31 @@ include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${kashmir_INCLUDE} ${
+ #
+ file( GLOB_RECURSE MANIFEST "${SOURCE_DIR}/*.cpp" )
+ 
+-set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" )
+-add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} )
+-set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 11 )
+-set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
+-set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
+-if ( BUILD_SSL )
+-    target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} )
+-else ( )
+-    target_link_libraries( ${STATIC_LIBRARY_NAME} )
++if ( BUILD_STATIC )
++    set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" )
++    add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} )
++    set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 11 )
++    set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
++    set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
++    if ( BUILD_SSL )
++        target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} )
++    else ( )
++        target_link_libraries( ${STATIC_LIBRARY_NAME} )
++    endif ( )
+ endif ( )
+ 
+-set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" )
+-add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} )
+-set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 11 )
+-set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
+-set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
+-set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
+-if ( BUILD_SSL )
+-    target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} )
+-else ( )
+-    target_link_libraries( ${SHARED_LIBRARY_NAME} )
++if ( BUILD_SHARED )
++    set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" )
++    add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} )
++    set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 11 )
++    set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON )
++    set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
++    set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
++    if ( BUILD_SSL )
++        target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} )
++    else ( )
++        target_link_libraries( ${SHARED_LIBRARY_NAME} )
++    endif ( )
+ endif ( )
+ 
+ 
+@@ -92,5 +98,9 @@ file( GLOB ARTIFACTS "${SOURCE_DIR}/*.hpp" )
+ 
+ install( FILES "${INCLUDE_DIR}/${PROJECT_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/include" )
+ install( FILES ${ARTIFACTS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/corvusoft/${PROJECT_NAME}" )
+-install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
+-install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
++if ( BUILD_STATIC )
++    install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
++endif ( )
++if ( BUILD_SHARED )
++    install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library )
++endif ( )
+-- 
+2.20.0
+

Added: 0003-build-allow-only-static-or-shared-crypto-lib.patch
===================================================================
--- 0003-build-allow-only-static-or-shared-crypto-lib.patch	                        (rev 0)
+++ 0003-build-allow-only-static-or-shared-crypto-lib.patch	2019-02-02 15:35:31 UTC (rev 429177)
@@ -0,0 +1,25 @@
+From c3e28adaf8b15b34162da6c1ed5514606288f91b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud at savoirfairelinux.com>
+Date: Sun, 21 Oct 2018 20:30:53 -0400
+Subject: [PATCH] build: allow only static or shared crypto lib
+
+---
+ cmake/Findopenssl.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/Findopenssl.cmake b/cmake/Findopenssl.cmake
+index 2fea2d3..2c9d7c5 100644
+--- a/cmake/Findopenssl.cmake
++++ b/cmake/Findopenssl.cmake
+@@ -24,7 +24,7 @@ if ( NOT ssl_INCLUDE )
+   find_path( ssl_INCLUDE openssl/ssl.h HINTS "${PROJECT_SOURCE_DIR}/dependency/openssl/inc32" "${PROJECT_SOURCE_DIR}/dependency/openssl/include" "/usr/local/opt/openssl/include" "/usr/include" "/usr/local/include" "/opt/local/include" NO_CMAKE_FIND_ROOT_PATH)
+ endif ( )
+ 
+-if ( ssl_LIBRARY_STATIC AND ssl_LIBRARY_SHARED AND crypto_LIBRARY_STATIC AND crypto_LIBRARY_SHARED )
++if ( (ssl_LIBRARY_STATIC AND crypto_LIBRARY_STATIC) OR (ssl_LIBRARY_SHARED AND crypto_LIBRARY_SHARED) )
+     set( OPENSSL_FOUND TRUE )
+     add_definitions( -DBUILD_SSL=TRUE )
+ 
+-- 
+2.20.0
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-02-02 14:56:12 UTC (rev 429176)
+++ PKGBUILD	2019-02-02 15:35:31 UTC (rev 429177)
@@ -1,7 +1,7 @@
 # Maintainer: Baptiste Jonglez <baptiste--aur at jonglez dot org>
 # Contributor: Justin Wilcox <nat1192 at gmail dot com>
 pkgname=restbed
-pkgver=4.6+28+gc3a259b
+pkgver=4.6+89+ga1e9c97
 pkgrel=1
 pkgdesc="A framework for asynchronous RESTful functionality in C++11 applications"
 arch=('x86_64')
@@ -10,17 +10,28 @@
 depends=('openssl')
 replaces=('restbed-latest')
 conflicts=('restbed-latest')
-makedepends=('cmake' 'asio' 'kashmir')
+makedepends=('cmake' 'asio')
 checkdepends=('catch2')
-_commit=c3a259ba047fa9f5b1c3b65a3ab9e21577bf8bcc
+_commit=a1e9c970cf0886ab9e115f776f7d3c5dab52b964
 source=("https://github.com/Corvusoft/restbed/archive/${_commit}/$pkgname-$pkgver.tar.gz"
-        "0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch")
-sha256sums=('e1438ce6718e34c0f89c3f02efde3c07df865b89209ae10cc1b5da9ee44b7701'
-            '6ddf6157135a8913332c583cf8297657be83f44dce52c25ed677cc611dfdf1e7')
+        "0001-build-Only-run-tests-if-catch2-is-installed.patch"
+        "0002-build-make-static-shared-builds-optional.patch"
+        "0003-build-allow-only-static-or-shared-crypto-lib.patch")
+sha256sums=('65c0bd66073b2646bd42b7b254820f55f8ac2ae0d1298fa64f59e104e503196e'
+            '6ec39ca415b7f09246238fb9c43664caeec71601d55545f529401e7fcedc175c'
+            'aaf94a7c0ceb94b1dbd3cd7dfe4541a99c107af5a528353615ff792b1f591673'
+            'ca6ddb1bc8a8a623d37351b418a8c897046cfb915f7760060f1f0cfe12a2c92f')
 
 prepare() {
   cd "$srcdir/$pkgname-$_commit"
-  patch -p1 < "$srcdir/0001-cmake-Auto-detect-Catch-dependency-to-decide-whether.patch"
+  # Allows to disable static builds
+  patch -p1 < "$srcdir/0001-build-Only-run-tests-if-catch2-is-installed.patch"
+  patch -p1 < "$srcdir/0002-build-make-static-shared-builds-optional.patch"
+  patch -p1 < "$srcdir/0003-build-allow-only-static-or-shared-crypto-lib.patch"
+  # Add missing include directory for tests
+  sed -i -e 's/include_directories( SYSTEM /include_directories( ${INCLUDE_DIR} SYSTEM /' test/{integration,unit,regression,feature}/CMakeLists.txt
+  # Force tests to use shared library, for correct dependencies and linking
+  sed -i -e '/^target_link_libraries/ s#${STATIC_LIBRARY_NAME}#restbed-shared#' test/{integration,unit,regression,feature}/CMakeLists.txt
 }
 
 build() {
@@ -31,7 +42,8 @@
   cmake .. \
     -DCMAKE_INSTALL_PREFIX=/usr \
     -DCMAKE_INSTALL_LIBDIR=lib \
-    -DBUILD_SHARED=on \
+    -DBUILD_STATIC=OFF \
+    -DBUILD_SHARED=ON \
     -DBUILD_SSL=on
   make
 }



More information about the arch-commits mailing list