## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 4; 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: crystal-rpm-macros Version: 0.2.0 Release: %autorelease Summary: RPM macros and dependency generators for Crystal packaging License: GPL-3.0-or-later URL: https://codeberg.org/fedora-crystal/crystal-rpm-macros Source0: macros.crystal Source1: crystalshard.attr Source2: crystalshard.prov Source3: crystalshard.req Source4: shards-link Source5: LICENSE Source6: CHANGELOG.rst Source7: README.md BuildArch: noarch BuildRequires: python3-devel BuildRequires: python3-pyyaml Requires: rpm-build Requires: python3-pyyaml Provides: crystal-srpm-macros = %{version}-%{release} Provides: shards-link = %{version}-%{release} %description This package provides RPM macros, file attribute dependency generators, and the shards-link workspace linker for building and packaging Crystal applications and shards in Fedora. %prep %setup -c -T cp -p %{SOURCE5} . cp -p %{SOURCE6} . cp -p %{SOURCE7} . %build # No compilation needed %install install -D -p -m 0644 %{SOURCE0} %{buildroot}%{_rpmmacrodir}/macros.crystal install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_rpmconfigdir}/fileattrs/crystalshard.attr install -D -p -m 0755 %{SOURCE2} %{buildroot}%{_rpmconfigdir}/crystalshard.prov install -D -p -m 0755 %{SOURCE3} %{buildroot}%{_rpmconfigdir}/crystalshard.req install -D -p -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/shards-link install -d -m 0755 %{buildroot}%{_datadir}/crystal/shards %check PYTHONDONTWRITEBYTECODE=1 %{python3} -B -c "import ast, pathlib; [ast.parse(pathlib.Path(p).read_text()) for p in ('%{SOURCE2}', '%{SOURCE3}', '%{SOURCE4}')]" PYTHONDONTWRITEBYTECODE=1 %{python3} -B %{buildroot}%{_bindir}/shards-link --version %files %license LICENSE %doc CHANGELOG.rst README.md %{_bindir}/shards-link %{_rpmmacrodir}/macros.crystal %{_rpmconfigdir}/fileattrs/crystalshard.attr %{_rpmconfigdir}/crystalshard.prov %{_rpmconfigdir}/crystalshard.req %dir %{_datadir}/crystal %dir %{_datadir}/crystal/shards %changelog ## START: Generated by rpmautospec * Sat Oct 31 2026 Rénich Bon Ćirić - 0.2.0-4 - fix(spec): avoid writing bytecode into buildroot in %%check and drop redundant python3 Requires * Sat Oct 24 2026 Rénich Bon Ćirić - 0.2.0-3 - fix(spec): address Fedora Package Review audit and rpmlint findings * Thu Oct 01 2026 Rénich Bon Ćirić - 0.2.0-2 - fix(macros): include -d in %%crystal_flags by default * Sun Sep 06 2026 Rénich Bon Ćirić - 0.2.0-1 - chore(release): prepare v0.2.0 * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-14 - fix(macros): simplify %%crystal_setup to pure macro delegating to %%autosetup * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-13 - docs: remove deleted %%crystal_shard_provides macro reference * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-12 - fix(macros): resolve crucible protocol P0/P1/P2 findings - Fix Lua argument parsing in %%crystal_setup for parameterized options - Sanitize shard names and versions against path traversal in shards-link - Fix SemVer natural sorting to order pre-releases (~rc, -rc) below releases - Heal stale symlinks in shards-link when newer matching version is available - Exclude development_dependencies from transitive library dependency crawls - Fix crystalshard.req fallback parser to respect indentation depth - Restrict crystalshard.attr regex to top-level shard manifests - Guard %%crystal_install against empty argument lists - Exclude spec/ test directory from %%crystal_install_lib - Remove obsolete %%crystal_shard_provides macro and clean REQUIRED_MACROS - Add LICENSE file and %%license tag to crystal-rpm-macros.spec - Ensure crystal-rpm-macros packages %%dir %%{crystal_shards_dir} and %%{_datadir}/crystal * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-11 - feat(make): add standard srpm and mock targets * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-10 - refactor: eliminate legacy aliases and compatibility symlinks * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-9 - test(shards-link): add unit test suite for shards-link * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-8 - feat(macros): install shards-link as /usr/bin/shards-link and maintain legacy symlink * Sun Sep 06 2026 Rénich Bon Ćirić - 0.1.0-7 - feat(macros): adopt LLVM primary package symlink model with -c compat support * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-6 - fix(macros): fix prefix collisions in symlink deps and basename in crystal_install * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-5 - feat: add crystal-symlink-deps helper and offline discovery without shard.lock * 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 crystal-in-fedora coordination link to renich/crystal-in- fedora * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-2 - chore(url): update project URL to fedora-crystal organization * Sat Sep 05 2026 Rénich Bon Ćirić - 0.1.0-1 - feat(macros): initial packaging repository for crystal-rpm-macros - Provide macros.crystal, crystalshard.attr, crystalshard.prov, and crystalshard.req. - Package crystal-rpm-macros.spec conforming to Fedora packaging guidelines. - Add GNUmakefile with check, srpm, and mock targets. - Sorted BuildRequires and Requires. ## END: Generated by rpmautospec