Name: CppMicroServices Version: 3.8.4 Release: %autorelease Summary: C++ components for building service-oriented applications Url: http://cppmicroservices.org/ License: %{shrink: Apache-2.0 AND %dnl third_party/tinyscheme BSD-3-Clause AND %dnl framework/include/cppmicroservices/Any.h %dnl webconsole/include/cppmicroservices/webconsole/mustache.hpp BSL-1.0 AND %dnl webconsole/resources/res/*.{jss,css} %dnl third_party/{rapidjson,optionparser,miniz} MIT } Source0: https://github.com/CppMicroServices/CppMicroServices/archive/refs/tags/v%{version}.tar.gz#/CppMicroServices-%{version}.tar.gz Patch1: 0001-Fully-use-system-boost.patch Patch2: 0001-Use-system-jsoncpp-library.patch Patch3: 0001-Use-system-linenoise-library.patch Patch4: 0001-Use-system-civetweb-package.patch Patch5: 0001-Use-system-spdlog-package.patch Patch6: 0001-Removed-unused-absl-package.patch Patch7: 0001-Replace-use-of-removed-htmlescape-function-from-sphi.patch Patch8: 0001-Remove-broken-docs-python-monkeypatching.patch # Needs git snapshot which is not available in Fedora Provides: bundled(rapidjson) = 091de040edb3355dcf2f4a18c425aec51b906f08 # Non-upstream modifications Provides: bundled(miniz) = 3.0.2 # Non-upstream modifications Provides: bundled(optionparser) = 1.7 # Not available in Fedora Provides: bundled(tinyscheme) = 1.41 BuildRequires: gcc-c++ BuildRequires: doxygen BuildRequires: cmake BuildRequires: boost-devel BuildRequires: civetweb-devel BuildRequires: jsoncpp-devel BuildRequires: rapidjson-devel BuildRequires: linenoise-devel BuildRequires: spdlog-devel BuildRequires: python3-sphinx BuildRequires: python3-sphinx_rtd_theme BuildRequires: python3-breathe %description The C++ Micro Services project is a collection of components for building modular and dynamic service-oriented applications. It is based on OSGi, but tailored to support native cross-platform solutions. %package devel Summary: Development files for CppMicroServices %description devel The C++ Micro Services project is a collection of components for building modular and dynamic service-oriented applications. It is based on OSGi, but tailored to support native cross-platform solutions. This provides the development headers and libraries. %prep %autosetup -p1 # No longer used by code rm -rf third_party/absl # Skipping broken tests rm -rf third_party/benchmark # Patched to use Fedora package rm -rf third_party/boost # Patched to use Fedora package rm -rf third_party/civetweb # Not really third party code AFAICT, so not # applicable to unbundle #rm -rf third_party/cppmicroservices_pe.h # Not applicable to Linux build rm -rf third_party/dirent_win32.h # Skipping broken tests rm -rf third_party/googletest # Patched to use Fedora package rm -rf third_party/json rm -rf third_party/jsoncpp.cpp # Not actually used by the code rm -rf third_party/libtelnet* # Patched to use Fedora package rm -rf third_party/linenoise* # Has local modifications that are not in upstream so # can't use standard Fedora package #rm -rf third_party/miniz* # Not in Fedora and has local modifications that are # not in upstream so undesirable to add a Fedora # package #rm -rf third_party/optionparser.h # Needs git master. Upstream is dead and won't be making # any more releases. Fedora has 1.1.0 and is resisting # shipping git snapshots # https://github.com/Tencent/rapidjson/issues/1006 #rm -rf third_party/rapidjson # Patched to use Fedora package rm -rf third_party/spdlog # Not in Fedora, and has build time settings for controlling # available features that are intended to be set to match # the application's required usage. #rm -rf third_party/tinyscheme %build # Tests don't successfully build with latest G++, # even if we bundle googletest code, so just disable # them for now %cmake \ -DUS_USE_SYSTEM_BOOST:BOOL=ON \ -DUS_SYSTEM_GTEST:BOOL=ON \ -DUS_BUILD_TESTING:BOOL=OFF \ -DUS_BUILD_DOC_HTML:BOOL=ON \ -DUS_BUILD_DOC_MAN:BOOL=ON \ -DLIBRARY_INSTALL_DIR=%{_libdir} \ -DTOOLS_INSTALL_DIR=%{_bindir} \ -DRUNTIME_INSTALL_DIR=%{_bindir} \ -DARCHIVE_INSTALL_DIR=%{_libdir} \ -DHEADER_INSTALL_DIR=%{_includedir}/cppmicroservices3 \ -DAUXILIARY_INSTALL_DIR=%{_datadir}/cppmicroservices3 \ -DDOC_INSTALL_DIR=%{_datadir}/doc/cppmicroservices3 \ -DMAN_INSTALL_DIR=%{_mandir} %cmake_build %install %cmake_install %files %{_libdir}/libConfigurationAdmind.so.* %{_libdir}/libCppMicroServicesd.so.* %{_libdir}/libDeclarativeServicesd.so.* %{_libdir}/libLogServiced.so.* # NB: not a versioned library :-( %{_libdir}/libusAsyncWorkServiced.so # NB: not a versioned library :-( %{_libdir}/libusEMd.so %{_libdir}/libusHttpServiced.so.* # NB: not a versioned library :-( %{_libdir}/libusServiceComponentd.so %{_libdir}/libusShellServiced.so.* %{_libdir}/libusWebConsoled.so.* %files devel %{_datadir}/cppmicroservices3 %{_includedir}/cppmicroservices3 %{_bindir}/SCRCodeGen3 %{_bindir}/jsonschemavalidator %{_bindir}/usResourceCompiler3 %{_bindir}/usShell3 %{_libdir}/libConfigurationAdmind.so %{_libdir}/libCppMicroServicesd.so %{_libdir}/libDeclarativeServicesd.so %{_libdir}/libLogServiced.so %{_libdir}/libusHttpServiced.so %{_libdir}/libusShellServiced.so %{_libdir}/libusWebConsoled.so %{_datadir}/doc/cppmicroservices3/html %{_mandir}/man1/usResourceCompiler3.1* %{_mandir}/man1/usShell3.1* %{_mandir}/man3/cppmicroservices-asyncworkservice.3* %{_mandir}/man3/cppmicroservices-configadmin.3* %{_mandir}/man3/cppmicroservices-ds.3* %{_mandir}/man3/cppmicroservices-framework.3* %{_mandir}/man3/cppmicroservices-httpservice.3* %{_mandir}/man3/cppmicroservices-logservice.3* %{_mandir}/man3/cppmicroservices-shellservice.3* %{_mandir}/man3/cppmicroservices-webconsole.3* %{_mandir}/man3/cppmicroservices.3* %{_mandir}/man7/cppmicroservices-httpservice.7* %{_mandir}/man7/cppmicroservices-shellservice.7* %{_mandir}/man7/cppmicroservices-webconsole.7* %{_mandir}/man7/cppmicroservices.7* %changelog %autochangelog