## START: Set by rpmautospec ## (rpmautospec version 0.8.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 3; 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 # Re-generate sources? The results should be identical to what is already in # the source archive. Each language has its own conditional here: %bcond regenerate_cpp 1 %bcond regenerate_python 1 %bcond regenerate_ruby 1 # Run tests that require network access? We cannot do this routinely in koji, # but we can do it manually by enabling this conditional and enabling network # access, e.g. in COPR, or in a local mock chroot: # fedpkg mockbuild --with network_tests --enable-network %bcond network_tests 0 Name: cucumber-messages Version: 32.2.0 %global cpp_soversion 32 Release: %autorelease Summary: A message protocol for representing results and other information from Cucumber License: MIT URL: https://github.com/cucumber/messages Source: %{url}/archive/v%{version}/messages-%{version}.tar.gz # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildRequires: cmake BuildRequires: gcc-c++ # https://docs.fedoraproject.org/en-US/packaging-guidelines/#_packaging_header_only_libraries BuildRequires: cmake(nlohmann_json) json-static %if %{with regenerate_cpp} || %{with regenerate_python} BuildRequires: make BuildRequires: /usr/bin/ruby BuildRequires: rubygem(json) %endif # Python test dependencies; the "test" and "test-coverage" extras have a lot of # extra dependencies that are unwanted per # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters, # so we list these manually. BuildRequires: %{py3_dist pytest} %if %{with network_tests} BuildRequires: %{py3_dist GitPython} %endif %global common_description %{expand: Cucumber Messages is a message protocol for representing results and other information from Cucumber. The protocol aims to decouple various components of the Cucumber platform, with the following advantages: • Each component only needs to know about a subset of messages • Gherkin is decoupled from the Cucumber execution component • Enables the future support other formats such as Markdown and Excel} %description %{common_description} %package cpp-libs Summary: Cucumber Messages for C++ (JSON schema) %description cpp-libs %{common_description} This package contains libraries implementing Cucumber Messages for C++. %package cpp-devel Summary: Development files for using the C++ implementation of Gherkin Requires: %{name}-cpp-libs%{?_isa} = %{version}-%{release} %description cpp-devel %{common_description} This package contains header files and libraries for developing and building programs that use Cucumber Messages for C++. %package -n python3-cucumber-messages Summary: Message protocol for representing results and other information from Cucumber BuildArch: noarch %description -n python3-cucumber-messages Cucumber Messages is a message protocol for representing results and other information from Cucumber. # The Ruby specific content is kept as close as feasible to the output of # `gem2rpm --fetch cucumber-messages` %global gem_name cucumber-messages %package -n rubygem-cucumber-messages Summary: Message protocol for representing results and other information from Cucumber BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby >= 2.3 BuildRequires: rubygem(rspec) BuildArch: noarch %description -n rubygem-cucumber-messages JSON schema-based messages for Cucumber's inter-process communication. %package -n rubygem-cucumber-messages-doc Summary: Documentation for %{name} Requires: rubygem-%{name} = %{version}-%{release} BuildArch: noarch %description -n rubygem-cucumber-messages-doc Documentation for %{name}. %prep %autosetup -n messages-%{version} -p1 # Do not upper-bound (SemVer-bound) the version of uv_build; we must work with # what we have, and compatibility is quite good in practice. sed -r -i 's/"(uv_build *>= *[^:]+), *<[^"]+"/"\1"/' python/pyproject.toml %generate_buildrequires pushd python >/dev/null %pyproject_buildrequires popd >/dev/null %conf pushd cpp %cmake popd %build pushd cpp %if %{with regenerate_cpp} %make_build clean %make_build generate %endif %cmake_build popd pushd python %if %{with regenerate_python} %make_build clean %make_build generate %endif %pyproject_wheel popd pushd ruby %if %{with regenerate_ruby} %make_build clean %make_build generate %endif gem build %{gem_name}.gemspec %gem_install popd %install pushd cpp %cmake_install popd pushd python %pyproject_install %pyproject_save_files -l cucumber_messages popd pushd ruby mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ popd %check pushd cpp # We think this is the intended way to run tests, but there don’t appear to be # any usable tests yet. %ctest popd pushd python %if %{without network_tests} # Requires network access (remote git clone): ignore="${ignore-} --ignore=tests/test_model_load.py" %endif %pytest ${ignore-} -v popd pushd ruby ln -r -s spec .%{gem_instdir}/spec ln -r -s ../testdata .%{gem_instdir}/../testdata pushd .%{gem_instdir} rspec -rspec_helper spec popd popd %files cpp-libs %license LICENSE %{_libdir}/libcucumber_messages.so.%{cpp_soversion}{,.*} %files cpp-devel %doc cpp/README.md # https://github.com/cucumber/messages/issues/267#issuecomment-2478224301 # Co-owned with packages for other cucumber projects: %dir %{_includedir}/cucumber/ # Co-owned with packages for other cucumber projects in the cucumber C++ # namespace: %dir %{_includedir}/cucumber/cucumber/ # Unique to this package: %dir %{_includedir}/cucumber/cucumber/messages/ %{_includedir}/cucumber/cucumber/messages/*.hpp %{_libdir}/libcucumber_messages.so %{_libdir}/cmake/cucumber_messages/ %files -n python3-cucumber-messages -f %{pyproject_files} %doc python/README.md %files -n rubygem-cucumber-messages %dir %{gem_instdir} %license %{gem_instdir}/LICENSE %{gem_instdir}/VERSION %{gem_libdir} %exclude %{gem_cache} %{gem_spec} %files -n rubygem-cucumber-messages-doc %doc %{gem_docdir} %doc %{gem_instdir}/README.md %changelog ## START: Generated by rpmautospec * Sat Mar 14 2026 Vít Ondruch - 32.2.0-3 - Add rubygem-cucumber-messages subpackage * Thu Mar 12 2026 Benjamin A. Beasley - 32.2.0-2 - The ninja backend is the default now; don’t bother specifying it * Sun Mar 01 2026 Benjamin A. Beasley - 32.2.0-1 - Update to 32.2.0 (close RHBZ#2443650) * Fri Feb 27 2026 Benjamin A. Beasley - 32.1.0-1 - Update to 32.1.0 (close RHBZ#2443329) * Sun Jan 25 2026 Benjamin A. Beasley - 32.0.1-1 - Update to 32.0.1 (close RHBZ#2432634) * Wed Jan 21 2026 Benjamin A. Beasley - 32.0.0-1 - Update to 32.0.0 (close RHBZ#2431755) * Tue Jan 20 2026 Benjamin A. Beasley - 31.2.0-5 - Use sed rather than a patch to remove the uv_build version upper bound * Tue Jan 20 2026 Benjamin A. Beasley - 31.2.0-4 - Remove the upper bound on the version of uv_build * Fri Jan 16 2026 Fedora Release Engineering - 31.2.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Fri Jan 16 2026 Fedora Release Engineering - 31.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Sun Jan 11 2026 Benjamin A. Beasley - 31.2.0-1 - Update to 31.2.0 * Fri Dec 26 2025 Benjamin A. Beasley - 31.1.0-1 - Update to 31.1.0 (close RHBZ#2424527) * Thu Dec 18 2025 Benjamin A. Beasley - 31.0.1-1 - Update to 31.0.1 (close RHBZ#2423621) * Tue Nov 18 2025 Benjamin A. Beasley - 31.0.0-1 - Update to 31.0.0 (close RHBZ#2415721) * Wed Oct 08 2025 Benjamin A. Beasley - 30.1.0-1 - Update to 30.1.0 * Fri Oct 03 2025 Benjamin A. Beasley - 30.0.0-1 - Update to 30.0.0 (close RHBZ#2401314) * Fri Sep 19 2025 Python Maint - 29.0.1-2 - Rebuilt for Python 3.14.0rc3 bytecode * Wed Sep 10 2025 Benjamin A. Beasley - 29.0.1-1 - Update to 29.0.1 (close RHBZ#2393855) * Fri Aug 15 2025 Python Maint - 28.1.0-3 - Rebuilt for Python 3.14.0rc2 bytecode * Wed Jul 23 2025 Fedora Release Engineering - 28.1.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Tue Jul 22 2025 Benjamin A. Beasley - 28.1.0-1 - Update to 28.1.0 (close RHBZ#2382362) * Mon Jul 07 2025 Benjamin A. Beasley - 28.0.0-2 - Improved patch for C++ library versioning * Mon Jul 07 2025 Benjamin A. Beasley - 28.0.0-1 - Update to 28.0.0 * Mon Jun 02 2025 Python Maint - 27.2.0-2 - Rebuilt for Python 3.14 * Fri Jan 31 2025 Benjamin A. Beasley - 27.2.0-1 - Update to 27.2.0 (close RHBZ#2343202) - Upstream added a Python implementation, packaged as python3-cucumber- messages * Fri Jan 31 2025 Benjamin A. Beasley - 27.1.0-2 - Support re-generating C++ sources before building them - Enable C++ source re-generation by default. * Tue Jan 28 2025 Benjamin A. Beasley - 27.1.0-1 - Update to 27.1.0 (close RHBZ#2342516) - New C++ SONAME versioning scheme: ABI unchanged, but SONAME version bumped from 0.1 to 27 * Thu Jan 16 2025 Fedora Release Engineering - 27.0.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Thu Nov 28 2024 Benjamin A. Beasley - 27.0.2-1 - Initial package (close RHBZ#2329353) ## END: Generated by rpmautospec