commit d50339fb9bc40b6a39c397b622fef8dd1a9b7851ca531ed85c961f6978f0e1b2 Author: Dirk Mueller Date: Wed Mar 26 12:27:59 2025 +0000 - Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4 - Add %check section - Remove Group: definitions, no longer used OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/websocketpp?expand=0&rev=28 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/Update-websocketpp-configVersion.cmake.patch b/Update-websocketpp-configVersion.cmake.patch new file mode 100644 index 0000000..938e233 --- /dev/null +++ b/Update-websocketpp-configVersion.cmake.patch @@ -0,0 +1,42 @@ +From bdc3895f330f10bfbef1079417c023d4f4157673 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= +Date: Fri, 1 May 2020 14:39:31 +0200 +Subject: [PATCH] Update websocketpp-configVersion.cmake + +- Disable check for same 32/64bit-ness. Use the ARCH_INDEPENDENT option + for CMake 3.14 and newer. +- Use AnyNewerVersion instead of ExactVersion in order to increase + compatibility. Otherwise cmake find_package will fail, if the version + is not exactly the same. +--- + CMakeLists.txt | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bff3654e..198ffd93 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -272,9 +272,20 @@ configure_package_config_file(websocketpp-config.cmake.in + INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}" + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) +-write_basic_package_version_file("${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" +- VERSION ${WEBSOCKETPP_VERSION} +- COMPATIBILITY ExactVersion) ++if (${CMAKE_VERSION} VERSION_LESS "3.14.0") ++ # Disable check for same 32/64bit-ness in websocketpp-configVersion.cmake by setting CMAKE_SIZEOF_VOID_P ++ set (CMAKE_SIZEOF_VOID_P "") ++ write_basic_package_version_file("${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" ++ VERSION ${WEBSOCKETPP_VERSION} ++ COMPATIBILITY AnyNewerVersion) ++else () ++ # Use ARCH_INDEPENDENT option introduced in CMake 3.14 ++ # ARCH_INDEPENDENT is intended for header-only libraries or similar packages with no binaries ++ write_basic_package_version_file("${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/websocketpp-configVersion.cmake" ++ VERSION ${WEBSOCKETPP_VERSION} ++ COMPATIBILITY AnyNewerVersion ++ ARCH_INDEPENDENT) ++endif () + + # Install the websocketpp-config.cmake and websocketpp-configVersion.cmake + install (FILES diff --git a/websocketpp-0.8.2.tar.gz b/websocketpp-0.8.2.tar.gz new file mode 100644 index 0000000..e4719a8 --- /dev/null +++ b/websocketpp-0.8.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ce889d85ecdc2d8fa07408d6787e7352510750daa66b5ad44aacb47bea76755 +size 701364 diff --git a/websocketpp.changes b/websocketpp.changes new file mode 100644 index 0000000..df16395 --- /dev/null +++ b/websocketpp.changes @@ -0,0 +1,272 @@ +------------------------------------------------------------------- +Fri Mar 21 23:08:30 UTC 2025 - Shawn Dunn + +- Add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to fix FTBFS with cmake4 +- Add %check section +- Remove Group: definitions, no longer used + +------------------------------------------------------------------- +Tue Feb 20 15:18:45 UTC 2024 - Dominique Leuenberger + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + %patchN + +------------------------------------------------------------------- +Mon Nov 2 08:44:13 UTC 2020 - Wolfgang Bauer + +- Add Update-websocketpp-configVersion.cmake.patch to fix noarch + violations and make the package really noarch again + +------------------------------------------------------------------- +Wed Aug 19 12:29:24 UTC 2020 - Callum Farmer + +- Fixes for %_libexecdir changing to /usr/libexec (bsc#1174075) + +------------------------------------------------------------------- +Sat May 16 14:54:49 UTC 2020 - Wolfgang Bauer + +- Update to 0.8.2: + * Compatibility: Removes the use of make_shared in a number of + cases where it would be incompatible with newer versions of + ASIO. Thank you Stefan Floeren for the patch. #810 #814 #862 + #843 #794 #808 + * Examples: Update print_client_tls example to remove use of + deprecated OpenSSL functions. + * CMake: Update cmake installer to better handle dependencies + when using g++ on MacOS. Thank you Luca Palano for reporting + and a patch. #831 + * CMake: Update cmake installer to use a variable for the include + directory improving the ability of the install to be + customized. Thank you Schrijvers Luc and Gianfranco Costamanga + for reporting and a patch. #842 +- Drop Replace-make_shared-with-new-in-some-cases.patch, merged + upstream + +------------------------------------------------------------------- +Thu May 9 16:54:52 UTC 2019 - Wolfgang Bauer + +- Add Replace-make_shared-with-new-in-some-cases.patch to fix + incompatibilities with Boost 1.70.0 (boo#1134611) + +------------------------------------------------------------------- +Thu Mar 28 15:30:30 UTC 2019 - manuel + +- updated to version 0.8.1 (boo#1130861) + + This is a bug fix patch to fix a major test suite regression + introduced in 0.8.0 and adjust installation behavior to make + downstream packaging easier. + + Note: There are no changes to the library itself, only to the + test and installation systems. + +------------------------------------------------------------------- +Fri Jul 27 06:37:06 UTC 2018 - jengelh@inai.de + +- Trim redundancies from description and fix spellos. + +------------------------------------------------------------------- +Fri Jul 13 12:20:26 UTC 2018 - astieger@suse.com + +- update to 0.8.0: + * various bug fixes and improvements + * various developer visible changes + +------------------------------------------------------------------- +Sun Feb 12 08:54:28 UTC 2017 - qantas94heavy@gmail.com + +- Update to version 0.7.0 + * MINOR BREAKING SOCKET POLICY CHANGE: Asio transport socket + policy method cancel_socket will now return + lib::asio::error_code instead of void. Custom Asio transport + socket policies will need to be updated accordingly. This does + not affect anyone using the bundled socket policies. + * Feature: Basic support for the permessage-deflate extension. + * Feature: Allow accessing the local endpoint when using the Asio + transport. This allows inspection of the address and port in + cases where they are chosen by the operating system rather than + the user. + * Feature: Add support for subprotocols in Hybi00. + * Improvement: Better automatic std::chrono feature detection + for Visual Studio + * Improvement: Major refactoring to bundled CMake build system. + CMake can now be used to build all of the examples and the + test suite. + * Improvement: In build environments where lib::error_code and + lib::asio::error_code match (such as using boost::asio with + boost::system_error or standalone asio with std::system_error, + transport errors are passed through natively rather than being + reported as a translated pass_through error type. + * Improvement: Add a get_transport_error method to Asio + transport connections to allow retrieving a machine readable + native transport error. + * Improvement: Add connection::get_response, + connection::get_response_code, and + connection::get_response_msg methods to allow accessing + additional information about the HTTP responses that + WebSocket++ sends. + * Improvement: Removes use of empty strings ("") in favor of + string::clear() and string::empty(). This avoids generating + unnecessary temporary objects. + * Documentation: Adds an example demonstrating the use of + external io_service + * Documentation: Adds a simple echo_client example. + * Documentation: Begins migration of the web based user manual + into Doxygen. + * Bug: Fix memory leak when init_asio produces an error. + * Bug: Fix crash when processing a specially crafted HTTP header. + * Bug: Fix an issue where standalone Asio builds that use TLS + would not compile due to lingering boost code. + * Bug: Fix an issue where canceling a socket could throw an + exception on some older Windows XP platforms. It now prints an + appropriate set of log messages instead. + * Bug: Fix an issue where deferred HTTP connections that start + sending a very long response before their HTTP handler ends + would result in a second set of HTTP headers being injected + into the output. + * Bug: Fix an issue where the wrong type of strand was being + created. + * Bug: Fix an issue where TLS includes were broken for Asio + Standalone builds. + * Bug: Remove the use of cached read and write handlers in the + Asio transport. This feature caused memory leaks when the + io_service the connection was running on was abruptly stopped. + There isn't a clean and safe way of using this optimization + without global state and the associated locks. The locks + perform worse. + * Bug: Fix a heap buffer overflow when checking very short URIs. + * Compatibility: Fixes a number of build & config issues on + Visual Studio 2015. + * Compatibility: Removes non-standards compliant masking + behavior. + * Compatibility: Replace deprecated use of auto_ptr on systems + where unique_ptr is available. + +------------------------------------------------------------------- +Thu Feb 2 15:38:18 UTC 2017 - adam.majer@suse.de + +- use individual libboost-*-devel packages instead of boost-devel + +------------------------------------------------------------------- +Tue Nov 24 19:17:00 UTC 2015 - p.drouand@gmail.com + +- Update to version 0.6.0 + * MINOR BREAKING TRANSPORT POLICY CHANGE: Custom transport policies + will now be required to include a new method void set_uri(uri_ptr u). + An implementation is not required. The stub transport policy + includes an example stub method that can be added to any existing + custom transport policy to fulfill this requirement. This does not + affect anyone using the bundled transports or configs. + * MINOR BREAKING SOCKET POLICY CHANGE: Custom asio transport socket + policies will now be required to include a new method void + set_uri(uri_ptr u). Like with the transport layer, an implementation + is not required. This does not affect anyone using the bundled + socket policies. + * MINOR BREAKING DEPENDENCY CHANGE: When using Boost versions + greater than or equal to 1.49 in C++03 mode, libboost-chrono is + needed now instead of libboost-date_time. Users with C++11 compilers + or using Boost versions 1.48 and earlier are not affected. Note: + This change affects the bundled unit test suite. + * Feature: WebSocket++ Asio transport policy can now be used with the + standalone version of Asio (1.8.0+) when a C++11 compiler and standard + library are present. This means that it is possible now to use + WebSocket++'s Asio transport entirely without Boost. Fixes #324 + * Feature: Adds a vectored/scatter-gather write handler to the iostream transport. + * Feature: Adds the ability to defer sending an HTTP response until + sometime after the http_handler is run. This allows processing of + long running http handlers to defer their response until it is ready + without blocking the network thread. references #425 + * Improvement: echo_server_tls has been update to demonstrate how to + configure it for Mozilla's recommended intermediate and modern TLS + security profiles. + * Improvement: endpoint::set_timer now uses a steady clock provided by + boost::chrono or std::chrono where available instead of the + non-monotonic system clock. Thank you breyed for reporting. fixes #241 + * Improvement: Outgoing TLS connections to servers using the SNI + extension to choose a certificate will now work. Fixes #400 + * Improvement: Removes an unnecessary mutex lock in get_con_from_hdl. + * Cleanup: Asio transport policy has been refactored to remove + many Boost dependencies. On C++03 compilers the boost::noncopyable + dependency has been removed and the boost::date_time dependency + has been replaced with the newer boost::chrono when possible. + On C++11 compilers the boost::aligned_storage and boost::date_time + dependencies are gone, replaced with equivalent C++11 standard + library features. + * Bug: Fixes a potential dangling pointer and inconsistent error + message handling in websocketpp::exception. #432 +- Changes from version 0.5.1 + * Bug: Fixes an issue where some frame data was counted against + the max header size limit, resulting in connections that included + a lot of frame data immediately after the opening handshake to fail. + * Bug: Fix a typo in the name of the set method for max_http_body_size. #406 +- Changes from version 0.5.0 + * BREAKING UTILITY CHANGE: Deprecated methods http::parser::parse_headers, + http::response::parse_complete, and http::request::parse_complete + have been removed. + * Security: Disabled SSLv3 in example servers. + * Feature: Adds basic support for accessing HTTP request bodies + in the http handler. #181 + * Feature: Adds the ability to register a shutdown handler when + using the iostream transport. This provides a clean interface + for triggering the shut down of external sockets and other + cleanup without hooking in to higher level WebSocket handlers. + * Feature: Adds the ability to register a write handler when + using the iostream transport. This handler can be used to handle + transport output in place of registering an ostream to write to. + * Feature: Adds a new logging policy that outputs to syslog. #386 + * Improvement: Message payload logging now prints text for text + messages rather than binary. + * Improvement: Overhaul of handshake state machine. Should make it + impossible for exceptions to bubble out of transport methods + like io_service::run. + * Improvement: Overhaul of handshake error reporting. Fail handler + error codes will be more detailed and precise. Adds new [fail] + and [http] logging channels that log failed websocket connections + and successful HTTP connections respectively. A new aggregate + channel package, alevel::access_core, allows enabling connect, + disconnect, fail, and http together. Successful HTTP connections + will no longer trigger a fail handler. + * Improvement: Ability to terminate connection during an http handler + to cleanly suppress the default outgoing HTTP response. + * Documentation: Add Sending & Receiving Messages step to chapter one + of the utility_client tutorial. Update utility_client example to match. + * Cleanup: Removes unused files & STL includes. Adds required STL + includes. Normalizes include order. + * Bug: Fixes a fatal state error when a handshake response is + completed immediately after that handshake times out. #389 + * Bug: MinGW fixes; C++11 feature detection, localtime use. #393 + * Bug: Fixes an issue where websocketpp::exception::what() could + return an out of scope pointer. #397 + * Bug: Fixes an issue where endpoints were not reset properly + after a call to endpoint::listen failed. #390 + +------------------------------------------------------------------- +Wed Nov 19 18:34:39 UTC 2014 - andreas.stieger@gmx.de + +- update to 0.4.0 +- Breaking API changes: + + All methods now throw websocketpp::exception + + Custom logging policies have some new required constructors +- Breaking utility changes: + + websocketpp::lib::net::htonll and websocketpp::lib::net::ntohll + have been prefixed with an underscore to avoid conflicts + + signature changes to base64_encode, sha1::calc +- New Features: + + Adds incomplete minimal_server and minimal_client configs +- Bug and compatibility fixes +- use cmake macros +- clean spec file + +------------------------------------------------------------------- +Mon Oct 27 21:02:44 UTC 2014 - dev@dominik-schmidt.de + +- run format_spec +- update to 0.3.0 final +- use proper group +- fix build on openSUSE 12.3 + +------------------------------------------------------------------- +Mon Mar 17 12:22:05 UTC 2014 - prusnak@opensuse.org + +- created package (based on a Fedora package by Thomas Sailer) + diff --git a/websocketpp.pc b/websocketpp.pc new file mode 100644 index 0000000..58a4c5b --- /dev/null +++ b/websocketpp.pc @@ -0,0 +1,9 @@ +prefix=/usr +exec_prefix=${prefix} +includedir=${prefix}/include + +Name: websocketpp +Description: WebSocket API +Version: 0.8.0 +URL: http://www.zaphoyd.com/websocketpp/ +Cflags: -I${includedir}/ diff --git a/websocketpp.spec b/websocketpp.spec new file mode 100644 index 0000000..fe0b7f6 --- /dev/null +++ b/websocketpp.spec @@ -0,0 +1,92 @@ +# +# spec file for package websocketpp +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: websocketpp +Version: 0.8.2 +Release: 0 +Summary: C++ WebSocket Protocol Library +License: BSD-3-Clause +URL: http://www.zaphoyd.com/websocketpp +Source0: https://github.com/zaphoyd/websocketpp/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +Source1: websocketpp.pc +# PATCH-FIX-UPSTREAM - https://github.com/zaphoyd/websocketpp/pull/888 +Patch0: Update-websocketpp-configVersion.cmake.patch +BuildRequires: cmake >= 3.5 +BuildRequires: gcc-c++ +BuildRequires: pkgconfig +BuildArch: noarch +%if 0%{?suse_version} > 1325 +BuildRequires: libboost_headers-devel +%else +BuildRequires: boost-devel +%endif + +%description +WebSocket++ is a header-only C++ library +that implements RFC6455, the WebSocket protocol. It allows integrating +WebSocket client and server functionality into C++ programs. It uses +interchangeable network transport modules including one based on C++ +iostreams and one based on Boost Asio. + +%package devel +Summary: Development files for websocketpp, a C++ WebSocket Protocol Library + +%description devel +WebSocket++ is a header-only C++ library +that implements RFC6455, the WebSocket protocol. It allows integrating +WebSocket client and server functionality into C++ programs. It uses +interchangeable network transport modules including one based on C++ +iostreams and one based on Boost Asio. + +%prep +%autosetup -p1 + +%build +%if 0%{?suse_version} >= 1310 +%cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 +%else +mkdir build +pushd build +cmake .. \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_VERBOSE_MAKEFILE=ON +%endif +make %{?_smp_mflags} + +%install +%if 0%{?suse_version} >= 1310 +%cmake_install +%else +pushd build +%make_install +%endif +install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/pkgconfig/websocketpp.pc + +%check +%ctest + +%files devel +%license COPYING +%doc changelog.md readme.md roadmap.md +%{_includedir}/websocketpp +%{_prefix}/lib/cmake +%{_prefix}/lib/cmake/websocketpp +%{_datadir}/pkgconfig/websocketpp.pc + +%changelog