## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global toolchain clang Name: PurC Version: 0.9.19 Release: %{autorelease} Summary: The prime HVML interpreter for C Language License: LGPLv3 AND GPLv3 AND Public Domain URL: https://github.com/HVML/PurC Source: %{url}/archive/ver-%{version}/%{name}-ver-%{version}.tar.gz BuildRequires: bc BuildRequires: bison BuildRequires: bison-devel BuildRequires: bison-runtime BuildRequires: check-devel BuildRequires: clang BuildRequires: cmake BuildRequires: flex BuildRequires: flex-devel #BuildRequires: gcc #BuildRequires: gcc-c++ BuildRequires: glib-devel BuildRequires: gperf BuildRequires: gmock-devel BuildRequires: gobject-introspection-devel BuildRequires: gtest-devel # ICU data needs to be packaged # to get features that use ICU #BuildRequires: icu #BuildRequires: libicu-devel BuildRequires: libgcrypt-devel BuildRequires: libnotify-devel BuildRequires: libpsl-devel BuildRequires: libsecret-devel BuildRequires: libsoup3-devel BuildRequires: libuuid-devel BuildRequires: libxml2-devel # mysqlclient from mariadb does not # seem like it can be used BuildRequires: mariadb-devel BuildRequires: ncurses-devel BuildRequires: ninja-build BuildRequires: openssl-devel BuildRequires: python3-devel BuildRequires: sqlite-devel BuildRequires: valgrind-devel BuildRequires: vim-minimal BuildRequires: xdg-utils BuildRequires: zlib-devel Requires: xdg-utils %description PurC is the acronym of the Prime HVML inteRpreter for C language. It is also the abbreviation of Purring Cat, while Purring Cat is the nickname and the mascot of HVML. The goal of PurC is to implement all features defined by HVML Specifiction V1.0 and all predefined dynamic objects defined by HVML Predefined Variables V1.0 in C language. You can use PurC to run an HVML program or an HVML app by using the command line tool purc, or use PurC as a library to build your own HVML interpreter. We release PurC under LGPLv3, so it is free for commercial use if you follow the conditions and terms of LGPLv3. %package devel Summary: The prime HVML interpreter for C Language Requires: %{name}%{?_isa} = %{version}-%{release} Provides: libcsseng Provides: libdomruler Provides: libpurc %description devel Development headers and libraries for PurC %prep %autosetup -n %{name}-ver-%{version} -p 1 rm -r deprecated # remove bundled packages rm -r Source/ThirdParty # Do not look for bundled packages sed -i '/add_subdirectory(ThirdParty\/xdgmime)/d' Source/CMakeLists.txt sed -i '/add_subdirectory(ThirdParty\/gtest)/d' Source/CMakeLists.txt %build %cmake -B purc-build -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DPORT=Linux \ -DINSTALL_GTEST=OFF \ -DCMAKE_CXX_COMPILER=clang++ \ -DCMAKE_C_COMPILER=clang \ -DENABLE_API_TESTS=OFF \ -DENABLE_APP_AUTH=OFF \ -DENABLE_CHINESE_NAMES=ON \ -DENABLE_DEVELOPER_MODE=OFF \ -DENABLE_DNSSD=OFF \ -DENABLE_DOCTYPE_HTML=ON \ -DENABLE_DOCTYPE_XGML=ON \ -DENABLE_DOCTYPE_XML=ON \ -DENABLE_EXTDVOBJ_FS=ON \ -DENABLE_EXTDVOBJ_MATH=ON \ -DENABLE_EXTDVOBJ_PY=ON \ -DENABLE_EXTDVOBJ_SQLITE=ON \ -DENABLE_ICU=OFF \ -DENABLE_RDRCM_HBDBUS=ON \ -DENABLE_RDRCM_SOCKET=ON \ -DENABLE_RDRCM_THREAD=ON \ -DENABLE_REMOTE_FETCHER=OFF \ -DENABLE_RENDERER_FOIL=OFF \ -DENABLE_SCHEMA_HTTP=ON \ -DENABLE_SCHEMA_LCMD=ON \ -DENABLE_SCHEMA_LSQL=OFF \ -DENABLE_SCHEMA_RSQL=OFF \ -DENABLE_SOCKET_STREAM=ON \ -DENABLE_SSL=ON \ -DENABLE_STREAM_HBDBUS=ON \ -DENABLE_STREAM_HTTP=ON \ -DENABLE_STREAM_MQTT=ON \ -DENABLE_STREAM_WEB_SOCKET=ON cd purc-build %make_build cd .. %install cd purc-build %make_install cd .. %check # smoke test LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH \ %{buildroot}%{_bindir}/purc --version # Check logs for test errors ls Source/test cp Source/test/run_all_tests.sh purc-build/ cd purc-build ls bash run_all_tests.sh cd .. %files %{_bindir}/purc %dir %{_libdir}/purc-0.9 %{_libdir}/purc-0.9/libpurc-dvobj-FS.so %{_libdir}/purc-0.9/libpurc-dvobj-MATH.so %{_libdir}/purc-0.9/libpurc-dvobj-PY.so %{_libdir}/purc-0.9/libpurc-dvobj-SQLITE.so %{_libdir}/libcsseng.so.%{version} %{_libdir}/libdomruler.so.%{version} %{_libdir}/libpurc.so.%{version} %{_libdir}/libcsseng.so.0 %{_libdir}/libdomruler.so.0 %{_libdir}/libpurc.so.0 %license COPYING.LESSER %doc README.md %doc RELEASE-NOTES.md %doc README-zh.md %files devel %dir %{_includedir}/domruler %{_includedir}/domruler/*.h %dir %{_includedir}/csseng %{_includedir}/csseng/*.h %dir %{_includedir}/purc %{_includedir}/purc/*.h %{_libdir}/libcsseng.so %{_libdir}/libdomruler.so %{_libdir}/libpurc.so %{_libdir}/pkgconfig/csseng.pc %{_libdir}/pkgconfig/domruler.pc %{_libdir}/pkgconfig/purc.pc %changelog ## START: Generated by rpmautospec * Tue Jan 07 2025 John Doe - 0.9.19-1 - Uncommitted changes ## END: Generated by rpmautospec