# topdir: libwebsocketpp-dev-0.8.2 # The shipped tarball is synthesized from ./sources/libwebsocketpp-dev/ using # `tar --transform` to rename the top directory to libwebsocketpp-dev-0.8.2, # so the setup step must be pinned to that directory name (-n). # The upstream GitHub tag archive for 0.8.2 unpacks to `websocketpp-0.8.2`, # hence the #/ fragment on Source0 which pins the local tarball name. # # Header-only library: no shared object is produced and no main (runtime) package # is installed, therefore the debuginfo machinery must be disabled. %global debug_package %{nil} Name: libwebsocketpp-dev Version: 0.8.2 Release: 1%{?dist} Summary: Header-only C++ WebSocket++ library License: BSD-3-Clause AND Zlib AND MIT URL: https://github.com/zaphoyd/websocketpp Source0: https://github.com/zaphoyd/websocketpp/archive/refs/tags/%{version}.tar.gz#/libwebsocketpp-dev-%{version}.tar.gz Group: Development/Libraries Packager: openEuler Builder BuildArch: noarch BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: boost-devel >= 1.39.0 BuildRequires: openssl-devel BuildRequires: zlib-devel Provides: websocketpp-devel = %{version}-%{release} Provides: cmake(websocketpp) = %{version} %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 raw char buffers, one based on C++ iostreams, and one based on Asio (either Boost.Asio or standalone Asio). TLS support and message compression are provided via pluggable extensions built on OpenSSL and zlib. This package contains the header files and the CMake integration files (websocketpp-config.cmake, exposing the imported target websocketpp::websocketpp) needed to build applications against WebSocket++. %prep %autosetup -n %{name}-%{version} %build # Boost / OpenSSL / zlib are only probed by upstream when tests or examples are # enabled; both are disabled so the shipped artifacts have no such linkage. # # NOTE (openEuler 24.03 LTS SP3, builds 112495/112498): the openEuler cmake # macro configures the tree IN SOURCE - its cmake invocation carries no -S/-B # and CMake reports "Build files have been written to: ". The vpath # build directory that the plain cmake-driven build/install macros operate on # (noarch-openEuler-linux-gnu) is therefore never created, and those macros # abort with "Error: ... is not a directory" (build 112495). So drive the # already-configured in-source tree with the generic make macros, which is also # what the other header-only cpp packages in this chroot do. # # IMPORTANT: write NO bare percent-macro reference in this comment. RPM # expands macros even inside spec comments, and the openEuler cmake build and # install macros are defined with a multi-line body. The text that follows # such a reference in a comment is then emitted on its own line of the # generated build script and gets EXECUTED as a command. Build 112498 died # exactly that way: the tail of the old comment here ("aborts with") was # appended to the cmake build macro expansion, so a stray # 'cmake --build noarch-openEuler-linux-gnu -j4 --verbose aborts with' ran # before the real build steps below and aborted the build with # 'Unknown argument aborts'. %cmake \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTS=OFF %make_build %install %make_install %files %license COPYING %doc readme.md changelog.md roadmap.md %{_includedir}/websocketpp/ %{_prefix}/lib/cmake/websocketpp/ %changelog * Mon Sep 21 2026 openEuler Builder - 0.8.2-1 - Initial package