Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Ruschival <thomas@ruschival.de>
To: buildroot@buildroot.org
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Subject: Re: [Buildroot] [PATCH 1/1] package/pistache: bump version & switch to meson build
Date: Mon, 14 Mar 2022 18:21:13 +0100	[thread overview]
Message-ID: <87sfrkpi0m.fsf@ruschival.de> (raw)
In-Reply-To: <20220312170048.GI283544@scaer>

Hi Yann, Nicolas,

I will look into that and send an updated patch later this week.
Thanks Nicolas for the hint, I forgot about the DEPENDENCIES...

Regards
Thomas


On 2022-03-12 at 18:00 CET, Yann E. MORIN wrote:

> Thomas, All,
>
> On 2022-03-12 11:44 +0100, Thomas Ruschival spake thusly:
>> While upstream pistache has not yet released a stable 'tag'
>> a lot has changed since June 2020:
>> 
>> * project has moved to meson build system, cmake builds
>>   do not install headers.
>> * patches in buildroot are no longer required
>> * project-implemented Pistache::Optional was replaced by
>>   use of std::optional. This is only available in C++17
>> * dependency to rapidjson has been introduced
>> 
>> Signed-off-by: Thomas Ruschival <thomas@ruschival.de>
>
> I've marked this patch as chagnes-requested: Nicolas explained what you
> need to do to pass the test-pkg step. Can you look into that, test on
> your side, and respin an updated patch?
>
> Thanks!
>
> Regards,
> Yann E. MORIN.
>
>> ---
>>  ...-add-C-language-to-project-statement.patch | 70 --------------
>>  ...eLists.txt-respect-BUILD_SHARED_LIBS.patch | 95 -------------------
>>  ...de-pistache-typeid.h-include-cstddef.patch | 38 --------
>>  package/pistache/Config.in                    |  9 +-
>>  package/pistache/pistache.hash                |  2 +-
>>  package/pistache/pistache.mk                  |  9 +-
>>  6 files changed, 11 insertions(+), 212 deletions(-)
>>  delete mode 100644 package/pistache/0001-CMakeLists.txt-add-C-language-to-project-statement.patch
>>  delete mode 100644 package/pistache/0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch
>>  delete mode 100644 package/pistache/0003-include-pistache-typeid.h-include-cstddef.patch
>> 
>> diff --git a/package/pistache/0001-CMakeLists.txt-add-C-language-to-project-statement.patch b/package/pistache/0001-CMakeLists.txt-add-C-language-to-project-statement.patch
>> deleted file mode 100644
>> index c393a48d0d..0000000000
>> --- a/package/pistache/0001-CMakeLists.txt-add-C-language-to-project-statement.patch
>> +++ /dev/null
>> @@ -1,70 +0,0 @@
>> -From a50fc9bde098e4e89584a5da9f94f620c11b6733 Mon Sep 17 00:00:00 2001
>> -From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> -Date: Sun, 16 Aug 2020 12:31:46 +0200
>> -Subject: [PATCH] CMakeLists.txt: add C language to project statement
>> -MIME-Version: 1.0
>> -Content-Type: text/plain; charset=UTF-8
>> -Content-Transfer-Encoding: 8bit
>> -
>> -This will fix the detection of atomic:
>> -
>> --- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
>> --- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Failed
>> --- Looking for __atomic_load_8 in atomic
>> --- Looking for __atomic_load_8 in atomic - not found
>> -CMake Error at CMakeModules/CheckAtomic.cmake:76 (message):
>> -  Host compiler appears to require libatomic for 64-bit operations, but
>> -  cannot find it.
>> -Call Stack (most recent call first):
>> -  CMakeLists.txt:19 (include)
>> -
>> -Indeed if C language is not enabled, the test will be run with the C++
>> -compiler resulting in the following error:
>> -
>> -Building CXX object CMakeFiles/cmTC_fad22.dir/CheckFunctionExists.cxx.o
>> -/tmp/instance-0/output-1/host/bin/mipsel-linux-g++ --sysroot=/tmp/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot    -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_FORTIFY_SOURCE=1 -Wall -Wconversion -pedantic -Wextra -Wno-missing-field-initializers -DCHECK_FUNCTION_EXISTS=__atomic_load_8  -DNDEBUG   -o CMakeFiles/cmTC_fad22.dir/CheckFunctionExists.cxx.o -c /tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx
>> -<command-line>: error: new declaration 'char __atomic_load_8()' ambiguates built-in declaration 'long long unsigned int __atomic_load_8(const volatile void*, int)' [-fpermissive]
>> -/tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx:7:3: note: in expansion of macro 'CHECK_FUNCTION_EXISTS'
>> -   CHECK_FUNCTION_EXISTS(void);
>> -   ^~~~~~~~~~~~~~~~~~~~~
>> -/tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx: In function 'int main(int, char**)':
>> -/tmp/instance-0/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx:17:25: error: too few arguments to function 'long long unsigned int __atomic_load_8(const volatile void*, int)'
>> -   CHECK_FUNCTION_EXISTS();
>> -                         ^
>> -
>> -whereas with a C compiler, we'll get:
>> -
>> -Building C object CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o
>> -/home/fabrice/buildroot/output/host/bin/riscv32-linux-gcc --sysroot=/home/fabrice/buildroot/output/host/riscv32-buildroot-linux-gnu/sysroot   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DCHECK_FUNCTION_EXISTS=__atomic_load_8  -DNDEBUG   -o CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
>> -<command-line>: warning: conflicting types for built-in function ‘__atomic_load_8’ [-Wbuiltin-declaration-mismatch]
>> -/usr/share/cmake-3.16/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
>> -   CHECK_FUNCTION_EXISTS(void);
>> -   ^~~~~~~~~~~~~~~~~~~~~
>> -Linking C executable cmTC_4b0f4
>> -/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4b0f4.dir/link.txt --verbose=1
>> -/home/fabrice/buildroot/output/host/bin/riscv32-linux-gcc --sysroot=/home/fabrice/buildroot/output/host/riscv32-buildroot-linux-gnu/sysroot -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DCHECK_FUNCTION_EXISTS=__atomic_load_8  -DNDEBUG    CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o  -o cmTC_4b0f4  -latomic
>> -
>> -Fixes:
>> - - http://autobuild.buildroot.org/results/2bf06c6a9e55b449ec5875cf9415a9e55b2065d6
>> -
>> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> ----
>> - CMakeLists.txt | 2 +-
>> - 1 file changed, 1 insertion(+), 1 deletion(-)
>> -
>> -diff --git a/CMakeLists.txt b/CMakeLists.txt
>> -index edc73c5..0286647 100644
>> ---- a/CMakeLists.txt
>> -+++ b/CMakeLists.txt
>> -@@ -9,7 +9,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
>> - set(CMAKE_CXX_EXTENSIONS OFF)
>> - 
>> - project (pistache
>> --    LANGUAGES CXX)
>> -+    LANGUAGES C CXX)
>> - 
>> - include(GNUInstallDirs)
>> - 
>> --- 
>> -2.27.0
>> -
>> diff --git a/package/pistache/0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch b/package/pistache/0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch
>> deleted file mode 100644
>> index 09f59b11ec..0000000000
>> --- a/package/pistache/0002-CMakeLists.txt-respect-BUILD_SHARED_LIBS.patch
>> +++ /dev/null
>> @@ -1,95 +0,0 @@
>> -From 45824f58b10575d8d88d4bce934aedee821a6df0 Mon Sep 17 00:00:00 2001
>> -From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> -Date: Thu, 15 Oct 2020 22:26:55 +0200
>> -Subject: [PATCH] CMakeLists.txt: respect BUILD_SHARED_LIBS
>> -
>> -Don't build and install pistache_shared if the standard cmake
>> -BUILD_SHARED_LIBS is set to OFF
>> -
>> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> -[Backport from upstream:
>> -  https://github.com/oktal/pistache/commit/c04166ca9e6420a8fbc93fef4055ee2eccdcebe4
>> -]
>> ----
>> - src/CMakeLists.txt | 43 +++++++++++++++++++++++++------------------
>> - 1 file changed, 25 insertions(+), 18 deletions(-)
>> -
>> -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
>> -index 6521b20..c5b049f 100644
>> ---- a/src/CMakeLists.txt
>> -+++ b/src/CMakeLists.txt
>> -@@ -26,31 +26,36 @@ set(include_install_dir ${CMAKE_INSTALL_INCLUDEDIR})
>> - set(lib_install_dir ${CMAKE_INSTALL_LIBDIR})
>> - set(bin_install_dir ${CMAKE_INSTALL_BINDIR})
>> - 
>> --add_library(pistache_shared SHARED $<TARGET_OBJECTS:pistache>)
>> --add_library(pistache_static STATIC $<TARGET_OBJECTS:pistache>)
>> -+if (BUILD_SHARED_LIBS)
>> -+    add_library(pistache_shared SHARED $<TARGET_OBJECTS:pistache>)
>> -+    target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES})
>> -+    target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE})
>> -+endif ()
>> - 
>> --target_link_libraries(pistache_shared PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES})
>> -+add_library(pistache_static STATIC $<TARGET_OBJECTS:pistache>)
>> - target_link_libraries(pistache_static PRIVATE Threads::Threads ${CMAKE_REQUIRED_LIBRARIES})
>> --
>> --target_include_directories(pistache_shared INTERFACE ${PISTACHE_INCLUDE})
>> - target_include_directories(pistache_static INTERFACE ${PISTACHE_INCLUDE})
>> - 
>> - if (PISTACHE_USE_SSL)
>> -     target_compile_definitions(pistache PUBLIC PISTACHE_USE_SSL)
>> --    target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL)
>> -     target_compile_definitions(pistache_static PUBLIC PISTACHE_USE_SSL)
>> - 
>> -     target_include_directories(pistache PRIVATE ${OPENSSL_INCLUDE_DIR})
>> --    target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto)
>> -     target_link_libraries(pistache_static PUBLIC OpenSSL::SSL OpenSSL::Crypto)
>> -+    if (BUILD_SHARED_LIBS)
>> -+        target_compile_definitions(pistache_shared PUBLIC PISTACHE_USE_SSL)
>> -+        target_link_libraries(pistache_shared PUBLIC OpenSSL::SSL OpenSSL::Crypto)
>> -+    endif ()
>> - endif ()
>> - 
>> - set(Pistache_OUTPUT_NAME "pistache")
>> --set_target_properties(pistache_shared PROPERTIES
>> --    OUTPUT_NAME ${Pistache_OUTPUT_NAME}
>> --    VERSION ${version}
>> --    SOVERSION ${VERSION_MAJOR}
>> --)
>> -+if (BUILD_SHARED_LIBS)
>> -+    set_target_properties(pistache_shared PROPERTIES
>> -+        OUTPUT_NAME ${Pistache_OUTPUT_NAME}
>> -+        VERSION ${version}
>> -+        SOVERSION ${VERSION_MAJOR}
>> -+    )
>> -+endif ()
>> - 
>> - set_target_properties(pistache_static PROPERTIES 
>> -     OUTPUT_NAME ${Pistache_OUTPUT_NAME}
>> -@@ -60,13 +65,15 @@ if (PISTACHE_INSTALL)
>> -     set(Pistache_CONFIG_FILE "PistacheConfig.cmake")
>> -     set(Pistache_CONFIG_VERSION_FILE "PistacheConfigVersion.cmake")
>> - 
>> --    install(
>> --      TARGETS pistache_shared
>> --      EXPORT PistacheTargets
>> --      ARCHIVE DESTINATION ${lib_install_dir}
>> --      LIBRARY DESTINATION ${lib_install_dir}
>> --      RUNTIME DESTINATION ${bin_install_dir}
>> --      INCLUDES DESTINATION ${include_install_dir})
>> -+    if (BUILD_SHARED_LIBS)
>> -+        install(
>> -+          TARGETS pistache_shared
>> -+          EXPORT PistacheTargets
>> -+          ARCHIVE DESTINATION ${lib_install_dir}
>> -+          LIBRARY DESTINATION ${lib_install_dir}
>> -+          RUNTIME DESTINATION ${bin_install_dir}
>> -+          INCLUDES DESTINATION ${include_install_dir})
>> -+    endif()
>> - 
>> -     install(
>> -       DIRECTORY "${PROJECT_SOURCE_DIR}/include/pistache"
>> --- 
>> -2.28.0
>> -
>> diff --git a/package/pistache/0003-include-pistache-typeid.h-include-cstddef.patch b/package/pistache/0003-include-pistache-typeid.h-include-cstddef.patch
>> deleted file mode 100644
>> index be06ca760a..0000000000
>> --- a/package/pistache/0003-include-pistache-typeid.h-include-cstddef.patch
>> +++ /dev/null
>> @@ -1,38 +0,0 @@
>> -From 37291201ed948e9d65993a717c59bb14f4187e13 Mon Sep 17 00:00:00 2001
>> -From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> -Date: Thu, 5 Aug 2021 19:02:56 +0200
>> -Subject: [PATCH] include/pistache/typeid.h: include cstddef
>> -
>> -Include cstddef to avoid the following build failure with gcc 11:
>> -
>> -In file included from /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/../include/pistache/async.h:10,
>> -                 from /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/../include/pistache/client.h:9,
>> -                 from /tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/client/client.cc:7:
>> -/tmp/instance-3/output-1/build/pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d/src/../include/pistache/typeid.h:26:12: error: expected type-specifier before 'size_t'
>> -   26 |   operator size_t() const { return reinterpret_cast<size_t>(id_); }
>> -      |            ^~~~~~
>> -
>> -Fixes:
>> - - http://autobuild.buildroot.org/results/2443559df8c2357476e4cbdbebb08280cbb80a3b
>> -
>> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>> -[Upstream status: https://github.com/pistacheio/pistache/pull/965]
>> ----
>> - include/pistache/typeid.h | 1 +
>> - 1 file changed, 1 insertion(+)
>> -
>> -diff --git a/include/pistache/typeid.h b/include/pistache/typeid.h
>> -index 10353ca..893e7c1 100644
>> ---- a/include/pistache/typeid.h
>> -+++ b/include/pistache/typeid.h
>> -@@ -7,6 +7,7 @@
>> - 
>> - #pragma once
>> - 
>> -+#include <cstddef>
>> - #include <functional>
>> - 
>> - namespace Pistache
>> --- 
>> -2.30.2
>> -
>> diff --git a/package/pistache/Config.in b/package/pistache/Config.in
>> index 96aed5210a..806c27077a 100644
>> --- a/package/pistache/Config.in
>> +++ b/package/pistache/Config.in
>> @@ -1,22 +1,23 @@
>>  config BR2_PACKAGE_PISTACHE
>>  	bool "pistache"
>> -	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++14
>> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17, std::optional
>>  	depends on BR2_USE_WCHAR
>>  	depends on BR2_TOOLCHAIN_HAS_THREADS
>>  	depends on BR2_INSTALL_LIBSTDCPP
>> +	depends on BR2_PACKAGE_RAPIDJSON
>>  	depends on !BR2_TOOLCHAIN_USES_UCLIBC
>>  	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
>>  	help
>>  	  Pistache is a modern and elegant HTTP and REST framework
>> -	  for C++. It is entirely written in pure C++14 and provides
>> +	  for C++. It is entirely written in pure C++17 and provides
>>  	  a clear and pleasant API.
>>  
>>  	  https://github.com/oktal/pistache
>>  
>> -comment "pistache needs a glibc toolchain w/ C++, gcc >= 4.9, threads, wchar, not binutils bug 27597"
>> +comment "pistache needs a glibc toolchain w/ C++, gcc >= 7, threads, wchar, not binutils bug 27597"
>>  	depends on !BR2_INSTALL_LIBSTDCPP || \
>>  		   BR2_TOOLCHAIN_USES_UCLIBC || \
>> -		   !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
>> +		   !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \
>>  		   !BR2_TOOLCHAIN_HAS_THREADS || \
>>  		   !BR2_USE_WCHAR || \
>>  		   BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
>> diff --git a/package/pistache/pistache.hash b/package/pistache/pistache.hash
>> index 5079387eb7..9a2cd1d1f9 100644
>> --- a/package/pistache/pistache.hash
>> +++ b/package/pistache/pistache.hash
>> @@ -1,3 +1,3 @@
>>  #locally computed
>> -sha256  70aeef5f5a4603cb2ceb20a284e3239f5da520e68f39dcb572c9f21473ac0b6d  pistache-f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d.tar.gz
>> +sha256  f2b3e8b2581cfed5e036d1b97a9b97dc7022b3ddaab69c4691238faff3199bc1  pistache-3ec9d7c4f8b828fdd391550fff81b01e72dd6269.tar.gz
>>  sha256  c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08  LICENSE
>> diff --git a/package/pistache/pistache.mk b/package/pistache/pistache.mk
>> index 4d6bd283ea..0f49ad12db 100644
>> --- a/package/pistache/pistache.mk
>> +++ b/package/pistache/pistache.mk
>> @@ -4,7 +4,7 @@
>>  #
>>  ################################################################################
>>  
>> -PISTACHE_VERSION = f2f5a50fbfb5b8ef6cf1d3d2a9d442a8270e375d
>> +PISTACHE_VERSION = 3ec9d7c4f8b828fdd391550fff81b01e72dd6269
>>  PISTACHE_SITE = $(call github,oktal,pistache,$(PISTACHE_VERSION))
>>  PISTACHE_LICENSE = Apache-2.0
>>  PISTACHE_LICENSE_FILES = LICENSE
>> @@ -13,9 +13,10 @@ PISTACHE_INSTALL_STAGING = YES
>>  
>>  ifeq ($(BR2_PACKAGE_OPENSSL),y)
>>  PISTACHE_DEPENDENCIES += openssl
>> -PISTACHE_CONF_OPTS += -DPISTACHE_USE_SSL=ON
>> +PISTACHE_CONF_OPTS += -DPISTACHE_USE_SSL=true
>> +PISTACHE_CONF_OPTS += -DPISTACHE_ENABLE_NETWORK_TESTS=false
>>  else
>> -PISTACHE_CONF_OPTS += -DPISTACHE_USE_SSL=OFF
>> +PISTACHE_CONF_OPTS += -DPISTACHE_USE_SSL=false
>>  endif
>>  
>> -$(eval $(cmake-package))
>> +$(eval $(meson-package))
>> -- 
>> 2.30.2
>> 
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2022-03-14 17:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-12 10:44 [Buildroot] [PATCH 0/1] Bump pistache, switch to meson build (test-pkg fails) Thomas Ruschival
2022-03-12 10:44 ` [Buildroot] [PATCH 1/1] package/pistache: bump version & switch to meson build Thomas Ruschival
2022-03-12 12:24   ` Nicolas Cavallari
2022-03-12 17:00   ` Yann E. MORIN
2022-03-14 17:21     ` Thomas Ruschival [this message]
2022-03-14 18:13   ` [Buildroot] [PATCH v2 0/1] Bump pistache, switch to meson build (test-pkg o.k.) Thomas Ruschival
2022-03-14 18:13     ` [Buildroot] [PATCH v2 1/1] package/pistache: bump version & switch to meson build Thomas Ruschival
2022-03-24 20:12       ` Arnout Vandecappelle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sfrkpi0m.fsf@ruschival.de \
    --to=thomas@ruschival.de \
    --cc=buildroot@buildroot.org \
    --cc=yann.morin.1998@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox