## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## 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 Name: cr2rpm Version: 0.2.0 Release: %autorelease Summary: Generate RPM spec files from Crystal shard manifests License: GPL-3.0-or-later URL: https://codeberg.org/fedora-crystal/cr2rpm Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildArch: noarch BuildRequires: pyproject-rpm-macros BuildRequires: python3-devel BuildRequires: python3dist(pytest) %description cr2rpm is a command-line tool designed for Fedora packagers to inspect Crystal shards, generate standard-compliant Fedora RPM spec files from shard manifests and lock files, query virtual provides and requires, and format topological mock chain build sequences. %prep %autosetup -n %{name} -p1 %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel %install %pyproject_install %pyproject_save_files cr2rpm %check %pytest %files -f %{pyproject_files} %license LICENSE %doc CHANGELOG.rst README.rst %{_bindir}/cr2rpm %changelog ## START: Generated by rpmautospec * Sat Oct 31 2026 Rénich Bon Ćirić - 0.2.0-3 - fix(spec): use Forgejo URL fragment in Source0 for Codeberg archive * Sat Oct 24 2026 Rénich Bon Ćirić - 0.2.0-2 - fix(spec): address Fedora Package Review audit and rpmlint findings * Sun Sep 06 2026 Rénich Bon Ćirić - 0.2.0-1 - chore(release): prepare v0.2.0 - Initialize CHANGELOG.rst following Keep a Changelog standard - Bump version to 0.2.0 across __init__.py, pyproject.toml, and cr2rpm.spec - Include CHANGELOG.rst in RPM documentation and build sources * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-19 - feat(vendor): implement vendor archive and spec automation * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-18 - refactor(inspector): eliminate parser bloat and streamline dependency discovery * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-17 - fix(metadata): ignore image badges when extracting description from README * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-16 - fix(inspector): resolve multi-line links, ldflags parsing, and require scoping - Fix ldflags regex extracting "ibs" from --libs by using negative lookbehind and extracting pkg-config package arguments - Support multi-line @[Link(...)] annotations via global comment stripping and multiline regex matching - Support multiple positional arguments and positional strings following keyword options in @[Link(...)] - Ignore Windows platform runtime libraries (crypt32, ws2_32, kernel32) to prevent invalid Fedora BuildRequires - Normalize hyphens and underscores for shard names and local module resolution to prevent false self-requires - Treat sqlite3 and pg as external shards in spec while mapping C library requirements - Deduplicate development dependencies against runtime dependencies and map C requirements from development_dependencies - Ensure clean blank line before %%check in rendered spec files and validate path existence in handle_inspect * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-15 - feat(inspect): add dependency inspection for C library bindings and test requires * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-14 - fix(generator): fix newline swallowing in bundled provides template * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-13 - fix(generator): include crystal_arches fallback definition for SRPM parsers * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-12 - feat(generator): support ExclusiveArch noarch and application vendoring - Emit ExclusiveArch: %%{crystal_arches} noarch for pure library packages declaring BuildArch: noarch - Emit bundled provides and unpack Source1 vendor tarball when vendor=True - Add unit tests for noarch ExclusiveArch and vendor spec generation * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-11 - refactor(generator): use %%{name} for subpackage provides and default mock root * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-10 - fix(generator): resolve crucible protocol P0/P1/P2 findings - Add Provides: {{ package_name }} = %%{version}-%%{release} to application subpackages - Emit explicit Provides: crystal-shard({{ shard_name }}) = {{ version }} for library packages - Implement license aggregation with AND from lib/ dependencies for executable applications - Add -r root config parameter to generated mock chain build script - Add comprehensive unit tests for library provides, subpackage provides, and license aggregation * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-9 - feat(generator): add --compat support with Fedora naming guidelines * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-8 - feat: strip Markdown link formatting from RPM summaries * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-7 - feat: emit BuildArch noarch for pure shard libraries * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-6 - style(generator): format %%files section with individual lines for license and doc * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-5 - feat(generator): support repo_name archive mapping and README description fallback - Derive archive name and unpack directory from repository URL when distinct from shard name - Fallback to README overview line when shard.yml omits description field - Add unit test test_generate_repo_name_differs_from_shard_name * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-4 - chore(git): ignore build artifacts, logs, and tarballs * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-3 - chore: update documentation links in README.rst * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-2 - chore(url): update URL to fedora-crystal organization * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-1 - feat(packaging): add Fedora cr2rpm.spec, packit config, and RPM make targets - Add root cr2rpm.spec adhering to modern pyproject RPM packaging standards. - Add .packit.yaml for automated downstream Fedora Dist-Git synchronization. - Add rpm-check, sources, srpm, and mock targets to GNUmakefile. - Alphabetically sorted BuildRequires and Requires. ## END: Generated by rpmautospec