[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